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

📄 1602b_lcd_test.lis

📁 用avr的m16产生pwm波控制舵机的程序!
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 02B6                   .dbline 232
 02B6           ;      OSCCAL=0X95;
 02B6 85E9              ldi R24,149
 02B8 81BF              out 0x31,R24
 02BA                   .dbline 234
 02BA           ;        /********************************************/
 02BA           ;        CLI();
 02BA F894              cli
 02BC                   .dbline 235
 02BC           ;        PORTD=0x00;
 02BC 22BA              out 0x12,R2
 02BE                   .dbline 236
 02BE           ;        DDRD |= LCD_DATA | LCD_RW;
 02BE 81B3              in R24,0x11
 02C0 886F              ori R24,248
 02C2 81BB              out 0x11,R24
 02C4                   .dbline 237
 02C4           ;        DDRD |= LCD_RS   | LCD_EN;
 02C4 81B3              in R24,0x11
 02C6 8063              ori R24,48
 02C8 81BB              out 0x11,R24
 02CA                   .dbline 238
 02CA           ;        PORTA = 0xc7;//端口设置
 02CA 87EC              ldi R24,199
 02CC 8BBB              out 0x1b,R24
 02CE                   .dbline 239
 02CE           ;      DDRA  = 0xff;
 02CE 8FEF              ldi R24,255
 02D0 8ABB              out 0x1a,R24
 02D2                   .dbline 242
 02D2           ;       // PORTC  = 0x00;
 02D2           ;      //DDRC  = 0xff;
 02D2           ;        init_1302();
 02D2 0E940000          xcall _init_1302
 02D6                   .dbline 243
 02D6           ;        init_1302();
 02D6 0E940000          xcall _init_1302
 02DA                   .dbline 244
 02DA           ;        init_time(0x00,0x58,0x20,0x19,0x04,0x06,0x08);//秒、分、时、日、月、星期、年
 02DA 88E0              ldi R24,8
 02DC 8887              std y+8,R24
 02DE 86E0              ldi R24,6
 02E0 8E83              std y+6,R24
 02E2 84E0              ldi R24,4
 02E4 8C83              std y+4,R24
 02E6 89E1              ldi R24,25
 02E8 8A83              std y+2,R24
 02EA 80E2              ldi R24,32
 02EC 8883              std y+0,R24
 02EE 28E5              ldi R18,88
 02F0 0027              clr R16
 02F2 0E940000          xcall _init_time
 02F6                   .dbline 245
 02F6           ;        DDRC|=0x01;      //置为输出
 02F6 A09A              sbi 0x14,0
 02F8                   .dbline 246
 02F8           ;        PORTC|=0x01;
 02F8 A89A              sbi 0x15,0
 02FA                   .dbline 247
 02FA           ;        timer2_init();
 02FA B6DE              xcall _timer2_init
 02FC                   .dbline 248
 02FC           ;        MCUCR = 0x00;
 02FC 2224              clr R2
 02FE 25BE              out 0x35,R2
 0300                   .dbline 249
 0300           ;        GICR  = 0x00;
 0300 2BBE              out 0x3b,R2
 0302                   .dbline 250
 0302           ;        TIMSK = 0x40;
 0302 80E4              ldi R24,64
 0304 89BF              out 0x39,R24
 0306                   .dbline 251
 0306           ;      LCD_init();
 0306 0E940000          xcall _LCD_init
 030A                   .dbline 253
 030A           ;          /*初始化参数*/
 030A           ;        zkb=1500;    
 030A 8CED              ldi R24,1500
 030C 95E0              ldi R25,5
 030E 90930700          sts _zkb+1,R25
 0312 80930600          sts _zkb,R24
 0316                   .dbline 254
 0316           ;        t1=zkb/20;        
 0316 24E1              ldi R18,20
 0318 30E0              ldi R19,0
 031A 00910600          lds R16,_zkb
 031E 10910700          lds R17,_zkb+1
 0322 0E940000          xcall div16s
 0326 10930300          sts _t1+1,R17
 032A 00930200          sts _t1,R16
 032E                   .dbline 255
 032E           ;        t2=(20000-zkb)/20; 
 032E 20900600          lds R2,_zkb
 0332 30900700          lds R3,_zkb+1
 0336 00E2              ldi R16,20000
 0338 1EE4              ldi R17,78
 033A 0219              sub R16,R2
 033C 1309              sbc R17,R3
 033E 24E1              ldi R18,20
 0340 30E0              ldi R19,0
 0342 0E940000          xcall div16s
 0346 10930100          sts _t2+1,R17
 034A 00930000          sts _t2,R16
 034E                   .dbline 256
 034E           ;        zq=t1;
 034E 20900200          lds R2,_t1
 0352 30900300          lds R3,_t1+1
 0356 30920500          sts _zq+1,R3
 035A 20920400          sts _zq,R2
 035E                   .dbline 258
 035E           ; // Global enable interrupts
 035E           ;     SEI();
 035E 7894              sei
 0360 3EC0              xjmp L27
 0362           L26:
 0362                   .dbline 260
 0362           ;     while(1)
 0362           ;        {
 0362                   .dbline 263
 0362           ;          //settime();
 0362           ;           // showtime();
 0362           ;               delay2_nms(100);
 0362 04E6              ldi R16,100
 0364 10E0              ldi R17,0
 0366 48D0              xcall _delay2_nms
 0368                   .dbline 264
 0368           ;          zkb+=aa;
 0368 2984              ldd R2,y+9
 036A 3324              clr R3
 036C 40900600          lds R4,_zkb
 0370 50900700          lds R5,_zkb+1
 0374 420C              add R4,R2
 0376 531C              adc R5,R3
 0378 50920700          sts _zkb+1,R5
 037C 40920600          sts _zkb,R4
 0380                   .dbline 265
 0380 80910600          lds R24,_zkb
 0384 90910700          lds R25,_zkb+1
 0388 843F              cpi R24,244
 038A E1E0              ldi R30,1
 038C 9E07              cpc R25,R30
 038E 41F0              breq L31
 0390 80910600          lds R24,_zkb
 0394 90910700          lds R25,_zkb+1
 0398 843C              cpi R24,196
 039A E9E0              ldi R30,9
 039C 9E07              cpc R25,R30
 039E 19F4              brne L29
 03A0           L31:
 03A0                   .dbline 265
 03A0           ;          if(zkb==500||zkb==2500){    //标准应该是1000至2000
 03A0                   .dbline 266
 03A0           ;           aa=-aa;          
 03A0 2984              ldd R2,y+9
 03A2 2194              neg R2
 03A4 2986              std y+9,R2
 03A6                   .dbline 267
 03A6           ;         }
 03A6           L29:
 03A6                   .dbline 268
 03A6 24E1              ldi R18,20
 03A8 30E0              ldi R19,0
 03AA 00910600          lds R16,_zkb
 03AE 10910700          lds R17,_zkb+1
 03B2 0E940000          xcall div16s
 03B6 10930300          sts _t1+1,R17
 03BA 00930200          sts _t1,R16
 03BE                   .dbline 269
 03BE 20900600          lds R2,_zkb
 03C2 30900700          lds R3,_zkb+1
 03C6 00E2              ldi R16,20000
 03C8 1EE4              ldi R17,78
 03CA 0219              sub R16,R2
 03CC 1309              sbc R17,R3
 03CE 24E1              ldi R18,20
 03D0 30E0              ldi R19,0
 03D2 0E940000          xcall div16s
 03D6 10930100          sts _t2+1,R17
 03DA 00930000          sts _t2,R16
 03DE                   .dbline 279
 03DE           L27:
 03DE                   .dbline 259
 03DE C1CF              xjmp L26
 03E0           X2:
 03E0                   .dbline -2
 03E0           L25:
 03E0 2C96              adiw R28,12
 03E2                   .dbline 0 ; func end
 03E2 0895              ret
 03E4                   .dbsym l dout 11 c
 03E4                   .dbsym l i 10 c
 03E4                   .dbsym l aa 9 c
 03E4                   .dbend
 03E4                   .dbfunc e delay2_1ms _delay2_1ms fV
 03E4           ;              i -> R16,R17
                        .even
 03E4           _delay2_1ms::
 03E4                   .dbline -1
 03E4                   .dbline 282
 03E4           ;         t1=zkb/20;        
 03E4           ;         t2=(20000-zkb)/20;
 03E4           ;               //////////////////////////////////////////////
 03E4           ;         /* LCD_write_char(0x01,0);      //显示清屏
 03E4           ;          LCD_write_string(3,0,"Welcome");
 03E4           ;          LCD_write_string(1,1,"www.527dz.com!");
 03E4           ;          delay_nms(5000);
 03E4           ;          LCD_write_char(0x01,0);      //显示清屏
 03E4           ;          LCD_write_string(0,0,"Tel:13308844201");
 03E4           ;          LCD_write_string(0,1,"527dz@527dz.com");
 03E4           ;          delay_nms(5000);*/
 03E4           ;        }
 03E4           ;   }   
 03E4           ; void delay2_1ms(void)//1ms延时函数
 03E4           ; {
 03E4                   .dbline 284
 03E4           ;   unsigned int i;
 03E4           ;   for (i=0;i<150;i++)
 03E4 0027              clr R16
 03E6 1127              clr R17
 03E8 02C0              xjmp L36
 03EA           L33:
 03EA                   .dbline 285
 03EA                   .dbline 286
 03EA           L34:
 03EA                   .dbline 284
 03EA 0F5F              subi R16,255  ; offset = 1
 03EC 1F4F              sbci R17,255
 03EE           L36:
 03EE                   .dbline 284
 03EE 0639              cpi R16,150
 03F0 E0E0              ldi R30,0
 03F2 1E07              cpc R17,R30
 03F4 D0F3              brlo L33
 03F6                   .dbline -2
 03F6           L32:
 03F6                   .dbline 0 ; func end
 03F6 0895              ret
 03F8                   .dbsym r i 16 i
 03F8                   .dbend
 03F8                   .dbfunc e delay2_nms _delay2_nms fV
 03F8           ;              i -> R20,R21
 03F8           ;              n -> R22,R23
                        .even
 03F8           _delay2_nms::
 03F8 0E940000          xcall push_gset2
 03FC B801              movw R22,R16
 03FE                   .dbline -1
 03FE                   .dbline 290
 03FE           ;   {
 03FE           ;   } 
 03FE           ; }   
 03FE           ; 
 03FE           ; void delay2_nms(unsigned int n)//延时n毫秒
 03FE           ; {
 03FE                   .dbline 292
 03FE           ;   unsigned int i;
 03FE           ;   for (i=0;i<n;i++)//执行n次1毫秒延时
 03FE 4427              clr R20
 0400 5527              clr R21
 0402 03C0              xjmp L41
 0404           L38:
 0404                   .dbline 293
 0404 EFDF              xcall _delay2_1ms
 0406           L39:
 0406                   .dbline 292
 0406 4F5F              subi R20,255  ; offset = 1
 0408 5F4F              sbci R21,255
 040A           L41:
 040A                   .dbline 292
 040A 4617              cp R20,R22
 040C 5707              cpc R21,R23
 040E D0F3              brlo L38
 0410                   .dbline -2
 0410           L37:
 0410 0E940000          xcall pop_gset2
 0414                   .dbline 0 ; func end
 0414 0895              ret
 0416                   .dbsym r i 20 i
 0416                   .dbsym r n 22 i
 0416                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
 0000           _t2::
 0000                   .blkb 2
 0002                   .dbsym e t2 _t2 I
 0002           _t1::
 0002                   .blkb 2
 0004                   .dbsym e t1 _t1 I
 0004           _zq::
 0004                   .blkb 2
 0006                   .dbsym e zq _zq I
 0006           _zkb::
 0006                   .blkb 2
 0008                   .dbsym e zkb _zkb I
                        .area data(ram, con, rel)
 0002                   .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
 0002           L24:
 0002                   .blkb 7
                        .area idata
 0002 73756E64617900    .byte 's,'u,'n,'d,'a,'y,0
                        .area data(ram, con, rel)
 0009                   .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
 0009           L22:
 0009                   .blkb 9
                        .area idata
 0009 736174757264617900        .byte 's,'a,'t,'u,'r,'d,'a,'y,0
                        .area data(ram, con, rel)
 0012                   .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
 0012           L20:
 0012                   .blkb 7
                        .area idata
 0012 66726964617900    .byte 'f,'r,'i,'d,'a,'y,0
                        .area data(ram, con, rel)
 0019                   .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
 0019           L18:
 0019                   .blkb 9
                        .area idata
 0019 746875727364617900        .byte 't,'h,'u,'r,'s,'d,'a,'y,0
                        .area data(ram, con, rel)
 0022                   .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
 0022           L16:
 0022                   .blkb 10
                        .area idata
 0022 7765646E657364617900      .byte 'w,'e,'d,'n,'e,'s,'d,'a,'y,0
                        .area data(ram, con, rel)
 002C                   .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
 002C           L14:
 002C                   .blkb 8
                        .area idata
 002C 7475657364617900  .byte 't,'u,'e,'s,'d,'a,'y,0
                        .area data(ram, con, rel)
 0034                   .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c
 0034           L12:
 0034                   .blkb 7
                        .area idata
 0034 6D6F6E64617900    .byte 'm,'o,'n,'d,'a,'y,0
                        .area data(ram, con, rel)
 003B                   .dbfile E:\mcu\avr\test\1602_duoji\1602B_LCD_TEST.c

⌨️ 快捷键说明

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