?? pc_8515.s
字號(hào):
.module pc_8515.c
.area text(rom, con, rel)
.dbfile D:\ICC-AVR\examples.sl\pc_8515\pc_8515.c
.dbfunc s uart0_init _uart0_init fI
.even
_uart0_init::
.dbline -1
.dbline 20
; /*******************************************/
; /* PC機(jī)鍵盤(pán)演示程序 */
; /* 廣州雙龍電子有限公司 */
; /* http://www.sl.com.cn */
; /* 作者:詹衛(wèi)前 */
; /* MCU:AT90S8515 晶振:8MHZ */
; /* 使用ICCAVR的終端調(diào)試窗口觀(guān)察PC鍵盤(pán)數(shù)據(jù) */
; /* 連線(xiàn)說(shuō)明:SL-AVR+ */
; /* 1、PC鍵盤(pán)clock--PD.2 */
; /* 2、PC鍵盤(pán)data---PD.3 */
; /* 3、D232.T-------PD.1 */
; /* 4、D232.R-------PD.0 */
; /*******************************************/
; #include<io8515.h>
; #include<stdio.h>
; extern unsigned char get_char(void);
; extern void init_kb(void);
; //UART初始化
; void uart0_init(void)
; {
.dbline 21
; UCR = 0x00;
clr R2
out 0xa,R2
.dbline 22
; UBRR = 0x19;//BAUD=19200
ldi R24,25
out 0x9,R24
.dbline 23
; UCR|=(1<<TXEN) ;//使能發(fā)送
sbi 0xa,3
.dbline -2
.dbline 24
; }
L1:
.dbline 0 ; func end
ret
.dbfunc s port_init _port_init fI
.even
_port_init::
.dbline -1
.dbline 27
; //端口初始化
; void port_init(void)
; {
.dbline 28
; DDRD=0x02;
ldi R24,2
out 0x11,R24
.dbline 29
; PORTD=0xff;
ldi R24,255
out 0x12,R24
.dbline -2
.dbline 30
; }
L2:
.dbline 0 ; func end
ret
.dbfunc s main _main fI
; key -> R20
.even
_main::
.dbline -1
.dbline 33
; //PC鍵盤(pán)演示程序,SHIFT鍵和按鍵同時(shí)按下時(shí)為大寫(xiě)
; void main(void)
; {
.dbline 35
; unsigned char key;
; port_init();
rcall _port_init
.dbline 36
; uart0_init();
rcall _uart0_init
.dbline 37
; init_kb();
rcall _init_kb
.dbline 38
; puts("PC鍵盤(pán)演示程序");
ldi R16,<L4
ldi R17,>L4
rcall _puts
.dbline 39
; putchar(0x0d);
ldi R16,13
rcall _putchar
rjmp L6
L5:
.dbline 41
; while(1)
; {
.dbline 42
; key=get_char();
rcall _get_char
mov R20,R16
.dbline 43
; if(key!=0)
tst R16
breq L8
.dbline 44
; {
.dbline 45
; if (key==0x0d)//回車(chē)鍵處理
cpi R16,13
brne L10
.dbline 46
; {
.dbline 47
; putchar('\n');
ldi R16,10
rcall _putchar
.dbline 48
; putchar(key);
mov R16,R20
rcall _putchar
.dbline 49
; }
rjmp L11
L10:
.dbline 51
; else
; putchar(key);
mov R16,R20
rcall _putchar
L11:
.dbline 52
; }
L8:
.dbline 53
L6:
.dbline 40
rjmp L5
X0:
.dbline -2
.dbline 54
; }
; }
L3:
.dbline 0 ; func end
ret
.dbsym r key 20 c
.area data(ram, con, rel)
.dbfile D:\ICC-AVR\examples.sl\pc_8515\pc_8515.c
L4:
.blkb 15
.area idata
.byte 'P,'C,188,252,197,204,209,221,202,190,179,204,208,242,0
.area data(ram, con, rel)
.dbfile D:\ICC-AVR\examples.sl\pc_8515\pc_8515.c
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -