C51單片機LCD電子時鐘課程教學(xué)設(shè)計_第1頁
C51單片機LCD電子時鐘課程教學(xué)設(shè)計_第2頁
C51單片機LCD電子時鐘課程教學(xué)設(shè)計_第3頁
C51單片機LCD電子時鐘課程教學(xué)設(shè)計_第4頁
C51單片機LCD電子時鐘課程教學(xué)設(shè)計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄、設(shè)計任務(wù)要求分析設(shè)計總體方案及其方案論證組成電路介紹2.1復(fù)位電路:22晶振電路:2.3鍵盤控制系統(tǒng)設(shè)計:2.4鬧鐘部分:2.5顯示電路設(shè)計2.5.1 LCD1602 簡介、軟件設(shè)計3.1程序主流程圖3.2初始化流程圖3.3延時中斷子程序3.4時間設(shè)置子程序四、系統(tǒng)測試4.1測試方法4.2測試結(jié)果4.3結(jié)果分析五、源程序一、設(shè)計任務(wù)要求分析本設(shè)計要實現(xiàn)的功能是:實時顯示當(dāng)前的時鐘,并且可以設(shè)定鬧鈴,以蜂鳴器鳴 響5秒的方式作為鬧鈴。1.1設(shè)計總體方案及其方案論證按照系統(tǒng)的設(shè)計功能所要求的,液晶顯示電子時鐘原理圖如圖所示。鍵盤電路液晶顯示電子時鐘原理圖本系統(tǒng)以AT89C51單片機為核心,該

2、單片機可把數(shù)據(jù)進行處理,從而把數(shù)據(jù)傳輸 到顯示模塊LCD1602液晶顯示器,實現(xiàn)時間及日期的顯示。以LCD液晶顯示器為顯示模塊,把單片機傳來的數(shù)據(jù)顯示出來,并且顯示多樣化,還可以對時間和日期進行設(shè) 置,主要靠按鍵來實現(xiàn)。、組成電路介紹2.1復(fù)位電路:one二籃二ClU1KI1復(fù)位電路復(fù)位電路有兩種方式:上電復(fù)位和按鈕復(fù)位,我們主要用按鈕復(fù)位方式。如圖所 示:22晶振電路:晶振電路如圖所示:晶振模塊原理圖選取原則:電容選取22 pF,晶振為12MHz1) 電源:AT89S51單片機的供電電源是5V的直流電。2) EA非 /Vpp 腳:我們沒有用外部擴展ROM因此EA非/Vpp為高電平,即接+5V

3、電源。2.3鍵盤控制系統(tǒng)設(shè)計:按鍵需要4個,分別實現(xiàn)為時間調(diào)整、時間的加、時間的減、鬧鐘調(diào)整四個功能。 用單片機的4個I/O 口接收控制信號,其電路如圖所示:按鍵調(diào)時電路通過控制鍵來控制所要調(diào)節(jié)的是時、分、還是秒。在控制鍵按下后LCD中會在相 應(yīng)的位置出現(xiàn)光標(biāo),這時在通過加數(shù)鍵或減數(shù)鍵來控制時分秒的加或減。在調(diào)鬧鐘鍵 按下后LCD中也會在相應(yīng)的位置出現(xiàn)光標(biāo),這時也通過加數(shù)鍵或減數(shù)鍵來設(shè)置鬧鐘。2.4鬧鐘部分:鬧鐘部分主要由蜂鳴器,三極管,電阻組成。其電路圖如圖所示:RiTH4P-I4LSI鬧鐘電路當(dāng)單片機的P15接口輸出為高電平時,蜂鳴器響,當(dāng)輸出為低電平時,蜂鳴器 停止。2.5顯示電路設(shè)計2

4、.5.1 LCD1602 簡介LCD160液晶也叫1602字符型液晶,它是一種專門用來顯示字母、數(shù)字、符號等 的點陣型液晶模塊,它有若干個5X7或者5X11等點陣字符位組成,每個點陣字符位都 可以顯示一個字符。每位之間有一個點距的間隔,每行之間也有也有間隔,起到了字 符間距和行間距的作用,正因為如此,所以他不能顯示圖形(用自定義CGRA M顯示效果也不好)。1602LCDI指顯示的內(nèi)容為16X2,即可以顯示兩行,每行16個字符液 晶模塊(顯示字符和數(shù)字)。目前市面上字符液晶絕大多數(shù)是基于HD4478液晶芯片的,控制原理是完全相同的,因此基于 HD4478寫的控制程序可以很方便地應(yīng)用于市 面上大

5、部分的字符型液晶。(1) LCD1602勺主要技術(shù)參數(shù)顯示容量:16 X 2個字符;芯片工作電壓:4.5 5.5V;工作電流:2.0mA(5.0V);模塊最佳工作電壓:5.0V;字符尺寸:2.95 X 4.35(WX H)mm(2) LCD1602引腳功能說明VSS為地電源;VDD接 5V正電源;VL為液晶顯示器對比度調(diào)整端,接正電源時對比度最弱,接地時對比1602LCD采用標(biāo)準(zhǔn)的14腳(無背光)或16腳(帶背光)接口,各引腳接口說明 如下:第1腳第2腳第3腳 度最高,對比度過高時會產(chǎn)生“鬼影”,使用時可以通過一個 10K的電位器調(diào)整對比 度;第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、

6、低電平時選擇指令寄存 器;第5腳:R/W為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當(dāng)RS和R/W共同為低電平時可以寫入指令或者顯示地址,當(dāng)RS為低電平R/W為高電平時可以讀忙信號,當(dāng)RS為高電平R/W為低電平時可以寫入數(shù)據(jù);第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時,液晶模塊執(zhí)行命令; 第714腳:D0D7,為8位雙向數(shù)據(jù)線;第15腳:背光源正極;第16腳:背光源負(fù)極。本顯1602液晶模塊的讀寫操作,屏幕和光標(biāo)的操作都是通過指令編程來實現(xiàn)的。示電路將單片機的P0口作為液晶的數(shù)據(jù)口,由于P0 口沒有上拉電阻,所以需額外加 一個排阻作為上拉電阻,利用 P1 口作為其讀寫控制端,

7、具體電路如圖。LCD1比IWL顯示電路三、軟件設(shè)計軟件設(shè)計是本次設(shè)計中不可缺少的環(huán)節(jié),是本次設(shè)計能夠完成的最重要的環(huán)節(jié)之0在完成了硬件電路的設(shè)計之后,依據(jù)系統(tǒng)設(shè)計要求和硬件電路開始系統(tǒng)軟件部分最后進行各模塊的整合以完成整個軟件系統(tǒng)。的設(shè)計。本系統(tǒng)軟件設(shè)計包括:主程序、系統(tǒng)初始化子程序、延時中斷子程序、時間 設(shè)置子程序。首先進行模塊設(shè)計,3.1程序主流程圖主流程圖3.2初始化流程圖系統(tǒng)初始化模塊的主要功能是完成系統(tǒng)的初始化以及設(shè)定系統(tǒng)的工作狀態(tài),初始化部分包括以下方面的內(nèi)容:(1)單片機定時器0初始化以及各種I/O 口定義;(2)1602液晶初始化清屏及設(shè)定工作方式;(3)系統(tǒng)進入正常工作狀態(tài)。

8、初始化流程圖C開始3.3延時中斷子程序開始THO=(65536-46080)/256TLO=(65536-46080)%256 定時50msyear=Oe:;5oun t=20;ZA否 zx*1 miao+ *1 fen+ year+ fmon th+ 卜是4 shi+ 丄fen=60是day+ 卜延時中斷子程序3.4時間設(shè)置子程序這里僅畫出了秒設(shè)置流程圖,其他時間及日期設(shè)置類似。開始、S2按下下丄按3SMiao+Miao=0Miao>=60 I Miao-1Miao<0IMiao=59門I送液晶顯示1秒設(shè)置流程圖四、系統(tǒng)測試4.1測試方法系統(tǒng)單片機代碼采用C語言編寫,Proteu

9、s進行原理圖的設(shè)計,keil軟件進行代 碼的編譯,通過keil與proteus軟件的充分利用,將編譯好的執(zhí)行代碼加載到原理 圖中的單片機里面進行原理圖仿真,通過仿真對系統(tǒng)的代碼程序和原理圖進行測試, 看是否達到系統(tǒng)的設(shè)計要求。4.2測試結(jié)果(1)通過按調(diào)時健、加減鍵的調(diào)節(jié),我們可以設(shè)定出具體的時間1 : 00: 00,觀察LCD液晶屏如圖所示精確顯示出我們所設(shè)定的時間時間。vtC II t-lpl-CaH-*TXi' 旺皿匕H±je3 4- IT15/CT rz r-rCT r-°-1.11Lw es r: w I -I 代 TiK_>kn 5k. m07弋-

10、r?+-P-H.帚+-I 11=4r-nPkt-4m 1-r-n -PC -'Lceir IRFti- A1愕* 憧1(2)通過按鍵調(diào)節(jié)調(diào)鬧鐘健,我們可以五秒聽到清晰的蜂鳴聲。4.3結(jié)果分析通過對系統(tǒng)原理圖和程序的仿真與調(diào)試基本實現(xiàn)了系統(tǒng)的功能要求??梢酝ㄟ^按鍵(mode來設(shè)定具體時間、鬧鐘。LCD液晶顯示屏能夠準(zhǔn)確而且清晰地顯示出時間。五、源程序#in clude<reg51.h>#in clude< intrin s.h>#defi ne uchar un sig ned char#defi ne uint un sig ned intsbit beep=P

11、 1人5;sbit rw=P 2人1;sbit rs=P 2人0;/sbit Icde n=P 2人2;/ sbit k1= P3A0;sbit k2=P3A1;sbit k3=P 3人2;sbit k4=P3A3;定義蜂鳴器的io 口 定義讀寫的io 口/定義接收與發(fā)送指令的 定義使能端的io 口/定義調(diào)時鍵的/定義加數(shù)鍵的/定義減數(shù)鍵的io 口io 口io 口io 口/定義調(diào)鬧鐘鍵的io 口uchar coun t,co un t1, num,nu m1, num2; char h,min, sec,h1, min 1,sec1;uchar table=" 23:59:57&qu

12、ot;uchar table1="00:00:00"void delay(ui nt ms)/延時程序int i;while(ms-)for(i = 0; i< 250; i+)_n op_();_n op_();_n op_();_n op_(); delay1(uchar z)uint x,y;for(x=z;x>0;x-) for(y=110;y>0;y-); return 0;bit write_busy()bit result; rs = 0; rw = 1; lcde n = 1; _no p_(); _no p_(); _no p_(); _

13、no p_();result = (bit)( P0&0 x80); lcde n= 0; return result;void write_com(uchar com) " while(write_busy(); rs=0; rw=0;lcde n=0;P0=com;_n op_();_n op_();_n op_(); _n op_(); lcde n=1; _n op_();_n op_();_n op_(); _n op_(); lcde n=0;/延時程序/判斷是否為繁忙狀態(tài)寫指令函數(shù)void write_data(uchar date) "while(w

14、rite_busy();rs=1;rw=0;lcde n=0;P 0=date;_n op_();_n op_();_n op_();_n op_();lcde n=1;_n op_();_n op_();_n op_();_n op_();lcde n=0;void write_ po s(uchar p os) "write_co m(pos | 0x80);void write_sfm(uchar add,uchar date) / uint shi,ge;shi=date/10;ge=date%10; write_com(0x80+0x40+add);write_data(0

15、x30+shi);write_data(0x30+ge);void write_sfm1(uchar add,uchar date) / uint shi,ge;shi=date/10;ge=date%10; write_com(0x80+add);write_data(0x30+shi);write_data(0x30+ge);/寫數(shù)據(jù)函數(shù)設(shè)定地址數(shù)據(jù)指針=80+地址變量設(shè)定時分秒及其顯示與地址設(shè)置鬧鐘時分秒及其顯示與地址void keysca n()if(k1=0)/鍵盤掃描if(k1=0)while(!k1);nu m+;if(num=1)TR0=0;write_com(0x80+0x4

16、0+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(nu m!=0) if(k2=0)delay1(5);if(k2=0)while(!k2)if(num=1)sec+;if(sec=60)sec=0;write_sfm(10,sec);wnte_com(0x80+0x40+0x10);"if(num=2) mi n+;if(min=60) mi n=0;wnte_sfm(7,mi n)

17、;write_com(0x80+0x40+8);if(num=3)h+;if(h=24)h=0;write_sfm(4,h);write_com(0x80+0x40+5);if(k3=0)delay1(5);if(k3=0)while(!k3);if(num=1)sec-;if(sec=-1)sec=59;write_sfm(10,sec);wnte_com(0x80+0x40+0x10); if(num=2)min-;if(mi n=-1)min=59;write_sfm(7,mi n);write_com(0x80+0x40+8);if(num=3)h-;if(h=-1)h=23;writ

18、e_sfm(4,h);write_com(0x80+0x40+5); if(k4=0)if(k4=0)while(!k4);nu m1+;if(nu m1=1)write_sfm1(10,sec1); write_sfm1(7,mi n1);write_sfm1(4,h1);if(n um1=2) write_com(0x80+11);write_com(0x0f);if(n um1=3)write_com(0x80+8);if(nu m1=4)write_com(0x80+5);if(nu m1=5)nu m1=0; write_com(0x0c); write_sfm(10,sec); w

19、rite_sfm(7,mi n);write_sfm(4,h);"if(nu m1!=0)if(k2=0)delay1(5);if(k2=0)while(!k2)if(n um1=2)sec1+;if(sec1=60)sec1=0; write_sfm1(10,sec1); wnte_com(0x80+0x10);if(nu m1=3)mi n1+;if(mi n1=60)mi n1=0;write_sfm1(7,mi n1);write_com(0x80+8);if(nu m1=4)h1+;if(h1=24)h1=0;write_sfm1(4,h1);write_com(0x80+

20、5);if(k3=0) delay1(5);if(k3=0)while(!k3);if(n um1=2)sec1-;if(sec1=-1)sec1=59;write_sfm1(10,sec1);write_com(0x80+0x10);if(n um1=3)mi n1-;if(mi n1=-1)min=59;write_sfm1(7,mi n1);write_com(0x80+8);if(nu m1=4)h1-;if(h1=-1)h1=23;write_sfm1(4,h1);write_com(0x80+5); void in it() uint i; h=23; min=59;sec=57; h1=00; min 1=00; sec1=00;num=0; lcde n=0; write_com(0x38); delay(1); write_com(0x0c); delay(1); write_com(0x06)

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論