LCD時鐘設計單片機原理課程設計報告_第1頁
LCD時鐘設計單片機原理課程設計報告_第2頁
LCD時鐘設計單片機原理課程設計報告_第3頁
LCD時鐘設計單片機原理課程設計報告_第4頁
LCD時鐘設計單片機原理課程設計報告_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、一、設計任務要求分析本設計要實現(xiàn)的功能是:實時顯示當前的時鐘,并且可以設定鬧鈴和調(diào)整時間,以蜂鳴器鳴響5秒的方式作為鬧鈴。二、設計總體方案及其方案論證按照系統(tǒng)的設計功能所要求的,液晶顯示電子時鐘原理圖如圖所示。液晶顯示電子時鐘原理圖本系統(tǒng)以AT89C51單片機為核心,該單片機可把數(shù)據(jù)進行處理,從而把數(shù)據(jù)傳輸?shù)斤@示模塊LCD1602夜晶顯示器,實現(xiàn)時間及日期的顯示。以LCD液晶顯示器為顯示模塊,把單片機傳來的數(shù)據(jù)顯示出來,并且顯示多樣化,還可以對時間和日期進行設置,主要靠按鍵來實三、硬件設計及描述1、整體結構圖1I匚卜開關部分開關實現(xiàn)校正時間,定鬧鐘左一開關實現(xiàn)校時左二左三開關實現(xiàn)加減右一開關實

2、現(xiàn)鬧鐘定時通過控制鍵來控制所要調(diào)節(jié)的是時、分、還是秒。在控制鍵按下后LCD中會在相應的位置出現(xiàn)光標,這時在通過加數(shù)鍵或減數(shù)鍵來控制時分秒的加或減。在調(diào)鬧鐘鍵按下后LCD中也會在相應的位置出現(xiàn)光標,這時也通過加數(shù)鍵或減數(shù)鍵來設置鬧鐘。液晶顯示屏蜂鳴器IkJ-CCUMDERGUO當單片機的P1A5接口輸出為高電平時,蜂鳴器響,當輸出為低電平時,蜂鳴器停止。復位電路開關為復位鍵晶振電路日理口X11gI選取原則:電容選取22pF,晶振為12MHz2、LCD1602W介LCD160蔽晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等的點陣型液晶模塊,它有若干個5X7者5X1傳點陣字符位組成

3、,每個點陣字符位都可以顯示一個字符。1602LCD!指顯示的每位之間有一個點距的間隔,每行之間也有也有間隔,起到了字符間距和行間距的作用,正因為如此,所以他不能顯示圖形(用自定義CGRAM顯示效果也不好)內(nèi)容為16X2,即可以顯示兩行,每行16個字符液晶模塊(顯示字符和數(shù)字)。目前市面上享符液晶絕大多數(shù)是基于HD4478儆晶芯片的,控制原理是完全相同的,因此基于HD4478%的控制程序可以很方便地應用于市面上大部分的字符型液晶。(1) LCD160的主要技術參數(shù)顯示容量:16X2個字符;芯片工作電壓:4.55.5V;工作電流:2.0mA(5.0V);模塊最佳工作電壓:5.0V;字符尺寸:2.9

4、5X4.35(WXH)mm(2) LCD160間腳功能說明1602LC迎用標準的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明如下:第1腳:VSS為地電源;第2腳:VDDg5V正電源;第3腳:VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個10K的電位器調(diào)整對比度;第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器;第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS?口R/W共同為低電平時可以寫入指令或者顯示地址,當RS為低電平R/W為高電平時可以讀忙信號,當RS為高電平R

5、/W為低電平時可以寫入數(shù)據(jù);第6腳:E端為使能端,當E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令;第714腳:D0-D7,為8位雙向數(shù)據(jù)線;第15腳:背光源正極;第16腳:背光源負極。1602液晶模塊的讀寫操作,屏幕和光標的操作都是通過指令編程來實現(xiàn)的。本顯示電路將單片機的P0口作為液晶的數(shù)據(jù)口,由于P0口沒有上拉電阻,所以需額外加一個排阻作為上拉電阻,利用P1口作為其讀寫控制端。顯示電路3、程序主流程圖主流程圖4、初始化流程圖系統(tǒng)初始化模塊的主要功能是完成系統(tǒng)的初始化以及設定系統(tǒng)的工作狀態(tài),初始化部分包括以下方面的內(nèi)容:(1)單片機定時器0初始化以及各種I/O口定義;(2) 1602液晶初始

6、化清屏及設定工作方式;(3)系統(tǒng)進入正常工作狀態(tài)。初始化流程圖5、延時中斷子程序THO=(65536-46080)/256TLO=(65536-46080)%256定時50msmiao+tshi+U,_.shi=24I是year=0day+>延時中斷子程序6、時間設置子程序這里僅畫出了秒設置流程圖,其他時間及日期設置類似Miao=0Miao=59秒設置流程圖四、測試1、測試方法系統(tǒng)單片機代碼采用C語言編寫,proteus進行原理圖的設計,keil軟件進行代碼的編譯,通過keil與proteus軟件的充分利用,將編譯好的執(zhí)行代碼加載到原理圖中的單片機里面進行原理圖仿真,通過仿真對系統(tǒng)的代碼

7、程序和原理圖進行測試,看是否達到系統(tǒng)的設計要求。2、測試結果(1)通過按調(diào)時健、加減鍵的調(diào)節(jié),我們可以設定出具體的時間1:00:00,觀察LCD液晶屏如圖所示精確顯示出我們所設定的時間時間。r4HB(2)通過按鍵調(diào)節(jié)調(diào)鬧鐘健,我們可以五秒聽到清晰的蜂鳴聲。源程序#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitbeep=P1A5;/定義蜂鳴器的io口sbitrw=P2A1;/定義讀寫的io口sbitrs=P2A0;/定義接收與發(fā)送指令的sbitlcd

8、en=P2A2;/定義使能端的io口sbitk1=P3A0;/定義調(diào)時鍵的io口sbitk2=P3A1;/定義加數(shù)鍵的io口sbitk3=P3A2;/定義減數(shù)鍵的io口sbitk4=P3A3;/定義調(diào)鬧鐘鍵的io口io口ucharcount,count1,num,num1,num2;charh,min,sec,h1,min1,sec1;uchartable="23:59:57”;uchartable1="00:00:00"voiddelay(uintms)/延時程序inti;while(ms-)for(i=0;i<250;i+)_nop_();_nop_()

9、;_nop_();_nop_();delay1(ucharz)/延時程序uintx,y;for(x=z;x>0;x-)for(y=110;y>0;y-);return0;bitwrite_busy()/bitresult;rs=0;rw=1;Icden=1;_nop_();_nop_();_nop_();_nop_();result=(bit)(P0&0x80);lcden=0;returnresult;voidwrite_com(ucharcom)/while(write_busy();rs=0;rw=0;lcden=0;P0=com;_nop_();_nop_();_n

10、op_();_nop_();lcden=1;_nop_();_nop_();_nop_();_nop_();判斷是否為繁忙狀態(tài)寫指令函數(shù)lcden=0;voidwrite_data(uchardate)/while(write_busy();rs=1;rw=0;lcden=0;P0=date;_nop_();_nop_();_nop_();_nop_();lcden=1;_nop_();_nop_();_nop_();_nop_();lcden=0;voidwrite_pos(ucharpos)/write_com(pos|0x80);/voidwrite_sfm(ucharadd,uchar

11、date)/uintshi,ge;shi=date/10;ge=date%10;write_com(0x80+0x40+add);write_data(0x30+shi);write_data(0x30+ge);voidwrite_sfm1(ucharadd,uchardate)/寫數(shù)據(jù)函數(shù)設定地址數(shù)據(jù)指針=80+地址變量設定時分秒及其顯示與地址設置鬧鐘時分秒及其顯示與地址uintshi,ge;shi=date/10;ge=date%10;whte_com(0x80+add);whte_data(0x30+shi);write_data(0x30+ge);voidkeyscan()/鍵盤掃描i

12、f(k1=0)delay1(5);if(k1=0)while(!k1);num+;if(num=1)TR0=0;write_com(0x80+0x40+11);write_com(0x0f);if(num=2)write_com(0x80+0x40+8);if(num=3)write_com(0x80+0x40+5);if(num=4)num=0;write_com(0x0c);TR0=1;if(num!=0)if(k2=0)delay1(5);if(k2=0)while(!k2)if(num=1)sec+;if(sec=60)sec=0;write_sfm(10,sec);whte_com(

13、0x80+0x40+0x10);if(num=2)min+;if(min=60)min=0;write_sfm(7,min);write_com(0x80+0x40+8);if(num=3)h+;if(h=24)h=0;write_sfm(4,h);write_com(0x80+0x40+5);delay1(5);if(k3=0)while(!k3);if(num=1)sec-;if(sec=-1)sec=59;write_sfm(10,sec);whte_com(0x80+0x40+0x10);if(num=2)min-;if(min=-1)min=59;write_sfm(7,min);w

14、rite_com(0x80+0x40+8);if(num=3)h-;if(h=-1)h=23;write_sfm(4,h);write_com(0x80+0x40+5);if(k4=0)delay1(5);while(!k4);num1+;if(num1=1)write_sfm1(10,sec1);write_sfm1(7,min1);write_sfm1(4,h1);if(num1=2)write_com(0x80+11);write_com(0x0f);if(num1=3)write_com(0x80+8);if(num1=4)write_com(0x80+5);if(num1=5)num

15、1=0;write_com(0x0c);write_sfm(10,sec);write_sfm(7,min);write_sfm(4,h);if(num1!=0)delay1(5);if(k2=0)while(!k2)if(num1=2)sec1+;if(sec1=60)sec1=0;write_sfm1(10,sec1);write_com(0x80+0x10);if(num1=3)min1+;if(min1=60)min1=0;write_sfm1(7,min1);write_com(0x80+8);if(num1=4)h1+;if(h1=24)h1=0;write_sfm1(4,h1);

16、write_com(0x80+5);if(k3=0)delay1(5);if(k3=0)while(!k3);if(num1=2)seel-;if(sec1=-1)sec1=59;write_sfm1(10,sec1);write_com(0x80+0x10);if(num1=3)mini-;if(min1=-1)min=59;write_sfm1(7,min1);write_com(0x80+8);if(num1=4)hi-;if(h1=-1)h1=23;write_sfm1(4,h1);write_eom(0x80+5);voidinit()/程序初始化函數(shù)uinti;h=23;min=5

17、9;see=57;h1=00;min1=00;sec1=00;num=0;lcden=0;write_com(0x38);delay(1);write_com(0x0c);/delay(1);write_com(0x06);/delay(1);write_com(0x01);/delay(1);i=0;while(table1i!='0')/write_data(table1i);i+;i=0;write_pos(0x40);while(tablei!='0')/write_data(tablei);i+;TMOD=0x01;/TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;/ET0=1;TR0=1;voidmain()顯示開,關光標移動光標清除LCD的顯示內(nèi)容顯示鬧鐘(靜態(tài))顯示時間(靜態(tài))定時器開啟定時器init();while(1)keyscan();if(min=min1&&

溫馨提示

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

最新文檔

評論

0/150

提交評論