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

📄 1602b_lcd_test.lis

📁 单片机应用 1.1602LCD 2.2004LCD源码 3.ATmega16 PWM源码 4.ATmega8 LED源码 5.无线影音Nrf2401源码 6.AVR串口源码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module _1602B_LCD_TEST.c
                        .area lit(rom, con, rel)
 0000           _table::
 0000 3031323334353637383900    .byte 48,49,50,51,52,53,54,55,56,57,0
 000B                   .dbfile I:\AVR\1602\MEGA8-1602\CLOCKA~1\test6\1602B_LCD_TEST.c
 000B                   .dbsym e table _table A[11:11]kc
 000B           _love::
 000B 49204C6F766520552C4D65694D656921  .byte 'I,32,'L,'o,'v,'e,32,'U,44,'M,'e,'i,'M,'e,'i,33
 001B 00                .byte 0
 001C                   .dbsym e love _love A[17:17]kc
                        .area data(ram, con, rel)
 0000                   .dbfile I:\AVR\1602\MEGA8-1602\CLOCKA~1\test6\1602B_LCD_TEST.c
 0000           _h::
 0000                   .blkb 1
                        .area idata
 0000 0A                .byte 10
                        .area data(ram, con, rel)
 0001                   .dbfile I:\AVR\1602\MEGA8-1602\CLOCKA~1\test6\1602B_LCD_TEST.c
 0001                   .dbsym e h _h c
 0001           _m::
 0001                   .blkb 1
                        .area idata
 0001 28                .byte 40
                        .area data(ram, con, rel)
 0002                   .dbfile I:\AVR\1602\MEGA8-1602\CLOCKA~1\test6\1602B_LCD_TEST.c
 0002                   .dbsym e m _m c
 0002           _s::
 0002                   .blkb 1
                        .area idata
 0002 20                .byte 32
                        .area data(ram, con, rel)
 0003                   .dbfile I:\AVR\1602\MEGA8-1602\CLOCKA~1\test6\1602B_LCD_TEST.c
 0003                   .dbsym e s _s c
 0003           _ch1::
 0003                   .blkb 1
                        .area idata
 0003 00                .byte 0
                        .area data(ram, con, rel)
 0004                   .dbfile I:\AVR\1602\MEGA8-1602\CLOCKA~1\test6\1602B_LCD_TEST.c
 0004                   .dbsym e ch1 _ch1 c
                        .area text(rom, con, rel)
 0000                   .dbfile I:\AVR\1602\MEGA8-1602\CLOCKA~1\test6\1602B_LCD_TEST.c
 0000                   .dbfunc e timer1_init _timer1_init fV
                        .even
 0000           _timer1_init::
 0000                   .dbline -1
 0000                   .dbline 15
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000           ; #include <math.h>
 0000           ; #include "1602LCD.h"
 0000           ; const unsigned char table[]="0123456789";
 0000           ; const unsigned char love[]="I Love U,MeiMei!";
 0000           ; unsigned char h=0x0A,m=0x28,s=0x20,temp1;
 0000           ; unsigned char ch,ch1=0; 
 0000           ; 
 0000           ; //TIMER1 initialize - prescale:1024
 0000           ; // WGM: 0) Normal, TOP=0xFFFF
 0000           ; // desired value: 1Hz
 0000           ; // actual value:  1.000Hz (0.0%)
 0000           ; void timer1_init(void)
 0000           ; {
 0000                   .dbline 16
 0000           ;  TCCR1B = 0x00; //stop
 0000 2224              clr R2
 0002 2EBC              out 0x2e,R2
 0004                   .dbline 17
 0004           ;  TCNT1H = 0xF0; //setup
 0004 80EF              ldi R24,240
 0006 8DBD              out 0x2d,R24
 0008                   .dbline 18
 0008           ;  TCNT1L = 0xBE;
 0008 8EEB              ldi R24,190
 000A 8CBD              out 0x2c,R24
 000C                   .dbline 19
 000C           ;  OCR1AH = 0x0F;
 000C 8FE0              ldi R24,15
 000E 8BBD              out 0x2b,R24
 0010                   .dbline 20
 0010           ;  OCR1AL = 0x42;
 0010 82E4              ldi R24,66
 0012 8ABD              out 0x2a,R24
 0014                   .dbline 21
 0014           ;  OCR1BH = 0x0F;
 0014 8FE0              ldi R24,15
 0016 89BD              out 0x29,R24
 0018                   .dbline 22
 0018           ;  OCR1BL = 0x42;
 0018 82E4              ldi R24,66
 001A 88BD              out 0x28,R24
 001C                   .dbline 23
 001C           ;  ICR1H  = 0x0F;
 001C 8FE0              ldi R24,15
 001E 87BD              out 0x27,R24
 0020                   .dbline 24
 0020           ;  ICR1L  = 0x42;
 0020 82E4              ldi R24,66
 0022 86BD              out 0x26,R24
 0024                   .dbline 25
 0024           ;  TCCR1A = 0x00;
 0024 2FBC              out 0x2f,R2
 0026                   .dbline 26
 0026           ;  TCCR1B = 0x04; //start Timer
 0026 84E0              ldi R24,4
 0028 8EBD              out 0x2e,R24
 002A                   .dbline -2
 002A           L1:
 002A                   .dbline 0 ; func end
 002A 0895              ret
 002C                   .dbend
                        .area vector(rom, abs)
                        .org 16
 0010 16C0              rjmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 002C                   .dbfile I:\AVR\1602\MEGA8-1602\CLOCKA~1\test6\1602B_LCD_TEST.c
 002C                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 002C           _timer1_ovf_isr::
 002C 00D0              rcall push_lset
 002E 2297              sbiw R28,2
 0030                   .dbline -1
 0030                   .dbline 31
 0030           ; }
 0030           ; 
 0030           ; #pragma interrupt_handler timer1_ovf_isr:9
 0030           ; void timer1_ovf_isr(void)
 0030           ; {
 0030                   .dbline 33
 0030           ; //TIMER1 has overflowed
 0030           ;  TCNT1H = 0xF0; //reload counter high value
 0030 80EF              ldi R24,240
 0032 8DBD              out 0x2d,R24
 0034                   .dbline 34
 0034           ;  TCNT1L = 0xBE; //reload counter low value
 0034 8EEB              ldi R24,190
 0036 8CBD              out 0x2c,R24
 0038                   .dbline 35
 0038           ;     s++;
 0038 80910200          lds R24,_s
 003C 8F5F              subi R24,255    ; addi 1
 003E 80930200          sts _s,R24
 0042                   .dbline 36
 0042           ;          if(s>0x3B)
 0042 8BE3              ldi R24,59
 0044 20900200          lds R2,_s
 0048 8215              cp R24,R2
 004A 40F4              brsh L3
 004C                   .dbline 37
 004C           ;                  {s=0x0;
 004C                   .dbline 37
 004C 2224              clr R2
 004E 20920200          sts _s,R2
 0052                   .dbline 38
 0052           ;                   m++;}
 0052 80910100          lds R24,_m
 0056 8F5F              subi R24,255    ; addi 1
 0058 80930100          sts _m,R24
 005C                   .dbline 38
 005C           L3:
 005C                   .dbline 39
 005C           ;                  if(m>0x3B)
 005C 8BE3              ldi R24,59
 005E 20900100          lds R2,_m
 0062 8215              cp R24,R2
 0064 40F4              brsh L5
 0066                   .dbline 40
 0066           ;                    {m=0x0;
 0066                   .dbline 40
 0066 2224              clr R2
 0068 20920100          sts _m,R2
 006C                   .dbline 41
 006C           ;                     h++;}
 006C 80910000          lds R24,_h
 0070 8F5F              subi R24,255    ; addi 1
 0072 80930000          sts _h,R24
 0076                   .dbline 41
 0076           L5:
 0076                   .dbline 42
 0076           ;                         if(h>0x0C)
 0076 8CE0              ldi R24,12
 0078 20900000          lds R2,_h
 007C 8215              cp R24,R2
 007E 18F4              brsh L7
 0080                   .dbline 43
 0080           ;                     {h=0x0;}
 0080                   .dbline 43
 0080 2224              clr R2
 0082 20920000          sts _h,R2
 0086                   .dbline 43
 0086           L7:
 0086                   .dbline 45
 0086           ;                         
 0086           ;       write_s(s);
 0086 00910200          lds R16,_s
 008A 1127              clr R17
 008C 95D0              rcall _write_s
 008E                   .dbline 46
 008E           ;         write_m(m);
 008E 00910100          lds R16,_m
 0092 1127              clr R17
 0094 66D0              rcall _write_m
 0096                   .dbline 47
 0096           ;         write_h(h);
 0096 00910000          lds R16,_h
 009A 1127              clr R17
 009C 37D0              rcall _write_h
 009E                   .dbline 48
 009E           ;         LCD_set_xy(ch,1);
 009E 21E0              ldi R18,1
 00A0 00910000          lds R16,_ch
 00A4 00D0              rcall _LCD_set_xy
 00A6                   .dbline 49
 00A6           ;         LCD_write_char(0,love[ch1]);
 00A6 80E0              ldi R24,<_love
 00A8 90E0              ldi R25,>_love
 00AA E0910300          lds R30,_ch1
 00AE FF27              clr R31
 00B0 E80F              add R30,R24
 00B2 F91F              adc R31,R25
 00B4 2491              lpm R18,Z
 00B6 3327              clr R19
 00B8 0027              clr R16
 00BA 1127              clr R17
 00BC 00D0              rcall _LCD_write_char
 00BE                   .dbline 50
 00BE           ;         ch++;
 00BE 80910000          lds R24,_ch
 00C2 8F5F              subi R24,255    ; addi 1
 00C4 80930000          sts _ch,R24
 00C8                   .dbline 51
 00C8           ;         ch1++;
 00C8 80910300          lds R24,_ch1
 00CC 8F5F              subi R24,255    ; addi 1
 00CE 80930300          sts _ch1,R24
 00D2                   .dbline 52
 00D2           ;         if(ch>15)
 00D2 8FE0              ldi R24,15
 00D4 20900000          lds R2,_ch
 00D8 8215              cp R24,R2
 00DA 20F4              brsh L9
 00DC                   .dbline 53
 00DC           ;         {ch=ch-16;      
 00DC                   .dbline 53
 00DC 822D              mov R24,R2
 00DE 8051              subi R24,16
 00E0 80930000          sts _ch,R24
 00E4                   .dbline 54
 00E4           ;         }
 00E4           L9:
 00E4                   .dbline 55
 00E4 80E1              ldi R24,16
 00E6 20900300          lds R2,_ch1
 00EA 8215              cp R24,R2
 00EC 60F4              brsh L11
 00EE                   .dbline 56
 00EE                   .dbline 56
 00EE 2224              clr R2
 00F0 20920300          sts _ch1,R2
 00F4                   .dbline 57
 00F4 20920000          sts _ch,R2
 00F8                   .dbline 58
 00F8 80E0              ldi R24,<L13
 00FA 90E0              ldi R25,>L13
 00FC 9983              std y+1,R25
 00FE 8883              std y+0,R24
 0100 21E0              ldi R18,1
 0102 0027              clr R16
 0104 00D0              rcall _LCD_write_string
 0106                   .dbline 58
 0106           L11:
 0106                   .dbline -2
 0106           L2:
 0106 2296              adiw R28,2
 0108 00D0              rcall pop_lset
 010A                   .dbline 0 ; func end
 010A 1895              reti
 010C                   .dbend
 010C                   .dbfunc e write_h _write_h fV
 010C           ;           temp -> R20
 010C           ;              h -> R22
                        .even
 010C           _write_h::
 010C 00D0              rcall push_gset2
 010E 602F              mov R22,R16
 0110                   .dbline -1
 0110                   .dbline 61
 0110           ;         if(ch1>16)
 0110           ;         {ch1=0;
 0110           ;         ch=0;
 0110           ;         LCD_write_string(0,1,"                ");}
 0110           ; }
 0110           ; void write_h(unsigned char h)
 0110           ; {                unsigned char temp=0;
 0110                   .dbline 61
 0110 4427              clr R20
 0112                   .dbline 62
 0112           ;                  LCD_set_xy(0,0);
 0112 2227              clr R18
 0114 0027              clr R16
 0116 00D0              rcall _LCD_set_xy
 0118                   .dbline 63
 0118           ;                  temp=h/10;

⌨️ 快捷键说明

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