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

📄 mdls40466.lis

📁 AVR单片机C语言编程及应用实例 适合初学者的学习研究 其中包含Atmega16中文资料及Protel部分电路图
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module MDLS40466.c
                        .area text(rom, con, rel)
 0000                   .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\MDLS40466\MDLS40466.c
                        .area code(ram, con, rel)
 0000                   .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\MDLS40466\MDLS40466.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 49204C4F564520594F55202100        .byte 'I,32,'L,'O,'V,'E,32,'Y,'O,'U,32,33,0
 0028                   .dbsym e table2 _table2 A[13:13]kc
 0028           _table3::
 0028 5757572E5A4A5352552E4E455400      .byte 'W,'W,'W,46,'Z,'J,'S,'R,'U,46,'N,'E,'T,0
 0036                   .dbsym e table3 _table3 A[14:14]kc
                        .area text(rom, con, rel)
 0000                   .dbfile G:\学习\avr\天祥电子AVR视频教程\chengxu\MDLS40466\MDLS40466.c
 0000                   .dbfunc e delay _delay fV
 0000           ;              i -> R20,R21
 0000           ;              j -> R22,R23
 0000           ;             ms -> R16,R17
                        .even
 0000           _delay::
 0000 0E940000          xcall push_xgsetF000
 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 LOVE YOU !";
 0004           ; const uchar table3[]="WWW.ZJSRU.NET";
 0004           ; uchar k;
 0004           ; 
 0004           ; void delay(uint ms)
 0004           ; {
 0004                   .dbline 15
 0004           ;         uint i,j;
 0004           ;       for(i=0;i<ms;i++)
 0004 4427              clr R20
 0006 5527              clr R21
 0008 0BC0              xjmp L5
 000A           L2:
 000A                   .dbline 16
 000A           ;          {
 000A                   .dbline 17
 000A           ;          for(j=0;j<1141;j++);
 000A 6627              clr R22
 000C 7727              clr R23
 000E 02C0              xjmp L9
 0010           L6:
 0010                   .dbline 17
 0010           L7:
 0010                   .dbline 17
 0010 6F5F              subi R22,255  ; offset = 1
 0012 7F4F              sbci R23,255
 0014           L9:
 0014                   .dbline 17
 0014 6537              cpi R22,117
 0016 E4E0              ldi R30,4
 0018 7E07              cpc R23,R30
 001A D0F3              brlo L6
 001C           X0:
 001C                   .dbline 18
 001C           ;        }
 001C           L3:
 001C                   .dbline 15
 001C 4F5F              subi R20,255  ; offset = 1
 001E 5F4F              sbci R21,255
 0020           L5:
 0020                   .dbline 15
 0020 4017              cp R20,R16
 0022 5107              cpc R21,R17
 0024 90F3              brlo L2
 0026           X1:
 0026                   .dbline -2
 0026           L1:
 0026                   .dbline 0 ; func end
 0026 0C940000          xjmp pop_xgsetF000
 002A                   .dbsym r i 20 i
 002A                   .dbsym r j 22 i
 002A                   .dbsym r ms 16 i
 002A                   .dbend
 002A                   .dbfunc e write_com _write_com fV
 002A           ;            com -> R10
                        .even
 002A           _write_com::
 002A AA92              st -y,R10
 002C A02E              mov R10,R16
 002E                   .dbline -1
 002E                   .dbline 21
 002E           ; }
 002E           ; void write_com(uchar com)
 002E           ; {
 002E                   .dbline 22
 002E           ;        PORTD&=~BIT(4);
 002E 9498              cbi 0x12,4
 0030                   .dbline 23
 0030           ;          PORTD&=~BIT(5);
 0030 9598              cbi 0x12,5
 0032                   .dbline 24
 0032           ;          PORTB=com;
 0032 A8BA              out 0x18,R10
 0034                   .dbline 25
 0034           ;          PORTD|=BIT(k);
 0034 10910000          lds R17,_k
 0038 01E0              ldi R16,1
 003A 0E940000          xcall lsl8
 003E 22B2              in R2,0x12
 0040 202A              or R2,R16
 0042 22BA              out 0x12,R2
 0044                   .dbline 26
 0044           ;          delay(1);
 0044 01E0              ldi R16,1
 0046 10E0              ldi R17,0
 0048 DBDF              xcall _delay
 004A                   .dbline 27
 004A           ;          PORTD&=~BIT(k);
 004A 10910000          lds R17,_k
 004E 01E0              ldi R16,1
 0050 0E940000          xcall lsl8
 0054 202E              mov R2,R16
 0056 2094              com R2
 0058 32B2              in R3,0x12
 005A 3220              and R3,R2
 005C 32BA              out 0x12,R3
 005E                   .dbline -2
 005E           L10:
 005E                   .dbline 0 ; func end
 005E A990              ld R10,y+
 0060 0895              ret
 0062                   .dbsym r com 10 c
 0062                   .dbend
 0062                   .dbfunc e write_dat _write_dat fV
 0062           ;            dat -> R10
                        .even
 0062           _write_dat::
 0062 AA92              st -y,R10
 0064 A02E              mov R10,R16
 0066                   .dbline -1
 0066                   .dbline 31
 0066           ; }
 0066           ; 
 0066           ; void write_dat(uchar dat)
 0066           ; {     
 0066                   .dbline 32
 0066           ;        PORTD|=BIT(4);
 0066 949A              sbi 0x12,4
 0068                   .dbline 33
 0068           ;          PORTD&=~BIT(5);
 0068 9598              cbi 0x12,5
 006A                   .dbline 34
 006A           ;          PORTB=dat;
 006A A8BA              out 0x18,R10
 006C                   .dbline 35
 006C           ;          PORTD|=BIT(k);
 006C 10910000          lds R17,_k
 0070 01E0              ldi R16,1
 0072 0E940000          xcall lsl8
 0076 22B2              in R2,0x12
 0078 202A              or R2,R16
 007A 22BA              out 0x12,R2
 007C                   .dbline 36
 007C           ;          delay(1);
 007C 01E0              ldi R16,1
 007E 10E0              ldi R17,0
 0080 BFDF              xcall _delay
 0082                   .dbline 37
 0082           ;          PORTD&=~BIT(k);
 0082 10910000          lds R17,_k
 0086 01E0              ldi R16,1
 0088 0E940000          xcall lsl8
 008C 202E              mov R2,R16
 008E 2094              com R2
 0090 32B2              in R3,0x12
 0092 3220              and R3,R2
 0094 32BA              out 0x12,R3
 0096                   .dbline -2
 0096           L11:
 0096                   .dbline 0 ; func end
 0096 A990              ld R10,y+
 0098 0895              ret
 009A                   .dbsym r dat 10 c
 009A                   .dbend
 009A                   .dbfunc e main _main fV
 009A           ;              i -> R20
                        .even
 009A           _main::
 009A                   .dbline -1
 009A                   .dbline 40
 009A           ; }
 009A           ; void  main()
 009A           ; {
 009A                   .dbline 42
 009A           ;       uchar i;
 009A           ;         for(k=6;k<8;k++)
 009A 86E0              ldi R24,6
 009C 80930000          sts _k,R24
 00A0 8DC0              xjmp L16
 00A2           L13:
 00A2                   .dbline 43
 00A2           ;         {
 00A2                   .dbline 44
 00A2           ;         DDRB=0XFF;
 00A2 8FEF              ldi R24,255
 00A4 87BB              out 0x17,R24
 00A6                   .dbline 45
 00A6           ;         DDRD|=BIT(4)|BIT(5)|BIT(k);
 00A6 10910000          lds R17,_k
 00AA 01E0              ldi R16,1
 00AC 0E940000          xcall lsl8
 00B0 802F              mov R24,R16
 00B2 8063              ori R24,48
 00B4 21B2              in R2,0x11
 00B6 282A              or R2,R24
 00B8 21BA              out 0x11,R2
 00BA                   .dbline 46
 00BA           ;         PORTD&=~BIT(k);
 00BA 10910000          lds R17,_k
 00BE 01E0              ldi R16,1
 00C0 0E940000          xcall lsl8
 00C4 202E              mov R2,R16
 00C6 2094              com R2
 00C8 32B2              in R3,0x12
 00CA 3220              and R3,R2
 00CC 32BA              out 0x12,R3
 00CE                   .dbline 47
 00CE           ;         write_com(0X38);
 00CE 08E3              ldi R16,56
 00D0 ACDF              xcall _write_com
 00D2                   .dbline 48
 00D2           ;         delay(5);
 00D2 05E0              ldi R16,5
 00D4 10E0              ldi R17,0
 00D6 94DF              xcall _delay
 00D8                   .dbline 49
 00D8           ;         write_com(0X01);/*清屏*/
 00D8 01E0              ldi R16,1

⌨️ 快捷键说明

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