乖女从小被C到大H文NP|人妻洗澡被强公日日澡电影|小柔被六个男人躁到早上电影|被男人吃奶跟添下面特舒服|被绑在坐桩机上抹春药BL推文

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

專(zhuān)注差異化嵌入式產(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ú)限潛能!

新品推廣

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

新聞中心

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

MCD-DEMO實(shí)驗(yàn)板運(yùn)行的鍵判斷制作的循環(huán)燈

更新時(shí)間: 2019-03-26
閱讀量:2189

每次按下RB2的按鍵,輸出不同的結(jié)果,這個(gè)實(shí)例是:每按下1次RB2,C口的燈從低位開(kāi)始顯示,規(guī)律是:RC0-RC7的8個(gè)LED燈循環(huán)顯示其實(shí),讀者可以變通一下,每按一下RB2,可以電亮一盞燈,可以執(zhí)行一段程序,通過(guò)反復(fù)按壓RB2可以實(shí)現(xiàn)多種功能循環(huán)的復(fù)雜程序.我就用他作了一個(gè)7音警報(bào)器程序.可見(jiàn),鍵判斷的應(yīng)用是很廣的,下邊是實(shí)驗(yàn)學(xué)習(xí)程序: LIST P=PIC16F876A #INCLUDE P16F876A.INC;

*************************************COUNT1 EQU 20h ;定義一個(gè)廷時(shí)變量寄存器COUNT2 EQU 21h ;定義另一個(gè)廷時(shí)變量寄存器 ORG 0 GOTO START ORG D'20'START BSF STATUS,RP0 MOVLW B'00011111' MOVWF TRISB MOVLW B'00000000' MOVWF TRISC BCF OPTION_REG,7 BCF STATUS,RP0;

***************************************LOOP0 BTFSC PORTB,2 ;測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP0 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 BTFSC PORTB,2 ;再次測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP0 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 CLRF PORTC BSF PORTC,0 ;置C口0為1LOOP1 BTFSS PORTB,2 ;判斷松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP1 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;調(diào)用延時(shí),消抖動(dòng) BTFSS PORTB,2 ;再次判斷S2松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP1 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;為0,按鍵按下了,調(diào)用消抖動(dòng) ;

***************************** LOOP2 BTFSC PORTB,2 ;測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP2 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 BTFSC PORTB,2 ;再次測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP2 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 CLRF PORTC BSF PORTC,1 ;置C口1為1LOOP3 BTFSS PORTB,2 ;判斷松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP3 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;調(diào)用延時(shí),消抖動(dòng) BTFSS PORTB,2 ;再次判斷S2松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP3 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;為0,按鍵按下了,調(diào)用消抖動(dòng) ;*****************************

LOOP4 BTFSC PORTB,2 ;測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP4 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 BTFSC PORTB,2 ;再次測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP4 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 CLRF PORTC BSF PORTC,2 ;置C口2為1LOOP5 BTFSS PORTB,2 ;判斷松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP5 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;調(diào)用延時(shí),消抖動(dòng) BTFSS PORTB,2 ;再次判斷S2松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP5 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;為0,按鍵按下了,調(diào)用消抖動(dòng) ;

***************************** LOOP6 BTFSC PORTB,2 ;測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP6 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 BTFSC PORTB,2 ;再次測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP6 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 CLRF PORTC BSF PORTC,3 ;置C口3為1LOOP7 BTFSS PORTB,2 ;判斷松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP7 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;調(diào)用延時(shí),消抖動(dòng) BTFSS PORTB,2 ;再次判斷S2松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP7 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;為0,按鍵按下了,調(diào)用消抖動(dòng) ;

*****************************LOOP8 BTFSC PORTB,2 ;測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP8 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 BTFSC PORTB,2 ;再次測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP8 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 CLRF PORTC BSF PORTC,4 ;置C口4為1LOOP9 BTFSS PORTB,2 ;判斷松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP9 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;調(diào)用延時(shí),消抖動(dòng) BTFSS PORTB,2 ;再次判斷S2松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP9 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;為0,按鍵按下了,調(diào)用消抖動(dòng) ;

*****************************LOOP10 BTFSC PORTB,2 ;測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP10 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 BTFSC PORTB,2 ;再次測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP10 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 CLRF PORTC BSF PORTC,5 ;置C口5為1LOOP11 BTFSS PORTB,2 ;判斷松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP11 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;調(diào)用延時(shí),消抖動(dòng) BTFSS PORTB,2 ;再次判斷S2松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP11 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;為0,按鍵按下了,調(diào)用消抖動(dòng) ;

***************************** LOOP12 BTFSC PORTB,2 ;測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP12 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 BTFSC PORTB,2 ;再次測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP12 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 CLRF PORTC BSF PORTC,6 ;置C口6為1LOOP13 BTFSS PORTB,2 ;判斷松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP13 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;調(diào)用延時(shí),消抖動(dòng) BTFSS PORTB,2 ;再次判斷S2松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP13 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;為0,按鍵按下了,調(diào)用消抖動(dòng) ;

***************************** LOOP14 BTFSC PORTB,2 ;測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP14 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 BTFSC PORTB,2 ;再次測(cè)試S2按下否?是!跳過(guò)下條指令 GOTO LOOP14 ;為1,沒(méi)按下,繼續(xù)判斷 CALL DELAY ;調(diào)用延時(shí),消抖 CLRF PORTC BSF PORTC,7 ;置C口7為1LOOP15 BTFSS PORTB,2 ;判斷松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP15 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;調(diào)用延時(shí),消抖動(dòng) BTFSS PORTB,2 ;再次判斷S2松開(kāi)否?為1,松開(kāi)了,跳一步 GOTO LOOP15 ;為0,沒(méi)放開(kāi),等待 CALL DELAY ;為0,按鍵按下了,調(diào)用消抖動(dòng) GOTO LOOP0;

****************************DELAY MOVLW D'13' MOVWF COUNT2LOP0 MOVLW D'255' MOVWF COUNT1 DECFSZ COUNT1,1 ;延時(shí)消抖程序 GOTO $-1 DECFSZ COUNT2,1 GOTO LOP0 RETURN;*****************************

 END



万年县| 台东县| 大渡口区| 达日县| 丁青县| 临澧县| 婺源县| 梓潼县| 栾城县| 徐闻县| 淅川县| 开远市| 太白县| 克东县| 万年县| 敖汉旗| 微博| 靖远县| 泰顺县| 洪江市| 平远县| 连平县| 淳安县| 乐清市| 泾川县| 固始县| 平陆县| 新平| 新余市| 汤原县| 丽江市| 龙州县| 桦南县| 札达县| 平邑县| 武乡县| 南川市| 龙山县| 民权县| 鄱阳县| 缙云县|