資源描述:
《基于C51單片機的鍵盤及LCD顯示.doc》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、基于C51單片機的鍵盤及LCD顯示一、實驗?zāi)康?.掌握矩陣式鍵盤的數(shù)字鍵和功能鍵的編程方法。2.掌握LCD的接口技術(shù)和編程方法。3.掌握儀器監(jiān)控程序設(shè)計和調(diào)試方法。二、預(yù)習(xí)與參考1.結(jié)合ST7920控制器系列中文圖形液晶模塊有關(guān)資料手冊,詳細了解ST7920接口設(shè)計技術(shù)。2.參考資料1)實驗板說明書2)ST7920控制器系列中文圖形液晶模塊資料手冊三、設(shè)計指標(biāo)利用實驗板上提供的鍵盤電路,LCD顯示電路,設(shè)計一人機界面,能實現(xiàn)以下功能:1.LCD上顯示“重慶科技學(xué)院”2.按鍵至少包括0-9的數(shù)字鍵3.LCD顯示按鍵值4.電子鐘顯示:時,分,秒(選作)四、實驗要求1.以單片機為核心,設(shè)計4*4
2、非編碼鍵盤及LCD的硬件電路,畫出電路原理圖。2.設(shè)計4*4非編碼鍵盤及LCD的控制軟件,畫出流程圖,編寫控制程序。五、實驗儀器設(shè)備和材料清單單片機實驗板、連接導(dǎo)線、ST7920圖形液晶模塊、PC機;Keilc51軟件六、實驗設(shè)計及實施的指導(dǎo)1.實驗課前布置實驗任務(wù),提出實驗要求,預(yù)習(xí)相關(guān)資料,完成硬件草圖設(shè)計和軟件流程圖備查。2.經(jīng)指導(dǎo)教師檢查,預(yù)習(xí)達到要求者進入實驗室實驗。3.按照設(shè)計的電路連線,構(gòu)建鍵盤及顯示系統(tǒng),經(jīng)檢查無誤方可進入下一步。4.在指導(dǎo)教師指導(dǎo)下調(diào)試LCD顯示程序。5.在指導(dǎo)教師指導(dǎo)下調(diào)試按鍵程序。6.綜合調(diào)試直到滿足設(shè)計要求。七、實驗成績評定方法實驗成績包括預(yù)習(xí)、實驗
3、完成質(zhì)量、實驗報告質(zhì)量4部分組成,各部分所占比例分別為30%、30%、40%。八、實驗報告要求1.實驗報告格式:一.實驗名稱二.實驗?zāi)康娜畬嶒瀮?nèi)容四.設(shè)計思想五.硬件設(shè)計六.程序代碼七.參考文獻2.硬件電路原理圖用PROTEL等軟件畫出。附錄:程序源代碼:附錄1#include"reg51.h"#include"intrins.h"#defineTHCO0xee#defineTLCO0x0#defineucharunsignedcharsbitCS=P1^0;sbitSID=P1^1;sbitSCLK=P1^2;sbitB_light=P2^7;//背光uchartab[1]={'0'}
4、;intflag=0;unsignedcharHour=0,Min=0,Sec=0;voiddelay(unsignedintj){unsignedchari;do{for(i=0;i<100;i++);}while(j--);}voidsend_command(unsignedcharcommand_data)//發(fā)送命令{unsignedchari;unsignedchari_data,temp_data1,temp_data2;i_data=0xf8;//操作命令,控制指令delay(10);CS=1;SCLK=0;for(i=0;i<8;i++){SID=(bit)(i_data&
5、0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}i_data=command_data;i_data&=0xf0;//送高for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}i_data=command_data;//送低//temp_data1=i_data&0xf0;temp_data2=i_data&0x0f;//temp_data1>>=4;temp_data2<<=4;//i_data=temp_data1
6、temp_data2;i_data=temp_data
7、2;i_data&=0xf0;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}CS=0;}voidsend_data(unsignedcharcommand_data)//發(fā)送數(shù)據(jù){unsignedchari;unsignedchari_data,temp_data1,temp_data2;i_data=0xfa;//操作命令,顯示數(shù)據(jù)delay(10);CS=1;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_dat
8、a<<1;}i_data=command_data;i_data&=0xf0;for(i=0;i<8;i++){SID=(bit)(i_data&0x80);SCLK=0;SCLK=1;i_data=i_data<<1;}i_data=command_data;//temp_data1=i_data&0xf0;temp_data2=i_data&0x0f;//temp_data1>>=4;temp_data2<<=4;/