版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、單片機課程設(shè)計姓 名: 韶輝 學(xué) 號: 1402250232 班 級:自動化11402 成 績:指導(dǎo)老師: 吳玉蓉 設(shè)計時間:2016年12月26日2017年1月5日目 錄1.設(shè)計要求.12.系統(tǒng)總體方案23.硬件電路設(shè)計34.系統(tǒng)軟件設(shè)計.45.課程設(shè)計體會.156.參考文獻157.系統(tǒng)實物圖.16附錄1 電路原理圖17附錄2 原件清單.18一、設(shè)計要求利用51單片機開發(fā)電子時鐘,實現(xiàn)時間顯示、調(diào)整功能。具體要求如下:(1) 按以上要求制定設(shè)計方案,并繪制出系統(tǒng)工作框圖;(2) 按要求設(shè)計部分外圍電路,并與單片機仿真器、單片機實驗箱、電源等正確可靠的連接,給出電路原理圖;(3) 用仿真器與單
2、片機實驗箱進行程序設(shè)計與調(diào)試;(4) 利用鍵盤輸入調(diào)整秒、分和小時時刻,數(shù)碼管顯示時間;二、系統(tǒng)總體方案1.時鐘計數(shù):形成秒、分、小時,系統(tǒng)時間采用24小時制。利用單片機部的定時器/計數(shù)器來實現(xiàn),它的處理過程如下:首先設(shè)定單片機部的一個定時器/計數(shù)器工作于定時方式,對機器周期計數(shù)形成基準時間(如10ms),然后用另一個定時器/計數(shù)器或軟件計數(shù)的方法對基準時間計數(shù)形成秒(對10ms計數(shù)100次),秒計60次形成分,分計60次形成小時,小時計24次則計滿一天。2.顯示:采用8個LED顯示系統(tǒng)當(dāng)前時間,顯示格式為“時-分-秒”(如12-25-09)。3.設(shè)置功能:用戶可以對系統(tǒng)的時間進行設(shè)置。沒有按
3、鍵時,則時鐘正常走時。當(dāng)按下K0鍵,進入調(diào)分狀態(tài),時鐘停止走動,此時,按K1或K2鍵可進行加1或減1操作;繼續(xù)按K0鍵可分別進行分和時的調(diào)整,此時,按K1或K2鍵可進行加1或減1操作;最后按K0鍵將退出調(diào)整狀態(tài),時鐘開始計時運行。4.系統(tǒng)框圖STC89C51復(fù)位電路電源電路按鍵電路顯示電路晶振電路三、硬件電路設(shè)計1.時鐘電路(晶振電路)單片機利用外部12MHZ晶振構(gòu)成振蕩電路作為時鐘源,單片機部具有一個高增益反向放大器,用于構(gòu)成振蕩器。通常在引腳XTAL1和XTAL2跨接石英晶體和兩個補償電容構(gòu)成自激振蕩器,結(jié)構(gòu)如圖所示:圖2 時鐘電路圖2.按鍵電路按鍵處理設(shè)置為:當(dāng)有沒鍵按下時,時鐘正常運行
4、;當(dāng)按一次K1,時鐘停止走動,按K2對秒進行調(diào)整;當(dāng)K1按2次時,按K2 對分進行調(diào)整;當(dāng)K1按下3次時,按K2 對小時進行調(diào)整,當(dāng)按下4次K1時,校時完畢,時鐘按設(shè)定的時間進行正常走時。當(dāng)按1次K3進入鬧鐘設(shè)置界面,時鐘繼續(xù)進行走時,按K2對秒進行設(shè)置;當(dāng)按2次K3,按K2對分進行設(shè)置;當(dāng)按3次K3,按K2對秒進行設(shè)置;當(dāng)按下4次K3時,鬧鐘設(shè)置完畢進入時鐘顯示界面。電路如下圖: 圖3 獨立按鍵電路3.復(fù)位電路單片機小系統(tǒng)常采用上電自動復(fù)位和手動按鍵復(fù)位兩種方式實現(xiàn)系統(tǒng)的復(fù)位操作,上電復(fù)位要求接通電源后,自動實現(xiàn)復(fù)位操作,手動復(fù)位要求在電源接通的條件下,在單片機運行期間,用按鈕開關(guān)操作使單片
5、機復(fù)位,其結(jié)構(gòu)圖如下圖,上電自動復(fù)位通過電容C充電來實現(xiàn),手動按鍵復(fù)位是通過按鍵將電阻R與Vcc接通來實現(xiàn)。圖4 復(fù)位電路4.單片機系統(tǒng)STC89C51是STC公司生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有 4K 在系統(tǒng)可編程Flash存儲器。STC89C51使用經(jīng)典的MCS-51核,但做了很多的改進使得芯片具有傳統(tǒng)51單片機不具備的功能。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C51為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作
6、。掉電保護方式下,RAM容被保存,振蕩器被圖5 單片機系統(tǒng) 凍結(jié),單片機一切工作停止,直到下一個中斷或硬件復(fù)位為止。最高運作頻率35MHz,6T/12T可選。5. 數(shù)碼管顯示電路將所有數(shù)碼管的8個顯示段碼"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數(shù)碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當(dāng)單片機輸出字形碼時,所有數(shù)碼管都接收到一樣的字形碼,但究竟是那個數(shù)碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數(shù)碼管的選通控制打開,該位就顯示出字形,沒有選通的數(shù)碼管就不會亮。通過分時輪流控制各個數(shù)碼
7、管的COM端,就使各個數(shù)碼管輪流受控顯示,電路如下圖:圖6 數(shù)碼管顯示電路四、軟件設(shè)計本系統(tǒng)的軟件系統(tǒng)主要可分為主程序、定時計數(shù)中斷程序、按鍵程序、延時程序四大模塊。設(shè)計思路:本系統(tǒng)主要可分為主程序、定時計數(shù)中斷程序、按鍵程序、延時程序和共陰極數(shù)碼管顯示程序。定時中斷程序是利用單片機部定時器0實現(xiàn)1秒的定時,然后利用軟件延時實現(xiàn)分小時,時間調(diào)整程序是利用單片機的部存貯器,把調(diào)整好的時間寫到顯示時間的存貯單元,然后啟動定時器開始計時并顯示,延時程序是利用軟件實現(xiàn)延時達到去抖的目的和數(shù)碼管動態(tài)顯示的延時。主程序就是利用這些子程序中斷程序?qū)崿F(xiàn)顯示、定時等功能。1.軟件流程圖(1)主程序開始初始化鍵盤
8、掃描顯示(2)鍵盤掃描程序開始計時滿1s秒加1滿60s開始時間顯示時清零時滿24分清零,時加1分滿60秒清零,分加1(3)顯示程序開始時間數(shù)據(jù)個十位分離i=0i>8 ?送位選碼結(jié)束消隱送段選碼2、程序清單#include<reg52.h>#define uint unsigned int#define uchar unsigned charuchar code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;sbit k0=P10;sbit k1=P11;sbit k2=P12;int s0,s1,mi
9、n0,min1,h0,h1,shi,fen,miao,count,slnum,a0,a1,b0,b1,c0,c1;void delay(uint z) /延時函數(shù)1ms uint x,y; for(x=z;x>0;x-) for(y=90;y>0;y-);void init() /初始化函數(shù) P0=table0; P2=0xff; shi=23; fen=59;/上電時間23-59-50 miao=50; s1=miao/10; s0=miao%10; min1=fen/10; min0=fen%10; h1=shi/10; h0=shi%10;/分離出個位十位 TMOD=0x01
10、; TH0=(65536-50000)/256; TL0=(65536-50000)%256;/基準時間為20ms EA=1; ET0=1; TR0=1;/打開中斷定時器void display0() / P2=0x80; P0=tableh1; delay(1); P0=0x00;/消隱 P2=0x40; P0=tableh0; delay(1); P0=0x00; P2=0x20; P0=0x40; delay(1); P0=0x00; P2=0x10; P0=tablemin1; delay(1); P0=0x00; P2=0x08; P0=tablemin0; delay(1); P0
11、=0x00; P2=0x04; P0=0x40;/讓時分秒中間顯示“” delay(1); P0=0x00; P2=0x02; P0=tables1; delay(1); P0=0x00; P2=0x01; P0=tables0; delay(1); P0=0x00;void display2()該顯示函數(shù)是讓閃爍顯示函數(shù)的子函數(shù) P2=0x80; P0=tablea1; delay(1); P0=0x00; P2=0x40; P0=tablea0; delay(1); P0=0x00; P2=0x20; P0=0x40; delay(1); P0=0x00; P2=0x10; P0=tabl
12、eb1; delay(1); P0=0x00; P2=0x08; P0=tableb0; delay(1); P0=0x00; P2=0x04; P0=0x40; delay(1); P0=0x00; P2=0x02; P0=tablec1; delay(1); P0=0x00; P2=0x01; P0=tablec0; delay(1); P0=0x00;void display3()閃爍顯示函數(shù),用于未松手閃爍 int n; for(n=0;n<40;n+) display0(); for(n=0;n<35;n+) display2(); void kryscan() /鍵盤掃
13、描函數(shù) if(k0=0) delay(3);/延時去抖 if(k0=0)/確認K0已按下 slnum+; while(!k0)/判斷是否松手 display0();/未松手閃爍顯示 if(slnum=1) TR0=0;/關(guān)閉定時器,時鐘停止走動 c1=10; c0=10; a1=h1; a0=h0; b0=min0; b1=min1;/讓秒鐘閃,時鐘分鐘顯示 if(slnum=2) c1=s1; c0=s0; a1=h1; a0=h0; b0=10; b1=10;/讓分鐘閃,秒鐘時鐘顯示 if(slnum=3) c1=s1; c0=s0; a1=10; a0=10; b0=min0; b1=m
14、in1;/讓時鐘閃,秒鐘分鐘顯示 if(slnum=4) c1=s1; c0=s0; a1=h1; a0=h0; b0=min0; b1=min1; slnum=0;/全部顯示,不閃爍 TR0=1;/打開定時器,時鐘繼續(xù) if(slnum!=0) if(k1=0) delay(3); if(k1=0)/K1是否按下 while(!k1)/判斷是否松手 display3();/閃爍顯示 if(slnum=1) miao+; if(miao=60) miao=0; s1=miao/10; s0=miao%10;/秒鐘加一 if(slnum=2) fen+; if(fen=60) fen=0; mi
15、n1=fen/10; min0=fen%10;/分鐘加一 if(slnum=3) shi+; if(shi=24) shi=0; h1=shi/10; h0=shi%10;/時鐘加一 if(k2=0) delay(3); if(k2=0) while(!k2) display3(); if(slnum=1) miao-; if(miao=-1) miao=59; s1=miao/10; s0=miao%10;/秒鐘減一 if(slnum=2) fen-; if(fen=-1) fen=59; min1=fen/10; min0=fen%10;/分鐘減一 if(slnum=3) shi-; if
16、(shi=-1) shi=23; h1=shi/10; h0=shi%10;/時鐘減一 void display1()/按鍵檢查閃爍顯示函數(shù) int n; for(n=0;n<40;n+) display0(); kryscan(); for(n=0;n<35;n+) display2(); kryscan(); void main() /主函數(shù) init(); while(1) display0(); kryscan(); if(!slnum=0) display1(); void timer0() interrupt 1 /中斷函數(shù) TH0=(65536-50000)/256;
17、 TL0=(65536-50000)%256; count+; if(count=20) count=0; miao+; if(miao=60) miao=0; fen+; if(fen=60) fen=0; shi+; if(shi=24) shi=0; h1=shi/10; h0=shi%10; min1=fen/10; min0=fen%10; s1=miao/10; s0=miao%10; 五、設(shè)計心得體會通過本次課程設(shè)計,加強了我對單片機這門課程的理解與熟悉,而且這次設(shè)計使我的動手能力更有顯著的提高,讓我獲益良多,也使我更加扎實的掌握了有關(guān)電子線路單片機方面的知識,在設(shè)計過程中雖然遇
18、到了一些問題,但經(jīng)過一次又一次的思考,一遍又一遍的檢查,我終于找出了問題的所在,也暴露出了我在這方面的知識欠缺和經(jīng)驗不足。實踐才能出真知,實踐才是檢驗真理的唯一標準,唯有通過親手制作,才能令我們掌握知識。在這次的課程設(shè)計中,我們遇到了很多困難,過程很艱難,但是我們都克服了,這是對我們自己的肯定。我們不斷發(fā)現(xiàn)錯誤,不斷改正,不斷領(lǐng)悟,不斷獲取。不可否認,單片機是一門比較難的專業(yè)學(xué)科。但是經(jīng)過這一學(xué)期的學(xué)習(xí),我覺得單片機這門課很好,讓我們在設(shè)計中掌握課程,具有很強的實用性。在社會上,單片機應(yīng)用極其廣泛。通過這次課程設(shè)計罵我掌握了常用元件的識別和測試,熟悉了常用儀器儀表;了解了電路的連接方法;以與如何提高電路的性能等。六、參考文獻與1、單片機原理與應(yīng)用 羅維平 德駿 編 華中科技大學(xué)。2、單片微型計算機原理與接口技術(shù) 高峰 編 電子工業(yè)。3、單片機應(yīng)用新技術(shù)教程鄒逢興 編 高等教育。4、16位微型計算機原理接口與其應(yīng)用 朱宇光 編 電子工業(yè)。5、微型計算機原理與接口技術(shù) 吳秀清 編 中國科學(xué)技術(shù)。6、微型計算機接口技術(shù) 鄧亞平 編 清華大學(xué)。7、.21ic.七、實物圖附錄2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年物業(yè)綠化管理外包合同
- 起床了小班主題教案
- 廣告招商合同范本
- 寄宿制工作計劃3篇
- 世說新語讀書筆記范文800字左右
- 勵志題目演講稿300字10篇
- 創(chuàng)新網(wǎng)站建設(shè)方案5篇
- 《冬天》中班教案
- 2024年度工作總結(jié)
- 2025年系列活性精脫硫劑合作協(xié)議書
- 語言學(xué)綱要(學(xué)習(xí)指導(dǎo)修訂版)
- (2024年)常見傳染病診斷國家標準培訓(xùn)(完整版)
- 2023老年大學(xué)教師職責(zé)及選聘管理辦法
- 標準普爾家庭資產(chǎn)象限圖講解(四大賬戶)通用課件
- 干部基本信息審核認定表
- 民間文學(xué)概論課件
- 響應(yīng)面分析軟件DesignExpert使用教程
- 2023-2024學(xué)年廣東省深圳市重點中學(xué)高考適應(yīng)性考試歷史試卷含解析
- 麻醉藥品管理培訓(xùn)課件
- 中建履約過程風(fēng)險發(fā)函時點提示及函件指引(2023年)
- 不銹鋼管理制度
評論
0/150
提交評論