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

📄 1602b_lcd_test.lis

📁 用avr的m16产生pwm波控制舵机的程序!
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 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 + -