?? 蜂鳴器繼電器.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 ; //包含所需頭文件
0000 ; #include <ioM16v.h>
0000 ; #include <macros.h>
0000 ; #include "delay.h"
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;//A口數據置0
0016 ; DDRA = 0xFF;//A口設為輸出
0016 ; PORTB = 0x00;//B口數據置1
0016 09C0 xjmp L7
0018 L6:
0018 .dbline 23
0018 ; DDRB = 0x00;//B口設為輸入
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 8FEF ldi R24,255
0044 8ABB out 0x1a,R24
0046 .dbline 20
0046 28BA out 0x18,R2
0048 .dbline 21
0048 27BA out 0x17,R2
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 init_devices _init_devices fV
.even
0054 _init_devices::
0054 .dbline -1
0054 .dbline 30
0054 ; }
0054 ;
0054 ;
0054 ; void init_devices(void)
0054 ; {
0054 .dbline 31
0054 ; CLI(); //禁止所有中斷
0054 F894 cli
0056 .dbline 32
0056 ; MCUCR = 0x00;//INT0、INT1中斷觸發方式
0056 2224 clr R2
0058 25BE out 0x35,R2
005A .dbline 33
005A ; MCUCSR = 0x80;//禁止JTAG
005A 80E8 ldi R24,128
005C 84BF out 0x34,R24
005E .dbline 34
005E ; GICR = 0x00;//外部中斷使能
005E 2BBE out 0x3b,R2
0060 .dbline 35
0060 ; port_init();
0060 EEDF xcall _port_init
0062 .dbline -2
0062 L14:
0062 .dbline 0 ; func end
0062 0895 ret
0064 .dbend
0064 .dbfunc e main _main fV
.even
0064 _main::
0064 .dbline -1
0064 .dbline 40
0064 ; //SEI();//開全局中斷
0064 ; }
0064 ; //主函數
0064 ; void main(void)
0064 ; {
0064 .dbline 41
0064 ; init_devices();//調用初始函數
0064 F7DF xcall _init_devices
0066 07C0 xjmp L17
0068 L16:
0068 .dbline 43
0068 .dbline 44
0068 81E0 ldi R24,1
006A 2BB2 in R2,0x1b
006C 2826 eor R2,R24
006E 2BBA out 0x1b,R2
0070 .dbline 45
0070 08EB ldi R16,3000
0072 1BE0 ldi R17,11
0074 CEDF xcall _DelayMS
0076 .dbline 46
0076 L17:
0076 .dbline 42
0076 F8CF xjmp L16
0078 X1:
0078 .dbline -2
0078 L15:
0078 .dbline 0 ; func end
0078 0895 ret
007A .dbend
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -