?? a5_7_2.asm
字號:
;///////////////////////////////////////////
;本程序源代碼由單片機培訓網提供.
;單片機培訓網,讓更多人學習單片機更容易.
;第一網址----www.mcuedu.com
;第二網址----http://51_train.nease.net
;創辦人------劉永忠
;熱線電話----(0755)27529998
;email-------aa815@163.com
;程序難易等級--------稍難
;8051對PC做單工發送數據
;///////////////////////////////////////////
org 00h
start: mov sp,#60h ;設置堆棧
mov scon,#20h ;uart工作在mode1,sm1=1,ren=1
mov tmod,#0f3h ;timer1工作在mode2
mov th1,#0f3h ;波特率為2400
mov tl1,#0f3h
setb tr1 ;啟動timer1
scan: mov r3,#0f7h ;行掃描初始值
mov r1,#00h ;table取碼指針
scan1: mov a,r3 ;掃描輸出
mov p1,a
mov a,p1
mov r4,a
setb c ;c=1
mov r5,#04h ;4列
l1: rlc a ;檢測是否有鍵按下?
jnc keyin
inc r1 ;取碼指針加1
djnz r5,l1
mov a,r3 ;掃描下一行
setb c
rrc a
mov r3,a
jc scan1 ;4行是否掃描完畢?
jmp scan
keyin: mov r7,#10 ;消除抖動
d2: mov r6,#248
djnz r6,$
djnz r7,d2
d3: mov a,p1 ;按鈕放開否?
xrl a,r4
jz d3
mov a,r1 ;至table取碼
mov dptr,#table
movc a,@a+dptr
mov sbuf,a ;載入sbuf發送出去
cpl a ;并由p0顯示
mov p0,a
jmp scan
;
table: db 01h,02h,03h,04h ;
db 05h,06h,07h,08h ;
db 09h,0ah,0bh,0ch ;
db 0dh,0eh,0fh,00h ;
end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -