⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jifeng_jieshou.lst

📁 非常适合实用的无线射频芯片NRF905
💻 LST
📖 第 1 页 / 共 5 页
字号:
    02EF 2FE8      MOV	R30,R24
    02F0 2FF9      MOV	R31,R25
    02F1 95C8      LPM
    02F2 2D00      MOV	R16,R0
    02F3 DF37      RCALL	_Lcd_Write_Data
    02F4 94E3      INC	R14
    02F5 2D8E      MOV	R24,R14
    02F6 3180      CPI	R24,0x10
    02F7 F370      BCS	0x02E6
    02F8 9543      INC	R20
    02F9 154C      CP	R20,R12
    02FA F408      BCC	0x02FC
    02FB CFCB      RJMP	0x02C7
    02FC D18C      RCALL	pop_gset5
    02FD 9508      RET
_dis_168hz:
  b                    --> R20
  a                    --> R22
  j                    --> R10
  hz                   --> R12
  row                  --> R14
  x1                   --> R20
    02FE D18C      RCALL	push_gset5
    02FF 2EE2      MOV	R14,R18
    0300 2F40      MOV	R20,R16
    0301 84CA      LDD	R12,Y+10
    0302 84DB      LDD	R13,Y+11
(0511) 		 }		
(0512) 	}
(0513) }
(0514) /*------------------------------------------------------------------------------
(0515) void Dis16x16(uchar add_page, uchar add_col,const uchar *pHZ,uchar state)
(0516) {
(0517)     uchar i;
(0518)     Lcd_CURSOR(add_page, add_col);
(0519)     for(i=0;i<16;i++) 
(0520)     {                                                //一个汉字2行,16列,32个字节
(0521)     	if(state)                                    //state(选亮,黑)
(0522)     	{
(0523)     		Lcd_Write_Data(pHZ[i]);              //光标定位后沿着行开始写16列的字模数据??????
(0524)     	}
(0525)     //	else
(0526)     //	{
(0527)     	    	Lcd_Write_Data(~pHZ[i]);	    //如果列变,光标也会不停的换列,这里光标只换页不换列
(0528)     //	}                                           //那还是一列一列的写吗????(写一次会自动加1列)
(0529)      // }                                             //而清时在不停的换列
(0530)     Lcd_CURSOR(add_page-1, add_col);                //加或减都行,只是取模方向不同
(0531)     for(;i<32;i++)
(0532)     {  
(0533)     	if(state)
(0534)     	{
(0535)     		Lcd_Write_Data(pHZ[i]);
(0536)     	}
(0537)     //	else
(0538)     //	{
(0539)     	//	Lcd_Write_Data(~pHZ[i]);
(0540)     	}
(0541)     }
(0542) }
(0543) */
(0544) //-----------------------------16*8点阵显示-------------------------------------
(0545) void dis_168hz(uchar x1,uchar row,const uchar hz[])			//16*16
(0546) {	
(0547) 	uchar a,b,j;
(0548) 	a=x1;
    0303 2F64      MOV	R22,R20
(0549) 	b=x1+1;
    0304 5F4F      SUBI	R20,0xFF
(0550) 		Lcd_Write_command(a);     	//+号为合成为一个字节(其实就是或)B0+0x
    0305 2F06      MOV	R16,R22
    0306 DF50      RCALL	_Lcd_Write_command
(0551) 		Lcd_Write_command(0x10); 	//Set column address MSB(10+xx)即Y7 Y6 Y5 Y4
    0307 E100      LDI	R16,0x10
    0308 DF4E      RCALL	_Lcd_Write_command
(0552) 		Lcd_Write_command(0x01); 
    0309 E001      LDI	R16,1
    030A DF4C      RCALL	_Lcd_Write_command
(0553) 		Lcd_CURSOR(a,0);
    030B 2722      CLR	R18
    030C 2F06      MOV	R16,R22
    030D DF70      RCALL	_Lcd_CURSOR
(0554) 		 for(j=0;j<8;j++)
    030E 24AA      CLR	R10
    030F C00E      RJMP	0x031E
(0555) 		 {	                        //每读写一次,列会自动加1
(0556) 		 	 Lcd_CURSOR(a,j+row);       //改变列位置,列在变,光标也在不停的换列,重新进行定位
    0310 2D2A      MOV	R18,R10
    0311 0D2E      ADD	R18,R14
    0312 2F06      MOV	R16,R22
    0313 DF6A      RCALL	_Lcd_CURSOR
(0557) 		 	 Lcd_Write_Data(hz[j]);  //检测写进f0h???4点亮4点暗
    0314 2C2A      MOV	R2,R10
    0315 2433      CLR	R3
    0316 0C2C      ADD	R2,R12
    0317 1C3D      ADC	R3,R13
    0318 2DE2      MOV	R30,R2
    0319 2DF3      MOV	R31,R3
    031A 95C8      LPM
    031B 2D00      MOV	R16,R0
    031C DF0E      RCALL	_Lcd_Write_Data
    031D 94A3      INC	R10
    031E 2D8A      MOV	R24,R10
    031F 3088      CPI	R24,0x8
    0320 F378      BCS	0x0310
(0558) 		 }
(0559) 		 Lcd_Write_command(b);     	//+号为合成为一个字节(其实就是或)B0+0x
    0321 2F04      MOV	R16,R20
    0322 DF34      RCALL	_Lcd_Write_command
(0560) 		Lcd_Write_command(0x10); 	//Set column address MSB(10+xx)即Y7 Y6 Y5 Y4
    0323 E100      LDI	R16,0x10
    0324 DF32      RCALL	_Lcd_Write_command
(0561) 		Lcd_Write_command(0x01); 
    0325 E001      LDI	R16,1
    0326 DF30      RCALL	_Lcd_Write_command
(0562) 		Lcd_CURSOR(b,0);
    0327 2722      CLR	R18
    0328 2F04      MOV	R16,R20
    0329 DF54      RCALL	_Lcd_CURSOR
(0563) 		 for(j=0;j<8;j++)      
    032A 24AA      CLR	R10
    032B C00F      RJMP	0x033B
(0564) 		 {	                        //每读写一次,列会自动加1
(0565) 		 	 Lcd_CURSOR(b,j+row);       //列在变,光标也在不停的换列,重新进行定位
    032C 2D2A      MOV	R18,R10
    032D 0D2E      ADD	R18,R14
    032E 2F04      MOV	R16,R20
    032F DF4E      RCALL	_Lcd_CURSOR
(0566) 		 	 Lcd_Write_Data(hz[j+8]);  //检测写进f0h???4点亮4点暗
    0330 2D8A      MOV	R24,R10
    0331 2799      CLR	R25
    0332 0D8C      ADD	R24,R12
    0333 1D9D      ADC	R25,R13
    0334 9608      ADIW	R24,0x8
    0335 2FE8      MOV	R30,R24
    0336 2FF9      MOV	R31,R25
    0337 95C8      LPM
    0338 2D00      MOV	R16,R0
    0339 DEF1      RCALL	_Lcd_Write_Data
    033A 94A3      INC	R10
    033B 2D8A      MOV	R24,R10
    033C 3088      CPI	R24,0x8
    033D F370      BCS	0x032C
    033E D14A      RCALL	pop_gset5
    033F 9508      RET
_dis_shuzi:
  shuzi                --> Y+8
  y                    --> R22
  x                    --> R20
    0340 D14E      RCALL	push_gset3
    0341 2F62      MOV	R22,R18
    0342 2F40      MOV	R20,R16
    0343 9722      SBIW	R28,2
(0567) 		 }		
(0568) 	
(0569) }
(0570) void dis_shuzi(uchar x,uchar y,uchar shuzi)	
(0571) {
(0572) 	switch	(shuzi)
    0344 84A8      LDD	R10,Y+8
    0345 24BB      CLR	R11
    0346 20AA      TST	R10
    0347 F419      BNE	0x034B
    0348 20BB      TST	R11
    0349 F409      BNE	0x034B
    034A C073      RJMP	0x03BE
    034B 2D8A      MOV	R24,R10
    034C 2D9B      MOV	R25,R11
    034D 3081      CPI	R24,1
    034E E0E0      LDI	R30,0
    034F 079E      CPC	R25,R30
    0350 F409      BNE	0x0352
    0351 C064      RJMP	0x03B6
    0352 3082      CPI	R24,2
    0353 E0E0      LDI	R30,0
    0354 079E      CPC	R25,R30
    0355 F409      BNE	0x0357
    0356 C057      RJMP	0x03AE
    0357 3083      CPI	R24,3
    0358 E0E0      LDI	R30,0
    0359 079E      CPC	R25,R30
    035A F409      BNE	0x035C
    035B C04A      RJMP	0x03A6
    035C 3084      CPI	R24,4
    035D E0E0      LDI	R30,0
    035E 079E      CPC	R25,R30
    035F F409      BNE	0x0361
    0360 C03D      RJMP	0x039E
    0361 3085      CPI	R24,5
    0362 E0E0      LDI	R30,0
    0363 079E      CPC	R25,R30
    0364 F189      BEQ	0x0396
    0365 3086      CPI	R24,6
    0366 E0E0      LDI	R30,0
    0367 079E      CPC	R25,R30
    0368 F129      BEQ	0x038E
    0369 3087      CPI	R24,7
    036A E0E0      LDI	R30,0
    036B 079E      CPC	R25,R30
    036C F0C9      BEQ	0x0386
    036D 3088      CPI	R24,0x8
    036E E0E0      LDI	R30,0
    036F 079E      CPC	R25,R30
    0370 F069      BEQ	0x037E
    0371 3089      CPI	R24,0x9
    0372 E0E0      LDI	R30,0
    0373 079E      CPC	R25,R30
    0374 F009      BEQ	0x0376
    0375 C04F      RJMP	0x03C5
(0573) 	{
(0574) 	//case 0x0f:dispaly[2]=9;break;
(0575) 	//case 0x0e:dispaly[2]=9;break;
(0576) 	//case 0x0d:dispaly[2]=8;break;
(0577) 	//case 0x0c:dispaly[2]=8;break;
(0578) 	//case 0x0b:dispaly[2]=7;break;
(0579) 	//case 0x0a:dispaly[2]=6;break;
(0580) 	case 0x09:dis_168hz(x,y,jiu16);break;
    0376 E984      LDI	R24,0x94
    0377 E090      LDI	R25,0
    0378 8399      STD	Y+1,R25
    0379 8388      STD	Y+0,R24
    037A 2F26      MOV	R18,R22
    037B 2F04      MOV	R16,R20
    037C DF81      RCALL	_dis_168hz
    037D C047      RJMP	0x03C5
(0581) 	case 0x08:dis_168hz(x,y,ba16);break;
    037E E884      LDI	R24,0x84
    037F E090      LDI	R25,0
    0380 8399      STD	Y+1,R25
    0381 8388      STD	Y+0,R24
    0382 2F26      MOV	R18,R22
    0383 2F04      MOV	R16,R20
    0384 DF79      RCALL	_dis_168hz
    0385 C03F      RJMP	0x03C5
(0582) 	case 0x07:dis_168hz(x,y,qi16);break;
    0386 E784      LDI	R24,0x74
    0387 E090      LDI	R25,0
    0388 8399      STD	Y+1,R25
    0389 8388      STD	Y+0,R24
    038A 2F26      MOV	R18,R22
    038B 2F04      MOV	R16,R20
    038C DF71      RCALL	_dis_168hz
    038D C037      RJMP	0x03C5
(0583) 	case 0x06:dis_168hz(x,y,liu16);break;
    038E E684      LDI	R24,0x64
    038F E090      LDI	R25,0
    0390 8399      STD	Y+1,R25
    0391 8388      STD	Y+0,R24
    0392 2F26      MOV	R18,R22
    0393 2F04      MOV	R16,R20
    0394 DF69      RCALL	_dis_168hz
    0395 C02F      RJMP	0x03C5
(0584) 	case 0x05:dis_168hz(x,y,wu16);break;
    0396 E584      LDI	R24,0x54
    0397 E090      LDI	R25,0
    0398 8399      STD	Y+1,R25
    0399 8388      STD	Y+0,R24
    039A 2F26      MOV	R18,R22
    039B 2F04      MOV	R16,R20
    039C DF61      RCALL	_dis_168hz
    039D C027      RJMP	0x03C5
(0585) 	case 0x04:dis_168hz(x,y,si16);break;
    039E E484      LDI	R24,0x44
    039F E090      LDI	R25,0
    03A0 8399      STD	Y+1,R25
    03A1 8388      STD	Y+0,R24
    03A2 2F26      MOV	R18,R22
    03A3 2F04      MOV	R16,R20
    03A4 DF59      RCALL	_dis_168hz
    03A5 C01F      RJMP	0x03C5
(0586) 	case 0x03:dis_168hz(x,y,san16);break;
    03A6 E384      LDI	R24,0x34
    03A7 E090      LDI	R25,0
    03A8 8399      STD	Y+1,R25
    03A9 8388      STD	Y+0,R24
    03AA 2F26      MOV	R18,R22
    03AB 2F04      MOV	R16,R20
    03AC DF51      RCALL	_dis_168hz
    03AD C017      RJMP	0x03C5
(0587) 	case 0x02:dis_168hz(x,y,er16);break;
    03AE E284      LDI	R24,0x24
    03AF E090      LDI	R25,0
    03B0 8399      STD	Y+1,R25
    03B1 8388      STD	Y+0,R24
    03B2 2F26      MOV	R18,R22
    03B3 2F04      MOV	R16,R20
    03B4 DF49      RCALL	_dis_168hz
    03B5 C00F      RJMP	0x03C5
(0588) 	case 0x01:dis_168hz(x,y,yi16);break;
    03B6 E184      LDI	R24,0x14
    03B7 E090      LDI	R25,0
    03B8 8399      STD	Y+1,R25
    03B9 8388      STD	Y+0,R24
    03BA 2F26      MOV	R18,R22
    03BB 2F04      MOV	R16,R20
    03BC DF41      RCALL	_dis_168hz
    03BD C007      RJMP	0x03C5
(0589) 	case 0x00:dis_168hz(x,y,ling16);break;
    03BE E084      LDI	R24,4
    03BF E090      LDI	R25,0
    03C0 8399      STD	Y+1,R25
    03C1 8388      STD	Y+0,R24
    03C2 2F26      MOV	R18,R22
    03C3 2F04      MOV	R16,R20
    03C4 DF39      RCALL	_dis_168hz
(0590) 	default:break;
    03C5 9622      ADIW	R28,2
    03C6 D0C0      RCALL	pop_gset3
    03C7 9508      RET
_dis_ykxt:
    03C8 9724      SBIW	R28,4
(0591) 	}
(0592) }
(0593) //-----------------------------------------------------------------------------
(0594) 
(0595) /*void LCDtime(uchar x,uchar nian1,uchar nian2,uchar nian3,uchar nian4,
(0596) 		     uchar yue1,uchar yue2,
(0597) 		     uchar ri1,uchar ri2,
(0598) 		     uchar shi1,uchar shi2,
(0599) 		     uchar fen1,uchar fen1,)    //LCD时间显示函数
(0600) */
(0601) //------------------------------------------------------------------------------
(0602) /*
(0603) void LCDtime()	                         
(0604) 	{
(0605) 	dis_168hz(0xB6,5,er16);          	 //n1
(0606) 	dis_168hz(0xB6,13,ling16);	 		 //n2
(0607) 	dis_168hz(0xB6,21,ling16);	 		 //n3	
(0608) 	dis_168hz(0xB6,29,qi16);	 		 //n4
(0609) 	dis_168hz(0xB6,37,heng16);
(0610) 	dis_168hz(0xB6,45,yi16);	 		 //y1
(0611) 	dis_168hz(0xB6,53,ling16);	 		 //y2
(0612) 	dis_168hz(0xB6,61,heng16);	 	
(0613) 	dis_168hz(0xB6,69,yi16);	 		 //r1
(0614) 	dis_168hz(0xB6,77,ling16);       	 //r2
(0615) 	///////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -