標(biāo)題: 單片機(jī)開關(guān)檢測(cè)、鍵盤及顯示接口實(shí)驗(yàn)程序 [打印本頁(yè)]
作者: wangjianhang123 時(shí)間: 2020-12-29 09:06
標(biāo)題: 單片機(jī)開關(guān)檢測(cè)、鍵盤及顯示接口實(shí)驗(yàn)程序
三、 實(shí)驗(yàn)內(nèi)容與實(shí)驗(yàn)過程及分析 (寫出詳細(xì)的實(shí)驗(yàn)步驟,并分析實(shí)驗(yàn)結(jié)果)流水燈實(shí)驗(yàn)步驟:
1、I/O 端口的編程 (1)頭文件 對(duì) I/O 端口編程控制時(shí),要對(duì) I/O 端口特殊功能寄存器聲明,在 C51 的編 譯器中,這項(xiàng)聲明包含在頭文件 reg51.h 中,編程時(shí),可通過預(yù)處理命令 #include。 《單片機(jī)原理及應(yīng)用》教案 使用移位運(yùn)算符“>>”、“<<”或移位函數(shù)_crol_,把送 P1 口顯示控制數(shù) 據(jù)進(jìn)行移位,從而實(shí)現(xiàn)發(fā)光二極管依次點(diǎn)亮。編程中一定要把含有移位函數(shù)的 頭文件 intrins.h 包含在內(nèi),編程時(shí),可通過預(yù)處理命令#include 。 (2)驅(qū)動(dòng)電路 8 個(gè)發(fā)光二極管 D0~D7 經(jīng)限流電阻分別接至 P1 口的 P1.0~P1.7 引腳上, 陽(yáng)極共同接高電平。
2、軟件延時(shí)程序編寫一個(gè)延時(shí) 1ms 程序。
void delayms( unsigned char int j)
{
unsigned char i;
while(j- -)
{
for(i=0;i<125;i++)
{;}
}
} 用 for 的內(nèi)部循環(huán)大約延時(shí) 8μs,但不是特別精確。不同編譯器會(huì)產(chǎn)生不 同延時(shí),因此 i 的上限值 125 應(yīng)根據(jù)實(shí)際情況進(jìn)行補(bǔ)償調(diào)整。
- 單片機(jī)最小系統(tǒng) 以 AT89S51 為例,AT89S51 內(nèi)部有 4KB 閃存,本身就是一個(gè)數(shù)字量輸入/輸 出的最小應(yīng)用系統(tǒng)。在構(gòu)建 AT89S51 單片機(jī)最小應(yīng)用系統(tǒng)時(shí),AT89S51 單片機(jī) 需要外接時(shí)鐘電路和復(fù)位電路即可,如圖 1 所示。 注意,本最小應(yīng)用系統(tǒng)只能作為小型的數(shù)字量的測(cè)控單元。
圖1 AT89S51單片機(jī)構(gòu)成的最小應(yīng)用系統(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 硬件電路原理圖
實(shí)驗(yàn)成果截圖:

圖3實(shí)驗(yàn)結(jié)果展示
矩陣鍵盤實(shí)驗(yàn)步驟:
- 判別是否有鍵按下,識(shí)別哪一個(gè)鍵被按下,并求出相應(yīng)的鍵值。根據(jù)鍵值,找到相應(yīng)鍵值處理程序入口。
- 按鍵閉合與否,反應(yīng)在行線輸出電壓上就是高電平或低電平,對(duì)行線電平高低狀態(tài)檢測(cè),便可確認(rèn)按鍵是否按下與松開。為了確保單片機(jī)對(duì)一次按鍵動(dòng)作只確認(rèn)一次按鍵有效,必須消除抖動(dòng)期t1和t3的影響。
- 在檢測(cè)到有鍵按下時(shí),該鍵所對(duì)應(yīng)的行線為低電平,執(zhí)行一段延時(shí)10ms的子程序后,確認(rèn)該行線電平是否仍為低電平,如果仍為低電平,則確認(rèn)該行確實(shí)有鍵按下。當(dāng)按鍵松開時(shí),行線的低電平變?yōu)楦唠娖,?zhí)行一段延時(shí)10ms的子程序后,檢測(cè)該行線為高電平,說(shuō)明按鍵確實(shí)已經(jīng)松開。如圖3和圖4所示
- 數(shù)碼管顯示由P0口控制,當(dāng)4×4矩陣鍵盤中的某一按鍵按下時(shí),數(shù)碼管上顯示對(duì)應(yīng)鍵號(hào)。例如,1號(hào)鍵按下時(shí),數(shù)碼管顯示“1”;12鍵按下時(shí),數(shù)碼管顯示“12”等
- 如果串行通信選用很低波特率(如波特率選為55),可將定時(shí)器T1設(shè)置
實(shí)驗(yàn)代碼截圖:
圖4矩陣代碼截圖
實(shí)驗(yàn)結(jié)果圖:
圖5 矩陣鍵盤按鍵結(jié)果
電路圖:

圖6 硬件電路圖
四、實(shí)驗(yàn)總結(jié)(每項(xiàng)不少于20字)存在問題:1.一開始對(duì)于_crol_不是很理解,對(duì)于單片機(jī)的一些電路圖不知道如何去畫。
- 數(shù)碼管的位選和段選操作不夠熟練,對(duì)矩陣鍵盤的行列掃描不夠熟練,通過數(shù)碼管的顯示來(lái)體現(xiàn)矩陣鍵盤的掃描。
- 開發(fā)板的原理圖明曉,導(dǎo)致代碼出現(xiàn)錯(cuò)誤,
解決方法:查看課本溫習(xí)移位的理解,進(jìn)一步敲好代碼,對(duì)于電路圖我選擇反復(fù)看視頻去了解每一個(gè)實(shí)驗(yàn)的器件。
收獲:懂得如何運(yùn)用_crol_和_cror_左移和右移,以及本次實(shí)驗(yàn)應(yīng)該挑選的實(shí)驗(yàn)器材,以及延時(shí)函數(shù)、主函數(shù)這些的相關(guān)重點(diǎn)。對(duì)矩陣鍵盤的原理理解加深,學(xué)會(huì)了通過按鍵控制數(shù)碼管的值變化。
以上的Word格式文檔51黑下載地址:
文檔.doc
(882.8 KB, 下載次數(shù): 4)
2020-12-29 16:06 上傳
點(diǎn)擊文件名下載附件
實(shí)驗(yàn)報(bào)告
下載積分: 黑幣 -5
作者: wangjianhang123 時(shí)間: 2020-12-29 09:07
各位這是我剛自學(xué)的 請(qǐng)指教
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |