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

📄 display_led.lis

📁 AVR开发板例子源代码
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 022E 0000              .byte 0,0
 0230 0000              .byte 0,0
 0232 0000              .byte 0,0
 0234 0000              .byte 0,0
 0236 0000              .byte 0,0
 0238 0000              .byte 0,0
 023A 0000              .byte 0,0
 023C 0000              .byte 0,0
 023E 0000              .byte 0,0
 0240 0000              .byte 0,0
 0242 0000              .byte 0,0
 0244 0000              .byte 0,0
 0246 0000              .byte 0,0
 0248 0000              .byte 0,0
 024A 0000              .byte 0,0
 024C 0000              .byte 0,0
 024E 0000              .byte 0,0
 0250 0000              .byte 0,0
 0252 0000              .byte 0,0
 0254 0000              .byte 0,0
 0256 0000              .byte 0,0
 0258 0000              .byte 0,0
 025A 0000              .byte 0,0
 025C 0000              .byte 0,0
 025E 0000              .byte 0,0
 0260                   .dbfile E:\iccavr代码\实验18_扩展板点阵汉字LED显示\display_led.c
 0260                   .dbsym e buf _buf A[608:608]kc
                        .area data(ram, con, rel)
 0000                   .dbfile E:\iccavr代码\实验18_扩展板点阵汉字LED显示\display_led.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\iccavr代码\实验18_扩展板点阵汉字LED显示\display_led.c
 0000                   .dbfunc e DelaymS _DelaymS fV
 0000           ;              j -> R20
 0000           ;              i -> R16,R17
                        .even
 0000           _DelaymS::
 0000 00D0              rcall push_gset1
 0002                   .dbline -1
 0002                   .dbline 100
 0002           ; //******************************************************************************
 0002           ; //                                                                             *
 0002           ; //    FileName   : 扩展板ledspi.c                ICCAVR V6.31A编译             *
 0002           ; //    Function   : 高档LED显示屏,滚动显示一个数组                             *
 0002           ; //    Date       : 2006-11-24                                                  *
 0002           ; //    Version    : 1.0                                                         *
 0002           ; //                                                                             *
 0002           ; //    Author     : 开关电源              hongtusy@163.com                      *
 0002           ; //    Company    : 电子信息技术资源网    http://www.itsn.cn                    *
 0002           ; //                                                                             *
 0002           ; /***************************描述与记事******************************************
 0002           ; 扩展实验板的AVR程序,使用595驱动点阵汉字LED的练习。
 0002           ; 记事:本程序旨在对汉字LED驱动的理解与演示,程序适合初学者使用。
 0002           ; 描述:74HC595是串行输入,并行输出带锁存器的有较大驱动能力的芯片。驱动电流可达70mA。内部有移位和输出两个寄存器。
 0002           ; 在SRCLK串行时钟上升沿,数据经SER移位进入,或经QH’输出。在RCLK上升沿,数据进入并行输出寄存器。
 0002           ; SRCLK’和OE’分别是复位和允许输出控制,分别接电源和地。
 0002           ; 除了系统复位SW3-8外其余平拨开关需要关闭
 0002           ; 接线定义:PD4=数据,PD5=RCLK并行输出时钟,PD6=SRCLK串行时钟,PD7=OE,PD0=A,PD1=B,PD2=C,PD3=D
 0002           ; //******************************************************************************/
 0002           ; 
 0002           ; #include <iom8535v.h>             //头文件,使用ATmega8535单片机
 0002           ; #include <macros.h>               //包含一些常用的宏定义,如NOP(),SEI()等。
 0002           ; 
 0002           ; typedef unsigned char uchar;      //数据类型说明,无符号整型,两字节大小。
 0002           ; typedef unsigned int uint;        //数据类型说明,无符号字符型,单字节大小。
 0002           ; 
 0002           ; //使用片内1MHz晶体,可更换。
 0002           ; 
 0002           ; #pragma data: code     
 0002           ; 
 0002           ; //欢迎 ,先上后下,先左后右取码,每字32个字节 ,此表格存储在程序存储器中
 0002           ; const uchar buf[608]={
 0002           ;                0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0002           ;                          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0002           ;                          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //空
 0002           ;                          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0002           ;                          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0002           ;                          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //空
 0002           ;                0x28,0x04,0x24,0x08,0x22,0x32,0x21,0xC2,0x26,0xC2,0x38,0x34,
 0002           ;                0x04,0x04,0x18,0x08,0xF0,0x30,0x17,0xC0,0x10,0x60,0x10,0x18,
 0002           ;                          0x14,0x0C,0x18,0x06,0x10,0x04,0x00,0x00,  //欢
 0002           ;                          0x02,0x02,0x82,0x04,0x73,0xF8,0x20,0x04,0x00,0x02,0x3F,0xE2,
 0002           ;                          0x20,0x42,0x40,0x82,0x40,0x02,0x3F,0xFA,0x20,0x02,0x20,0x42,
 0002           ;                          0x20,0x22,0x3F,0xC2,0x00,0x02,0x00,0x00,  //迎
 0002           ;                0x00,0x00,0x02,0x01,0x42,0x02,0x22,0x04,0x3A,0x18,0x13,0xE0,
 0002           ;                          0x02,0x00,0xFE,0x00,0x02,0x00,0x03,0xFC,0x0A,0x02,0x72,0x02,
 0002           ;                          0x22,0x02,0x06,0x02,0x02,0x1E,0x00,0x00,  //光
 0002           ;                          0x00,0x00,0x1F,0xF8,0x00,0x00,0x00,0x00,0x7F,0xFE,0x02,0x00,
 0002           ;                          0x0C,0x00,0xF1,0xFE,0x50,0x84,0x10,0x84,0x18,0xFC,0x16,0x84,
 0002           ;                          0x10,0x84,0x11,0xFE,0x10,0x80,0x00,0x00,  //临
 0002           ;                0x00,0x00,0x00,0x00,0x3F,0xE0,0x10,0x40,0x10,0x40,0x10,0x40,
 0002           ;                          0x10,0x40,0xFF,0xFF,0x10,0x40,0x10,0x40,0x10,0x40,0x10,0x40,
 0002           ;                          0x3F,0xE0,0x10,0x00,0x00,0x00,0x00,0x00,  //中
 0002           ;                0x00,0x00,0x7F,0xFF,0x40,0x02,0x50,0x12,0x51,0x12,0x51,0x12,
 0002           ;                          0x51,0x12,0x5F,0xF2,0x51,0x12,0x51,0x92,0x51,0x72,0x50,0x12,
 0002           ;                          0x40,0x02,0x7F,0xFF,0x00,0x00,0x00,0x00,  //国
 0002           ;                0x00,0x00,0x00,0x00,0x1F,0xF0,0x12,0x20,0x12,0x20,0x12,0x20,
 0002           ;                          0x12,0x20,0xFF,0xFC,0x12,0x22,0x12,0x22,0x12,0x22,0x12,0x22,
 0002           ;                          0x1F,0xF2,0x00,0x02,0x00,0x0E,0x00,0x00,  //电
 0002           ;                          0x00,0x80,0x00,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x82,
 0002           ;                          0x40,0x81,0x47,0xFE,0x48,0x80,0x50,0x80,0x60,0x80,0x40,0x80,
 0002           ;                          0x00,0x80,0x01,0x80,0x00,0x80,0x00,0x00,  //子
 0002           ;                          0x01,0x00,0x02,0x00,0x0C,0x00,0x3F,0xFE,0xE0,0x00,0x50,0x00,
 0002           ;                          0x15,0x7E,0x15,0x44,0x95,0x44,0x75,0x44,0x55,0x44,0x15,0x44,
 0002           ;                          0x15,0x7E,0x10,0x00,0x10,0x00,0x00,0x00,  //信
 0002           ;                0x00,0x00,0x00,0x04,0x00,0x1C,0x3F,0x80,0x2A,0xBC,0x2A,0x82,
 0002           ;                          0x6A,0x82,0xAA,0xA2,0x2A,0x9A,0x2A,0x82,0x2A,0x82,0x3F,0x8E,
 0002           ;                          0x00,0x00,0x00,0x10,0x00,0x0C,0x00,0x00,  //息
 0002           ;                0x10,0x80,0x10,0x82,0x11,0x01,0xFF,0xFE,0x12,0x00,0x14,0x02,
 0002           ;                          0x00,0x02,0x13,0x04,0x12,0xC8,0x12,0x30,0xFE,0x30,0x12,0x48,
 0002           ;                          0x13,0x84,0x12,0x06,0x10,0x04,0x00,0x00,  //技
 0002           ;                0x08,0x08,0x08,0x08,0x08,0x10,0x08,0x20,0x08,0x40,0x09,0x80,
 0002           ;                          0x0A,0x00,0xFF,0xFE,0x0A,0x00,0x09,0x00,0x48,0x80,0x28,0x60,
 0002           ;                          0x08,0x30,0x08,0x18,0x08,0x10,0x00,0x00,  //术
 0002           ;                0x08,0x00,0x8F,0x01,0x68,0x01,0x11,0xFA,0x09,0x02,0x13,0x04,
 0002           ;                          0x23,0x08,0xE5,0x70,0x25,0x08,0x39,0x08,0x25,0x04,0x33,0xF6,
 0002           ;                          0x32,0x03,0x21,0x02,0x01,0x00,0x00,0x00,  //资
 0002           ;                0x08,0x20,0x84,0x3F,0x60,0xC0,0x07,0x02,0x00,0x0C,0x7F,0xF0,
 0002           ;                          0x40,0x04,0x4F,0x88,0x5A,0xB2,0x6A,0x81,0x4A,0xFE,0x4A,0x80,
 0002           ;                          0x4A,0xA0,0x4F,0x90,0x40,0x0C,0x00,0x00,  //源
 0002           ;                0x00,0x00,0x7F,0xFE,0x40,0x10,0x48,0x20,0x44,0xC0,0x43,0x00,
 0002           ;                          0x44,0xC0,0x58,0x30,0x44,0x20,0x42,0x40,0x41,0x80,0x4E,0x64,
 0002           ;                          0x44,0x06,0x7F,0xFC,0x00,0x00,0x00,0x00,  //网
 0002           ;                          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0002           ;                          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0002           ;                          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //空
 0002           ;                          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0002           ;                          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 0002           ;                          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //空
 0002           ;                          };
 0002           ; #pragma data: data
 0002           ; /************************************************
 0002           ; 函 数 名:    DelaymS()
 0002           ; 功    能:    毫秒级延时函数
 0002           ; 输入参数:     延迟时间/系统晶体
 0002           ; 输出参数:    做相应的延迟处理
 0002           ; 描    述:    /
 0002           ; ***********************************************/
 0002           ; void DelaymS (uint i)           //延时函数,参数i为延时时间
 0002           ; {
 0002                   .dbline 102
 0002           ;     uchar j;                    //双重延时
 0002           ;       for (;i!=0;i--)
 0002 07C0              rjmp L5
 0004           L2:
 0004                   .dbline 103
 0004           ;       {
 0004                   .dbline 104
 0004 4EE1              ldi R20,30
 0006 01C0              rjmp L9
 0008           L6:
 0008                   .dbline 104
 0008           L7:
 0008                   .dbline 104
 0008 4A95              dec R20
 000A           L9:
 000A                   .dbline 104
 000A 4423              tst R20
 000C E9F7              brne L6
 000E                   .dbline 105
 000E           L3:
 000E                   .dbline 102
 000E 0150              subi R16,1
 0010 1040              sbci R17,0
 0012           L5:
 0012                   .dbline 102
 0012 0030              cpi R16,0
 0014 0107              cpc R16,R17
 0016 B1F7              brne L2
 0018           X0:
 0018                   .dbline -2
 0018           L1:
 0018 00D0              rcall pop_gset1
 001A                   .dbline 0 ; func end
 001A 0895              ret
 001C                   .dbsym r j 20 c
 001C                   .dbsym r i 16 i
 001C                   .dbend
 001C                   .dbfunc e Init_Port _Init_Port fV
                        .even
 001C           _Init_Port::
 001C                   .dbline -1
 001C                   .dbline 115
 001C           ;           for (j=30;j!=0;j--);
 001C           ;       }
 001C           ; }
 001C           ; /************************************************
 001C           ; 函 数 名:    Init_port()
 001C           ; 功    能:    单片机初始化函数
 001C           ; 输入参数:     /
 001C           ; 输出参数:    /
 001C           ; 描    述:    相关口方向的设置等
 001C           ; ***********************************************/
 001C           ; void Init_Port(void)
 001C           ; {
 001C                   .dbline 116
 001C           ;       DDRD = 0xff;                      //PD口为推挽1输出
 001C 8FEF              ldi R24,255
 001E 81BB              out 0x11,R24
 0020                   .dbline 117
 0020           ;       PORTD = 0x00;                     //PD口初始值为0
 0020 2224              clr R2
 0022 22BA              out 0x12,R2
 0024                   .dbline -2
 0024           L10:
 0024                   .dbline 0 ; func end
 0024 0895              ret
 0026                   .dbend
 0026                   .dbfunc e InputByte _InputByte fV
 0026           ;            mid -> R20
 0026           ;              i -> R22
 0026           ;        hang_no -> R18
 0026           ;      lie_qishi -> R16,R17
                        .even
 0026           _InputByte::
 0026 00D0              rcall push_gset2
 0028                   .dbline -1
 0028                   .dbline 127
 0028           ; }
 0028           ; /************************************************
 0028           ; 函 数 名:    InputByte()
 0028           ; 功    能:    串行写入32bit数据(一行)的函数
 0028           ; 输入参数:     lie_qishi(起始的列) ,hang_no(需要送第几行)
 0028           ; 输出参数:    /
 0028           ; 描    述:    DATA=PD4为数据端,SRCLK=PD6为时钟端,bit7在先,时钟上升沿写入。
 0028           ; ***********************************************/
 0028           ; void InputByte (uint lie_qishi,uchar hang_no) 
 0028           ; {
 0028                   .dbline 129
 0028           ;     uchar i,mid;
 0028           ;       for(i=32;i>0;i--)
 0028 60E2              ldi R22,32
 002A 15C0              rjmp L15
 002C           L12:
 002C                   .dbline 130
 002C           ;       {
 002C                   .dbline 131
 002C           ;          mid = buf[lie_qishi +i+i] & hang_no;  //操作的是hang_no位。
 002C 262E              mov R2,R22
 002E 3324              clr R3
 0030 F801              movw R30,R16
 0032 E20D              add R30,R2
 0034 F31D              adc R31,R3
 0036 E20D              add R30,R2
 0038 F31D              adc R31,R3
 003A 80E0              ldi R24,<_buf
 003C 90E0              ldi R25,>_buf
 003E E80F              add R30,R24
 0040 F91F              adc R31,R25
 0042 4491              lpm R20,Z
 0044 4223              and R20,R18
 0046                   .dbline 132
 0046           ;          if(mid==0)
 0046 11F4              brne L16
 0048                   .dbline 133
 0048           ;          PORTD |= (1<<PD4);             //数据端输出0,共阳LED,所以取反码
 0048 949A              sbi 0x12,4
 004A 01C0              rjmp L17
 004C           L16:
 004C                   .dbline 135
 004C           ;          else 
 004C           ;          PORTD &= ~(1<<PD4);            //否则输出1
 004C 9498              cbi 0x12,4
 004E           L17:
 004E                   .dbline 136
 004E 969A              sbi 0x12,6
 0050                   .dbline 137
 0050 0000              nop
 0052                   .dbline 138
 0052 9698              cbi 0x12,6
 0054                   .dbline 139
 0054           L13:
 0054                   .dbline 129
 0054 6A95              dec R22
 0056           L15:
 0056                   .dbline 129
 0056 2224              clr R2
 0058 2616              cp R2,R22
 005A 40F3              brlo L12
 005C                   .dbline -2
 005C           L11:
 005C 00D0              rcall pop_gset2
 005E                   .dbline 0 ; func end
 005E 0895              ret

⌨️ 快捷键说明

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