

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 單片機(jī)原理及應(yīng)用 課程設(shè)計(jì)報(bào)告</p><p> (2013—2014學(xué)年 第一學(xué)期)</p><p> 題 目 基于單片機(jī)的電子時(shí)鐘設(shè)計(jì) </p><p> 系 別 電子與電氣工程系 </p><p> 專 業(yè) 通信工程 </p><p>
2、; 班 級(jí) </p><p> 學(xué) 號(hào) </p><p> 姓 名 </p><p> 指導(dǎo)教師 </p><p> 完成時(shí)間 2013-11-
3、28 </p><p> 評(píng)定成績(jī) </p><p><b> 目 錄</b></p><p> 一、設(shè)計(jì)的目的3</p><p> 二、設(shè)計(jì)的內(nèi)容與要求3</p><p><b> 三、設(shè)計(jì)方案4&l
4、t;/b></p><p> 四、硬件、軟件設(shè)計(jì)4</p><p><b> 五、設(shè)計(jì)總結(jié)4</b></p><p><b> 六、參考文獻(xiàn)4</b></p><p><b> 設(shè)計(jì)的目的</b></p><p> 在基本掌握
5、了《單片機(jī)原理及應(yīng)用》課程知識(shí)的基礎(chǔ)上,完成課程設(shè)計(jì)項(xiàng)目的設(shè)計(jì)。通過課程設(shè)計(jì)環(huán)節(jié)的訓(xùn)練,包括設(shè)計(jì)方案的論證、硬件設(shè)計(jì)、程序編寫和設(shè)計(jì)報(bào)告的撰寫,掌握單片機(jī)應(yīng)用項(xiàng)目的設(shè)計(jì)流程和方法,加深對(duì)《單片機(jī)原理及應(yīng)用》課程知識(shí)的理解和掌握,培養(yǎng)應(yīng)用系統(tǒng)的設(shè)計(jì)能力,初步積累單片機(jī)系統(tǒng)開發(fā)經(jīng)驗(yàn),以及分析問題和解決問題的方法,并進(jìn)一步拓寬專業(yè)知識(shí)面,培養(yǎng)實(shí)踐應(yīng)用技能和創(chuàng)新意識(shí)。 </p><p><b> 設(shè)計(jì)的內(nèi)容與
6、要求</b></p><p> 根據(jù)《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)教學(xué)大綱、《單片機(jī)原理及應(yīng)用》課程設(shè)計(jì)指導(dǎo)書,開展課程設(shè)計(jì)環(huán)節(jié)。有四個(gè)設(shè)計(jì)項(xiàng)目供選擇:步進(jìn)電機(jī)控制、直流電機(jī)調(diào)速、電子琴或電子時(shí)鐘。</p><p><b> 設(shè)計(jì)內(nèi)容與要求:</b></p><p> ?。?)選擇其中一個(gè)設(shè)計(jì)項(xiàng)目,進(jìn)行設(shè)計(jì)方案的比較和論證,確定設(shè)
7、計(jì)思路和方案;</p><p> (2)進(jìn)行硬件設(shè)計(jì),畫出硬件結(jié)構(gòu)框圖,完成電路原理圖的設(shè)計(jì)和元器件選型,必要時(shí)應(yīng)給出重要電路參數(shù)的設(shè)計(jì)和計(jì)算過程,以及元器件參數(shù)的選型依據(jù);</p><p> ?。?)編寫單片機(jī)的軟件程序,先理清軟件設(shè)計(jì)思路并繪制程序流程圖,再編寫具體的匯編語言或C語言程序語句,并注釋說明。</p><p> 成績(jī)?cè)u(píng)定依據(jù):(分值百分比)<
8、;/p><p> ?。?)確定設(shè)計(jì)思路和方案——20%;</p><p> ?。?)畫出硬件結(jié)構(gòu)框圖、原理圖的設(shè)計(jì)、元器件選型,給出電路參數(shù)的設(shè)計(jì)依據(jù)——30%;</p><p> ?。?)繪制程序流程圖,再編寫程序語句,并注釋說明——30%;</p><p> ?。?)設(shè)計(jì)成果的功能完善程度、創(chuàng)新點(diǎn)、演示效果,撰寫設(shè)計(jì)報(bào)告的規(guī)范性——20%。&
9、lt;/p><p><b> 設(shè)計(jì)方案</b></p><p> 根據(jù)定時(shí)中斷的原理,數(shù)碼管顯示和鍵盤掃描電路,以及和MCS51單片機(jī)的接口方式,通過軟件編程,實(shí)現(xiàn)時(shí)間初值設(shè)置,時(shí)鐘運(yùn)行和顯示。</p><p> 可供使用的硬件電路:</p><p> 七段數(shù)碼管顯示電路;</p><p>
10、 8155和74LS164“串轉(zhuǎn)并”實(shí)現(xiàn)的鍵盤掃描和數(shù)碼管控制顯示電路;</p><p> 串并轉(zhuǎn)換數(shù)碼管顯示電路:通過74LS164實(shí)現(xiàn)串入并出,控制四個(gè)七段數(shù)碼管的顯示。MCS-51單片機(jī)有一個(gè)全雙工的串行通信接口,當(dāng)工作于方式0時(shí),為同步移位寄存器輸入/輸出方式,常用于擴(kuò)展I/O口,這時(shí)串行數(shù)據(jù)通過RxD引腳輸入或輸出,引腳TxD輸出同步移位信號(hào),收/發(fā)數(shù)據(jù)都為8位,低位在前,波特率為振蕩頻率的1/12。
11、</p><p> 七段數(shù)碼管的字型代碼表如下表: </p><p><b> 硬件和軟件設(shè)計(jì)</b></p><p><b> 總原理圖</b></p><p> 1-1數(shù)碼管顯示部分</p><p><b> 1-2按鍵部分</b><
12、/p><p><b> 操作步驟</b></p><p><b> 2-1硬件操作</b></p><p><b> LED環(huán)境</b></p><p><b> PC環(huán)境</b></p><p> 與PC聯(lián)機(jī)狀態(tài),在keil
13、c軟件輸入程序。點(diǎn)擊圖標(biāo),設(shè)置“輸出”項(xiàng)。</p><p> 點(diǎn)擊圖標(biāo)編譯文件,編譯通過后,點(diǎn)擊 圖標(biāo)開始調(diào)試,等待下載完成。</p><p><b> 3)觀察運(yùn)行結(jié)果</b></p><p> 點(diǎn)擊圖標(biāo)用連續(xù)方法運(yùn)行該程序。此時(shí)數(shù)碼管上實(shí)時(shí)顯示時(shí)間值。并按相關(guān)按鈕對(duì)時(shí)間進(jìn)行調(diào)整</p><p><b&g
14、t; 終止運(yùn)行</b></p><p> 按 “暫停圖標(biāo)”或?qū)嶒?yàn)箱上的“RST”按鍵,使系統(tǒng)無條件退出該程序的運(yùn)行返回監(jiān)控狀態(tài)。</p><p><b> 2-2軟件仿真操作</b></p><p> 1)進(jìn)入Proteus仿真系統(tǒng)</p><p> 2)點(diǎn)擊File/Open Design,導(dǎo)入
15、設(shè)計(jì)好的仿真原理圖。右擊AT89C51芯片,選擇“Edit Properties/Program File”載入在keilc軟件產(chǎn)生的 .HEX文件,并“OK”。 </p><p><b> 3)觀察仿真結(jié)果</b></p><p> 點(diǎn)擊“Play”, 數(shù)碼管上實(shí)時(shí)顯示時(shí)間值。</p><p><b> 時(shí)間調(diào)整</b&
16、gt;</p><p> 按“暫停/開始”按鈕,數(shù)碼管停止計(jì)時(shí)。按一次“選擇”按鈕,選中“秒”,并按“上調(diào)”或“下調(diào)”按鈕調(diào)整秒;再按一次“選擇”按鈕,將選中“分”,按相關(guān)按鈕對(duì)分上調(diào)/下調(diào)。 調(diào)整完后,再按 “暫停/開始”按鈕,數(shù)碼管繼續(xù)實(shí)時(shí)計(jì)時(shí)。</p><p><b> 3 程序源代碼</b></p><p> /*********
17、*********************電子時(shí)鐘********************************/</p><p> #include<reg51.h></p><p> #define uint unsigned int</p><p> #define uchar unsigned char</p><p&
18、gt; sbit CLK=P1^1; </p><p> sbit DIN=P1^2;</p><p> sbit k1_up=P1^3;//設(shè)置 上調(diào) 按鈕</p><p> sbit k2_down=P1^4;//下調(diào) 按鈕</p><p> sbit k_3=P1^5;//暫停/開始 按鈕</p><p&g
19、t; sbit k_4=P1^6;//選擇 按鈕</p><p> bit flag=0;</p><p> uchar code table1[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; /* 共陰極0~9 */ </p><p> uchar zzq[4]={0};//顯示緩存</p
20、><p> uchar second,minute; </p><p> uchar num_stop=0,us,k_num;</p><p> void delay(uint t) //延遲子程序 </p><p><b> { </b></p><p><b> uint
21、j; </b></p><p> while(t--) </p><p> for(j=125;j>0;j--); </p><p><b> } </b></p><p> void Write_164(uchar Data) </p><p> //寫入7
22、4LS164芯片</p><p><b> {</b></p><p><b> uchar i;</b></p><p> CLK =1; </p><p> for(i=0;i<8;i++)</p><p><b> {<
23、;/b></p><p> if((Data>>7)&0x01) </p><p><b> DIN =1;</b></p><p><b> else</b></p><p><b> DIN =0;</b></p>
24、<p><b> CLK =0;</b></p><p><b> CLK =1;</b></p><p> Data <<=1;</p><p><b> }</b></p><p><b> }</b></p&
25、gt;<p> void number_m_s(uchar s,char m)</p><p><b> { </b></p><p> zzq[0]=s%10;</p><p> zzq[1]=s/10;</p><p> zzq[2]=m%10;</p><p> z
26、zq[3]=m/10;</p><p><b> }</b></p><p> void speak_164(void) //164送數(shù)</p><p><b> {</b></p><p> Write_164(table1[zzq[0]]);</p><p>
27、Write_164(table1[zzq[1]]);</p><p> Write_164(table1[zzq[2]]|0x80);</p><p> Write_164(table1[zzq[3]]);</p><p><b> }</b></p><p> void t0_1()//T0初始化 子程序 &
28、lt;/p><p><b> { </b></p><p> TMOD=0x01; //定時(shí)器T0工作方式1 </p><p> TH0=(65535-50000)/256; //50ms </p><p> TL0=(65535-50000)%256; </p><p> EA=1
29、; //開總中斷 </p><p> ET0=1; </p><p><b> TR0=1;</b></p><p><b> } </b></p><p> void k_stop()//按鍵——暫停/開始</p><p><
30、;b> {</b></p><p> if(k_3==0)</p><p><b> {</b></p><p><b> delay(5);</b></p><p> if(k_3==0)</p><p> while(!k_3);&
31、lt;/p><p> flag=!flag;</p><p><b> }</b></p><p><b> }</b></p><p> void choose_m_s()//按鍵——選擇</p><p><b> {</b><
32、/p><p> if(k_4==0)</p><p><b> {</b></p><p><b> delay(5);</b></p><p> if(k_4==0)</p><p> while(!k_4);</p><p><b>
33、; k_num++;</b></p><p> if(k_num==3)</p><p><b> k_num=1;</b></p><p><b> }</b></p><p><b> }</b></p><p> void
34、key_m_s()//按鍵---上/下調(diào)</p><p><b> {</b></p><p> k_stop();//暫停</p><p> while(flag)//只有在暫停狀態(tài)才能調(diào)整</p><p><b> {</b></p><p> TR0=0;//
35、停止計(jì)時(shí)</p><p> choose_m_s();//調(diào)用選擇按鍵</p><p> if(k_num!=0)//當(dāng)有按下選擇鍵 </p><p><b> {</b></p><p> if(k1_up==0)//上調(diào) </p><p> {
36、 </p><p> delay(5); </p><p> if(k1_up==0)//去抖 </p><p><b> { </b></p><p> while(!k1_up); /*按鍵彈起有效 */
37、 </p><p> if(k_num==1) //上調(diào)秒</p><p><b> {</b></p><p><b> second++;</b></p><p> if(second==60) </p><p> second= 0;</p>
38、<p><b> }</b></p><p> if(k_num==2) //上調(diào)分</p><p><b> {</b></p><p> minute++;if(minute==60) minute= 0;</p><p><b> } </b>&l
39、t;/p><p><b> }</b></p><p> } </p><p> if(k2_down==0)//下調(diào) </p><p> { </p><p> delay(5); </p
40、><p> if(k2_down==0) </p><p><b> { </b></p><p> while(!k2_down); </p><p> if(k_num==1) //下調(diào)秒</p><p><b>
41、 { </b></p><p><b> second--;</b></p><p> if(second==0) </p><p> second= 59;</p><p> } </p><p> if(k_num == 2) //下調(diào)分<
42、/p><p><b> { </b></p><p> minute--; </p><p> if(minute== 0) </p><p> minute=59;</p><p><b> } </b></p><p><b>
43、}</b></p><p> }</p><p> number_m_s(second,minute);//更新數(shù)據(jù) speak_164();//顯示數(shù)據(jù) </p><p> delay(200);}</p><p> k_stop();//取消暫停
44、 </p><p> } </p><p> k_num=0;/*保證每次暫停時(shí),都要按“選擇鍵”才能調(diào)整*/</p><p> TR0=1; //恢復(fù)計(jì)時(shí)</p><p><b> } </b></p><p> void main() &
45、lt;/p><p><b> { </b></p><p> t0_1(); // 定時(shí)中斷</p><p> while(1) </p><p><b> { </b></p><p> key_m_s(); //按鍵掃描</p><p&g
46、t;<b> }</b></p><p><b> }</b></p><p> void time0() interrupt 1 //中斷服務(wù)子程序</p><p><b> { </b></p><p> TH0=(65535-50000)/256; /
47、/重新賦值 </p><p> TL0=(65535-50000)%256; </p><p><b> us++; </b></p><p> if(us==20) // 1秒鐘 </p><p><b> {</b></p><p><b> s
48、econd++;</b></p><p> if(second==60)//1分鐘</p><p><b> {</b></p><p><b> second=0;</b></p><p><b> minute++;</b></p><
49、;p> if(minute==60)//1小時(shí)</p><p> minute=0; </p><p><b> }</b></p><p><b> us=0;</b></p><p> number_m_s(second,minute);/*以1秒為單位更新數(shù)據(jù) */
50、 </p><p> speak_164();//顯示數(shù)據(jù)</p><p><b> }</b></p><p><b> } </b></p><p><b> 效果圖</b></p><p><b> 設(shè)計(jì)
51、總結(jié)</b></p><p> 通過這幾天的單片機(jī)的實(shí)訓(xùn),我在理論的基礎(chǔ)上更深刻的掌握了單片機(jī)的深層內(nèi)容及實(shí)際生活中的應(yīng)用,讓我對(duì)這門課有了許多新的了解彌補(bǔ)了在課堂上學(xué)習(xí)的不足。實(shí)訓(xùn)鍛煉了自己動(dòng)手能力和思維能力,還有在軟件方面的編程能力,讓我受益匪淺,同時(shí)也暴露出一些平時(shí)學(xué)習(xí)上的問題,讓我深刻反思。這些問題的發(fā)現(xiàn)將為我以后的學(xué)習(xí)和工作找明道路,查漏補(bǔ)缺為進(jìn)一步學(xué)習(xí)作好準(zhǔn)備。通過實(shí)訓(xùn),讓我懂得了如何編
52、寫一些簡(jiǎn)單的程序,學(xué)會(huì)了如何制作單片機(jī)應(yīng)用程序,并且可以在今后的日常生活中靈活運(yùn)用。相信這對(duì)我們以后的學(xué)習(xí)和工作都會(huì)有很大的幫助。</p><p><b> 參考文獻(xiàn)</b></p><p> 單片機(jī)原理及接口技術(shù)(第二版),李全利,北京:高等教育出版社,2009年。</p><p> 單片機(jī)原理及應(yīng)用(第二版),李建忠,西安:西安電子科
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)(電子時(shí)鐘)
- 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)電子時(shí)鐘設(shè)計(jì)
- 單片機(jī)原理及系統(tǒng)課程設(shè)計(jì)--電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)報(bào)告---電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)報(bào)告--電子時(shí)鐘
- 單片機(jī)原理及應(yīng)用課程設(shè)計(jì)--基于單片機(jī)的電子時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告--電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)-單片機(jī)課程設(shè)計(jì)---電子時(shí)鐘
- 電子時(shí)鐘單片機(jī)課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)---電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)——電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)——電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)--電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)-電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)--電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)--電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)----電子時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)-電子時(shí)鐘
- 單片機(jī)應(yīng)用電子時(shí)鐘課程設(shè)計(jì)
- 單片機(jī)應(yīng)用課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告-電子時(shí)鐘
評(píng)論
0/150
提交評(píng)論