人狗畜禽COMPANY LIMITED|全是肉的高H文〈男男〉|全篇肉高H秘书被C办公室四爱|全黄H全肉共妻|全黄H全肉短篇禁乱NP慕浅浅|全黄H全肉短篇N男男

技術(shù)熱線: 4007-888-234
設(shè)計(jì)開(kāi)發(fā)

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開(kāi)發(fā)工具

提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享

技術(shù)支持

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無(wú)限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競(jìng)爭(zhēng)力

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

實(shí)戰(zhàn)五:鍵控LED的實(shí)驗(yàn)

更新時(shí)間: 2019-03-25
閱讀量:1224

深圳市英銳恩科技有限公司:臺(tái)灣麥肯單片機(jī)(Micon MDT單片機(jī))亞太地區(qū)A級(jí)代理商

鍵控LED的實(shí)驗(yàn)
;本實(shí)驗(yàn)的目的是讓大家熟悉IO口的輸入操作,本程序的作用是用按鍵控制LED
;按S2時(shí)只有LED8發(fā)光,按S3時(shí)只有LED7發(fā)光,按S4時(shí)只有LED6發(fā)光,按S5時(shí)只有LED5發(fā)光
;燒寫(xiě)時(shí)應(yīng)注意:配置位已經(jīng)在程序中寫(xiě)明,加載HEX文件時(shí)會(huì)自動(dòng)加載,燒寫(xiě)時(shí)不用再手動(dòng)設(shè)置配置位。
;實(shí)驗(yàn)時(shí)請(qǐng)注意套件跳線選擇
;****************************************************************
  LIST P=16F84A,R=DEC          ;定義器件為16F84,默認(rèn)數(shù)制為十進(jìn)制
;----------------------------------------------------------------
  __CONFIG B'11111111110001';_CP_OFF&_WDT_OFF&_PWRITE_ON&_XT_OSC
                                              ;沒(méi)有代碼保護(hù)
                                              ;看門(mén)狗關(guān)閉
                                              ;上電廷時(shí)器開(kāi)啟
                                              ;振蕩器模式為XT
;----------------------------------------------------------------
STATUS EQU 03H               ;寄存器單元定義
RP0 EQU 5
;----------------------
PORTA EQU 05H
PORTB EQU 06H

TRISA EQU 5H
TRISB EQU 6H
;-----------------------    ;變量單元定義
DATA1 EQU 20H
;----------------------RA
KEY1 EQU 3
KEY2 EQU 4
;----------------------RB
KEY3 EQU 0
KEY4 EQU 1
;--------------------
   ORG 0000H
MAIN
   CLRF PORTA               ;初始IO口
   CLRF PORTB

   BSF STATUS,RP0           ;設(shè)置數(shù)據(jù)寄存器體1
   MOVLW 00011000B          ;定義RA。3,RA。4為輸入其它為輸出
   MOVWF TRISA
   MOVLW 00000011B          ;定義RB。0,RB。1為輸入其它為輸出
   MOVWF TRISB
   BCF STATUS,RP0           ;恢復(fù)數(shù)據(jù)寄存器體0

LOOP
   BTFSS PORTA,KEY1         ;掃描按鍵,有按鍵被按下轉(zhuǎn)到鍵值處理
   GOTO SET_KEY1
   BTFSS PORTA,KEY2
   GOTO SET_KEY2
   BTFSS PORTB,KEY3
   GOTO SET_KEY3
   BTFSS PORTB,KEY4
   GOTO SET_KEY4
   GOTO LOOP                ;反復(fù)掃描
;---------------------------------
SET_KEY1
   BTFSC PORTA,KEY1         ;是干擾退出
   GOTO LOOP
   MOVLW 255
   MOVWF DATA1
SET_KEY1A
   BTFSC PORTA,KEY1         ;去抖動(dòng)
   GOTO LOOP
   DECFSZ DATA1,1
   GOTO SET_KEY1A
   MOVLW 03H
   ANDWF PORTB,1           ;熄滅所有LED
   MOVLW 80H
   IORWF PORTB,1           ;點(diǎn)亮LED8
SET_KEY1B
   BTFSS PORTA,KEY1        ;等待按鍵放開(kāi)
   GOTO SET_KEY1B
   GOTO LOOP              
;---------------------------------
SET_KEY2
   BTFSC PORTA,KEY2
   GOTO LOOP
   MOVLW 255
   MOVWF DATA1
SET_KEY2A
   BTFSC PORTA,KEY2       
   GOTO LOOP
   DECFSZ DATA1,1
   GOTO SET_KEY2A
   MOVLW 03H
   ANDWF PORTB,1
   MOVLW 40H
   IORWF PORTB,1          ;按S3點(diǎn)亮LED7    
SET_KEY2B
   BTFSS PORTA,KEY2
   GOTO SET_KEY2B
   GOTO LOOP
;---------------------------------
SET_KEY3
   BTFSC PORTB,KEY3
   GOTO LOOP
   MOVLW 255
   MOVWF DATA1
SET_KEY3A
   BTFSC PORTB,KEY3
   GOTO LOOP
   DECFSZ DATA1,1
   GOTO SET_KEY3A
   MOVLW 03H
   ANDWF PORTB,1
   MOVLW 20H
   IORWF PORTB,1          ;按S4點(diǎn)亮LED6
SET_KEY3B
   BTFSS PORTB,KEY3    
   GOTO SET_KEY3B
   GOTO LOOP
;---------------------------------
SET_KEY4
   BTFSC PORTB,KEY4
   GOTO LOOP
   MOVLW 255
   MOVWF DATA1
SET_KEY4A
   BTFSC PORTB,KEY4
   GOTO LOOP
   DECFSZ DATA1,1
   GOTO SET_KEY4A
   MOVLW 03H
   ANDWF PORTB,1
   MOVLW 10H
   IORWF PORTB,1
SET_KEY4B
   BTFSS PORTB,KEY4        ;按S5點(diǎn)亮LED5
   GOTO SET_KEY4B
   GOTO LOOP
;---------------------------------
   END

基隆市| 大关县| 周至县| 固镇县| 蓝田县| 桂林市| 咸宁市| 洞口县| 安西县| 夏邑县| 郎溪县| 永清县| 梨树县| 鄂托克旗| 宁波市| 凤城市| 广汉市| 马山县| 东至县| 堆龙德庆县| 循化| 肃宁县| 高雄市| 嘉祥县| 新安县| 昭觉县| 鄂托克前旗| 长顺县| 固安县| 河池市| 铅山县| 关岭| 宿迁市| 红河县| 界首市| 隆昌县| 平陆县| 宝丰县| 西华县| 桐柏县| 班戈县|