版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 單片機(jī)實(shí)訓(xùn)課程設(shè)計(jì)</b></p><p> 課題名稱: 液晶時(shí)鐘顯示</p><p> 系 別: 電子工程系 </p><p> 專 業(yè): 光電子技術(shù) </p><p> 班 級(jí): 光電0911班 </p><p> 學(xué) 號(hào):
2、 </p><p><b> 單片機(jī)課程設(shè)計(jì)</b></p><p> 第一部分:課程論文(本部分滿分100,占總成績45%)</p><p> 成績:______________</p><p> 設(shè)計(jì)報(bào)告(本部分滿分100,占總成績25%)</p><p>
3、使用PCB繪制軟件和單片機(jī)知識(shí),認(rèn)真讀題,根據(jù)自身水平,選擇其中的一道題,進(jìn)行編程、調(diào)試完成后,完成課程設(shè)計(jì)論文,由教師驗(yàn)證評分。</p><p> 用多個(gè)LED數(shù)碼管顯示時(shí)鐘,使用按鍵可以設(shè)置時(shí)間。(100分)</p><p> 用LED點(diǎn)陣屏顯示時(shí)鐘,使用按鍵可以設(shè)置時(shí)間。(100分)</p><p> 用液晶顯示時(shí)鐘,使用按鍵可以設(shè)置時(shí)間。(100分)&
4、lt;/p><p> 在上面題目的基礎(chǔ)上,可以用PC機(jī)設(shè)置下位機(jī)系統(tǒng)時(shí)間。(另加20分)</p><p> 在上面題目的基礎(chǔ)上,可以顯示日期。(另加20分)</p><p> 其他顯示時(shí)間的合理方案設(shè)計(jì)。</p><p><b> 說明:</b></p><p> 1、系統(tǒng)時(shí)間可以是硬件時(shí)鐘
5、(使用時(shí)鐘芯片)或者軟件時(shí)鐘;輸入按鍵可以是矩陣鍵盤,獨(dú)立按鍵,遙控器等等。</p><p> 2、考慮學(xué)校實(shí)際情況,硬件部分要求繪制原理圖和PCB,但實(shí)際制作時(shí)允許使用萬用板手工焊接。</p><p> 學(xué)生選擇題目號(hào)和完成情況:(由學(xué)生填寫)</p><p> 我選擇3號(hào)題目用液晶顯示時(shí)鐘,使用按鍵可以設(shè)置時(shí)間。</p><p>
6、 完成情況: ①可以實(shí)現(xiàn)下載功能;</p><p> ?、诳梢燥@示時(shí)間,通過按鍵可以設(shè)置;</p><p><b> ?、塾辛魉疅舻淖兓?。</b></p><p> 論文完成情況:(由教師填寫)</p><p> 出勤情況(本部分滿分100,占總成績10%)</p><p> 答辯環(huán)節(jié)(本部
7、分滿分100,占總成績10%)</p><p> 第二部分:課程設(shè)計(jì)實(shí)物測試(本部分總分100,占總成績55%)</p><p> 一、自述完成內(nèi)容、工作量、質(zhì)量與特色:(由學(xué)生填寫)</p><p> 簡介教師布置的或自選題目完成情況,對實(shí)用系統(tǒng)將給于加分。</p><p> 畫原理圖以及PCB圖,通過keil進(jìn)行程序編寫并將其導(dǎo)入
8、仿真ISIS中實(shí)現(xiàn)功能。進(jìn)行實(shí)物焊接使其實(shí)現(xiàn)效果。用LCD液晶顯示屏進(jìn)行時(shí)間顯示,通過按鍵對其時(shí)間的調(diào)整。</p><p> 二、教師對完成質(zhì)量的審核與評價(jià):(由教師填寫)</p><p><b> 0、實(shí)用性評價(jià):</b></p><p><b> 1、硬件系統(tǒng):</b></p><p>&
9、lt;b> 2、軟件程序:</b></p><p><b> 數(shù)字時(shí)鐘設(shè)計(jì)</b></p><p><b> 1.課題設(shè)計(jì)意義</b></p><p> 近年來隨著科技的發(fā)展社會(huì)的進(jìn)步,人們對于數(shù)字時(shí)鐘的要求也越來越高,傳統(tǒng)的指針式時(shí)鐘已經(jīng)不能滿足人們的要求。數(shù)字時(shí)鐘已經(jīng)成為人們生活中不可少的必需
10、品,本課題所設(shè)計(jì)的數(shù)字時(shí)鐘采用單片機(jī)STC89C52進(jìn)行程序編寫,從而控制LCD液晶顯示屏使其對時(shí)間做出顯示。</p><p><b> 2、原理圖</b></p><p><b> 3、PCB圖</b></p><p><b> 4、程序</b></p><p><
11、;b> 主程序</b></p><p> #include<reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> extern void lcdint();</p>
12、<p> extern void lcd(uchar add,uchar dat);</p><p> extern void button();</p><p> extern uchar num,aa;</p><p> uchar mon,day,hour,min,sec;</p><p> uchar tt,tm
13、p;</p><p> uint year;</p><p> sbit beep=P2^3;</p><p> uchar code table[]="0123456789";</p><p> void init()</p><p><b> {</b></
14、p><p><b> lcdint();</b></p><p> TMOD=0x01;</p><p> TH0=(65536-49000)/256;</p><p> TL0=(65536-49000)%256;</p><p><b> EA=1;</b><
15、/p><p><b> ET0=1;</b></p><p> lcd(4,'-');</p><p> lcd(7,'-');</p><p> lcd(0x12,':');</p><p> lcd(0x15,':');&l
16、t;/p><p> sec=55;min=59;hour=23;year=2011,day=28,mon=2,num=1;</p><p> lcd(0x17,table[sec%10]);</p><p> lcd(0x16,table[sec/10]);</p><p> lcd(0x14,table[min%10]);</p&
17、gt;<p> lcd(0x13,table[min/10]);</p><p> lcd(0x11,table[hour%10]);</p><p> lcd(0x10,table[hour/10]); </p><p> lcd(0x00,table[year/1000]);</p><p> lcd(0x01,t
18、able[year%1000/100]);</p><p> lcd(0x02,table[year%100/10]);</p><p> lcd(0x03,table[year%10]); </p><p> lcd(0x06,table[mon%10]);</p><p> lcd(0x05,table[mon/10]);<
19、/p><p> lcd(0x09,table[day%10]);</p><p> lcd(0x08,table[day/10]); </p><p> lcd(0x1a,'n'); </p><p> lcd(0x1b,'u'); </p><p> lcd(0x1c,'
20、m'); </p><p> lcd(0x1d,':'); </p><p><b> TR0=1;</b></p><p><b> }</b></p><p> void nyr()</p><p><b> {</b&g
21、t;</p><p><b> bit run;</b></p><p><b> run=0;</b></p><p> if((year%100)==0)</p><p><b> {</b></p><p> if((year%400)=
22、=0)</p><p><b> {run=1;}</b></p><p> else{run=0;}</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b>
23、</p><p> if((year%4)==0)</p><p><b> {run=1;}</b></p><p> else{run=0;}</p><p><b> }</b></p><p> if(run==1)</p><p>
24、<b> { </b></p><p> if(day==30)</p><p><b> {</b></p><p> if(mon==2)</p><p><b> {</b></p><p><b> day=1;</b
25、></p><p><b> mon++;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> else<
26、;/b></p><p><b> { </b></p><p> if(day==29)</p><p><b> {</b></p><p> if(mon==2)</p><p><b> {</b></p><
27、p><b> day=1;</b></p><p><b> mon++;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p>
28、<p> if(day==31)</p><p><b> {</b></p><p> if((mon==4)||(mon==6)||(mon==9)||(mon==11))</p><p><b> {</b></p><p><b> day=1;</b&
29、gt;</p><p><b> mon++;</b></p><p><b> }</b></p><p><b> }</b></p><p> if(day==32)</p><p><b> {</b></p
30、><p> if((mon==1)||(mon==3)||(mon==5)||(mon==7)||(mon==8)||(mon==10)||(mon==12))</p><p><b> {</b></p><p><b> day=1;</b></p><p><b> mon++;
31、</b></p><p><b> }</b></p><p><b> }</b></p><p> if(mon==13)</p><p><b> {</b></p><p><b> mon=1;</b>
32、;</p><p><b> year++;</b></p><p><b> } </b></p><p> if(year>9999){year=0;} </p><p> lcd(0x06,table[mon%10]);</p><p> lcd(0x
33、05,table[mon/10]); </p><p> lcd(0x08,table[day/10]);</p><p> lcd(0x09,table[day%10]); </p><p> lcd(0x00,table[year/1000]);</p><p> lcd(0x01,table[year%1000/100]);&l
34、t;/p><p> lcd(0x02,table[year%100/10]);</p><p> lcd(0x03,table[year%10]);</p><p><b> }</b></p><p> void time()</p><p><b> {</b>&l
35、t;/p><p><b> tt=0;</b></p><p><b> sec++;</b></p><p> if(sec==60)</p><p><b> {</b></p><p><b> sec=0;</b>&l
36、t;/p><p><b> min++; </b></p><p> if(min==60)</p><p><b> {</b></p><p><b> min=0;</b></p><p><b> hour++;</b&g
37、t;</p><p> if(hour==24)</p><p><b> {</b></p><p> hour=0;beep=0;day++;nyr();</p><p> lcd(0x09,table[day%10]);</p><p> lcd(0x08,table[day/10
38、]);</p><p><b> }</b></p><p> lcd(0x11,table[hour%10]);</p><p> lcd(0x10,table[hour/10]);</p><p><b> } </b></p><p> lcd(0x14,t
39、able[min%10]);</p><p> lcd(0x13,table[min/10]);</p><p><b> }</b></p><p> lcd(0x17,table[sec%10]);</p><p> lcd(0x16,table[sec/10]);</p><p>&
40、lt;b> }</b></p><p> void change()</p><p><b> {</b></p><p><b> uchar bn;</b></p><p> if(num!=0)</p><p><b> {<
41、;/b></p><p><b> TR0=0;</b></p><p> if(num==12)</p><p><b> {</b></p><p> if(year<100){year=year+10000;}</p><p> year=yea
42、r-100;</p><p><b> }</b></p><p> if(num==13)</p><p> {year=year+100;}</p><p> if(num==10)</p><p><b> {</b></p><p>
43、 bn=year%100;</p><p> if(bn==0){year=year+100;}</p><p><b> year--;</b></p><p><b> }</b></p><p> if(num==11)</p><p><b>
44、{year++;}</b></p><p> if(num==8)</p><p><b> {</b></p><p><b> mon--;</b></p><p> if(mon==0){mon=12;}</p><p><b> }&l
45、t;/b></p><p> if(num==9)</p><p><b> {mon++;}</b></p><p> if(num==7)</p><p><b> {day++;}</b></p><p> if(num==6)</p>&
46、lt;p><b> {</b></p><p><b> day--;</b></p><p> if(day==0)</p><p><b> {</b></p><p> if((mon==4)||(mon==6)||(mon==9)||(mon==11))
47、</p><p><b> {day=30;}</b></p><p><b> else</b></p><p><b> {</b></p><p> if(mon==2){day=28;}</p><p> else{day=31;}&l
48、t;/p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> if(num==5)</p><p> {hour++;if(hour==24){hour=0;}}</p&
49、gt;<p> if(num==4)</p><p><b> {</b></p><p> if(hour==0){hour=24;}</p><p><b> hour--;</b></p><p><b> }</b></p><
50、;p> if(num==3)</p><p> {min++;if(min==60){min=0;}}</p><p> if(num==2)</p><p> {if(min==0){min=60;}min--;}</p><p> if(num==1)</p><p><b> {sec
51、=0;}</b></p><p><b> if(num<6)</b></p><p><b> { </b></p><p> lcd(0x11,table[hour%10]);</p><p> lcd(0x10,table[hour/10]);</p>
52、<p> lcd(0x14,table[min%10]);</p><p> lcd(0x13,table[min/10]); </p><p> lcd(0x16,table[sec%10]);</p><p> lcd(0x17,table[sec/10]);</p><p><b> }</b>
53、;</p><p> else{nyr();}</p><p> num=1;TR0=1;</p><p><b> }</b></p><p><b> }</b></p><p><b> 流水燈程序</b></p><
54、;p> #include"main.h"</p><p> void main()</p><p><b> {</b></p><p><b> init();</b></p><p><b> P2=0xff;</b></p>
55、<p><b> P1=0xff;</b></p><p><b> tmp=P1;</b></p><p><b> while(1)</b></p><p><b> {</b></p><p><b> if(tt&
56、gt;20)</b></p><p><b> {time();}</b></p><p><b> button();</b></p><p><b> if(aa==3)</b></p><p> {aa=0;change();}</p>
57、<p><b> P1=tmp;</b></p><p> lcd(0x1e,table[num/10]);</p><p> lcd(0x1f,table[num%10]);</p><p><b> }</b></p><p><b> }</b><
58、;/p><p> void time0()interrupt 1</p><p><b> { </b></p><p> TH0=(65536-49000)/256;</p><p> TL0=(65536-49000)%256;</p><p><b> tt++;</b
59、></p><p> if(tt%5==0)</p><p><b> {</b></p><p> if(tmp==0){beep=1;tmp=0xff;}</p><p><b> tmp>>=1; </b></p><p><b>
60、 }</b></p><p><b> }</b></p><p><b> 液晶程序</b></p><p> #include<reg52.h></p><p> #define uint unsigned int</p><p> #
61、define uchar unsigned char</p><p> sbit lcde=P3^7;</p><p> sbit rs=P3^6;</p><p> //sbit wr=P2^1;</p><p> void delay1(uint c)</p><p><b> {</b&
62、gt;</p><p><b> uint a,b;</b></p><p> for(a=c;a>0;a--)</p><p> for(b=110;b>0;b--);</p><p><b> }</b></p><p> void write_co
63、m(uchar com)</p><p><b> { </b></p><p><b> //wr=0;</b></p><p><b> lcde=0;</b></p><p><b> rs=0;</b></p><p
64、><b> P0=com;</b></p><p> delay1(5);</p><p><b> lcde=1;</b></p><p> delay1(5);</p><p><b> lcde=0;</b></p><p><
65、;b> }</b></p><p> void write_dat(uchar dat)</p><p><b> {</b></p><p><b> //wr=0;</b></p><p><b> rs=1;</b></p>&
66、lt;p><b> P0=dat;</b></p><p> delay1(5);</p><p><b> lcde=1;</b></p><p> delay1(5);</p><p><b> lcde=0;</b></p><p>
67、;<b> }</b></p><p> void lcdint()</p><p><b> {</b></p><p> write_com(0x38);</p><p> write_com(0x0c);</p><p> write_com(0x06);&
68、lt;/p><p> write_com(0x01);</p><p> } </p><p> void lcd(uchar add,uchar dat)</p><p><b> {</b></p><p> delay1(5);</p><p>
69、 if(add<16)</p><p> {write_com(0x80+add);}</p><p><b> else</b></p><p><b> {</b></p><p> add=add%16;</p><p> write_com(0x80
70、+0x40+add);</p><p><b> }</b></p><p> delay1(10);</p><p> write_dat(dat);</p><p><b> }</b></p><p><b> 按鍵程序</b></
71、p><p> #include<reg52.h></p><p> #define uchar unsigned char</p><p> #define uint unsigned int</p><p> uchar num,aa;</p><p> sbit key1=P2^7;</p&
72、gt;<p> sbit key2=P2^6;</p><p> sbit key3=P2^5;</p><p> void button()</p><p><b> {</b></p><p><b> if(!key1)</b></p><p>
73、<b> {</b></p><p> while(!key1)</p><p><b> {aa=1;}</b></p><p><b> }</b></p><p><b> if(!key2)</b></p><p>
74、;<b> {</b></p><p> while(!key2)</p><p><b> {aa=2;}</b></p><p><b> }</b></p><p><b> if(!key3)</b></p><p&g
75、t;<b> {</b></p><p> while(!key3)</p><p><b> {aa=3;}</b></p><p><b> }</b></p><p><b> if(aa==2)</b></p><p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--時(shí)鐘及液晶顯示器設(shè)計(jì)
- 單片機(jī)最小時(shí)鐘日期顯示課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--漢字液晶顯示器顯示
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)課程設(shè)計(jì)---電子時(shí)鐘
- 液晶課程設(shè)計(jì)--單片機(jī)液晶顯示器系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)--led數(shù)字顯示電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)--lcd12864液晶顯示
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字時(shí)鐘.doc
- 單片機(jī)課程設(shè)計(jì)--數(shù)字時(shí)鐘
- 單片機(jī)簡易時(shí)鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)-字符液晶顯示器設(shè)計(jì)
- 課程設(shè)計(jì)-- 單片機(jī)控制系統(tǒng)設(shè)計(jì)實(shí)訓(xùn)
- 單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)(數(shù)字時(shí)鐘)
- 單片機(jī)課程設(shè)計(jì)--液晶顯示電子密碼鎖
- 單片機(jī)課程設(shè)計(jì)---時(shí)鐘系統(tǒng)設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)
評論
0/150
提交評論