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

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

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

開發(fā)工具

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

技術(shù)支持

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

新品推廣

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

新聞中心

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

單片機開發(fā)--鍵控LED的實驗

更新時間: 2019-01-05
閱讀量:2414

本實驗的目的是讓大家熟悉IO口的輸入操作,本程序的作用是用按鍵控制LED

;按S2時只有LED8發(fā)光,按S3時只有LED7發(fā)光,按S4時只有LED6發(fā)光,按S5時只有LED5發(fā)光
;PIC單片機學(xué)習(xí)網(wǎng)——-http://www.pic16.com
;燒寫時應(yīng)注意:配置位已經(jīng)在程序中寫明,加載HEX文件時會自動加載,燒寫時不用再手動設(shè)置配置位。
;實驗時請注意套件跳線選擇
;**
LIST P=16F84A,R=DEC ;定義器件為16F84,默認(rèn)數(shù)制為十進(jìn)制
;————————————————————————————————
__CONFIG B’11111111110001’;_CP_OFF&_WDT_OFF&_PWRITE_ON&_XT_OSC
;沒有代碼保護(hù)
;看門狗關(guān)閉
;上電廷時器開啟
;振蕩器模式為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 ;去抖動
GOTO LOOP
DECFSZ DATA1,1
GOTO SET_KEY1A
MOVLW 03H
ANDWF PORTB,1 ;熄滅所有LED
MOVLW 80H
IORWF PORTB,1 ;點亮LED8
SET_KEY1B
BTFSS PORTA,KEY1 ;等待按鍵放開
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點亮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點亮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點亮LED5

GOTO SET_KEY4B
GOTO LOOP
;————————————————-
END

都兰县| 肇东市| 镇坪县| 崇阳县| 麦盖提县| 桓台县| 揭东县| 隆德县| 调兵山市| 界首市| 临湘市| 公安县| 宁乡县| 肥城市| 石台县| 灵宝市| 汉川市| 宿州市| 西藏| 海淀区| 宕昌县| 盐源县| 宿松县| 西藏| 南阳市| 乌兰县| 寻乌县| 灌云县| 太白县| 阳朔县| 乌审旗| 西充县| 双辽市| 沙坪坝区| 新巴尔虎左旗| 阜城县| 樟树市| 泌阳县| 营山县| 西盟| 介休市|