一、實驗目的:
1、學習微控制器埠的輸入、輸出功能的實現方法
2、掌握按鈕輸入的基本原理
3、進一步學習**系統的使用
4、學習使用常用指令和程式結構
二、試驗參考程式:
include ""
cntequ 0x23按capture(rc2)鍵次數
_d1equ 0x24
_d2equ 0x25
org 0x00
goto start
start:
call pic_init去對potrb、portc埠各管腳的輸入輸出進行設定
main_loop:
movf portc,w
btfsc portc,2檢測portc的2位是否為0,為0則跳轉下一條指令
goto bt_end不為0則轉到bt_end
incf cnt按鍵計數值增長1
call write_portb ;寫portb埠
bt_end:
goto main_loop
pic_init:
clrf intcon
bsf status,rp0
movlw b'00000000portb設為輸出口
movwf trisb
movlw b'11111111portc設為輸入口
movwf trisc
bcfstatus,rp0
movlw b'11111111'
movwf portb
clrf cnt
return
write_portb:
movlw 1按capture鍵一次時,l1和l2兩個紅燈亮
subwf cnt,w
btfsc status,z
goto ptb01
movlw 2按capture鍵二次時,l3和l4兩個綠燈亮
subwf cnt,w
btfsc status,z
goto ptb23
movlw 3按capture鍵三次時,l4和l5兩個黃燈亮
subwf cnt,w
btfsc status,z
goto ptb45
movlw 4按capture鍵四次時,紅綠黃6隻燈全亮
subwf cnt,w
btfsc status,z
goto ptb012345
ptb01:
movlw b'11111100'
movwf portb
call delay此處延時近一秒,否則capture鍵按下時6只led燈
return很快就一起閃爍過去,並且亮燈沒有規則
ptb23:
movlw b'11110011'
movwf portb
call delay
return
ptb45:
movlw b'11001111'
movwf portb
call delay
return
ptb012345:
movlw b'11000000'
movwf portb
clrf cnt清除cnt的值,再後來按鍵又如以上重複
call delay
return
delay延時子程式
clrwdt此處延時將近一秒,否則capture(rc2)鍵按下時6只led燈很快就一起閃爍過去,並且亮燈沒有規則
movlw 0xff
movwf _d1
delay1:
clrwdt
movlw 0ffh
movwf _d2
delay2:
clrwdt
decfsz _d2,1
goto delay2
decfsz _d1,1
goto delay1
retlw 0
end三、程式提示
1、要理解btfsc、subwf兩條指令,才能讀懂程式
四、試驗參考電路
五、知識拓展練習
1、 如果按一下按鈕的過程中,led等變化不規則,有時改變,有時閃一下保持原狀態,這是因為按鈕在操作過程中的,機械方面和電路方面都可能出現「抖動」,使得按一次按鈕,微控制器檢測到按鈕次數的變化和當初設計不符合。在本實驗中通過加入延時子程式,確保每按一次藍色capture按鈕,微控制器只計一次按鈕輸入。請修改程式,看看不加延時是種什麼狀態。
2、 修改程式,按一下按鈕,led的反應與上面的程式所控制的不一樣。
3、 結合電路把紅色的tmr0(ra4)按鈕和藍色的capture(rc2)按鈕設計成組合鍵,控制6個led燈亮出不同花樣來。
C的輸入和輸出與標準輸出流
掌握 輸入輸出的含意 檔案流以及輸入 輸出的格式控制 標準輸出在c 程式中的應用。理解 c 類庫中的常用流類。了解 c 的i o對c的發展。重點 難點 輸入輸出的含意 檔案流以及輸入 輸出的格式控制 標準輸出在c 程式中的應用。一 c 輸入輸出的含義 以前所用到的輸入和輸出,都是以終端為物件的,即從...
第三章格式化輸入輸出
3.1 格式化輸入和輸出 一 格式化輸出 1.printf函式的使用格式 printf 格式字串 引數1,引數2,引數n 說明 1 格式字串中包含了普通字元和格式說明符。每個格式說明符以 開始,以乙個轉換符結束,在 和轉換符之間可以使用乙個或多個標誌。2 引數是表示式 包括常量 變數 帶運算子的表示...
實驗6標準裝置與檔案流的輸入輸出
void book setdata long nu char bn,char p,char n void book show void book book long nu,char bp,char p,char n void main void 上機要求 修改程式增加按出版社 作者。從檔案中查詢書名...