版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 微型計(jì)算機(jī)技術(shù)專業(yè)方向設(shè)計(jì)</p><p><b> 任務(wù)書(shū)</b></p><p> 題目名稱:多功能數(shù)字鐘</p><p> 專業(yè) 班級(jí)</p><p> 姓名 學(xué)號(hào) </p><p><b> 課程設(shè)計(jì)任
2、務(wù)書(shū)</b></p><p> 課程名稱:微型計(jì)算機(jī)技術(shù)</p><p> 設(shè)計(jì)題目:多功能數(shù)字鐘</p><p><b> 系統(tǒng)硬件要求:</b></p><p> 配置單片機(jī)的外部程序ROM空間,容量為16K(使用27128芯片)。</p><p> 使用51單片機(jī)內(nèi)部時(shí)
3、鐘信號(hào)為系統(tǒng)提供計(jì)時(shí)信號(hào)。</p><p> 配置LED數(shù)碼管或液晶顯示器顯示時(shí)間,設(shè)置操作按鍵。</p><p><b> 系統(tǒng)功能要求:</b></p><p> 在LED數(shù)碼顯示器或液晶顯示器上顯示:時(shí):分:秒。</p><p> 按鍵功能自定義,實(shí)現(xiàn)按鍵調(diào)整時(shí)間功能。</p><p&g
4、t; 具有鬧鐘功能(選做)。</p><p> 具有秒表功能(選做)。</p><p><b> 其他要求:</b></p><p> 每位同學(xué)獨(dú)立完成本設(shè)計(jì)。</p><p> 2、依據(jù)題目要求,提出系統(tǒng)設(shè)計(jì)方案。</p><p> 3、設(shè)計(jì)系統(tǒng)電路原理圖。</p>&
5、lt;p> 調(diào)試系統(tǒng)硬件電路、功能程序。</p><p> 編制課程設(shè)計(jì)報(bào)告書(shū)并裝訂成冊(cè),報(bào)告書(shū)內(nèi)容(按順序)</p><p><b> (1)報(bào)告書(shū)封面</b></p><p> ?。?)課程設(shè)計(jì)任務(wù)書(shū)</p><p> ?。?)系統(tǒng)設(shè)計(jì)方案的提出、分析</p><p> ?。?)系
6、統(tǒng)中典型電路的分析</p><p> (5)系統(tǒng)軟件結(jié)構(gòu)框圖</p><p> ?。?)系統(tǒng)電路原理圖</p><p><b> ?。?)源程序</b></p><p> ?。?)課設(shè)字?jǐn)?shù)不少于2000字</p><p><b> 一、系統(tǒng)方案選擇</b></p&g
7、t;<p><b> ?、贁?shù)字時(shí)鐘選擇:</b></p><p> 方案一:本方案采用Dallas公司的專用時(shí)鐘芯片DS12887A。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時(shí)鐘鬧鐘功能,因此,可直接對(duì)其以用于顯示或設(shè)置,使得軟件編程相對(duì)簡(jiǎn)單。為保證時(shí)鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當(dāng)電網(wǎng)電壓不足或突然掉
8、電時(shí),系統(tǒng)自動(dòng)轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時(shí),鋰電池也能保證芯片的正常運(yùn)行,以備隨時(shí)提供正確的時(shí)間。</p><p> 方案二:本方案完全用軟件實(shí)現(xiàn)數(shù)字時(shí)鐘。原理為:利用定時(shí)器與軟件結(jié)合實(shí)現(xiàn)1秒定時(shí)中斷,每產(chǎn)生一次中斷,存儲(chǔ)器內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時(shí)字節(jié)值加1;若時(shí)值達(dá)到24,則將十字節(jié)清零。該方案具有
9、硬件電路簡(jiǎn)單的特點(diǎn)。但由于每次執(zhí)行程序時(shí),定時(shí)器都要重新賦初值,所以該時(shí)鐘精度不高。而且,由于是軟件實(shí)現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時(shí),時(shí)鐘將不工作。</p><p> 基于硬件電路的考慮,本設(shè)計(jì)采用方案二完成數(shù)字時(shí)鐘的功能。</p><p><b> ?、陲@示方案選擇:</b></p><p> 方案一:采用6段數(shù)碼管動(dòng)態(tài)顯示,數(shù)碼管動(dòng)態(tài)
10、掃描時(shí),是利用人的視覺(jué)暫留使顯示看起來(lái)連續(xù)變化,優(yōu)點(diǎn)是程序操作簡(jiǎn)單 缺點(diǎn):可操作性不強(qiáng),并不美觀。</p><p> 方案二:采用液晶1602,1602的特點(diǎn)是有兩行顯示,每行顯示16個(gè)字符,顯示比較清晰美觀,缺點(diǎn)是操作較為復(fù)雜。</p><p> 出于顯示的考慮,本實(shí)驗(yàn)選擇方案二。</p><p><b> ?、坻I盤方案選擇:</b>&l
11、t;/p><p> 方案一:采用獨(dú)立按鍵,獨(dú)立按鍵的特點(diǎn)是檢測(cè)較為簡(jiǎn)單,比較容易知道哪個(gè)按鍵被按下了,但是后續(xù)的鍵值處理較為復(fù)雜.。</p><p> 方案二:采用矩陣鍵盤,矩陣鍵盤的特點(diǎn)是檢測(cè)較為復(fù)雜,但便于后續(xù)程序使用鍵值比較簡(jiǎn)單。</p><p> 出于硬件的考慮本實(shí)驗(yàn)采用方案一。</p><p> 二、系統(tǒng)典型電路分析</p
12、><p> ①?gòu)?fù)位電路:?jiǎn)纹瑱C(jī)復(fù)位的條件是:必須使RST/VPD 或RST引(9)加上持續(xù)兩個(gè)機(jī)器周期(即24個(gè)振蕩周期)的高電平。例如,若時(shí)鐘頻率為12 MHz,每機(jī)器周期為1μs,則只需2μs以上時(shí)間的高電平,在RST引腳出現(xiàn)高電平后的第二個(gè)機(jī)器周期執(zhí)行復(fù)位。單片機(jī)常見(jiàn)的復(fù)位如圖所示。電路為上電復(fù)位電路,它是利用電容充電來(lái)實(shí)現(xiàn)的。在接電瞬間,RESET端的電位與VCC相同,隨著充電電流的減少,RESET的電位逐
13、漸下降。只要保證RESET為高電平的時(shí)間大于兩個(gè)機(jī)器周期,便能正常復(fù)位。該電路除具有上電復(fù)位功能外,若要復(fù)位,只需按圖中的RESET鍵,此時(shí)電源VCC經(jīng)電阻R1、R2分壓,在RESET端產(chǎn)生一個(gè)復(fù)位高電平。</p><p> ?、诰д耠娐罚河覉D所示為時(shí)鐘電路原理圖,在AT89S51芯片內(nèi)部有一個(gè)高增益反相放大器,其輸入端為芯片引腳XTAL1,輸出端為引腳XTAL2。而在芯片內(nèi)部,XTAL1和XTAL2之間跨接晶體
14、振蕩器和微調(diào)電容,從而構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。時(shí)鐘電路產(chǎn)生的振蕩脈沖經(jīng)過(guò)觸發(fā)器進(jìn)行二分頻之后,才成為單片機(jī)的時(shí)鐘脈沖信號(hào)。</p><p> ?、垡壕щ娐罚河覉D為液晶電路,將電源地和背光地連在一起,將電源和背光電源連在一起,數(shù)據(jù)口與51單片機(jī)的p0口相連,作為數(shù)據(jù)的傳送口,而液晶的讀寫和使能則采用其它普通IO口來(lái)連接</p><p> ?、馨存I電路:采用4個(gè)獨(dú)立按鍵分別用P1口的0,1,
15、2,3來(lái)進(jìn)行連接</p><p> ,通過(guò)檢測(cè)這四個(gè)管腳的電平的變化,來(lái)確定按鍵是否被按下。</p><p> 三、系統(tǒng)軟件結(jié)構(gòu)圖:</p><p> 四、系統(tǒng)總體硬件電路圖:</p><p><b> 五、源程序代碼:</b></p><p> #include"reg52.
16、h"</p><p> #include"stdio.h"</p><p> #include"string.h"</p><p> #define rs sbit p1^4</p><p> #define rw sbit p1^5</p><p> #de
17、fine e sbit p1^6</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 bell=P1^7;</p>&
18、lt;p> unsigned char num;</p><p> unsigned int m=0;</p><p> unsigned int sh=0;</p><p> unsigned int fen=0;</p><p> unsigned int t1=0;</p><p> unsig
19、ned int t2=0;</p><p> unsigned nfalg=0;</p><p> void delay(unsigned int z )</p><p><b> {</b></p><p> unsigned int x,y;</p><p> for(x=z;x&g
20、t;0;x--)</p><p> for(y=110;y>0;y--);</p><p><b> }</b></p><p> ////////////////////////////////////////////////////液晶初始化////////////////////////////////////////////
21、/////////////////////////</p><p> void write_com(unsigned char com)</p><p><b> {</b></p><p><b> rs=0;</b></p><p><b> P0=com;</b>
22、</p><p><b> delay(5);</b></p><p><b> e=1;</b></p><p><b> delay(5);</b></p><p><b> e=0;</b></p><p><b
23、> }</b></p><p> write_data(unsigned char data)</p><p><b> {</b></p><p><b> rs=1;</b></p><p><b> P0=data;</b></p>
24、<p><b> delay(5);</b></p><p><b> e=1;</b></p><p><b> delay(5)</b></p><p><b> e=0</b></p><p><b> }</
25、b></p><p> void ds(unsigned char dz unsigned char shu)</p><p><b> {</b></p><p> unsigned char ge ,shi;</p><p> ge=shu%10;</p><p> shi=s
26、hu/10;</p><p> wirte_com(dz+0x80);</p><p> write_data(0x30+shi);</p><p> write_data(0x30+ge);</p><p><b> delay(5);</b></p><p><b> }&
27、lt;/b></p><p> void lcd_init()</p><p><b> {</b></p><p><b> e=0;</b></p><p> write_com(0x38);//設(shè)置1602正常顯示</p><p> write_com(
28、0x0c);//設(shè)置開(kāi)顯示,不顯示光標(biāo)</p><p> write_com(0x06);//寫一個(gè)字符后,指針加1</p><p> write_com(0x01);//顯示清0,數(shù)據(jù)指針清0;</p><p> write_com(0x80);//首地址</p><p><b> }</b></p>
29、;<p> //////////////////////////////////////////////////////////////////////////////定時(shí)器初始化////////////////////////////////////////////////</p><p> void shizhong(void)</p><p><b>
30、{ </b></p><p> ds(0x06,m)</p><p><b> if(m==60)</b></p><p><b> {m=0;</b></p><p><b> fen++;</b></p><p> ds(0x0
31、3,f);</p><p> if(fen==60)</p><p><b> {fen=0;</b></p><p><b> sh++;</b></p><p><b> ds(0,sh);</b></p><p> if(sh==24)&
32、lt;/p><p><b> {sh=0;}</b></p><p><b> }</b></p><p><b> }</b></p><p> if(sh=t2;)</p><p> {if(fen=t1)</p><p&g
33、t;<b> {</b></p><p><b> bell=1;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> nflag++;</b></p>
34、<p> if(nflag=10)</p><p><b> {bell=0;</b></p><p><b> nfalg=0;}</b></p><p><b> }</b></p><p> void miaobiao(void)</p>
35、<p><b> {</b></p><p> ds(0x06,m)</p><p><b> if(m==60)</b></p><p><b> {m=0;</b></p><p><b> fen++;</b></p&g
36、t;<p> ds(0x03,f);</p><p> if(fen==60)</p><p><b> {fen=0;</b></p><p><b> sh++;</b></p><p><b> ds(0,sh);</b></p>&
37、lt;p> if(sh==60)</p><p><b> {sh=0;}</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p>
38、 void naozhong()</p><p><b> {</b></p><p> if(key3=0)</p><p> {delay(5);</p><p> if(key3=0)</p><p> {write_com(0x0f);//顯示光標(biāo)</p><
39、p> write_com(0x04);//光標(biāo)左移一次</p><p><b> }</b></p><p><b> }</b></p><p> if(key1=0)</p><p> {delay(5);</p><p> if(key1=0)<
40、/p><p><b> {</b></p><p><b> fen++;</b></p><p> ds(0x03,fen);</p><p> if(fen==60)</p><p><b> {fen=0;}</b></p>&
41、lt;p><b> }}</b></p><p> if(key2=0)</p><p> {delay(5);</p><p> if(key2=0)</p><p><b> {</b></p><p><b> fen--;</b>
42、;</p><p> ds(0x03,fen);</p><p> if(fen==0)</p><p><b> {fen=60;}</b></p><p><b> }</b></p><p><b> } </b></p>
43、<p> if(key1=0)</p><p> {delay(5);</p><p> if(key1=0)</p><p><b> {</b></p><p><b> sh++;</b></p><p><b> ds(0,sh);&l
44、t;/b></p><p> if(sh==24)</p><p><b> {sh=0;}</b></p><p><b> }}</b></p><p> if(key2=0)</p><p> {delay(5);</p><p>
45、; if(key2=0)</p><p><b> {sh--;</b></p><p><b> ds(0,sh);</b></p><p><b> if(sh==0)</b></p><p><b> {sh=24;}</b></p&
46、gt;<p><b> }</b></p><p><b> }</b></p><p><b> t1=fen;</b></p><p><b> t2=sh;</b></p><p><b> }</b>&
47、lt;/p><p> void main()</p><p><b> {</b></p><p> unsigned int i=0;</p><p> unsigned char flag;</p><p> unsigned char m1[]="00:00:00"
48、;;</p><p> lcd_init();//液晶初始化</p><p> TMOD=0x01;//設(shè)置定時(shí)器工作在方式1</p><p> TH0=(65536-9174)/256;</p><p> TL0=(65536-9174)%256; //10ms時(shí)間間隔,便于正常時(shí)鐘和秒表通用</p><p>
49、; EA=1;//開(kāi)總中斷</p><p> ET0=1;//開(kāi)定時(shí)器0中斷</p><p> TR0=1;//啟動(dòng)定時(shí)器0</p><p> write_com(0x80);</p><p> for(i=0;i<8;i++)</p><p><b> {</b></p&
50、gt;<p> write_data(m1[i]);</p><p><b> delay(5);</b></p><p><b> }</b></p><p><b> while(1)</b></p><p><b> {</b>
51、;</p><p> shizhong();</p><p> if(key4=0)</p><p><b> {</b></p><p><b> delay(5);</b></p><p> if(key4=0)</p><p><
52、b> {</b></p><p><b> flag=1;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(flag=1)</p><p> { if(key1=0
53、)</p><p><b> {</b></p><p><b> delay(5);</b></p><p> if(key4=0)</p><p><b> {</b></p><p><b> flag1=1;</b>
54、;</p><p><b> }</b></p><p><b> }</b></p><p> if(key2=0)</p><p><b> {</b></p><p><b> delay(5);</b></p
55、><p> if(key2=0)</p><p><b> {</b></p><p><b> flag1=2;</b></p><p><b> }</b></p><p><b> } </b></p>&
56、lt;p> if(key3=0)</p><p><b> {</b></p><p><b> delay(5);</b></p><p> if(key3=0)</p><p><b> {</b></p><p><b>
57、 flag1=0;</b></p><p><b> }</b></p><p><b> } </b></p><p><b> flag=0; </b></p><p><b> }</b></p><p>
58、; switch(flag1)</p><p> {case 0:{shizhong();falg2=0;break;}</p><p> case 1:{naozhong();break;}</p><p> case 2:{miaobiao();flag2=1;break;}</p><p><b> }</b&
59、gt;</p><p><b> }</b></p><p><b> }</b></p><p> void T0_tmie()interrupt 1</p><p><b> {</b></p><p> TH0=(65536-9174)/
60、256;</p><p> TL0=(65536-9174)%256; //10ms時(shí)間間隔,便于正常時(shí)鐘和秒表通用</p><p> if(flag2=0)</p><p><b> {num++;</b></p><p> if(num=100)</p><p><b>
61、{</b></p><p><b> num=0;</b></p><p><b> m++;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(fl
溫馨提示
- 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ù)字鐘課程設(shè)計(jì)
- 課程設(shè)計(jì)-- 多功能 數(shù)字鐘
- 課程設(shè)計(jì)--多功能數(shù)字鐘設(shè)計(jì)
- 電子鐘課程設(shè)計(jì)--多功能電子鐘
- 課程設(shè)計(jì)---多功能電子數(shù)字鐘
- eda課程設(shè)計(jì)——多功能數(shù)字鐘
- vhdl課程設(shè)計(jì)---多功能數(shù)字鐘
- 多功能數(shù)字鐘課程設(shè)計(jì)報(bào)告
- 多功能數(shù)字鐘電路課程設(shè)計(jì)
- 多功能數(shù)字鐘課程設(shè)計(jì)報(bào)告
- 多功能旋轉(zhuǎn)電子鐘課程設(shè)計(jì)
- 多功能數(shù)字鐘課程設(shè)計(jì)報(bào)告
- 多功能數(shù)字電子鐘課程設(shè)計(jì)
- 課程設(shè)計(jì)--多功能電子數(shù)字鐘
- 課程設(shè)計(jì)--多功能數(shù)字鐘的設(shè)計(jì)
- 課程設(shè)計(jì)--多功能數(shù)字鐘設(shè)計(jì).doc
- 課程設(shè)計(jì)---多功能數(shù)字鐘的設(shè)計(jì)
- 微機(jī)原理-多功能電子鐘課程設(shè)計(jì)
- 數(shù)電課程設(shè)計(jì)---多功能數(shù)字鐘
- 數(shù)電課程設(shè)計(jì)--多功能數(shù)字鐘
評(píng)論
0/150
提交評(píng)論