?? io_key.asm
字號(hào):
;*******************************Copyright (c)********************************
;** 廣州周立功單片機(jī)發(fā)展有限公司研究所
;** http://www.zlgmcu.com
;********************************文件信息*************************************
;文件名:IO_Key.asm
;功能:使用DP-51H實(shí)驗(yàn)儀學(xué)習(xí)I/O作基本輸入口及其仿真調(diào)試程序的基本方法
;說(shuō)明:
;1.鍵盤(pán)KEY1、KEY2作為輸入口使用,不斷讀取鍵盤(pán)輸入的狀態(tài)
;2.若KEY1鍵被按下,點(diǎn)亮發(fā)光管LED1~LED3,若KEY2被按下熄滅LED1~LED3,同時(shí)蜂鳴器發(fā)出提示聲響
;3.正確設(shè)置跳線(xiàn)JP4使P1.0~P1.2分別與LED1~LED3相連,P1.4與BUZZER相連,即把跳線(xiàn)置于上端
;4.正確設(shè)置跳線(xiàn)JP3使P3.3~P3.5分別與KEY1~KEY3相連,即把跳線(xiàn)置于上端
;5.注意領(lǐng)會(huì)軟件實(shí)現(xiàn)的鍵盤(pán)去抖動(dòng)的方法
;最后修改時(shí)間:2003年7月2
;*************************************************************************
ORG 8000H ;偽指令,指定程序從8000H開(kāi)始存放
AJMP MAIN ;跳轉(zhuǎn)指令,程序跳轉(zhuǎn)到MAIN處
ORG 8100H ;偽指令,指定以下程序從8100H開(kāi)始存放
MAIN:
MOV SP,#60 ;給堆棧指針賦初值
TEST_KEY: JB P3.3,NEXT_KEY ;檢測(cè)鍵盤(pán)KEY1是否按下
ACALL DELAY5MS ;調(diào)延時(shí)子程序出抖動(dòng)
JNB P3.3,$ ;檢測(cè)按鍵KEY是否放開(kāi)
ACALL MUSIC
CLR P1.0 ;本此按鍵有效,作出相應(yīng)處理
CLR P1.1 ;點(diǎn)亮發(fā)光管LED1~LED3
CLR P1.2
NEXT_KEY: JB P3.4,TEST_KEY ;檢測(cè)鍵盤(pán)KEY2是否按下
ACALL DELAY5MS ;調(diào)延時(shí)子程序出抖動(dòng)
JNB P3.4,$ ;檢測(cè)按鍵KEY2是否放開(kāi)
ACALL MUSIC
SETB P1.0 ;本此按鍵有效,作出相應(yīng)處理
SETB P1.1 ;熄滅發(fā)光管LED1~LED3
SETB P1.2
AJMP TEST_KEY
;***********************
;蜂鳴器輸出聲響子程序
;**********************
MUSIC:
MOV R5,#40H ;控制音長(zhǎng)
MIC:
CPL P1.3
ACALL DELAY100US ;控制音調(diào)
DJNZ R5,MIC
RET
DELAY100US:
MOV R7,#0FFH
DJNZ R7,$
RET
;********************
;延時(shí)去抖動(dòng)子程序
;********************
DELAY5MS:
MOV R7,#90H
DELAY0: MOV R6,#80H
DELAY1: DJNZ R6,DELAY1
DJNZ R7,DELAY0
RET
;
END
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -