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

📄 方波.lis

📁 AVR之ATMega16
💻 LIS
字号:
                        .module _方波.c
                        .area text(rom, con, rel)
 0000                   .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\方波/delay.h
 0000                   .dbfunc e DelayUS _DelayUS fV
 0000           ;           time -> R16,R17
                        .even
 0000           _DelayUS::
 0000                   .dbline -1
 0000                   .dbline 9
 0000           ; //外部晶振 8M
 0000           ; #include <ioM16v.h>
 0000           ; #include <macros.h>
 0000           ; #include "delay.h"
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; 
 0000           ; /*------宏定义------*/
 0000 02C0              xjmp L3
 0002           L2:
 0002                   .dbline 11
 0002 0150              subi R16,1
 0004 1040              sbci R17,0
 0006           L3:
 0006                   .dbline 10
 0006           ; #define uchar unsigned char
 0006 81E0              ldi R24,1
 0008 90E0              ldi R25,0
 000A 8017              cp R24,R16
 000C 9107              cpc R25,R17
 000E C8F3              brlo L2
 0010                   .dbline -2
 0010           L1:
 0010                   .dbline 0 ; func end
 0010 0895              ret
 0012                   .dbsym r time 16 i
 0012                   .dbend
 0012                   .dbfunc e DelayMS _DelayMS fV
 0012           ;              i -> R20,R21
 0012           ;           time -> R16,R17
                        .even
 0012           _DelayMS::
 0012 0E940000          xcall push_gset1
 0016                   .dbline -1
 0016                   .dbline 20
 0016           ; #define uint  unsigned int
 0016           ; 
 0016           ; 
 0016           ; 
 0016           ; //端口初始化
 0016           ; void port_init(void)
 0016           ; {
 0016           ;  PORTA = 0x00;//设置端口方向、数据
 0016           ;  DDRA  = 0x00;
 0016           ;  PORTB = 0x08;
 0016 09C0              xjmp L7
 0018           L6:
 0018                   .dbline 23
 0018           ;  DDRB  = 0x08;
 0018           ;  PORTC = 0x00;
 0018           ;  DDRC  = 0x00;
 0018                   .dbline 24
 0018           ;  PORTD = 0x00;
 0018 41E0              ldi R20,1
 001A 50E0              ldi R21,0
 001C 02C0              xjmp L12
 001E           L9:
 001E                   .dbline 25
 001E           L10:
 001E                   .dbline 24
 001E 4F5F              subi R20,255  ; offset = 1
 0020 5F4F              sbci R21,255
 0022           L12:
 0022                   .dbline 24
 0022 4637              cpi R20,118
 0024 E4E0              ldi R30,4
 0026 5E07              cpc R21,R30
 0028 D0F3              brlo L9
 002A                   .dbline 26
 002A           L7:
 002A                   .dbline 22
 002A 1801              movw R2,R16
 002C 0150              subi R16,1
 002E 1040              sbci R17,0
 0030 2220              tst R2
 0032 91F7              brne L6
 0034 3320              tst R3
 0036 81F7              brne L6
 0038           X0:
 0038                   .dbline -2
 0038           L5:
 0038 0E940000          xcall pop_gset1
 003C                   .dbline 0 ; func end
 003C 0895              ret
 003E                   .dbsym r i 20 i
 003E                   .dbsym r time 16 i
 003E                   .dbend
 003E                   .dbfile C:\DOCUME~1\Administrator\桌面\精雅系列单片机实验开发板演示程序\方波\方波.c
 003E                   .dbfunc e port_init _port_init fV
                        .even
 003E           _port_init::
 003E                   .dbline -1
 003E                   .dbline 17
 003E                   .dbline 18
 003E 2224              clr R2
 0040 2BBA              out 0x1b,R2
 0042                   .dbline 19
 0042 2ABA              out 0x1a,R2
 0044                   .dbline 20
 0044 88E0              ldi R24,8
 0046 88BB              out 0x18,R24
 0048                   .dbline 21
 0048 87BB              out 0x17,R24
 004A                   .dbline 22
 004A 25BA              out 0x15,R2
 004C                   .dbline 23
 004C 24BA              out 0x14,R2
 004E                   .dbline 24
 004E 22BA              out 0x12,R2
 0050                   .dbline 25
 0050           ;  DDRD  = 0x00;
 0050 21BA              out 0x11,R2
 0052                   .dbline -2
 0052           L13:
 0052                   .dbline 0 ; func end
 0052 0895              ret
 0054                   .dbend
 0054                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0054           _timer0_init::
 0054                   .dbline -1
 0054                   .dbline 31
 0054           ; }
 0054           ; 
 0054           ; 
 0054           ; //定时器T0初始化
 0054           ; void timer0_init(void)
 0054           ; {
 0054                   .dbline 32
 0054           ;  TCCR0  = 0x00;//停止定时器
 0054 2224              clr R2
 0056 23BE              out 0x33,R2
 0058                   .dbline 33
 0058           ;  TCNT0  = 0x00;//初始值
 0058 22BE              out 0x32,R2
 005A                   .dbline 34
 005A           ;  OCR0   = 0x7F;//匹配值
 005A 8FE7              ldi R24,127
 005C 8CBF              out 0x3c,R24
 005E                   .dbline 35
 005E           ;  TIMSK |= 0x00;//中断允许
 005E 29B6              in R2,0x39
 0060 29BE              out 0x39,R2
 0062                   .dbline 36
 0062           ;  TCCR0  = 0x6C;//启动定时器
 0062 8CE6              ldi R24,108
 0064 83BF              out 0x33,R24
 0066                   .dbline -2
 0066           L14:
 0066                   .dbline 0 ; func end
 0066 0895              ret
 0068                   .dbend
 0068                   .dbfunc e init_devices _init_devices fV
                        .even
 0068           _init_devices::
 0068                   .dbline -1
 0068                   .dbline 41
 0068           ; }
 0068           ; 
 0068           ; 
 0068           ; void init_devices(void)
 0068           ; {
 0068                   .dbline 42
 0068           ;  CLI(); //禁止所有中断
 0068 F894              cli
 006A                   .dbline 43
 006A           ;  MCUCR  = 0x00;//INT0、INT1中断触发方式
 006A 2224              clr R2
 006C 25BE              out 0x35,R2
 006E                   .dbline 44
 006E           ;  MCUCSR = 0x80;//禁止JTAG
 006E 80E8              ldi R24,128
 0070 84BF              out 0x34,R24
 0072                   .dbline 45
 0072           ;  GICR   = 0x00;//外部中断使能
 0072 2BBE              out 0x3b,R2
 0074                   .dbline 46
 0074           ;  port_init();
 0074 E4DF              xcall _port_init
 0076                   .dbline 47
 0076           ;  timer0_init();
 0076 EEDF              xcall _timer0_init
 0078                   .dbline 48
 0078           ;  SEI();//开全局中断
 0078 7894              sei
 007A                   .dbline -2
 007A           L15:
 007A                   .dbline 0 ; func end
 007A 0895              ret
 007C                   .dbend
 007C                   .dbfunc e main _main fV
                        .even
 007C           _main::
 007C                   .dbline -1
 007C                   .dbline 52
 007C           ; }
 007C           ; //主函数
 007C           ; void main(void)
 007C           ; {
 007C                   .dbline 53
 007C           ;  init_devices();
 007C F5DF              xcall _init_devices
 007E 01C0              xjmp L18
 0080           L17:
 0080                   .dbline 56
 0080                   .dbline 57
 0080 0000              nop
 0082                   .dbline 58
 0082           L18:
 0082                   .dbline 55
 0082 FECF              xjmp L17
 0084           X1:
 0084                   .dbline -2
 0084           L16:
 0084                   .dbline 0 ; func end
 0084 0895              ret
 0086                   .dbend

⌨️ 快捷键说明

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