📄 5.lis
字号:
.module _5.c
.area text(rom, con, rel)
0000 .dbfile D:\xij\demo\demo_diy02-8a\1\C语言\02-8A-5\5.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 4
0000 ; #include "iom48v.h"
0000 ;
0000 ; void port_init()
0000 ; {
0000 .dbline 5
0000 ; PORTB=0XFF;DDRB=0XFF;//设置PB输输出
0000 8FEF ldi R24,255
0002 85B9 out 0x5,R24
0004 .dbline 5
0004 84B9 out 0x4,R24
0006 .dbline 6
0006 ; PORTD=0XFF;DDRD=0;//设置PD口为输入
0006 8BB9 out 0xb,R24
0008 .dbline 6
0008 2224 clr R2
000A 2AB8 out 0xa,R2
000C .dbline -2
000C L1:
000C .dbline 0 ; func end
000C 0895 ret
000E .dbend
000E .dbfunc e delay_us _delay_us fV
000E ; time -> R16,R17
.even
000E _delay_us::
000E .dbline -1
000E .dbline 10
000E ; }
000E ;
000E ; void delay_us(int time)
000E ; { //微秒延时
000E L3:
000E .dbline 12
000E ; do
000E ; {
000E .dbline 13
000E ; time--;
000E 0150 subi R16,1
0010 1040 sbci R17,0
0012 .dbline 14
0012 ; }
0012 L4:
0012 .dbline 15
0012 ; while (time>1);
0012 81E0 ldi R24,1
0014 90E0 ldi R25,0
0016 8017 cp R24,R16
0018 9107 cpc R25,R17
001A CCF3 brlt L3
001C .dbline -2
001C L2:
001C .dbline 0 ; func end
001C 0895 ret
001E .dbsym r time 16 I
001E .dbend
001E .dbfunc e delay_ms _delay_ms fV
001E ; time -> R20,R21
.even
001E _delay_ms::
001E 00D0 rcall push_gset1
0020 A801 movw R20,R16
0022 .dbline -1
0022 .dbline 19
0022 ; }
0022 ;
0022 ; void delay_ms(unsigned int time)
0022 ; { //毫秒延时
0022 05C0 rjmp L8
0024 L7:
0024 .dbline 21
0024 .dbline 22
0024 08EE ldi R16,1000
0026 13E0 ldi R17,3
0028 F2DF rcall _delay_us
002A .dbline 23
002A 4150 subi R20,1
002C 5040 sbci R21,0
002E .dbline 24
002E L8:
002E .dbline 20
002E ; while(time!=0)
002E 4030 cpi R20,0
0030 4507 cpc R20,R21
0032 C1F7 brne L7
0034 X0:
0034 .dbline -2
0034 L6:
0034 00D0 rcall pop_gset1
0036 .dbline 0 ; func end
0036 0895 ret
0038 .dbsym r time 20 i
0038 .dbend
0038 .dbfunc e main _main fV
0038 ; i -> R20
.even
0038 _main::
0038 .dbline -1
0038 .dbline 28
0038 ; {
0038 ; delay_us(1000);
0038 ; time--;
0038 ; }
0038 ; }
0038 ;
0038 ; void main()
0038 ; {
0038 .dbline 30
0038 ; unsigned char i;
0038 ; port_init(); //端口初始化
0038 E3DF rcall _port_init
003A 0DC0 rjmp L12
003C L11:
003C .dbline 31
003C ; while(1){
003C .dbline 32
003C ; i=PIND&0x04; //读出PD2口状态
003C 49B1 in R20,0x9
003E 4470 andi R20,4
0040 .dbline 33
0040 ; if(i==0){
0040 41F4 brne L14
0042 .dbline 33
0042 .dbline 34
0042 ; PORTB^=0x7;
0042 87E0 ldi R24,7
0044 25B0 in R2,0x5
0046 2826 eor R2,R24
0048 25B8 out 0x5,R2
004A .dbline 35
004A ; delay_ms(200);
004A 08EC ldi R16,200
004C 10E0 ldi R17,0
004E E7DF rcall _delay_ms
0050 .dbline 36
0050 ; }
0050 02C0 rjmp L15
0052 L14:
0052 .dbline 38
0052 ; else
0052 ; PORTB=0XFF;
0052 8FEF ldi R24,255
0054 85B9 out 0x5,R24
0056 L15:
0056 .dbline 39
0056 L12:
0056 .dbline 31
0056 F2CF rjmp L11
0058 X1:
0058 .dbline -2
0058 L10:
0058 .dbline 0 ; func end
0058 0895 ret
005A .dbsym r i 20 c
005A .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -