📄 main.s
字号:
.module main.c
.area text(rom, con, rel)
.dbfile D:\avrvi\democode\key_4\source\main.c
.dbfunc e main _main fV
; i -> R20
.even
_main::
.dbline -1
.dbline 15
; /************************************************************
; 文 件:main.c
; 用 途:演示矩阵键盘的库函数和七段数码管的库函数的使用
; Target : M16
; Crystal: 1.0000Mhz
; 说 明:标有[]的为与key_3中不同的地方
; 创 建:2008.2.20
; 修 改:2008.2.20
; Copy Right (c) www.avrvi.com AVR与虚拟仪器
; ************************************************************/
;
; #include "config.h"
;
; void main(void)
; {
.dbline 16
; uint8 i=0;
clr R20
.dbline 18
;
; key_board_int(); //矩阵按键初始化
xcall _key_board_int
.dbline 19
; Seg7_Led_Init(); //七段数码管显示初始化
xcall _Seg7_Led_Init
.dbline 21
;
; key_int_init(); //中断初始化 []
xcall _key_int_init
.dbline 22
; SEI(); //开全局中断 []
sei
xjmp L3
L2:
.dbline 25
;
; while(1)
; {
.dbline 26
; if(KEY_FLAG) //如果有键按下,此变量在key_board.c中定义,并会在中断中改变 []
lds R2,_KEY_FLAG
tst R2
breq L5
.dbline 27
; {
.dbline 28
; KEY_FLAG = 0; // []
clr R2
sts _KEY_FLAG,R2
.dbline 30
;
; if(key!=0xFF) //key为在key_board.c中定义的全局变量
lds R24,_key
cpi R24,255
breq L7
.dbline 31
; {
.dbline 32
; for(i=3;i!=0;i--) //左移位显示
ldi R20,3
xjmp L12
L9:
.dbline 33
.dbline 34
ldi R24,<_Seg7_Led_Buf-1
ldi R25,>_Seg7_Led_Buf-1
mov R30,R20
clr R31
add R30,R24
adc R31,R25
ldd R2,z+0
ldi R24,<_Seg7_Led_Buf
ldi R25,>_Seg7_Led_Buf
mov R30,R20
clr R31
add R30,R24
adc R31,R25
std z+0,R2
.dbline 35
L10:
.dbline 32
dec R20
L12:
.dbline 32
tst R20
brne L9
.dbline 36
; {
; Seg7_Led_Buf[i]=Seg7_Led_Buf[i-1];
; }
; Seg7_Led_Buf[0]=key;
lds R2,_key
sts _Seg7_Led_Buf,R2
.dbline 37
; }
L7:
.dbline 62
;
; /*
; if(key!=0xFF) //0xFF为无效按键
; {
; switch(key) //判断按键进行相关操作
; {
; case 'A':
; PORTA ^=(1<<PA0);
; break;
; case 'B':
; PORTA ^=(1<<PA1);
; break;
; case 'C':
; PORTA ^=(1<<PA2);
; break;
; case 'D':
; PORTA ^=(1<<PA3);
; break;
; default:
; break;
; } //end switch
; }//end if(key!=0xFF)
; */
;
; }//end if(HAVE_KEY_DOWN)
L5:
.dbline 65
xcall _Seg7_Led_Update
.dbline 66
L3:
.dbline 24
xjmp L2
X0:
.dbline -2
L1:
.dbline 0 ; func end
ret
.dbsym r i 20 c
.dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -