




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機課程設(shè)計報告題目:基于單片機的LCM1602液晶控制 萬年歷顯示設(shè)計 所在系部: 信息與電氣工程 所在專業(yè): 通信本 所在班級: 1001 姓 名 : 曹懷寶 學(xué) 號 : 20213615276 指導(dǎo)教師: 陳勇 完成時間: 2021年 7月 3日 基于單片機的LCM1602液晶控制 萬年歷顯示設(shè)計1.設(shè)計目的該設(shè)計是基于AT89C52單片機的電子萬年歷系統(tǒng),采用LCD1602液晶屏實現(xiàn)顯示。顯示年月 日星期溫度等,雙行顯示,。顯示年、月、日、星期、時間,可設(shè)置,設(shè)置功能。綜上所述此時鐘具有讀取方便、顯示直觀、功能多樣、電路簡潔、等優(yōu)點,符合電子儀器儀表的開展趨勢,具有廣闊的市場前景。
2、2.設(shè)計原理及相關(guān)說明設(shè)計原理:利用DS1302讀取系統(tǒng)中的日期以及時間信息,并分別利用P1.1端口和P3.3端口將相關(guān)信息傳送至STC12C5A60S2 主芯片之中,利用P0端口使之顯示于LCD1602液晶顯示屏上,四個按鍵分別置于P1口的5、6、7端口可以對時間進(jìn)行控制修改。詳細(xì)請參閱第三節(jié)的芯片介紹。2.2總體設(shè)計框圖日歷時鐘系統(tǒng)設(shè)計框圖如圖1所示:DS1302At89C52鍵掃描電路LCD 1602DS18B20蜂鳴器圖1 電子萬年歷系統(tǒng)設(shè)計框圖3 各芯片的設(shè)計及其調(diào)用3.1 STC12C5A60S2 單片機主控模塊STC12C5A60S2簡介STC12C5A60S2是STC生產(chǎn)的單時
3、鐘/機器周期1T的單片機,是高速、低功耗、超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復(fù)位電路,2路PWM,8路高速10位A/D轉(zhuǎn)換1、 增強型8051CPU,1T1024G,單時鐘機器周期2、 工作電壓5.5-3.5V 3、1280字節(jié)RAM 4、通用I/O口,復(fù)位后為:準(zhǔn)雙向口/弱上拉可設(shè)置成四種模式:準(zhǔn)雙向口/弱上拉,強推挽/強上拉,僅為輸入/高阻,開漏每個I/O口驅(qū)動能力均可到達(dá)20mA,但整個芯片最大不要超過120mA 5、 有EEPROM功能6、看門狗7、內(nèi)部集成MAX810專用復(fù)位電路8、外部掉電檢測電路9、時鐘源:
4、外部高精度晶體/時鐘,內(nèi)部R/C振蕩器常溫下內(nèi)部R/C振蕩器頻率為:5.0V單片機為:1117MHz 3.3V 單片機為:812MHz 針對電機控制,強干擾場合。對應(yīng)電路圖中的單片機的周圍電路,圖為89C51用protus軟件的仿真圖使用的是89c513.2 LCD 1602 液晶顯示模塊液晶顯示模塊3.2.1引腳及接口說明1602采用標(biāo)準(zhǔn)的16腳接口,其中:第1腳:VSS為電源地第2腳:VDD接5V電源正極第3腳:V0為液晶顯示器比照度調(diào)整端,接正電源時比照度最弱,接地電源時比照度最高比照度過高時會 產(chǎn)生“鬼影,使用時可以通過一個10K的電位器調(diào)整比照度。第4腳:RS為存放器選擇,高電平1時
5、選擇數(shù)據(jù)存放器、低電平0時選擇指令存放器。第5腳:RW為讀寫信號線,高電平(1)時進(jìn)行讀操作,低電平(0)時進(jìn)行寫操作。第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ù)存儲器DDRAM內(nèi)建有192個5X7點陣的字型的字符發(fā)生器CGROM8個可由用戶自定義的5X7的字符發(fā)生器CGRAM3.2.2 LCD1602模塊內(nèi)部結(jié)構(gòu)LCM1602內(nèi)部主要存放器有:輸入/
6、輸出緩沖器,指令存放器Instuction Register,即IR,指令譯碼器,數(shù)據(jù)存放器Data Register,即DR,地址計數(shù)器Address Counter,即AC,忙標(biāo)識Busy Flag,即BF以及顯示數(shù)據(jù)存儲器Display Data RAM,即DDRAM,字符發(fā)生器Character Generate ROM,即CGROM。其各個單元的功能作用如下:1. 輸入/輸出緩沖器,用于緩存輸入/輸出的數(shù)據(jù)與控制信號。2. 指令存放器IR,為八位存放器。用于存放LCD指令、DDRAM或CGROM地址。數(shù)據(jù)輸入流程:數(shù)據(jù)存入DR,然后將該數(shù)據(jù)地址與指令存入IR,最后將該數(shù)據(jù)輸入到DDR
7、AM或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能自動加載下一個地址的內(nèi)容。5. 地址計數(shù)器AC,連接LCM內(nèi)部數(shù)據(jù)總線以及緩存DDRAM或CGROM的存取數(shù)據(jù)地址。當(dāng)存取DDRAM或CGROM的數(shù)據(jù)地址,AC能自動加載下一個存儲地址。6. 忙標(biāo)識BF,表示LCM的當(dāng)前狀態(tài)。假設(shè)BF=1,那么表示LCM處于忙綠狀態(tài),無法接收外部數(shù)據(jù)或指令。7. 顯示數(shù)據(jù)存儲器DDRAM,存儲
8、所要顯示數(shù)據(jù)的ASCII碼,根據(jù)該ASCII碼地址,即可到CGROM里找到該字符的顯示編碼。8. 字符發(fā)生器CGROM,是一個只讀存儲器,預(yù)制所有數(shù)據(jù)的ASCII碼。其存儲的編碼表如下表3-5:此外,還有自定義字符發(fā)生器,串行/并行數(shù)據(jù)轉(zhuǎn)換器,光標(biāo)閃爍控制電路,時序產(chǎn)生電路,偏壓產(chǎn)生電路,共同端驅(qū)動電路以及段驅(qū)動電路等。3.5 蜂鳴器本設(shè)計采用的是無源蜂鳴器如下列圖:圖13 無源蜂鳴器3.6 鍵盤接口鍵盤接口電路如圖,本次設(shè)計中,按鍵有3個,每個按鍵各占用一根I/O線,各按鍵相互獨立,彼此的工作狀態(tài)互不影響,用查詢法完成按鍵功能。圖1鍵盤接口電路5 EPROMEPROM是一種具有可擦除功能,擦
9、除后即可進(jìn)行再編程的ROM內(nèi)存,寫入前必須先把里面的內(nèi)容用紫外線照射它的IC卡上的透明視窗的方式來去除掉。這一類芯片比擬容易識別,其封裝中包含有“石英玻璃窗,一個編程后的EPROM芯片的“石英玻璃窗一般使用黑色不干膠紙蓋住, 以防止遭到陽光直射。EPROM芯片可重復(fù)擦除和寫入,解決了PROM芯片只能寫入一次的弊端。EPROM芯片有一個很明顯的特征,在其正面的陶瓷封裝上,開有一個玻璃窗口,透過該窗口,可以看到其內(nèi)部的集成電路,紫外線透過該孔照射內(nèi)部芯片就可以擦除其內(nèi)的數(shù)據(jù),完成芯片擦除的操作要用到EPROM擦除器。EPROM內(nèi)資料的寫入要用專用的編程器,并且往芯片中寫內(nèi)容時必須要加一定的編程電壓
10、VPP=1224V,隨不同的芯片型號而定。EPROM的型號是以27開頭的,如27C020(8*256K)是一片2M Bits容量的EPROM芯片。EPROM芯片在寫入資料后,還要以不透光的貼紙或膠布把窗口封住,以免受到周圍的紫外線照射而使資料受損。 EPROM芯片在空白狀態(tài)時用紫外光線擦除后,內(nèi)部的每一個存儲單元的數(shù)據(jù)都為1高電平。4 .系統(tǒng)軟件設(shè)計4.1 時間程序 使用中斷并定時器T0的方式1,時分秒計數(shù),采用24的時鐘表示法,時計滿23那么回0,分秒計滿59那么回0,鍵盤輸入可調(diào),為4*4對地獨立鍵盤中的某三個鍵,其中一個為功能鍵,用于調(diào)整時分秒,另外兩個鍵用于調(diào)節(jié)數(shù)字使之上調(diào)和下調(diào),其中
11、日期可顯示初始化程序,不可調(diào),另外可以顯示星期。初始化時,只需通過P1口中的低兩位讀取5 .調(diào)試5.1 調(diào)試步驟調(diào)試分為硬件調(diào)試和軟件調(diào)試。硬件調(diào)試主要是檢查硬件電路是否有短路、斷路和虛焊等,首先接上電源,電源的指示燈亮了之后,檢測一下單片機的電源腳有沒有電源輸入,如果有這說明焊接無誤,然后可以用萬用表檢查各個元器件的管腳之間的焊接,檢查過程中需要細(xì)心和耐心。硬件調(diào)試無誤后,進(jìn)行軟件調(diào)試。5.2 性能分析將程序燒入單片機后,在proteus軟件中進(jìn)行仿真。經(jīng)過測試制作完成后的電子萬年歷,只有局部功能實現(xiàn),它能顯示年、月、日等,但顯示不穩(wěn)定,設(shè)計中硬件或軟件有待修正。6 .心得首先拿到板子,依據(jù)
12、電路圖和板子,畫電路圖,并生成PCB圖。然后將板子焊接,注意焊接的方法,防止虛焊和過度焊接。在對芯片的管腳功能和用法有充分的了解后,根據(jù)設(shè)計要求設(shè)計硬件電路,包括單片機控制電路、存儲電路、鍵盤掃描電路、顯示電路。然后通過軟件編程,實現(xiàn)了對年、月、日、時、分、秒、星期的自動調(diào)整,用按鍵進(jìn)行控制,用液晶模塊進(jìn)行顯示。用PROTUS仿真實現(xiàn)相關(guān)的軟件仿真,芯片采用最普遍的89C51,用KEIL軟件編寫程序,編寫程序前,可以先查閱網(wǎng)上的相關(guān)資料,比方LCD芯片的原理圖,有關(guān)可以借鑒的程序等。自己編寫,然后生成hex文件,仿真實現(xiàn)。用焊接好的板子,將文件燒錄進(jìn)去,調(diào)試,查錯??赡軙霈F(xiàn)LCD屏幕不顯示,
13、或者出現(xiàn)一行黑一行白的現(xiàn)象,可能是插反了,或者驅(qū)動程序有問題,這時候需要根據(jù)實際的板子的需要,調(diào)整延遲時間,等等。調(diào)試成功。電子萬年歷可以正常顯示時間并進(jìn)行時間調(diào)整,根本完成了預(yù)期要實現(xiàn)的目標(biāo)。附錄1 系統(tǒng)電路原理圖SCH文件選擇自上而下的文件畫法,可能有些器件的擺放有點亂單片機級復(fù)位電路數(shù)碼管和4*4矩陣ISP和電源接口LED燈蜂鳴器和lcd屏頂層文件附錄2,PCB圖附錄四:PCB3D圖附錄3 實物圖附錄4 系統(tǒng)程序清單/*#include<reg51.h>#define uchar unsigned char #define uint unsigned int#include&
14、quot;24c02.h"/*LCM1602 IO口位定義*/sbit RS=P22;sbit RW=P21;sbit EN=P20;/*獨立控制按鍵位定義*/ 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 "/定義初始上電時液晶默認(rèn)顯示狀態(tài)/*延時子函數(shù),延時z毫秒*
15、/ void delay(uint z)uint i,j;for(i=0;i<z;i+)for(j=0;j<110;j+);void di()Speaker=0;delay(400);Speaker=1;/ /*LCD1602有關(guān)子函數(shù)*/*函數(shù)功能:LCD1602寫命令函數(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寫數(shù)據(jù)函數(shù)入口參數(shù):dat出口參數(shù): */void write_data(uchar dat)RS=1
16、;RW=0;EN=0;P0=dat;delay(5);EN=1;delay(5);EN=0;/*函數(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;coun
17、t=0;init_24c02();write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);/日歷顯示固定符號從第一行第1個位置之后開始顯示for(i=0;i<15;i+)write_data(tabi);/向液晶屏寫日歷顯示的固定符號局部delay(5);write_com(0x80+0x40+6);/寫出時間顯示局部的兩個冒號write_data(':');delay(5);write_com(0x80+0x40+9);write_data(':');
18、delay(5);second=read_add(1);/首次上電從AT24C02中讀取出存儲的數(shù)據(jù)minute=read_add(2);hour=read_add(3);DisplayTime(10,second);/分別送去液晶顯示DisplayTime(7,minute);DisplayTime(4,hour);TMOD=0x01;/設(shè)置定時器0工作模式1TH0=(65536-50000)/256;/定時器裝初值TL0=(65536-50000)%256;EA=1;/開總中斷ET0=1;/開定時器0中斷TR0=1;/啟動定時器0/*按鍵掃描4*4獨立對地矩陣*/ /*函數(shù)功能:獨立對地鍵
19、盤掃描入口參數(shù):出口參數(shù): ;*/void KeyScan() if(key1=0)delay(5);if(key1=0)/第一次被按下時key1n+;while(!key1);di();RedLed=0;di();RedLed=1;if(key1n=1)/第一次被按下時TR0=0; /關(guān)閉定時器write_com(0x80+0x40+10);/光標(biāo)定位到秒位置write_com(0x0f); /光標(biāo)開始閃爍if(key1n=2)/第二次按下光標(biāo)閃爍定位到分鐘位置write_com(0x80+0x40+7);if(key1n=3)/第三次按下光標(biāo)閃爍定位到小時位置write_com(0x80+
20、0x40+4);if(key1n=4)/第四次按下key1n=0;/記錄按鍵數(shù)清零write_com(0x0c);/取消光標(biāo)閃爍TR0=1;/啟動定時器使時鐘開始走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è)滿60后將清零second=0;DisplayTime
21、(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=60)/假設(shè)滿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+;/那
22、么調(diào)整小時加1if(hour=24)/假設(shè)滿24后將清零hour=0;DisplayTime(4,hour);/每調(diào)節(jié)一次送液晶顯示一下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ù)改變
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 教師教育戲劇培訓(xùn)
- 2025年高校產(chǎn)學(xué)研合作技術(shù)轉(zhuǎn)移與成果轉(zhuǎn)化在生物技術(shù)產(chǎn)業(yè)知識產(chǎn)權(quán)管理中的應(yīng)用研究報告
- 2025年智能醫(yī)療診斷產(chǎn)品注冊審批法規(guī)解讀與合規(guī)風(fēng)險分析報告001
- 金融科技企業(yè)估值模型2025年構(gòu)建與投資決策策略研究報告001
- 二月份的數(shù)學(xué)試卷
- 直播行業(yè)商業(yè)模式創(chuàng)新與產(chǎn)業(yè)生態(tài)構(gòu)建研究報告
- 復(fù)旦大學(xué)附中數(shù)學(xué)試卷
- 2025年教育科技行業(yè)競爭策略:商業(yè)模式創(chuàng)新與品牌建設(shè)報告
- 二年級語文期中數(shù)學(xué)試卷
- 【課件】生物圈課件-2025-2026學(xué)年人教版生物八年級上冊
- 顧問銷售培訓(xùn)課件
- 2025年高考軍隊院校征集和招錄人員政治考核表(原表)
- TCCEAS001-2022建設(shè)項目工程總承包計價規(guī)范
- 2024年河北省物理組招生計劃
- 中華民族共同體概論課件專家版3第三講 文明初現(xiàn)與中華民族起源(史前時期)
- 振型中的節(jié)點,節(jié)線,節(jié)徑和節(jié)圓
- 虹鱒魚養(yǎng)殖項目可行性研究報告寫作范文
- 工業(yè)清洗劑PPT課件
- 質(zhì)量管理七大手法(英文版)
- 吊籃維保記錄
- 福建義務(wù)教育標(biāo)準(zhǔn)化學(xué)校建設(shè)基本標(biāo)準(zhǔn)
評論
0/150
提交評論