📄 1602b_lcd_test.lis
字号:
0180 A02E mov R10,R16
0182 .dbline 72
0182 ; tl=s&0x0f;
0182 4A2D mov R20,R10
0184 4F70 andi R20,15
0186 .dbline 73
0186 ; th=(s>>4);
0186 6A2D mov R22,R10
0188 6295 swap R22
018A 6F70 andi R22,#0x0F
018C .dbline 74
018C ; LCD_write_char(0,th+48);
018C 262F mov R18,R22
018E 3327 clr R19
0190 205D subi R18,208 ; offset = 48
0192 3F4F sbci R19,255
0194 0027 clr R16
0196 1127 clr R17
0198 0E940000 xcall _LCD_write_char
019C .dbline 75
019C ; LCD_write_char(0,tl+48);
019C 242F mov R18,R20
019E 3327 clr R19
01A0 205D subi R18,208 ; offset = 48
01A2 3F4F sbci R19,255
01A4 0027 clr R16
01A6 1127 clr R17
01A8 0E940000 xcall _LCD_write_char
01AC .dbline 76
01AC ; LCD_write_char(0,'/');
01AC 2FE2 ldi R18,47
01AE 30E0 ldi R19,0
01B0 0027 clr R16
01B2 1127 clr R17
01B4 0E940000 xcall _LCD_write_char
01B8 .dbline 78
01B8 ; //day
01B8 ; s=read_data(0x87);
01B8 07E8 ldi R16,135
01BA 0E940000 xcall _read_data
01BE A02E mov R10,R16
01C0 .dbline 79
01C0 ; tl=s&0x0f;
01C0 4A2D mov R20,R10
01C2 4F70 andi R20,15
01C4 .dbline 80
01C4 ; th=(s>>4);
01C4 6A2D mov R22,R10
01C6 6295 swap R22
01C8 6F70 andi R22,#0x0F
01CA .dbline 81
01CA ; LCD_write_char(0,th+48);
01CA 262F mov R18,R22
01CC 3327 clr R19
01CE 205D subi R18,208 ; offset = 48
01D0 3F4F sbci R19,255
01D2 0027 clr R16
01D4 1127 clr R17
01D6 0E940000 xcall _LCD_write_char
01DA .dbline 82
01DA ; LCD_write_char(0,tl+48);
01DA 242F mov R18,R20
01DC 3327 clr R19
01DE 205D subi R18,208 ; offset = 48
01E0 3F4F sbci R19,255
01E2 0027 clr R16
01E4 1127 clr R17
01E6 0E940000 xcall _LCD_write_char
01EA .dbline 84
01EA ; //LCD_write_char(0,' ');
01EA ; LCD_write_char(0,' ');
01EA 20E2 ldi R18,32
01EC 30E0 ldi R19,0
01EE 0027 clr R16
01F0 1127 clr R17
01F2 0E940000 xcall _LCD_write_char
01F6 .dbline 87
01F6 ; // LCD_set_xy(0,1);
01F6 ; //hour
01F6 ; s=read_data(0x85);
01F6 05E8 ldi R16,133
01F8 0E940000 xcall _read_data
01FC A02E mov R10,R16
01FE .dbline 88
01FE ; tl=s&0x0f;
01FE 4A2D mov R20,R10
0200 4F70 andi R20,15
0202 .dbline 89
0202 ; th=(s>>4);
0202 6A2D mov R22,R10
0204 6295 swap R22
0206 6F70 andi R22,#0x0F
0208 .dbline 90
0208 ; LCD_write_char(0,th+48);
0208 262F mov R18,R22
020A 3327 clr R19
020C 205D subi R18,208 ; offset = 48
020E 3F4F sbci R19,255
0210 0027 clr R16
0212 1127 clr R17
0214 0E940000 xcall _LCD_write_char
0218 .dbline 91
0218 ; LCD_write_char(0,tl+48);
0218 242F mov R18,R20
021A 3327 clr R19
021C 205D subi R18,208 ; offset = 48
021E 3F4F sbci R19,255
0220 0027 clr R16
0222 1127 clr R17
0224 0E940000 xcall _LCD_write_char
0228 .dbline 92
0228 ; LCD_write_char(0,':');
0228 2AE3 ldi R18,58
022A 30E0 ldi R19,0
022C 0027 clr R16
022E 1127 clr R17
0230 0E940000 xcall _LCD_write_char
0234 .dbline 94
0234 ; //min
0234 ; s=read_data(0x83);
0234 03E8 ldi R16,131
0236 0E940000 xcall _read_data
023A A02E mov R10,R16
023C .dbline 95
023C ; tl=s&0x0f;
023C 4A2D mov R20,R10
023E 4F70 andi R20,15
0240 .dbline 96
0240 ; th=(s>>4);
0240 6A2D mov R22,R10
0242 6295 swap R22
0244 6F70 andi R22,#0x0F
0246 .dbline 97
0246 ; LCD_write_char(0,th+48);
0246 262F mov R18,R22
0248 3327 clr R19
024A 205D subi R18,208 ; offset = 48
024C 3F4F sbci R19,255
024E 0027 clr R16
0250 1127 clr R17
0252 0E940000 xcall _LCD_write_char
0256 .dbline 98
0256 ; LCD_write_char(0,tl+48);
0256 242F mov R18,R20
0258 3327 clr R19
025A 205D subi R18,208 ; offset = 48
025C 3F4F sbci R19,255
025E 0027 clr R16
0260 1127 clr R17
0262 0E940000 xcall _LCD_write_char
0266 .dbline 99
0266 ; LCD_write_char(0,':');
0266 2AE3 ldi R18,58
0268 30E0 ldi R19,0
026A 0027 clr R16
026C 1127 clr R17
026E 0E940000 xcall _LCD_write_char
0272 .dbline 101
0272 ; //sec
0272 ; s=read_data(0x81);
0272 01E8 ldi R16,129
0274 0E940000 xcall _read_data
0278 A02E mov R10,R16
027A .dbline 102
027A ; tl=s&0x0f;
027A 4A2D mov R20,R10
027C 4F70 andi R20,15
027E .dbline 103
027E ; th=(s>>4);
027E 6A2D mov R22,R10
0280 6295 swap R22
0282 6F70 andi R22,#0x0F
0284 .dbline 104
0284 ; LCD_write_char(0,th+48);
0284 262F mov R18,R22
0286 3327 clr R19
0288 205D subi R18,208 ; offset = 48
028A 3F4F sbci R19,255
028C 0027 clr R16
028E 1127 clr R17
0290 0E940000 xcall _LCD_write_char
0294 .dbline 105
0294 ; LCD_write_char(0,tl+48);
0294 242F mov R18,R20
0296 3327 clr R19
0298 205D subi R18,208 ; offset = 48
029A 3F4F sbci R19,255
029C 0027 clr R16
029E 1127 clr R17
02A0 0E940000 xcall _LCD_write_char
02A4 .dbline -2
02A4 L7:
02A4 2296 adiw R28,2
02A6 0E940000 xcall pop_gset3
02AA .dbline 0 ; func end
02AA 0895 ret
02AC .dbsym l i 3 c
02AC .dbsym r th 22 c
02AC .dbsym r tl 20 c
02AC .dbsym r s 10 c
02AC .dbend
02AC .dbfunc e main _main fV
02AC ; dout -> y+11
02AC ; i -> y+10
02AC ; aa -> y+9
.even
02AC _main::
02AC 2C97 sbiw R28,12
02AE .dbline -1
02AE .dbline 230
02AE ; //date
02AE ; }
02AE ; //////////////////////////////////////////////////////////////
02AE ; //k1接pd0 k2接pd1 k3接pd2
02AE ; /*void settime()
02AE ; {
02AE ; uchar dout=0,i,j,k;
02AE ; ret:;
02AE ; PORTC = 0x00;
02AE ; DDRC = 0xff;
02AE ; write_data(0x8e,0x00); //关闭寄存器写保护
02AE ; dout=PINC;
02AE ; i=((dout&0x40)==0x40);
02AE ; delay_nms(100);
02AE ; if(i)
02AE ; {
02AE ; n++;
02AE ; t=0;
02AE ; LCD_write_char(0x10,0);//光标自动右移
02AE ; if(n==15)n=0;}
02AE ; switch(n)
02AE ; {
02AE ; case 1 :dout=PINC;j=((dout&0x80)==0x80);
02AE ; if(j)
02AE ; { t++;
02AE ; write_data(0x80,((read_data(0x81))&0xf0)|t);;
02AE ; LCD_set_xy(1,1);
02AE ; k=((read_data(0x81))&0xf0);
02AE ; LCD_write_char(0,k+48);
02AE ; break;//0
02AE ; }
02AE ;
02AE ; //else goto ret;
02AE ; case 2 :dout=PINC;j=((dout&0x80)==0x80);
02AE ; if(j)
02AE ; { t++;
02AE ; write_data(0x80,((read_data(0x81))&0x0f)|(t<<4));
02AE ; LCD_set_xy(2,1);
02AE ; k=(read_data(0x81));
02AE ; k=(k>>4);
02AE ; LCD_write_char(0,k+48);
02AE ; break;
02AE ; }
02AE ; //else goto ret;
02AE ; case 4 :dout=PINC;j=((dout&0x80)==0x80);
02AE ; if(j)
02AE ; { t++;
02AE ; write_data(0x82,((read_data(0x83))&0xf0)|t);
02AE ; LCD_set_xy(4,1);
02AE ; k=((read_data(0x83))&0xf0);
02AE ; LCD_write_char(0,k+48);
02AE ; break;
02AE ; }
02AE ; case 5 :dout=PINC;j=((dout&0x80)==0x80);
02AE ; if(j)
02AE ; { t++;
02AE ; write_data(0x82,((read_data(0x83))&0x0f)|(t<<4));
02AE ; LCD_set_xy(5,1);
02AE ; k=(read_data(0x83));
02AE ; k=(k>>4);
02AE ; LCD_write_char(0,k+48);
02AE ; break;
02AE ; }
02AE ; case 7 :dout=PINC;j=((dout&0x80)==0x80);
02AE ; if(j)
02AE ; { t++;
02AE ; write_data(0x84,((read_data(0x85))&0xf0)|t);
02AE ; LCD_set_xy(7,1);
02AE ; k=((read_data(0x85))&0xf0);
02AE ; LCD_write_char(0,k+48);
02AE ; break;
02AE ; }
02AE ; case 8 :dout=PINC;j=((dout&0x80)==0x80);
02AE ; if(j)
02AE ; { t++;
02AE ; write_data(0x84,((read_data(0x85))&0x0f)|(t<<4));
02AE ; LCD_set_xy(8,1);
02AE ; k=(read_data(0x85));
02AE ; k=(k>>4);
02AE ; LCD_write_char(0,k+48);
02AE ; break;
02AE ; }
02AE ; case 10 :dout=PINC;j=((dout&0x80)==0x80);
02AE ; if(j)
02AE ; { t++;
02AE ; write_data(0x86,((read_data(0x87))&0xf0)|t);
02AE ; LCD_set_xy(10,1);
02AE ; k=((read_data(0x87))&0xf0);
02AE ; LCD_write_char(0,k+48);
02AE ; break;
02AE ; }
02AE ; case 11 :dout=PINC;j=((dout&0x80)==0x80);
02AE ; if(j)
02AE ; { t++;
02AE ; write_data(0x86,((read_data(0x87))&0x0f)|(t<<4));
02AE ; LCD_set_xy(11,1);
02AE ; k=(read_data(0x87));
02AE ; k=(k>>4);
02AE ; LCD_write_char(0,k+48);
02AE ; break;
02AE ; }
02AE ; case 13 :dout=PINC;j=((dout&0x80)==0x80);
02AE ; if(j)
02AE ; { t++;
02AE ; write_data(0x88,((read_data(0x89))&0xf0)|t);
02AE ; LCD_set_xy(13,1);
02AE ; k=((read_data(0x89))&0xf0);
02AE ; LCD_write_char(0,k+48);
02AE ; break;
02AE ; }
02AE ; case 14 :dout=PINC;j=((dout&0x80)==0x80);
02AE ; if(j)
02AE ; { t++;
02AE ; write_data(0x88,((read_data(0x89))&0x0f)|(t<<4));
02AE ; LCD_set_xy(14,1);
02AE ; k=(read_data(0x89));
02AE ; k=(k>>4);
02AE ; LCD_write_char(0,k+48);
02AE ; break;
02AE ; }
02AE ; else break;
02AE ; }
02AE ; }*/
02AE ; void main(void)
02AE ; {
02AE .dbline 231
02AE ; volatile char aa=20,i=0,dout;
02AE 84E1 ldi R24,20
02B0 8987 std y+9,R24
02B2 .dbline 231
02B2 2224 clr R2
02B4 2A86 std y+10,R2
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -