版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 1引言</b></p><p> 本設(shè)計(jì)利用AT89C51單片機(jī)結(jié)合字符型LCD顯示器設(shè)計(jì)一個(gè)簡(jiǎn)易的倒數(shù)計(jì)數(shù)器,可用來(lái)煮方便面、煮開(kāi)水或小睡片刻等。做一小段時(shí)間倒計(jì)數(shù),當(dāng)?shù)褂?jì)數(shù)為0時(shí),則發(fā)出一段音樂(lè)聲響,通知倒計(jì)數(shù)終了。</p><p><b> 2設(shè)計(jì)方案及原理</b></p><p>
2、 設(shè)計(jì)一個(gè)簡(jiǎn)易的倒數(shù)計(jì)數(shù)器。當(dāng)鍵盤(pán)按鍵有按下時(shí),調(diào)整計(jì)數(shù)器值,LCD顯示新值。當(dāng)復(fù)位鍵有按下時(shí),計(jì)數(shù)器復(fù)位為初值,重新倒計(jì)數(shù)。當(dāng)計(jì)數(shù)器值倒計(jì)為0時(shí),蜂鳴器發(fā)出聲音,計(jì)數(shù)器停止倒計(jì),程序結(jié)束。</p><p> 具體過(guò)程:按K1鍵,則在LCD上顯示出設(shè)置畫(huà)面。此時(shí),若:</p><p> (1) 按K2鍵---增加倒計(jì)數(shù)的時(shí)間1分鐘。</p><p> (2
3、) 按K3鍵---減少倒計(jì)數(shù)的時(shí)間1分鐘。</p><p> (3) 按K4鍵---設(shè)置完成。</p><p><b> 3硬件設(shè)計(jì)</b></p><p><b> 3.1 設(shè)計(jì)說(shuō)明</b></p><p> 設(shè)計(jì)的功能:輸出時(shí)間,按下鍵就開(kāi)始計(jì)時(shí),并將時(shí)間顯示在LCD1602顯示器上。當(dāng)
4、倒計(jì)數(shù)為0時(shí),蜂鳴器就發(fā)出音樂(lè)聲響。該計(jì)數(shù)器系統(tǒng)主要由計(jì)數(shù)器模塊、LCD顯示器模塊、蜂鳴器模塊、鍵盤(pán)模塊、復(fù)位模塊等部分組成。總體設(shè)計(jì)方框圖如圖所示。</p><p> 圖1 總體設(shè)計(jì)方框圖</p><p><b> 3.2電路原理圖</b></p><p> 電路原理圖連接如圖2所示</p><p><b&
5、gt; 圖1 電路原理圖</b></p><p><b> 4軟件設(shè)計(jì)</b></p><p> 音樂(lè)倒數(shù)計(jì)數(shù)器程序流程圖包括主程序流程圖,LCD顯示流程圖以及按鍵流程圖,各流程圖如圖2,圖3,圖4所示。</p><p><b> 圖2 主程序流程圖</b></p><p>
6、圖3 LCD顯示流程圖 圖4 按鍵流程圖 </p><p><b> 5系統(tǒng)的仿真與調(diào)試</b></p><p> 本課程設(shè)計(jì)調(diào)試結(jié)果詳見(jiàn)附錄</p><p><b> 6總結(jié)</b></p><p> 經(jīng)過(guò)設(shè)計(jì),簡(jiǎn)
7、單帶有LCD顯示的音樂(lè)倒數(shù)計(jì)數(shù)器完成,系統(tǒng)基本功能基本實(shí)現(xiàn),測(cè)試運(yùn)行也正常。該系統(tǒng)完成了計(jì)數(shù)與報(bào)警的功能。</p><p> 當(dāng)然這個(gè)系統(tǒng)還存在許多有待完善的地方:</p><p> (1) 功能相對(duì)較少,有待于添加,如時(shí)鐘與鬧鐘功能。</p><p> (2) 界面設(shè)計(jì)不夠精致完美。</p><p><b> 參考文獻(xiàn)&l
8、t;/b></p><p> [1] 康華光.陳大欽.電子技術(shù)基礎(chǔ)—模擬部分[M].北京:高等教育出版社,2005.</p><p> [2] 李朝青.單片機(jī)原理及接口技術(shù)[M].北京:航空航天大學(xué)出版社,2005.</p><p> [3] 蘭吉昌.51單片機(jī)應(yīng)用設(shè)計(jì)百例[M].北京:化學(xué)工業(yè)出版社,2009.</p><p>
9、<b> 附錄</b></p><p><b> 1調(diào)試結(jié)果圖</b></p><p><b> 圖2調(diào)試結(jié)果圖</b></p><p> 2 程序關(guān)鍵問(wèn)題的部分代碼</p><p> #include<reg52.h></p><p&
10、gt; #include<intrins.h></p><p> #define time 100</p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p> uint t,flag,flag0,flag1,flag2,
11、flag3,flag4,flag5,minute,second=60;</p><p> uchar num,j,i,k=0;</p><p> uchar code table[]="TIME 00:00";</p><p> uint code table1[]={64580,64684,64777,64820,64898,6496
12、8,65030};</p><p> sbit key1=P1^0;</p><p> sbit key2=P1^1;</p><p> sbit key3=P1^2;</p><p> sbit key4=P1^3;</p><p> sbit key5=P1^4;</p><p>
13、 sbit P1_5=P1^5;</p><p> sbit RS=P2^0;</p><p> sbit RW=P2^1;</p><p> sbit E=P2^2;</p><p> sbit led_red=P2^3;</p><p> void write_time(uint addr,uint d
14、ate);</p><p> /////////延時(shí)函數(shù)///////</p><p> void delay(uint z)</p><p><b> {</b></p><p><b> uint x,y;</b></p><p> for(x=z;x>0
15、;x--)</p><p> for(y=110;y>0;y--);</p><p><b> }</b></p><p> ///////延時(shí)1S////////////</p><p> void delay1(void)</p><p><b> {</b&g
16、t;</p><p> uchar a,b,c;</p><p> for(c=13;c>0;c--)</p><p> for(b=247;b>0;b--)</p><p> for(a=142;a>0;a--);</p><p><b> _nop_;</b><
17、;/p><p><b> }</b></p><p> ////////1602寫(xiě)命令函數(shù)//////</p><p> void write_com(uchar com)</p><p><b> {</b></p><p><b> RS=0;</b
18、></p><p><b> P3=com;</b></p><p><b> delay(5);</b></p><p><b> E=1;</b></p><p> delay(10);</p><p><b> E=0;&
19、lt;/b></p><p><b> }</b></p><p> //////1602寫(xiě)數(shù)據(jù)函數(shù)//////</p><p> void write_date(uchar date)</p><p><b> {</b></p><p><b>
20、 RS=1;</b></p><p><b> P3=date;</b></p><p><b> delay(5);</b></p><p><b> E=1;</b></p><p> delay(10);</p><p><
21、;b> E=0;</b></p><p><b> }</b></p><p> //////按鍵1處理函數(shù)///////</p><p> void KEY1()</p><p><b> {</b></p><p> while(flag1)
22、</p><p><b> {</b></p><p> if(key2==0)</p><p><b> {</b></p><p> delay(time);</p><p> if(key2==0)</p><p><b>
23、 { </b></p><p> if(minute<=60)</p><p> minute=minute+1;</p><p> write_time(7,minute);</p><p><b> }</b></p><p><b> }</b&
24、gt;</p><p> if(key3==0)</p><p><b> {</b></p><p> delay(time);</p><p> if(key3==0)</p><p><b> {</b></p><p> if(mi
25、nute>0)</p><p> minute=minute-1;</p><p> write_time(7,minute);</p><p><b> }</b></p><p><b> }</b></p><p> if(key4==0||key5==
26、0)</p><p><b> {</b></p><p> delay(150);</p><p> if(key4==0||key5==0)</p><p><b> {</b></p><p><b> flag1=0;</b></
27、p><p><b> flag =1;</b></p><p><b> TR0=1;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b&g
28、t;</p><p><b> }</b></p><p> void write_time(uint addr,uint date)</p><p><b> {</b></p><p> uint ge,shi;</p><p> ge=date%10;<
29、/p><p> shi=date/10;</p><p> write_com(0x80+addr);</p><p> write_date(0x30+shi);</p><p> write_date(0x30+ge);</p><p> if(addr==7&&date==0)</p&
30、gt;<p><b> j=1;</b></p><p> if(j==1&&addr==10&&date==0)</p><p><b> {</b></p><p><b> flag0=1;</b></p><p>&
31、lt;b> TR0=0;</b></p><p><b> TR1=1;</b></p><p><b> flag5=1;</b></p><p><b> }</b></p><p><b> }</b></p>
32、<p> //////初始化函數(shù)//////</p><p> void init()</p><p><b> { </b></p><p><b> P1=0xff;</b></p><p><b> RW=0;</b></p><
33、;p> write_com(0x38);</p><p> write_com(0x0c);</p><p> write_com(0x06);</p><p> write_com(0x80);</p><p> TMOD=0x11;</p><p> TH0=(65536-50000)/256;&
34、lt;/p><p> TL0=(65536-50000)%256;</p><p><b> TH1=0xfc;</b></p><p><b> TL1=0x44;</b></p><p><b> ET1=1;</b></p><p><b
35、> ET0=1;</b></p><p><b> //TR1=1;</b></p><p><b> //TR0=1;</b></p><p><b> EA=1;</b></p><p><b> flag0=1;</b>
36、;</p><p> for(num=0;num<12;num++)</p><p><b> {</b></p><p> write_date(table[num]);</p><p> delay(20);</p><p><b> }</b></
37、p><p><b> }</b></p><p> void write_time0()</p><p><b> {</b></p><p> minute=minute-1;</p><p> write_time(7,minute);</p><
38、;p> write_time(10,59);</p><p> flag=0; </p><p><b> }</b></p><p> void counter()</p><p><b> {</b></p><p><b> if(t=
39、=20)</b></p><p><b> {</b></p><p> led_red=led_red^1;</p><p> if(flag==1)</p><p> write_time0();</p><p><b> t=0;</b></
40、p><p> second=second-1;</p><p> write_time(10,second); </p><p> if(k==1&&second==59)</p><p><b> {</b></p><p> if(minute>0) <
41、/p><p> minute=minute-1;</p><p> write_time(7,minute);</p><p><b> }</b></p><p> if(second==0)</p><p><b> {</b></p><p&
42、gt;<b> k=1;</b></p><p> second=60;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> int mai
43、n()</p><p><b> {</b></p><p><b> init();</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> while(fla
44、g0)</p><p><b> start();</b></p><p> counter();</p><p> while(flag5)</p><p><b> {</b></p><p><b> delay1();</b></
45、p><p><b> i++;</b></p><p><b> if(i>7)</b></p><p><b> i=0;</b></p><p><b> }</b></p><p><b> }</
46、b></p><p><b> return 0;</b></p><p><b> }</b></p><p> void inter0() interrupt 1</p><p><b> {</b></p><p> TH0=(6
47、5536-50000)/256;</p><p> TL0=(65536-50000)%256;</p><p><b> t++;</b></p><p><b> }</b></p><p> void initer1() interrupt 3</p><p>
48、<b> {</b></p><p> TH1=table1[i]/256;</p><p> TL1=table1[i]%256;</p><p> P1_5=~P1_5;</p><p> if(key5==0)</p><p><b> {</b></
49、p><p> delay(100);</p><p> if(key5==0)</p><p><b> {</b></p><p><b> TR1=0;</b></p><p><b> flag5=0;</b></p><
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 倒數(shù)計(jì)數(shù)器單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)----手動(dòng)計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)帶有l(wèi)cd顯示的音樂(lè)倒數(shù)計(jì)數(shù)器
- 單片機(jī)計(jì)數(shù)器課程設(shè)計(jì)報(bào)告
- 基于單片機(jī)lcd顯示的音樂(lè)倒數(shù)計(jì)數(shù)器課程設(shè)計(jì)論文
- 單片機(jī)課程設(shè)計(jì)----語(yǔ)言報(bào)數(shù)計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)(語(yǔ)言報(bào)數(shù)計(jì)數(shù)器)
- 單片機(jī)課程設(shè)計(jì)--簡(jiǎn)易頻率計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)外部脈沖計(jì)數(shù)器
- 微機(jī)原理課程設(shè)計(jì)--基于單片機(jī)設(shè)計(jì)的音樂(lè)倒數(shù)計(jì)數(shù)器
- 微機(jī)原理課程設(shè)計(jì)--基于單片機(jī)設(shè)計(jì)的音樂(lè)倒數(shù)計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)報(bào)告(零件計(jì)數(shù)器)
- 基于單片機(jī)的頻率計(jì)數(shù)器課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)00-99加計(jì)數(shù)器
- 微機(jī)原理課程設(shè)計(jì)--基于單片機(jī)設(shè)計(jì)的音樂(lè)倒數(shù)計(jì)數(shù)器.doc
- 課程設(shè)計(jì)--簡(jiǎn)易的倒數(shù)計(jì)數(shù)器
- 單片機(jī)課程設(shè)計(jì)---基于51單計(jì)時(shí)計(jì)數(shù)器系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---基于51單計(jì)時(shí)計(jì)數(shù)器系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--00-99加計(jì)數(shù)器程序設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-00-99手動(dòng)計(jì)數(shù)器設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論