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

📄 lesson6.lis

📁 基于51的液晶1602 显示程序。含1602显示pdf格式说明
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module lesson6.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\Proteus\Proteus练习\03液晶1602\程序\lesson6.c
                        .area code(ram, con, rel)
 0000                   .dbfile D:\Proteus\Proteus练习\03液晶1602\程序\lesson6.c
                        .area lit(rom, con, rel)
 0000           _table::
 0000 49204C494B4520415652202100        .byte 'I,32,'L,'I,'K,'E,32,'A,'V,'R,32,33,0
 000D                   .dbsym e table _table A[13:13]kc
 000D           _table1::
 000D 5757572E54584D43552E434F4D00      .byte 'W,'W,'W,46,'T,'X,'M,'C,'U,46,'C,'O,'M,0
 001B                   .dbsym e table1 _table1 A[14:14]kc
 001B           _table2::
 001B 4920616D20676F6E6E6120746F2000    .byte 'I,32,'a,'m,32,'g,'o,'n,'n,'a,32,'t,'o,32,0
 002A                   .dbsym e table2 _table2 A[15:15]kc
 002A           _table3::
 002A 776F726B206173206861726420617320  .byte 'w,'o,'r,'k,32,'a,'s,32,'h,'a,'r,'d,32,'a,'s,32
 003A 00                .byte 0
 003B                   .dbsym e table3 _table3 A[17:17]kc
 003B           _table4::
 003B 692063616E2C20616E64207365652000  .byte 'i,32,'c,'a,'n,44,32,'a,'n,'d,32,'s,'e,'e,32,0
 004B                   .dbsym e table4 _table4 A[16:16]kc
 004B           _table5::
 004B 776861742068617070656E202100      .byte 'w,'h,'a,'t,32,'h,'a,'p,'p,'e,'n,32,33,0
 0059                   .dbsym e table5 _table5 A[14:14]kc
                        .area text(rom, con, rel)
 0000                   .dbfile D:\Proteus\Proteus练习\03液晶1602\程序\lesson6.c
 0000                   .dbfunc e delay _delay fV
 0000           ;              i -> R10,R11
 0000           ;              j -> R12,R13
 0000           ;             ms -> R16,R17
                        .even
 0000           _delay::
 0000 0E940000          xcall push_xgset003C
 0004                   .dbline -1
 0004                   .dbline 13
 0004           ; #include <iom16v.h>
 0004           ; #include <macros.h>
 0004           ; #define  uchar unsigned char
 0004           ; #define  uint  unsigned int
 0004           ; #pragma data:code 
 0004           ; const uchar table[]="I LIKE AVR !";
 0004           ; const uchar table1[]="WWW.TXMCU.COM";
 0004           ; const uchar table2[]="I am gonna to " ; 
 0004           ; const uchar table3[]="work as hard as ";
 0004           ; const uchar table4[]="i can, and see ";
 0004           ; const uchar table5[]="what happen !";
 0004           ; void delay(uint ms)
 0004           ; {
 0004                   .dbline 15
 0004           ;         uint i,j;
 0004           ;       for(i=0;i<ms;i++)
 0004 AA24              clr R10
 0006 BB24              clr R11
 0008 0EC0              xjmp L5
 000A           L2:
 000A                   .dbline 16
 000A           ;          {
 000A                   .dbline 17
 000A           ;          for(j=0;j<1141;j++);
 000A CC24              clr R12
 000C DD24              clr R13
 000E 03C0              xjmp L9
 0010           L6:
 0010                   .dbline 17
 0010           L7:
 0010                   .dbline 17
 0010 C601              movw R24,R12
 0012 0196              adiw R24,1
 0014 6C01              movw R12,R24
 0016           L9:
 0016                   .dbline 17
 0016 C601              movw R24,R12
 0018 8537              cpi R24,117
 001A E4E0              ldi R30,4
 001C 9E07              cpc R25,R30
 001E C0F3              brlo L6
 0020           X0:
 0020                   .dbline 18
 0020           ;        }
 0020           L3:
 0020                   .dbline 15
 0020 C501              movw R24,R10
 0022 0196              adiw R24,1
 0024 5C01              movw R10,R24
 0026           L5:
 0026                   .dbline 15
 0026 A016              cp R10,R16
 0028 B106              cpc R11,R17
 002A 78F3              brlo L2
 002C           X1:
 002C                   .dbline -2
 002C           L1:
 002C                   .dbline 0 ; func end
 002C 0C940000          xjmp pop_xgset003C
 0030                   .dbsym r i 10 i
 0030                   .dbsym r j 12 i
 0030                   .dbsym r ms 16 i
 0030                   .dbend
 0030                   .dbfunc e write_com _write_com fV
 0030           ;            com -> R10
                        .even
 0030           _write_com::
 0030 AA92              st -y,R10
 0032 A02E              mov R10,R16
 0034                   .dbline -1
 0034                   .dbline 21
 0034           ; }
 0034           ; void write_com(uchar com)
 0034           ; {
 0034                   .dbline 22
 0034           ;        PORTD&=~BIT(4);
 0034 9498              cbi 0x12,4
 0036                   .dbline 23
 0036           ;          PORTD&=~BIT(5);
 0036 9598              cbi 0x12,5
 0038                   .dbline 24
 0038           ;          PORTB=com; 
 0038 A8BA              out 0x18,R10
 003A                   .dbline 25
 003A           ;          PORTD|=BIT(6);
 003A 969A              sbi 0x12,6
 003C                   .dbline 26
 003C           ;          delay(1);
 003C 01E0              ldi R16,1
 003E 10E0              ldi R17,0
 0040 DFDF              xcall _delay
 0042                   .dbline 27
 0042           ;          PORTD&=~BIT(6);
 0042 9698              cbi 0x12,6
 0044                   .dbline -2
 0044           L10:
 0044                   .dbline 0 ; func end
 0044 A990              ld R10,y+
 0046 0895              ret
 0048                   .dbsym r com 10 c
 0048                   .dbend
 0048                   .dbfunc e write_dat _write_dat fV
 0048           ;            dat -> R10
                        .even
 0048           _write_dat::
 0048 AA92              st -y,R10
 004A A02E              mov R10,R16
 004C                   .dbline -1
 004C                   .dbline 31
 004C           ; }
 004C           ; 
 004C           ; void write_dat(uchar dat)
 004C           ; {     
 004C                   .dbline 32
 004C           ;        PORTD|=BIT(4);
 004C 949A              sbi 0x12,4
 004E                   .dbline 33
 004E           ;          PORTD&=~BIT(5);
 004E 9598              cbi 0x12,5
 0050                   .dbline 34
 0050           ;          PORTB=dat;
 0050 A8BA              out 0x18,R10
 0052                   .dbline 35
 0052           ;          PORTD|=BIT(6);
 0052 969A              sbi 0x12,6
 0054                   .dbline 36
 0054           ;          delay(1);
 0054 01E0              ldi R16,1
 0056 10E0              ldi R17,0
 0058 D3DF              xcall _delay
 005A                   .dbline 37
 005A           ;          PORTD&=~BIT(6);
 005A 9698              cbi 0x12,6
 005C                   .dbline -2
 005C           L11:
 005C                   .dbline 0 ; func end
 005C A990              ld R10,y+
 005E 0895              ret
 0060                   .dbsym r dat 10 c
 0060                   .dbend
 0060                   .dbfunc e main _main fV
 0060           ;              i -> R10
                        .even
 0060           _main::
 0060                   .dbline -1
 0060                   .dbline 41
 0060           ; 
 0060           ; }
 0060           ; void  main()
 0060           ; {
 0060                   .dbline 43
 0060           ;           uchar i;
 0060           ;         DDRB=0XFF;
 0060 8FEF              ldi R24,255
 0062 87BB              out 0x17,R24
 0064                   .dbline 44
 0064           ;         DDRD|=BIT(4)|BIT(5)|BIT(6);
 0064 81B3              in R24,0x11
 0066 8067              ori R24,112
 0068 81BB              out 0x11,R24
 006A                   .dbline 45
 006A           ;         PORTD&=~BIT(6);
 006A 9698              cbi 0x12,6
 006C                   .dbline 47
 006C           ;         
 006C           ;         write_com(0X38);  //设置16*2显示 ,5*7点阵,8位数据接口
 006C 08E3              ldi R16,56
 006E E0DF              xcall _write_com
 0070                   .dbline 48
 0070           ;         delay(5);
 0070 05E0              ldi R16,5
 0072 10E0              ldi R17,0
 0074 C5DF              xcall _delay
 0076 75C0              xjmp L14
 0078           L13:
 0078                   .dbline 50
 0078           ;         while(1)
 0078           ;       {
 0078                   .dbline 51
 0078           ;         write_com(0X01);  //显示清屏
 0078 01E0              ldi R16,1
 007A DADF              xcall _write_com
 007C                   .dbline 52
 007C           ;         delay(5);
 007C 05E0              ldi R16,5
 007E 10E0              ldi R17,0
 0080 BFDF              xcall _delay
 0082                   .dbline 53
 0082           ;         write_com(0X0C); //显示开关,光标设置
 0082 0CE0              ldi R16,12
 0084 D5DF              xcall _write_com
 0086                   .dbline 54

⌨️ 快捷键说明

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