




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、-?單片機原理及應用?課程設計說明書題目LCD12864 液晶顯示電子鐘設計系(部)專業(yè)(班級)*指導教師起止日期課程設計任務書系(部): 專業(yè): 課題名稱LCD12864 液晶顯示電子鐘設計設計要求設計一種基于 AT89S52 單片機的液晶顯示電子時鐘,要求如下:1 、 能正確顯示時間、 日期和星期顯示格式為: 時間: * 小時:* 分:* 秒;日期:* 年:* 月:* 日;星期:*。2 、時間能夠由按鍵調整,誤差小于 1S。3 、 鬧鐘功能: 時間運行到與鬧鐘設定時間時, 鬧鐘響 持續(xù)響 3 秒。4 、 報時功能: 時間運行到正點時間時, 鬧鐘響, 幾點鐘就響幾聲 每聲持續(xù)響 2 秒,每兩
2、聲之間時間間隔 1 秒。液晶顯示器第一行顯示“數字電子鐘 ;第二行顯示“當前時間 ;第三行顯示日期和星期;第四行顯示最近一個鬧鐘的設定時間。2、要求:完成該系統的硬件和軟件的設計,在 Proteus 軟件上仿真通過, 并提交一篇課程設計說明書。設計工作量1、匯編或 C51 語言程序設計;2、程序調試;3、在 Proteus 上進展仿真成功,進展實驗板下載調試;4、提交一份完整的課程設計說明書,包括設計原理、程序設計、程序分析、仿真分析、調試過程,參考文獻、設計總結等。工作方案起止日期工作容第一天 課題紹,答疑,收集材料,C51介紹第二天設計方案論證,練習編寫 C51 程序第三天第六天程序設計第
3、六天第八天程序調試、仿真第九天第十天系統測試并編寫設計說明書教研室意見 年 月 日系部主管領導意見 年 月 日目錄一、12864液晶的工作原理5二、方案設計52.1 實物硬件設計52.2 系統硬件設計62.2.1 主芯片模塊62.2.2 晶振和復位模塊62.2.3 按鈕模塊72.3 系統軟件設計72.3.1 主程序設計7三、仿真和分析8四、總結體會9參考文獻10一、12864液晶的工作原理液晶顯示屏中的業(yè)態(tài)光電顯示材料,利用液晶的電光效應把電信號轉換成數字符、圖像等可見信號。如圖1-1,液晶正常情況下,其分子排列很有秩序,顯得清澈透明,一旦加上直流電場后,分子的排列被打亂,一局部液晶變的不透明
4、,顏色加深因而能顯示數字和圖像。管腳一共1個CS1左半屏片選端,CS2右半屏片選端;V0液晶顯示驅動電壓,通過一個電位器接到VCC;RS數據指令選擇信號,H為數據,L為指令,也叫D/I;R/W讀寫選擇信號,H為讀,L為寫,。E為LCD使能端,R/W為L時,E信號下降沿鎖存DB7-DB0;R/W為H時,E為H,DDRAM數據讀到DB7-DB0。DB0-DB7數據傳輸端口。RST復位信號。-VOUT和V0為液晶顯示驅動電壓。 12864是一種圖形點陣液晶顯示器,它主要由行驅動器/列驅動器及12864全點陣液晶顯示器組成??赏瓿蓤D形顯示,也可以顯示84個(1616點陣)漢字。 圖1-1 12864L
5、CD液晶顯示屏二、方案設計2.1 實物硬件設計 單片機控制液晶顯示屏系統總共可分為六個環(huán)節(jié),分別是單片機控制系統、12864字符顯示模塊、控制開關模塊、晶振控制模塊、復位電路模塊和DS1302時鐘控制模塊。通過這六個模塊的協調工作就可以完成相應的液晶屏控制和顯示功能。這六個模塊的相互連接如圖2-1: 圖2-1 硬件組成框圖2.2 系統硬件設計本硬件電路主要由四大模塊組成:主芯片模塊;晶振和復位電路模塊;控制接鈕模塊;顯示電路模塊。2.2.1 主芯片模塊 主芯片模塊即單片機模塊,*TAL1:接外部晶振和微調電容的一端。在片,它是振蕩電路反相放大器的輸入端。*TAL2:接外部晶振和微調是容的一端。
6、RST:AT89C51的復位信號輸入引腳,高電平有效。當此輸入端保持兩個機器周期的高電平時,就可以完成復位操作。ALE:允許地址鎖存信號端。EA:該引腳為低電平時,則讀取外部的程序代碼來執(zhí)行程序。P0、P1、P2、P3:8位并行輸入輸出口。每個端口都是8位準雙向口,共占32只引腳。每一條都能獨立地用作輸入或輸出。每個端口都包括一個鎖存器、一個輸出驅器和輸入緩沖器。作輸出時,數據可以鎖存;作輸入時,數據可以緩沖。圖如圖31。 圖3-1 單片機引腳圖2.2.2 晶振和復位模塊 89C51芯片部有一個高增益反相放大器,用于構成振蕩器。如圖32,反相放大器的輸入端為*TAL1,輸出端*TAL2,兩個跨
7、接石英晶體及兩個電容就可以構成穩(wěn)定的自激振蕩器。*TAL1 是片振蕩器的反相放大器輸入端,*TAL2 則是輸出端,使用外部振蕩器時,外部振蕩信號應直接加到*TAL1,而*TAL2 懸空。一個晶體振蕩器,接在單片機部的振蕩電路上,兩個電容是起振電容,頻率越高,應該越小。 圖4-1 晶振模塊 在振蕩器運行時,有兩個機器周期24 個振蕩周期以上的高電平出現在此引腳時,將使單片機復位,只要這個腳保持高電平,51 芯片便循環(huán)復位。復位后P0P3 口均置1 引腳表現為高電平,程序計數器和特殊功能存放器SFR 全部清零。當復位腳由高電平變?yōu)榈碗娖綍r,芯片為ROM 的00H 處開場運行程序。如上圖5-1所示復
8、位電路,由于復位時高電平有效,當剛接上電源的瞬間,電容C1兩端相當于短路,即相當于給RESET引腳一個高電平,等充電完畢時這個時間很短暫,電容相當于斷開,這時已經完成了復位動作。 圖5-1 復位模塊2.2.3 按鈕模塊 本模塊采用四個按鈕進展控制,通過串行口輸入輸出連接,當K1按鍵波動一次后,方可進展年、月、日、星期、時、分的改變,當循環(huán)滿時,按下K0可實現對鬧鐘的改變。按鍵K2、K3分別實現加一減一的操作。 圖6-1 按鈕模塊2.3 系統軟件設計2.3.1 主程序設計圖7-1 主程序流程圖 圖8-1 LCD顯示程序和初始化子程序流程圖三、仿真和分析將程序下載到單片機開發(fā)板上,LCD12864
9、顯示如以下圖,第一行為漢字“數字電子鐘,第二行為時分秒,第三行為年月日以及星期,第四行為鬧鐘,通過按鍵可實現時間的調整,也可實現整點報時和鬧鐘。符合設計要求。圖9-1 實物仿真圖程序:*include*include*include*define uchar unsigned char*define uint unsigned intsbit rs=P10;/12864引腳定義sbit rw=P11;sbit en=P12;sbit PSB=P13;sbit beep=P34;/蜂鳴器引腳定義sbit k1=P35;/按鍵定義sbit k2=P36;sbit k3=P37;sbit k0=P0
10、0;uint t,k,kk;uchar shi,fen,miao,nian=13,yue,ri,zhou,shi0,fen0,miao0;uchar code dis1=0*ca,0*fd,字電子鐘;/顯示字組uchar code dis2=00時00分00秒;uchar code dis3=00年00月00日 1;uchar code dis4=鬧鐘00時00分00秒;void delayms(uint *ms)/延時*ms函數uchar i,j;for(i=*ms;i0;i-)for(j=110;j0;j-);void warn(uchar *n)/“嘟*n次函數uint nn;for(n
11、n=0;nn0;n-)beep=1;delayms(1);beep=0;delayms(2);for(n=1000;n0;n-)beep=1;delayms(3);void warn3s()/3s報警函數uint n;for(n=3000;n0;n-)beep=0;delayms(2);beep=1;delayms(1); void write_(uchar )/12864寫指令函數rs=0;rw=0;en=0;P2=;delayms(5);en=1;delayms(5);en=0;void write_data(uchar date)/12864數據指令函數rs=1;rw=0;en=0;P2
12、=date;delayms(5);en=1;delayms(5);en=0;void lcd_pos(uchar *,uchar Y)/12864顯示位置函數uchar pos;if(*=0)*=0*80;if(*=1)*=0*90;if(*=2)*=0*88;if(*=3)*=0*98;pos=*+Y;write_(pos);void write_sfm(int add,uint date)/時鐘數值函數uchar shi,ge;shi=date/10;ge=date%10;lcd_pos(1,0+add);write_data(0*30+shi);write_data(0*30+ge);v
13、oid write_sfm1(int add1,uint date1)/年月日數值函數uchar shi,ge;shi=date1/10;ge=date1%10;lcd_pos(2,0+add1);write_data(0*30+shi);write_data(0*30+ge);void write_sfm2(int add2,uint date2)/鬧鐘數值函數uchar shi,ge;shi=date2/10;ge=date2%10;lcd_pos(3,0+add2);write_data(0*30+shi);write_data(0*30+ge);void keyscan()/按鍵掃描函
14、數if(k0=0)/鬧鐘按鍵操作delayms(5);if(k0=0)while(!k0);kk+;if(kk=1)TR0=0;write_(0*0f);lcd_pos(3,2);if(kk=2)lcd_pos(3,4);if(kk=3)lcd_pos(3,6);if(kk=4)kk=0;TR0=1;write_(0*0c);if(k1=0)/調試按鍵操作delayms(5);if(k1=0)k+;while(!k1);if(k=1)TR0=0;write_(0*0f);lcd_pos(1,4);if(k=2)lcd_pos(1,2);if(k=3)lcd_pos(1,0);if(k=4)lc
15、d_pos(2,4);if(k=5)lcd_pos(2,2);if(k=6)lcd_pos(2,0);if(k=7)lcd_pos(2,7);if(k=8)k=0;write_(0*0c);TR0=1;if(k!=0)if(k2=0)/“+1按鍵操作delayms(5);if(k2=0)while(!k2);if(k=1)miao+;if(miao=60)miao=0;write_sfm(4,miao);lcd_pos(1,4);/write_sfm(4,miao);if(k=2)fen+;if(fen=60)fen=0;write_sfm(2,fen);lcd_pos(1,2);/write
16、_sfm(2,fen);if(k=3)shi+;if(shi=24)shi=0;write_sfm(0,shi);lcd_pos(1,0);/write_sfm(0,shi);if(k=4)ri+;if(ri=32)ri=1;write_sfm1(4,ri);lcd_pos(2,4);/write_sfm1(4,ri);if(k=5)yue+;if(yue=13)yue=1;write_sfm1(2,yue);lcd_pos(2,2);/write_sfm1(2,yue);if(k=6)nian+;if(nian=50)nian=0;write_sfm1(0,nian);lcd_pos(2,0
17、);/write_sfm1(0,nian);if(k=7)zhou+;if(zhou=8)zhou=0;write_sfm1(7,zhou);lcd_pos(2,7);/write_sfm1(7,zhou);if(k3=0)/“-1按鍵操作delayms(5);if(k3=0)while(!k3);if(k=1)miao-;if(miao=-1)miao=59;write_sfm(4,miao);lcd_pos(1,4);/write_sfm(4,miao);if(k=2)fen-;if(fen=-1)fen=59;write_sfm(2,fen);lcd_pos(1,2);/write_sf
18、m(2,fen);if(k=3)shi-;if(shi=-1)shi=23;write_sfm(0,shi);lcd_pos(1,0);/write_sfm(0,shi);if(k=4)ri-;if(ri=-1)ri=31;write_sfm1(4,ri);lcd_pos(2,4);/write_sfm1(4,ri);if(k=5)yue-;if(yue=-1)yue=12;write_sfm1(2,yue);lcd_pos(2,2);/write_sfm1(2,yue);if(k=6)nian-;if(nian=-1)nian=50;write_sfm1(0,nian);lcd_pos(2,
19、0);/write_sfm1(0,nian);if(k=7)zhou-;if(zhou=-1)zhou=7;write_sfm1(7,zhou);lcd_pos(2,7);/write_sfm1(7,zhou);if(k=0)if(k2=0)delayms(5);if(k2=0)while(!k2);if(kk=3)miao0+;if(miao0=60)miao0=0;write_sfm2(6,miao0);lcd_pos(3,6);/write_sfm2(6,miao0);if(kk=2)fen0+;if(fen0=60)fen0=0;write_sfm2(4,fen0);lcd_pos(3
20、,4);/write_sfm2(4,fen0);if(kk=1)shi0+;if(shi0=24)shi0=0;write_sfm2(2,shi0);lcd_pos(3,2);/write_sfm2(2,shi0);if(k3=0)delayms(5);if(k3=0)while(!k3);if(kk=3)miao0-;if(miao0=-1)miao0=59;write_sfm2(6,miao0);lcd_pos(3,6);/write_sfm2(6,miao0);if(kk=2)fen0-;if(fen0=-1)fen0=59;write_sfm2(4,fen0);lcd_pos(3,4)
21、;/write_sfm2(4,fen0);if(kk=1)shi0-;if(shi0=-1)shi0=23;write_sfm2(2,shi0);lcd_pos(3,2);/write_sfm2(2,shi0);void init()/初始化函數12864初始化,定時器初始化PSB=1;write_(0*30);delayms(5);write_(0*0c);delayms(5);write_(0*01);delayms(5);TH0=(65535-50000)/256;TL0=(65535-50000)%256;TMOD=0*01;ET0=1;EA=1;TR0=1;void main()/主
22、函數uchar i;delayms(10);init();lcd_pos(0,2);/第一排顯示i=0;while(dis1i!=0)write_data(dis1i);i+;lcd_pos(1,0);/第二排顯示i=0;while(dis2i!=0)write_data(dis2i);i+;lcd_pos(2,0);/第三行顯示i=0;while(dis3i!=0)write_data(dis3i);i+;lcd_pos(3,0);/第四行顯示i=0;while(dis4i!=0)write_data(dis4i);i+;while(1)keyscan();if(miao=0&fen=0&T
23、R0=1)/整點報時判斷warn(shi);if(miao=miao0&fen=fen0&shi=shi0&TR0=1)/鬧鐘判斷warn3s();if(miao=0&fen=0&miao=miao0&fen=fen0&shi=shi0&TR0=1)/整點報時、鬧鐘時沖突操作warn3s();while(1);void timer() interrupt 1/定時器函數TH0=15535/256;TL0=15535%256;t+; /50ms計數一次if(t=20)t=0;miao+;if(miao=60)miao=0;fen+;if(fen=60)fen=0;shi+;if(shi=24)s
24、hi=0;zhou+;if(zhou=8)zhou=1;ri+;if(yue=1|yue=3|yue=5|yue=7|yue=8|yue=10|yue=12)if(ri=32)ri=1;yue+;if(yue=13)yue=1;nian+;if(yue=4|yue=6|yue=9|yue=11)if(ri=31)ri=1;yue+;if(yue=13)yue=1;nian+;if(yue=2)if(nian%4)=0)if(ri=30)ri=1;yue+;if(yue=13)yue=1;nian+;if(nian%4)!=0)if(ri=29)ri=1;yue+;if(yue=13)yue=1
25、;nian+;write_sfm1(0,nian);write_sfm1(2,yue);write_sfm1(7,zhou);write_sfm1(4,ri);write_sfm(0,shi);write_sfm(2,fen);write_sfm(4,miao);四、總結體會 通過這為期兩個星期的課程設計,我從中認識到了自己很多方面的缺乏。在第一個星期的課程設計中,是通過proteus仿真來實現要求中的各種功能。由于自己課余時間沒有對單片機相關的知識進展深入了解,所以在開場做設計時,無從下手,不知道該怎么布置仿真圖,更不知道怎么通過寫程序來實現課題要求。不過有的課題可以參考課本上的程序,例如彩
26、燈中斷,就是在課本上流水燈的根底上參加一個中斷程序,不過中斷程序加在何處自己還是有一點疑惑,通過翻閱課本上有關中斷方面的知識后,了解了中斷系統的構造及工作原理,再參加了中斷程序后,程序還是有一點小問題,在請教了同學之后,找到了問題所在,修改程序以后實現了要求。而串轉并,在以前的實驗中做過類似的,所以整體比較順利。利用彩燈計數一開場不太明白這個要求的意思,請教了同學才明白要求的意思。根據二進制的計算轉化成彩燈的亮滅,雖然程序很短,但我心里還是有很大的成就感。在做方波的輸出時,在寫程序之前參考了一下同學的程序,搞懂了原理,才完成了設計。在這之后,有關于LCD的設計,在這之前,還沒有接觸過LCD,所以上網查了一下有關資料,了解了其構造和工作
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 阿克蘇職業(yè)技術學院《表演劇目排練(一)》2023-2024學年第二學期期末試卷
- 隴南地區(qū)宕昌縣2024-2025學年小升初易錯點數學檢測卷含解析
- 陜西國防工業(yè)職業(yè)技術學院《耳鼻喉科學》2023-2024學年第二學期期末試卷
- 陜西學前師范學院《營養(yǎng)制品工藝學》2023-2024學年第二學期期末試卷
- SCI論文寫作與投稿 第2版-課件 8-SCI論文參考文獻引用
- 陜西理工大學《自彈自唱與伴奏》2023-2024學年第二學期期末試卷
- 陜西省商洛市第3中學2025年高中畢業(yè)生第一次統一復習檢測試題生物試題含解析
- 高校黨風廉政建設責任制考評機制研究匯報0321new
- 陜西省漢中市2025屆高三下期中教學情況調研歷史試題含解析
- 陜西省渭南三賢中學2024-2025學年高三第三次模擬生物試題試卷含解析
- 基礎會計學課件 第九章 財產清查
- 采購活動中的道德規(guī)范試題及答案
- 2025年高考統編版歷史二輪復習講座《分省命題時代的備考、教學與命題 》
- 2025年二級建造師礦業(yè)工程真題卷(附解析)
- 2025-2030中國叔丁基硫醇(TBM)市場現狀調查及發(fā)展戰(zhàn)略研究研究報告
- 火災調查報告范文
- 2025年上半年福建莆田市市直事業(yè)單位定向招考未就業(yè)隨軍家屬6人重點基礎提升(共500題)附帶答案詳解
- 【初中語文】第16課《有為有不為》教學課件2024-2025學年統編版語文七年級下冊
- (一模)青島市2025年高三年級第一次適應性檢測地理試卷(含標準答案)
- 2025年鐵嶺衛(wèi)生職業(yè)學院單招職業(yè)技能測試題庫學生專用
- 廣告投放預算分配情況統計表(按預算項目)
評論
0/150
提交評論