片機(jī)課程設(shè)計(jì)---萬(wàn)年歷顯示設(shè)計(jì)_第1頁(yè)
片機(jī)課程設(shè)計(jì)---萬(wàn)年歷顯示設(shè)計(jì)_第2頁(yè)
片機(jī)課程設(shè)計(jì)---萬(wàn)年歷顯示設(shè)計(jì)_第3頁(yè)
片機(jī)課程設(shè)計(jì)---萬(wàn)年歷顯示設(shè)計(jì)_第4頁(yè)
片機(jī)課程設(shè)計(jì)---萬(wàn)年歷顯示設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、精品文檔單片機(jī)課程設(shè)計(jì)報(bào)告題目:基于單片機(jī)的LCM1602液晶控制 萬(wàn)年歷顯示設(shè)計(jì) 所在系部: 信息與電氣工程 所在專(zhuān)業(yè): 通信本 所在班級(jí): 1001 姓 名 : 曹懷寶 學(xué) 號(hào) : 20213615276 指導(dǎo)教師: 陳勇 完成時(shí)間: 2021年 7月 3日 基于單片機(jī)的LCM1602液晶控制 萬(wàn)年歷顯示設(shè)計(jì)1.設(shè)計(jì)目的該設(shè)計(jì)是基于AT89C52單片機(jī)的電子萬(wàn)年歷系統(tǒng),采用LCD1602液晶屏實(shí)現(xiàn)顯示。顯示年月 日星期溫度等,雙行顯示,。顯示年、月、日、星期、時(shí)間,可設(shè)置,設(shè)置功能。綜上所述此時(shí)鐘具有讀取方便、顯示直觀、功能多樣、電路簡(jiǎn)潔、等優(yōu)點(diǎn),符合電子儀器儀表的開(kāi)展趨勢(shì),具有廣闊的市場(chǎng)

2、前景。 2.設(shè)計(jì)原理及相關(guān)說(shuō)明設(shè)計(jì)原理:利用DS1302讀取系統(tǒng)中的日期以及時(shí)間信息,并分別利用P1.1端口和P3.3端口將相關(guān)信息傳送至STC12C5A60S2 主芯片之中,利用P0端口使之顯示于LCD1602液晶顯示屏上,四個(gè)按鍵分別置于P1口的5、6、7端口可以對(duì)時(shí)間進(jìn)行控制修改。詳細(xì)請(qǐng)參閱第三節(jié)的芯片介紹。2.2總體設(shè)計(jì)框圖日歷時(shí)鐘系統(tǒng)設(shè)計(jì)框圖如圖1所示:DS1302At89C52鍵掃描電路LCD 1602DS18B20蜂鳴器圖1 電子萬(wàn)年歷系統(tǒng)設(shè)計(jì)框圖3 各芯片的設(shè)計(jì)及其調(diào)用3.1 STC12C5A60S2 單片機(jī)主控模塊STC12C5A60S2簡(jiǎn)介STC12C5A60S2是STC生

3、產(chǎn)的單時(shí)鐘/機(jī)器周期1T的單片機(jī),是高速、低功耗、超強(qiáng)抗干擾的新一代8051單片機(jī),指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專(zhuān)用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換1、 增強(qiáng)型8051CPU,1T1024G,單時(shí)鐘機(jī)器周期2、 工作電壓5.5-3.5V 3、1280字節(jié)RAM 4、通用I/O口,復(fù)位后為:準(zhǔn)雙向口/弱上拉可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,強(qiáng)推挽/強(qiáng)上拉,僅為輸入/高阻,開(kāi)漏每個(gè)I/O口驅(qū)動(dòng)能力均可到達(dá)20mA,但整個(gè)芯片最大不要超過(guò)120mA 5、 有EEPROM功能6、看門(mén)狗7、內(nèi)部集成MAX810專(zhuān)用復(fù)位電路8、外部掉電檢測(cè)電路9、

4、時(shí)鐘源:外部高精度晶體/時(shí)鐘,內(nèi)部R/C振蕩器常溫下內(nèi)部R/C振蕩器頻率為:5.0V單片機(jī)為:1117MHz 3.3V 單片機(jī)為:812MHz 針對(duì)電機(jī)控制,強(qiáng)干擾場(chǎng)合。對(duì)應(yīng)電路圖中的單片機(jī)的周?chē)娐罚瑘D為89C51用protus軟件的仿真圖使用的是89c513.2 LCD 1602 液晶顯示模塊液晶顯示模塊3.2.1引腳及接口說(shuō)明1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為電源地第2腳:VDD接5V電源正極第3腳:V0為液晶顯示器比照度調(diào)整端,接正電源時(shí)比照度最弱,接地電源時(shí)比照度最高比照度過(guò)高時(shí)會(huì) 產(chǎn)生“鬼影,使用時(shí)可以通過(guò)一個(gè)10K的電位器調(diào)整比照度。第4腳:RS為存放器選擇,高

5、電平1時(shí)選擇數(shù)據(jù)存放器、低電平0時(shí)選擇指令存放器。第5腳:RW為讀寫(xiě)信號(hào)線,高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫(xiě)操作。第6腳:E(或EN)端為使能(enable)端。第714腳:D0D7為8位雙向數(shù)據(jù)端。第1516腳:空腳或背燈電源。15腳背光正極,16腳背光負(fù)極。2 LCD1602特性+5V電壓,比照度可調(diào)內(nèi)含復(fù)位電路提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能有80字節(jié)顯示數(shù)據(jù)存儲(chǔ)器DDRAM內(nèi)建有192個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CGROM8個(gè)可由用戶(hù)自定義的5X7的字符發(fā)生器CGRAM3.2.2 LCD1602模塊內(nèi)部結(jié)構(gòu)LCM1602內(nèi)部主要存放器有

6、:輸入/輸出緩沖器,指令存放器Instuction Register,即IR,指令譯碼器,數(shù)據(jù)存放器Data Register,即DR,地址計(jì)數(shù)器Address Counter,即AC,忙標(biāo)識(shí)Busy Flag,即BF以及顯示數(shù)據(jù)存儲(chǔ)器Display Data RAM,即DDRAM,字符發(fā)生器Character Generate ROM,即CGROM。其各個(gè)單元的功能作用如下:1. 輸入/輸出緩沖器,用于緩存輸入/輸出的數(shù)據(jù)與控制信號(hào)。2. 指令存放器IR,為八位存放器。用于存放LCD指令、DDRAM或CGROM地址。數(shù)據(jù)輸入流程:數(shù)據(jù)存入DR,然后將該數(shù)據(jù)地址與指令存入IR,最后將該數(shù)據(jù)輸入

7、到DDRAM或CGROM。讀取數(shù)據(jù)流程:將該數(shù)據(jù)地址與指令存入IR,DR取得該地址數(shù)據(jù)。3. 指令譯碼器,將IR里的指令進(jìn)行譯碼,以獲取DDRAM或CGROM地址。4. 數(shù)據(jù)存放器DR,連接LCM內(nèi)部數(shù)據(jù)總線以及緩存DDRAM或CGROM的存取數(shù)據(jù)。當(dāng)CPU讀取DR內(nèi)容后,DR能自動(dòng)加載下一個(gè)地址的內(nèi)容。5. 地址計(jì)數(shù)器AC,連接LCM內(nèi)部數(shù)據(jù)總線以及緩存DDRAM或CGROM的存取數(shù)據(jù)地址。當(dāng)存取DDRAM或CGROM的數(shù)據(jù)地址,AC能自動(dòng)加載下一個(gè)存儲(chǔ)地址。6. 忙標(biāo)識(shí)BF,表示LCM的當(dāng)前狀態(tài)。假設(shè)BF=1,那么表示LCM處于忙綠狀態(tài),無(wú)法接收外部數(shù)據(jù)或指令。7. 顯示數(shù)據(jù)存儲(chǔ)器DDRA

8、M,存儲(chǔ)所要顯示數(shù)據(jù)的ASCII碼,根據(jù)該ASCII碼地址,即可到CGROM里找到該字符的顯示編碼。8. 字符發(fā)生器CGROM,是一個(gè)只讀存儲(chǔ)器,預(yù)制所有數(shù)據(jù)的ASCII碼。其存儲(chǔ)的編碼表如下表3-5:此外,還有自定義字符發(fā)生器,串行/并行數(shù)據(jù)轉(zhuǎn)換器,光標(biāo)閃爍控制電路,時(shí)序產(chǎn)生電路,偏壓產(chǎn)生電路,共同端驅(qū)動(dòng)電路以及段驅(qū)動(dòng)電路等。3.5 蜂鳴器本設(shè)計(jì)采用的是無(wú)源蜂鳴器如下列圖:圖13 無(wú)源蜂鳴器3.6 鍵盤(pán)接口鍵盤(pán)接口電路如圖,本次設(shè)計(jì)中,按鍵有3個(gè),每個(gè)按鍵各占用一根I/O線,各按鍵相互獨(dú)立,彼此的工作狀態(tài)互不影響,用查詢(xún)法完成按鍵功能。圖1鍵盤(pán)接口電路5 EPROMEPROM是一種具有可擦除

9、功能,擦除后即可進(jìn)行再編程的ROM內(nèi)存,寫(xiě)入前必須先把里面的內(nèi)容用紫外線照射它的IC卡上的透明視窗的方式來(lái)去除掉。這一類(lèi)芯片比擬容易識(shí)別,其封裝中包含有“石英玻璃窗,一個(gè)編程后的EPROM芯片的“石英玻璃窗一般使用黑色不干膠紙蓋住, 以防止遭到陽(yáng)光直射。EPROM芯片可重復(fù)擦除和寫(xiě)入,解決了PROM芯片只能寫(xiě)入一次的弊端。EPROM芯片有一個(gè)很明顯的特征,在其正面的陶瓷封裝上,開(kāi)有一個(gè)玻璃窗口,透過(guò)該窗口,可以看到其內(nèi)部的集成電路,紫外線透過(guò)該孔照射內(nèi)部芯片就可以擦除其內(nèi)的數(shù)據(jù),完成芯片擦除的操作要用到EPROM擦除器。EPROM內(nèi)資料的寫(xiě)入要用專(zhuān)用的編程器,并且往芯片中寫(xiě)內(nèi)容時(shí)必須要加一定的

10、編程電壓VPP=1224V,隨不同的芯片型號(hào)而定。EPROM的型號(hào)是以27開(kāi)頭的,如27C020(8*256K)是一片2M Bits容量的EPROM芯片。EPROM芯片在寫(xiě)入資料后,還要以不透光的貼紙或膠布把窗口封住,以免受到周?chē)淖贤饩€照射而使資料受損。 EPROM芯片在空白狀態(tài)時(shí)用紫外光線擦除后,內(nèi)部的每一個(gè)存儲(chǔ)單元的數(shù)據(jù)都為1高電平。4 .系統(tǒng)軟件設(shè)計(jì)4.1 時(shí)間程序 使用中斷并定時(shí)器T0的方式1,時(shí)分秒計(jì)數(shù),采用24的時(shí)鐘表示法,時(shí)計(jì)滿(mǎn)23那么回0,分秒計(jì)滿(mǎn)59那么回0,鍵盤(pán)輸入可調(diào),為4*4對(duì)地獨(dú)立鍵盤(pán)中的某三個(gè)鍵,其中一個(gè)為功能鍵,用于調(diào)整時(shí)分秒,另外兩個(gè)鍵用于調(diào)節(jié)數(shù)字使之上調(diào)和下

11、調(diào),其中日期可顯示初始化程序,不可調(diào),另外可以顯示星期。初始化時(shí),只需通過(guò)P1口中的低兩位讀取5 .調(diào)試5.1 調(diào)試步驟調(diào)試分為硬件調(diào)試和軟件調(diào)試。硬件調(diào)試主要是檢查硬件電路是否有短路、斷路和虛焊等,首先接上電源,電源的指示燈亮了之后,檢測(cè)一下單片機(jī)的電源腳有沒(méi)有電源輸入,如果有這說(shuō)明焊接無(wú)誤,然后可以用萬(wàn)用表檢查各個(gè)元器件的管腳之間的焊接,檢查過(guò)程中需要細(xì)心和耐心。硬件調(diào)試無(wú)誤后,進(jìn)行軟件調(diào)試。5.2 性能分析將程序燒入單片機(jī)后,在proteus軟件中進(jìn)行仿真。經(jīng)過(guò)測(cè)試制作完成后的電子萬(wàn)年歷,只有局部功能實(shí)現(xiàn),它能顯示年、月、日等,但顯示不穩(wěn)定,設(shè)計(jì)中硬件或軟件有待修正。6 .心得首先拿到板

12、子,依據(jù)電路圖和板子,畫(huà)電路圖,并生成PCB圖。然后將板子焊接,注意焊接的方法,防止虛焊和過(guò)度焊接。在對(duì)芯片的管腳功能和用法有充分的了解后,根據(jù)設(shè)計(jì)要求設(shè)計(jì)硬件電路,包括單片機(jī)控制電路、存儲(chǔ)電路、鍵盤(pán)掃描電路、顯示電路。然后通過(guò)軟件編程,實(shí)現(xiàn)了對(duì)年、月、日、時(shí)、分、秒、星期的自動(dòng)調(diào)整,用按鍵進(jìn)行控制,用液晶模塊進(jìn)行顯示。用PROTUS仿真實(shí)現(xiàn)相關(guān)的軟件仿真,芯片采用最普遍的89C51,用KEIL軟件編寫(xiě)程序,編寫(xiě)程序前,可以先查閱網(wǎng)上的相關(guān)資料,比方LCD芯片的原理圖,有關(guān)可以借鑒的程序等。自己編寫(xiě),然后生成hex文件,仿真實(shí)現(xiàn)。用焊接好的板子,將文件燒錄進(jìn)去,調(diào)試,查錯(cuò)??赡軙?huì)出現(xiàn)LCD屏幕

13、不顯示,或者出現(xiàn)一行黑一行白的現(xiàn)象,可能是插反了,或者驅(qū)動(dòng)程序有問(wèn)題,這時(shí)候需要根據(jù)實(shí)際的板子的需要,調(diào)整延遲時(shí)間,等等。調(diào)試成功。電子萬(wàn)年歷可以正常顯示時(shí)間并進(jìn)行時(shí)間調(diào)整,根本完成了預(yù)期要實(shí)現(xiàn)的目標(biāo)。附錄1 系統(tǒng)電路原理圖SCH文件選擇自上而下的文件畫(huà)法,可能有些器件的擺放有點(diǎn)亂單片機(jī)級(jí)復(fù)位電路數(shù)碼管和4*4矩陣ISP和電源接口LED燈蜂鳴器和lcd屏頂層文件附錄2,PCB圖附錄四:PCB3D圖附錄3 實(shí)物圖附錄4 系統(tǒng)程序清單/*#include#define uchar unsigned char #define uint unsigned int#include24c02.h/*LCM

14、1602 IO口位定義*/sbit RS=P22;sbit RW=P21;sbit EN=P20;/*獨(dú)立控制按鍵位定義*/ sbit key1=P15;/功能sbit key2=P16;/加sbit key3=P17;/減/*蜂鳴器IO口定義*/sbit Speaker=P26;/接蜂鳴器接口sbit RedLed=P27;uchar key1n,count;uint hour,minute,second;uchar code tab= 2021-7-2 THU ;/定義初始上電時(shí)液晶默認(rèn)顯示狀態(tài)/*延時(shí)子函數(shù),延時(shí)z毫秒*/ void delay(uint z)uint i,j;for(i

15、=0;iz;i+)for(j=0;j110;j+);void di()Speaker=0;delay(400);Speaker=1;/ /*LCD1602有關(guān)子函數(shù)*/*函數(shù)功能:LCD1602寫(xiě)命令函數(shù)入口參數(shù):com出口參數(shù): */void write_com(uchar com)RS=0;RW=0;EN=0;P0=com;delay(5);EN=1;delay(5);EN=0;/*函數(shù)功能:LCD1602寫(xiě)數(shù)據(jù)函數(shù)入口參數(shù):dat出口參數(shù): */void write_data(uchar dat)RS=1;RW=0;EN=0;P0=dat;delay(5);EN=1;delay(5);E

16、N=0;/*函數(shù)功能:時(shí)分秒顯示函數(shù)入口參數(shù):出口參數(shù): */void DisplayTime(uchar add,uchar dat)uint i,j;i=dat/10;j=dat%10;write_com(0x80+0x40+add);write_data(0x30+i);write_data(0x30+j); /*函數(shù)功能:LCM1602初始化入口參數(shù):出口參數(shù): */void init_LCD1602()uchar i;EN=0;minute=0;hour=0;second=0;key1n=0;count=0;init_24c02();write_com(0x38);write_com

17、(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);/日歷顯示固定符號(hào)從第一行第1個(gè)位置之后開(kāi)始顯示for(i=0;i15;i+)write_data(tabi);/向液晶屏寫(xiě)日歷顯示的固定符號(hào)局部delay(5);write_com(0x80+0x40+6);/寫(xiě)出時(shí)間顯示局部的兩個(gè)冒號(hào)write_data(:);delay(5);write_com(0x80+0x40+9);write_data(:);delay(5);second=read_add(1);/首次上電從AT24C02中讀取出存儲(chǔ)的數(shù)據(jù)minute=read_add(

18、2);hour=read_add(3);DisplayTime(10,second);/分別送去液晶顯示DisplayTime(7,minute);DisplayTime(4,hour);TMOD=0x01;/設(shè)置定時(shí)器0工作模式1TH0=(65536-50000)/256;/定時(shí)器裝初值TL0=(65536-50000)%256;EA=1;/開(kāi)總中斷ET0=1;/開(kāi)定時(shí)器0中斷TR0=1;/啟動(dòng)定時(shí)器0/*按鍵掃描4*4獨(dú)立對(duì)地矩陣*/ /*函數(shù)功能:獨(dú)立對(duì)地鍵盤(pán)掃描入口參數(shù):出口參數(shù): ;*/void KeyScan() if(key1=0)delay(5);if(key1=0)/第一次被

19、按下時(shí)key1n+;while(!key1);di();RedLed=0;di();RedLed=1;if(key1n=1)/第一次被按下時(shí)TR0=0; /關(guān)閉定時(shí)器write_com(0x80+0x40+10);/光標(biāo)定位到秒位置write_com(0x0f); /光標(biāo)開(kāi)始閃爍if(key1n=2)/第二次按下光標(biāo)閃爍定位到分鐘位置write_com(0x80+0x40+7);if(key1n=3)/第三次按下光標(biāo)閃爍定位到小時(shí)位置write_com(0x80+0x40+4);if(key1n=4)/第四次按下key1n=0;/記錄按鍵數(shù)清零write_com(0x0c);/取消光標(biāo)閃爍TR

20、0=1;/啟動(dòng)定時(shí)器使時(shí)鐘開(kāi)始走if(key1n!=0)/只有功能鍵被按下后,增加和減小鍵才有效if(key2=0)delay(5);if(key2=0)/增加鍵確認(rèn)被按下while(!key2);/按鍵釋放di();/每當(dāng)有按鍵釋放蜂鳴器發(fā)出滴聲RedLed=0;delay(10);RedLed=1;if(key1n=1)/假設(shè)功能鍵第一次按下second+; /那么調(diào)整秒加1if(second=60)/假設(shè)滿(mǎn)60后將清零second=0;DisplayTime(10,second);/每調(diào)節(jié)一次送液晶顯示一下write_com(0x80+0x40+10);/顯示位置重新回到調(diào)節(jié)處write

21、_add(1,second);/數(shù)據(jù)改變立即存入24C02if(key1n=2)/假設(shè)功能鍵第二次按下minute+;/那么調(diào)整分鐘加1if(minute=60)/假設(shè)滿(mǎn)60后將清零minute=0;DisplayTime(7,minute);/每調(diào)節(jié)一次送液晶顯示一下write_com(0x80+0x40+7);/顯示位置重新回到調(diào)節(jié)處write_add(2,minute);/數(shù)據(jù)改變立即存入24C02if(key1n=3)/假設(shè)功能鍵第三次按下hour+;/那么調(diào)整小時(shí)加1if(hour=24)/假設(shè)滿(mǎn)24后將清零hour=0;DisplayTime(4,hour);/每調(diào)節(jié)一次送液晶顯示

22、一下write_com(0x80+0x40+4);/顯示位置重新回到調(diào)節(jié)處write_add(3,hour);/數(shù)據(jù)改變立即存入24C02if(key3=0)delay(5);if(key3=0)/確認(rèn)減小鍵被按下while(!key3);/按鍵釋放di();/每當(dāng)有按鍵釋放蜂鳴器發(fā)出滴聲RedLed=0;delay(10);RedLed=1;if(key1n=1)/假設(shè)功能鍵第一次按下second-;/那么調(diào)整秒減1if(second=-1)/假設(shè)減到負(fù)數(shù)那么將其重新設(shè)置為59second=59;DisplayTime(10,second);/每調(diào)節(jié)一次送液晶顯示一下write_com(0x80+0x40+10);/顯示位置重新回到調(diào)節(jié)處write_add(1,second);/數(shù)據(jù)改變立即存入24C02if(key1n=2)/假設(shè)功能鍵第二次按下minute-;/那么調(diào)整分鐘減1if(minute=-1)/假設(shè)減到負(fù)數(shù)那么將其重新設(shè)置為59minute=59;DisplayTime(7,minute);/每調(diào)節(jié)一次送液晶顯示一下write_com(0x80+0x40+7);/顯示位置重新回到調(diào)節(jié)處write_add(2,minute);/數(shù)據(jù)改變立即存入24C02i

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論