三、 實驗內(nèi)容與實驗過程及分析 (寫出詳細的實驗步驟,并分析實驗結果) 流水燈實驗步驟: 1、I/O 端口的編程 (1)頭文件 對 I/O 端口編程控制時,要對 I/O 端口特殊功能寄存器聲明,在 C51 的編 譯器中,這項聲明包含在頭文件 reg51.h 中,編程時,可通過預處理命令 #include。 《單片機原理及應用》教案 使用移位運算符“>>”、“<<”或移位函數(shù)_crol_,把送 P1 口顯示控制數(shù) 據(jù)進行移位,從而實現(xiàn)發(fā)光二極管依次點亮。編程中一定要把含有移位函數(shù)的 頭文件 intrins.h 包含在內(nèi),編程時,可通過預處理命令#include 。 (2)驅(qū)動電路 8 個發(fā)光二極管 D0~D7 經(jīng)限流電阻分別接至 P1 口的 P1.0~P1.7 引腳上, 陽極共同接高電平。 2、軟件延時程序編寫一個延時 1ms 程序。 void delayms( unsigned char int j) { unsigned char i; while(j- -) { for(i=0;i<125;i++) {;} } } 用 for 的內(nèi)部循環(huán)大約延時 8μs,但不是特別精確。不同編譯器會產(chǎn)生不 同延時,因此 i 的上限值 125 應根據(jù)實際情況進行補償調(diào)整。 - 單片機最小系統(tǒng) 以 AT89S51 為例,AT89S51 內(nèi)部有 4KB 閃存,本身就是一個數(shù)字量輸入/輸 出的最小應用系統(tǒng)。在構建 AT89S51 單片機最小應用系統(tǒng)時,AT89S51 單片機 需要外接時鐘電路和復位電路即可,如圖 1 所示。 注意,本最小應用系統(tǒng)只能作為小型的數(shù)字量的測控單元。
圖1 AT89S51單片機構成的最小應用系統(tǒng) #include
#include void delay() { unsigned char i,j; for(i=0;i<255;i++) for(j=0;j<255;j++); } void main() { P1=0xfe; while(1) { P1=_crol_(P1,1); delay(); } } 電路圖為 
圖2 硬件電路原理圖 實驗成果截圖: 
圖3實驗結果展示 矩陣鍵盤實驗步驟: - 判別是否有鍵按下,識別哪一個鍵被按下,并求出相應的鍵值。根據(jù)鍵值,找到相應鍵值處理程序入口。
- 按鍵閉合與否,反應在行線輸出電壓上就是高電平或低電平,對行線電平高低狀態(tài)檢測,便可確認按鍵是否按下與松開。為了確保單片機對一次按鍵動作只確認一次按鍵有效,必須消除抖動期t1和t3的影響。
- 在檢測到有鍵按下時,該鍵所對應的行線為低電平,執(zhí)行一段延時10ms的子程序后,確認該行線電平是否仍為低電平,如果仍為低電平,則確認該行確實有鍵按下。當按鍵松開時,行線的低電平變?yōu)楦唠娖剑瑘?zhí)行一段延時10ms的子程序后,檢測該行線為高電平,說明按鍵確實已經(jīng)松開。如圖3和圖4所示
- 數(shù)碼管顯示由P0口控制,當4×4矩陣鍵盤中的某一按鍵按下時,數(shù)碼管上顯示對應鍵號。例如,1號鍵按下時,數(shù)碼管顯示“1”;12鍵按下時,數(shù)碼管顯示“12”等
- 如果串行通信選用很低波特率(如波特率選為55),可將定時器T1設置
實驗代碼截圖: 圖4矩陣代碼截圖 實驗結果圖:
圖5 矩陣鍵盤按鍵結果 電路圖: 
圖6 硬件電路圖 四、實驗總結(每項不少于20字)存在問題:1.一開始對于_crol_不是很理解,對于單片機的一些電路圖不知道如何去畫。 - 數(shù)碼管的位選和段選操作不夠熟練,對矩陣鍵盤的行列掃描不夠熟練,通過數(shù)碼管的顯示來體現(xiàn)矩陣鍵盤的掃描。
- 開發(fā)板的原理圖明曉,導致代碼出現(xiàn)錯誤,
解決方法:查看課本溫習移位的理解,進一步敲好代碼,對于電路圖我選擇反復看視頻去了解每一個實驗的器件。 收獲:懂得如何運用_crol_和_cror_左移和右移,以及本次實驗應該挑選的實驗器材,以及延時函數(shù)、主函數(shù)這些的相關重點。對矩陣鍵盤的原理理解加深,學會了通過按鍵控制數(shù)碼管的值變化。
以上的Word格式文檔51黑下載地址:
文檔.doc
(882.8 KB, 下載次數(shù): 4)
2020-12-29 16:06 上傳
點擊文件名下載附件
實驗報告 下載積分: 黑幣 -5
|