基于LCD顯示的倒計(jì)時(shí)系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于LCD顯示的倒計(jì)時(shí)系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于LCD顯示的倒計(jì)時(shí)系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于LCD顯示的倒計(jì)時(shí)系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于LCD顯示的倒計(jì)時(shí)系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、電子信息與通信工程專(zhuān)業(yè)訓(xùn)練課程設(shè)計(jì)報(bào)告基于lcd顯示的倒計(jì)時(shí)系統(tǒng)設(shè)計(jì)學(xué)生姓名: 呂金龍 指導(dǎo)教師: 田芳明 所在學(xué)院: 信息技術(shù)學(xué)院 專(zhuān) 業(yè): 電子信息 中國(guó)大慶2009 年 11 月 信息技術(shù)學(xué)院課 程 設(shè) 計(jì) 任 務(wù) 書(shū) 信息技術(shù) 院 電子 專(zhuān)業(yè) 06 級(jí),學(xué)號(hào) 20064075101 姓名 呂金龍 一、課程設(shè)計(jì)課題:基于lcd顯示的倒計(jì)時(shí)系統(tǒng)設(shè)計(jì)二、課程設(shè)計(jì)工作日自 年 月 日至 年 月 日三、課程設(shè)計(jì)進(jìn)行地點(diǎn): 信息院電子協(xié)會(huì) 204室 四、 程設(shè)計(jì)任務(wù)要求: (詳細(xì)內(nèi)容見(jiàn)課程設(shè)計(jì)文檔)1.課題來(lái)源: 根據(jù)信息技術(shù)學(xué)院06級(jí)學(xué)生的課程安排選題,指導(dǎo)老師田芳明提供的課程設(shè)計(jì)題目。2.目的

2、意義: 了解單片機(jī)的工作原理,掌握基本的編程方法及單片機(jī)的外圍電路設(shè)計(jì)。提高個(gè)人的上網(wǎng)及翻閱相關(guān)書(shū)籍查找資料的能力,進(jìn)一步了解硬件設(shè)計(jì)的全過(guò)程及常用畫(huà)圖軟件protel的使用,并對(duì)已學(xué)過(guò)的基礎(chǔ)知識(shí)能有更深入的理解。3.基本要求: 按秒倒計(jì)時(shí),鍵盤(pán)預(yù)置分、秒各兩位,鍵控啟動(dòng)計(jì)時(shí),在lcd顯示器中顯示倒計(jì)時(shí)時(shí)間,計(jì)時(shí)器歸零時(shí)輸出一音頻信號(hào)提示; 要求誤差 0.5s;采用51或或凌陽(yáng)單片機(jī)設(shè)計(jì);主機(jī)采用220v市電供電,直流穩(wěn)壓電源自行設(shè)計(jì);輔助電路及元器件自選;課程設(shè)計(jì)評(píng)審表指導(dǎo)教師評(píng)語(yǔ):成績(jī): 簽字: 日期: 16目錄 1 設(shè)計(jì)任務(wù)要求. 42 方案比較. 43單元電路設(shè)計(jì) .4 4元件選擇(要

3、求計(jì)算元件參數(shù)).7 5整體電路(標(biāo)出原元件型號(hào)和參數(shù)、畫(huà)出必要波形圖)76說(shuō)明電路工作原理 87 困難問(wèn)題及解決措施.158 總結(jié)與體會(huì)159 致謝.1510參考文獻(xiàn).16一、 設(shè)計(jì)任務(wù)要求1.1 按秒倒計(jì)時(shí),鍵盤(pán)預(yù)置分、秒位,鍵控啟動(dòng)計(jì)時(shí),在lcd顯示器中顯示倒計(jì)時(shí)時(shí)間,計(jì)時(shí)器歸零時(shí)輸出一音頻信號(hào)提示。1.2 要求誤差小于0.5s。1.3 采用51或凌陽(yáng)單片機(jī)設(shè)計(jì)。1.4 主機(jī)采用220v市電供電,直流穩(wěn)壓源自行設(shè)計(jì)。1.5 輔助電路及元器件自選。1.6 設(shè)計(jì)硬件線路,用protel畫(huà)圖。1.7 按單元電路詳細(xì)說(shuō)明硬件線路設(shè)計(jì)思路,元件參數(shù),選取根據(jù)。附元件清單。1.8 有完整的程序流程圖

4、,包括總流程圖和各模塊流程圖。對(duì)程序設(shè)計(jì)思想做詳細(xì)說(shuō)明。1.9 有完整的程序清單,并加注釋。二、 方案比較方案1: 采用51單片機(jī)作主控器件,74hc245做驅(qū)動(dòng),驅(qū)動(dòng)led數(shù)碼管顯示倒計(jì)時(shí)的分、秒數(shù)字信息,采用led數(shù)碼管顯示的優(yōu)點(diǎn)是程序設(shè)計(jì)相對(duì)簡(jiǎn)單,缺點(diǎn)不能顯示文字信息,而且數(shù)碼管引腳多在焊接走線時(shí)比較麻煩。方案 2:系統(tǒng)采用51單片機(jī)作為主控器件,lcd液晶模塊作顯示,用lcd液晶模塊顯示不僅可以顯示倒計(jì)時(shí)時(shí)間的數(shù)字信息還可以顯示一些文字信息,而且它有體積小、功耗低、顯示操作簡(jiǎn)單、不需要驅(qū)動(dòng)電路,利用單片機(jī)i/o口可直接驅(qū)動(dòng)等優(yōu)點(diǎn)。如果用lcd液晶模塊的串行工作方式還可以近一步簡(jiǎn)化硬件線

5、路。綜合比較,采用lcd液晶模塊作為倒計(jì)時(shí)系統(tǒng)的顯示器件更好一些。所以本系統(tǒng)設(shè)計(jì)方案采用方案2。三、 單元電路設(shè)計(jì)本設(shè)計(jì)由以下四部分組成:?jiǎn)纹瑱C(jī)最小系統(tǒng)、顯示電路、按鍵電路、電源電路。下面將以單元模塊方式作介紹。1、 單片機(jī)最小系統(tǒng)最小系統(tǒng)就是單片機(jī)在發(fā)揮具體測(cè)控功能時(shí)所必須的組成部分。它是本設(shè)計(jì)中的主控器件,其組成包括51單片機(jī),復(fù)位電路,振蕩電路及電源。復(fù)位電路功能,當(dāng)最小系統(tǒng)接通電源時(shí),上電瞬間rest端電位與vcc相同,隨充電電流減小rest端電位逐漸下降,復(fù)位電路通過(guò)單片機(jī)復(fù)位信號(hào)輸入端rest提供持繼兩個(gè)機(jī)器周期以上的復(fù)位電平,使單片機(jī)復(fù)位。振蕩電路為單片機(jī)提供工作所需的時(shí)鐘信號(hào),

6、以保證單片機(jī)的正常運(yùn)轉(zhuǎn)。 最小系統(tǒng)原理圖如下所示。 單片機(jī)最小系統(tǒng)電路2、音頻提示信號(hào)輸出電路 這部分電路由一個(gè)蜂鳴器,一個(gè)起開(kāi)關(guān)作用的npn三極管8550組成。當(dāng)為系統(tǒng)在設(shè)置倒計(jì)時(shí)間有按鍵按下時(shí),單片機(jī)就會(huì)通過(guò)p0.4引腳給三極管基極一個(gè)低電平使三極管導(dǎo)通、蜂鳴器發(fā)出短暫“嘀”的提示音。當(dāng)計(jì)時(shí)時(shí)間到達(dá)00分00秒時(shí),蜂鳴器發(fā)出連續(xù)“嘀嘀嘀”的聲音作為提示。3、顯示電路顯示部分用的是lcd液晶模塊12864作為顯示器件,用串行接線方式簡(jiǎn)化了硬件的走線,在本設(shè)計(jì)中主要顯示“倒計(jì)時(shí)系統(tǒng),剩余時(shí)間xx分xx秒”,lcd液晶顯示部分如下圖所示。顯示電路圖4、按鍵電路 在本倒計(jì)時(shí)系統(tǒng)設(shè)計(jì)中共用到了三個(gè)按

7、鍵,當(dāng)要設(shè)置倒計(jì)時(shí)時(shí)間時(shí),可按setkey鍵選擇要設(shè)置的位(分、秒),按下后蜂鳴器發(fā)出提示音,在液晶上相對(duì)應(yīng)的位置會(huì)出現(xiàn)反白、光標(biāo)閃爍。這時(shí)可以按inckey鍵對(duì)相應(yīng)的分、秒進(jìn)行加設(shè)置,當(dāng)反白、光標(biāo)閃爍位在秒設(shè)置位時(shí),再次按下setkey鍵,反白、光標(biāo)閃爍位在液晶上消失,系統(tǒng)將處于等待運(yùn)行狀態(tài),這時(shí)可以通過(guò)按下runkey鍵使倒計(jì)時(shí)開(kāi)始。當(dāng)?shù)褂?jì)時(shí)時(shí)間顯示為00分00秒時(shí),單片機(jī)會(huì)通過(guò)p0.4引腳控制蜂鳴器電路發(fā)出連續(xù)的嘀嘀提示音,這時(shí)inckey鍵又充當(dāng)了停止提示音的按鍵。按鍵電路如下。5、電源電路 整個(gè)電路的供電電源如圖所示,電源電路由220v市電經(jīng)變壓器得到9v交流電壓輸出,再經(jīng)過(guò)整流橋輸

8、出單向脈動(dòng)直流電流,最后經(jīng)過(guò)7805穩(wěn)壓管及濾波電容最后得到了穩(wěn)定的5v直流輸出。 5v電源電路四、 元件選擇主要元器件清單序 號(hào)名 稱(chēng)型 號(hào)、規(guī) 格數(shù) 量1lcd液晶模塊12864zb12單片機(jī)芯片stc89s5213排阻a10314蜂鳴器74ls9015三極管855016晶振12m17穩(wěn)壓三極管780518電解電容10uf19電阻10k210陶瓷電容30pf211二極管1n4007412按鍵非自鎖鍵3五、 整體電路整體電路圖六、 說(shuō)明電路工作原理當(dāng)?shù)褂?jì)時(shí)系統(tǒng)上電時(shí),在lcd液晶模塊上顯示“倒計(jì)時(shí)系統(tǒng),剩余時(shí)間00分00秒”, 在本倒計(jì)時(shí)系統(tǒng)設(shè)計(jì)中共用到了三個(gè)按按,當(dāng)要設(shè)置倒計(jì)時(shí)時(shí)間時(shí),可按

9、setkey鍵選擇要設(shè)置的位(分、秒),按下后蜂鳴器發(fā)出提示音,在液晶上相對(duì)應(yīng)的位置會(huì)出現(xiàn)反白、光標(biāo)閃爍。這時(shí)可以按inckey鍵對(duì)相應(yīng)的分、秒進(jìn)行加設(shè)置,當(dāng)反白、光標(biāo)閃爍位在秒設(shè)置位時(shí),再次按下setkey鍵,反白、光標(biāo)閃爍位在液晶上消失,系統(tǒng)將處于等待運(yùn)行狀態(tài),這時(shí)可以通過(guò)按下runkey鍵使倒計(jì)時(shí)開(kāi)始。當(dāng)?shù)褂?jì)時(shí)時(shí)間顯示為00分00秒時(shí),單片機(jī)會(huì)通過(guò)p0.4引腳控制蜂鳴器電路發(fā)出連續(xù)的嘀嘀提示音,這時(shí)inckey鍵又充當(dāng)了停止提示音的按鍵。系統(tǒng)軟件流程圖如下:#include /頭文件#include #include #define uchar unsigned char #define

10、 uint unsigned int#define sendcomm 0xf8 /0xf1000 將液晶操作命令宏定義化#define readcomm 0xfc /0xf1100#define senddata 0xfa /0xf1010#define readdata 0xfe/0xf1110uchar num1,num,set_num=0;uchar min,sec;sbit led=p04;/蜂鳴器 sbit e_clk =p05;/clock inputsbit rw_sid=p06;/data input/outputsbit rs_cs =p07;/chip selectsbit

11、 setkey=p00;/設(shè)置鍵sbit inckey=p01;/數(shù)值減少按鍵sbit runkey=p02;/倒計(jì)時(shí)開(kāi)始按鍵unsigned char code set_poi=0xff,0x8c,0x8e; unsigned char code str1=倒計(jì)時(shí)系統(tǒng): 剩余時(shí)間00分00秒; void delay(uint x)/延時(shí)函數(shù)uint i,j;for(i=x;i0;i-)for(j=111;j0;j-);void bee(void)/蜂鳴器發(fā)聲程序led=0;delay(10);led=1;void warn()/蜂鳴器連續(xù)發(fā)聲程序bee();delay(100);bee();

12、delay(100);bee();delay(1000); void lcd_send_byte(unsigned char a)/lcd串行發(fā)送一個(gè)字節(jié) unsigned char i;for(i=8;i0;i-) if(a&(0x010;i-)e_clk=1;if(rw_sid=1)dat|=(0x014);bf=(readh&0xf0)|(readl&0x0f);return bf; void writecommand(unsigned char comm)/lcd寫(xiě)命令unsigned char temp;dotemp=lcd_bf();while(temp&0x80);rs_cs=1

13、;lcd_send_byte(sendcomm);temp=comm&0xf0;lcd_send_byte(temp);temp=(comm&0x0f)4)&0xf0;lcd_send_byte(temp);rs_cs=0;void writedata(unsigned char lcd_data)/lcd寫(xiě)數(shù)據(jù)unsigned char temp;rs_cs=1;lcd_send_byte(senddata);temp=lcd_data&0xf0;lcd_send_byte(temp);temp=(lcd_data&0x0f)4;lcd_send_byte(temp);rs_cs=0;/*設(shè)

14、置顯示位置 x(116),y(14)void lcd_setxy(unsigned char x,unsigned char y)switch(y)case 1:writecommand(0x7f+x);break;case 2:writecommand(0x8f+x);break;case 3: writecommand(0x87+x);break;case 4: writecommand(0x97+x);break;default:break;/*在指定位置顯示字符串void writestr(unsigned char dis_addr_x,unsigned char dis_addr_

15、y,char* str) unsigned char lcd_temp; lcd_setxy(dis_addr_x,dis_addr_y); lcd_temp=*str; while(lcd_temp != 0x00) writedata(lcd_temp); lcd_temp=*(+str); void lcdinit(void)/*lcd初始化程序 unsigned char i;e_clk=0;rs_cs=0;i=lcd_bf();while(i=0x80)i=lcd_bf();rs_cs=0;writecommand(0x30);/功能設(shè)置,一次送8位數(shù)據(jù),基本指令集writecomm

16、and(0x0c);/0000,1100 整體顯示,游標(biāo)off,游標(biāo)位置offwritecommand(0x01);/0000,0001 清ddramwritecommand(0x02);/0000,0010 ddram地址歸位writecommand(0x80);/1000,0000 設(shè)定ddram 7位地址000,0000到地址計(jì)數(shù)器ac/*設(shè)置和顯示程序void set_dis_time()if(!setkey)delay(20);if(!setkey)while(!setkey);bee();tr0=0;set_num+;if(set_num=1)writecommand(set_po

17、iset_num);writecommand(0x0f);if(set_num=2)writecommand(set_poiset_num);if(set_num=3)set_num=0;writecommand(0x0c);if(runkey=0)delay(20);if(runkey=0)while(!runkey);bee();tr0=1;if(set_num!=0)if(inckey=0)delay(20);if(inckey=0)while(!inckey);bee();if(set_num=1)min+;if(min=61)min=0;lcd_setxy(5,3);writedat

18、a(0x30+min/10);writedata(0x30+min%10);if(set_num=2)sec+;if(sec=61)sec=0;lcd_setxy(7,3);writedata(0x30+sec/10);writedata(0x30+sec%10); void main()/*/主程序段代碼tmod=0x01;/定時(shí)器初始化 th0=(65536-45872)/256;tl0=(65536-45872)%256;ea=1;et0=1;lcdinit(); /液晶初始化writestr(1,1,str1);/向液晶中寫(xiě)入固定的字符 while(1)set_dis_time();/

19、判斷是否有按鍵按下 void t0_timer() interrupt 1 /定時(shí)器計(jì)數(shù)器中斷服務(wù)程序th0=(65536-45872)/256;/定時(shí)器初值tl0=(65536-45872)%256;num1+;if(num1=20)/計(jì)數(shù)器溢出20次,說(shuō)明1秒時(shí)間到了num1=0;if(sec=0)sec=60;if(min=0)min=60;elsemin-;lcd_setxy(5,3);/寫(xiě)入分顯示位置writedata(0x30+min/10);writedata(0x30+min%10);elsesec-;/寫(xiě)入秒顯示位置lcd_setxy(7,3);writedata(0x30+

20、sec/10);writedata(0x30+sec%10);if(min=0)/判斷是否滿足輸出信頻提示條件if(sec=0)tr0=0;while(inckey)/如果inckey沒(méi)有按下,則一直報(bào)警warn();七、 困難問(wèn)題及解決措施本設(shè)計(jì)在遇到的難題是怎么樣控制lcd的某個(gè)位置上顯示一個(gè)一直都在變化的量,解決方法在主程序中要不停的判斷要顯示的量是否發(fā)生了變化,如果發(fā)生變化就要馬上送到lcd顯示。八、 總結(jié)與體會(huì)在整個(gè)課程設(shè)計(jì)完后,總的感覺(jué)是:有收獲。以前上課都是上一些最基本的東西而現(xiàn)在卻可以將以前學(xué)的東西作出有實(shí)際價(jià)值的東西。在這個(gè)過(guò)程中,我的確學(xué)得到很多在書(shū)本上學(xué)不到的東西,例如:用網(wǎng)絡(luò)搜索想要的資料、如何利用給定的元件組裝得到目標(biāo)電路、利用altium designer軟件畫(huà)原理圖等等。但也遇到了不少的挫折和難題,有時(shí)遇到了一個(gè)錯(cuò)誤怎么找也找不到原因所在,找了老半天結(jié)果卻最簡(jiǎn)單最易被忽略的地方,有時(shí)更是忘接電源或地,這些足以看出自己的實(shí)踐能力還很是差勁。在學(xué)習(xí)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論