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

📄 main.lis

📁 在AVR单片机上进行SPI传输的代码用于接受和发送数据
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile E:\ICCAVR\project\AVRMEG~3\icc\001-LED\main.c
 0000                   .dbfunc e delay_ms _delay_ms fV
 0000           ;              a -> R20
 0000           ;              b -> R22
 0000           ;              i -> R16
                        .even
 0000           _delay_ms::
 0000 0E940000          xcall push_gset2
 0004                   .dbline -1
 0004                   .dbline 16
 0004           ; /*
 0004           ; 实验一:
 0004           ;       LED发光二极管显示实验。
 0004           ;       1、I/O口实验,控制PB口上的发光二极管循环显示。
 0004           ;       2、内部1 M晶振,程序采用单任务方式,软件延时。
 0004           ;       3、进行此实验请插上LED短路块。
 0004           ;       4、此实验让大家认识最基本的IO口输出控制方法。
 0004           ; 
 0004           ;       AVR  mega128学习板
 0004           ;       www.iccavr.com  阿发
 0004           ;       23:03 2007-10-09
 0004           ; */
 0004           ; #include "iom128v.h"
 0004           ; 
 0004           ; /*延时函数*/
 0004           ; void delay_ms(unsigned char i) {
 0004                   .dbline 19
 0004 4427              clr R20
 0006 06C0              xjmp L5
 0008           L2:
 0008                   .dbline 19
 0008           ; 
 0008           ;       unsigned char a, b;
 0008           ;       for (a = 0; a < i; a++) {
 0008                   .dbline 20
 0008 61E0              ldi R22,1
 000A 01C0              xjmp L9
 000C           L6:
 000C                   .dbline 20
 000C           L7:
 000C                   .dbline 20
 000C 6395              inc R22
 000E           L9:
 000E                   .dbline 20
 000E 6623              tst R22
 0010 E9F7              brne L6
 0012                   .dbline 21
 0012           L3:
 0012                   .dbline 19
 0012 4395              inc R20
 0014           L5:
 0014                   .dbline 19
 0014 4017              cp R20,R16
 0016 C0F3              brlo L2
 0018                   .dbline -2
 0018           L1:
 0018 0E940000          xcall pop_gset2
 001C                   .dbline 0 ; func end
 001C 0895              ret
 001E                   .dbsym r a 20 c
 001E                   .dbsym r b 22 c
 001E                   .dbsym r i 16 c
 001E                   .dbend
 001E                   .dbfunc e io_init _io_init fV
                        .even
 001E           _io_init::
 001E                   .dbline -1
 001E                   .dbline 25
 001E           ;               for (b = 1; b; b++);
 001E           ;               }
 001E           ; }
 001E           ; 
 001E           ; /*IO口初始化函数*/
 001E           ; void io_init(void) {
 001E                   .dbline 27
 001E           ; 
 001E           ;       DDRA = 0x00;                                                                            /*方向输入                                                              */
 001E 2224              clr R2
 0020 2ABA              out 0x1a,R2
 0022                   .dbline 28
 0022           ;       PORTA = 0xFF;                                                                           /*打开上拉                                                              */
 0022 8FEF              ldi R24,255
 0024 8BBB              out 0x1b,R24
 0026                   .dbline 29
 0026           ;       DDRB = 0xFF;                                                                            /*方向输出                                                              */
 0026 87BB              out 0x17,R24
 0028                   .dbline 30
 0028           ;       PORTB = 0xFF;                                                                           /*高电平                                                                */
 0028 88BB              out 0x18,R24
 002A                   .dbline 31
 002A           ;       DDRC = 0x00;                                                                            /*不用的IO口建议设置为输入带上拉                */
 002A 24BA              out 0x14,R2
 002C                   .dbline 32
 002C           ;       PORTC = 0xFF;
 002C 85BB              out 0x15,R24
 002E                   .dbline 33
 002E           ;       DDRD = 0x00;
 002E 21BA              out 0x11,R2
 0030                   .dbline 34
 0030           ;       PORTD = 0xFF;
 0030 82BB              out 0x12,R24
 0032                   .dbline 35
 0032           ;       DDRE = 0x00;
 0032 22B8              out 0x2,R2
 0034                   .dbline 36
 0034           ;       PORTE = 0xFF;
 0034 83B9              out 0x3,R24
 0036                   .dbline 37
 0036           ;       DDRF = 0x00;
 0036 20926100          sts 97,R2
 003A                   .dbline 38
 003A           ;       PORTF = 0xFF;
 003A 80936200          sts 98,R24
 003E                   .dbline 39
 003E           ;       DDRG = 0x00;
 003E 20926400          sts 100,R2
 0042                   .dbline 40
 0042           ;       PORTG = 0xFF;
 0042 80936500          sts 101,R24
 0046                   .dbline -2
 0046           L10:
 0046                   .dbline 0 ; func end
 0046 0895              ret
 0048                   .dbend
 0048                   .dbfunc e main _main fV
 0048           ;              i -> R20
                        .even
 0048           _main::
 0048                   .dbline -1
 0048                   .dbline 43
 0048           ; }
 0048           ; 
 0048           ; void main(void) {
 0048                   .dbline 47
 0048           ; 
 0048           ;       unsigned char i;
 0048           ; 
 0048           ;       io_init();
 0048 EADF              xcall _io_init
 004A 0EC0              xjmp L13
 004C           L12:
 004C                   .dbline 48
 004C           ;       while (1) {
 004C                   .dbline 49
 004C 4427              clr R20
 004E 0AC0              xjmp L18
 0050           L15:
 0050                   .dbline 49
 0050                   .dbline 50
 0050 01E0              ldi R16,1
 0052 142F              mov R17,R20
 0054 0E940000          xcall lsl8
 0058 202E              mov R2,R16
 005A 2094              com R2
 005C 28BA              out 0x18,R2
 005E                   .dbline 51
 005E 08EC              ldi R16,200
 0060 CFDF              xcall _delay_ms
 0062                   .dbline 52
 0062           L16:
 0062                   .dbline 49
 0062 4395              inc R20
 0064           L18:
 0064                   .dbline 49
 0064 4830              cpi R20,8
 0066 A0F3              brlo L15
 0068                   .dbline 53
 0068           L13:
 0068                   .dbline 48
 0068 F1CF              xjmp L12
 006A           X0:
 006A                   .dbline -2
 006A           L11:
 006A                   .dbline 0 ; func end
 006A 0895              ret
 006C                   .dbsym r i 20 c
 006C                   .dbend

⌨️ 快捷键说明

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