📄 方波.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 + -