




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 單片機技術(shù)課程設(shè)計說明書 數(shù) 字 電 子 鐘 系 、 部: 電氣與信息工程學院 學生姓名: 指導教師: 職稱 專 業(yè): 班 級: 完成時間: 2013-06-07 摘 要電子鐘在生活中應(yīng)用非常廣泛,而一種簡單方便的數(shù)字電子鐘則更能受到人們的歡迎。所以設(shè)計一個簡易數(shù)字電子鐘很有必要。本電子鐘采用ATMEL公司的AT89S52單片機為核心,使用12MHz 晶振與單片機AT89S52 相連接,通過軟件編程的方法實現(xiàn)以24小時為一個周期,同時8位7段LED數(shù)碼管(兩個四位一體數(shù)碼管)顯示小時、分鐘和秒的要求,并在計時過程中具有定時功能,當時間到達提前定好的時間進行蜂鳴報時。該電子鐘設(shè)有四個按鍵KEY
2、1、KEY2、KEY3、KEY4和KEU5鍵,進行相應(yīng)的操作就可實現(xiàn)校時、定時、復位功能。具有時間顯示、整點報時、校正等功能。走時準確、顯示直觀、運行穩(wěn)定等優(yōu)點。具有極高的推廣應(yīng)用價值。關(guān)鍵詞 電子鐘;AT89S52;硬件設(shè)計;軟件設(shè)計ABSTRACTClock is widely used in life, and a simple digital clock is more welcomed by people. So to design a simple digital electronic clock is necessary.The system use a single chip
3、AT89S52 of ATMELs as its core to control The crystal oscillator clock,using of E-12MHZ is connected with the microcontroller AT89S52, through the software programming method to achieve a 24-hour cycle, and eight 7-segment LED digital tube (two four in one digital tube) displays hours, minutes and se
4、conds requirements, and in the time course of a timing function, when the time arrived ahead of scheduled time to buzz a good timekeeping. The clock has four buttons KEY1, KEY2, KEY3,KEY4 and KEY5 key, and make the appropriate action can be achieved when the school, timing, reset. With a time displa
5、y, alarm clock settings, timer function, corrective action. Accurate travel time, display and intuitive, precision, stability, and so on. With a high application value. Key words Electronic clock;;AT89S52;Hardware Design;Software Design目 錄1 設(shè)計課題任務(wù)、功能要求說明及方案介紹 11.1 設(shè)計課題任務(wù) 11.2 功能要求說明 11.3 設(shè)計總體方案介紹及原理
6、說明 12 設(shè)計課題硬件系統(tǒng)的設(shè)計 22.1 設(shè)計課題硬件系統(tǒng)各模塊功能簡要介紹 22.2 設(shè)計課題電路原理圖、PCB圖、元器件布局圖 22.3 設(shè)計課題元器件清單 53 設(shè)計課題軟件系統(tǒng)的設(shè)計 63.1 設(shè)計課題使用單片機資源的情況 63.2 設(shè)計課題軟件系統(tǒng)各模塊功能簡要介紹 63.3 設(shè)計課題軟件系統(tǒng)程序流程框圖 63.4 設(shè)計課題軟件系統(tǒng)程序清單104 設(shè)計結(jié)論、仿真結(jié)果、誤差分析、教學建議 214.1 設(shè)計課題的設(shè)計結(jié)論及使用說明214.2 設(shè)計課題的仿真結(jié)果214.3 設(shè)計課題的誤差分析224.4 設(shè)計體會224.5 教學建議22結(jié) 束 語 23參考文獻 24致 謝 25附 錄 2
7、61 設(shè)計課題任務(wù)、功能要求說明及方案介紹1.1 設(shè)計課題任務(wù)設(shè)計一個具有特定功能的電子鐘。具有時間顯示,并有時間設(shè)定,時間調(diào)整功能。1.2 功能要求說明設(shè)計一個具有特定功能的電子鐘。該電子鐘上電或按鍵復位后能自動顯示系統(tǒng)提示符“d.1004-22”, 進入時鐘準備狀態(tài);第一次按電子鐘啟動/調(diào)整鍵,電子鐘從12時0分0秒開始運行,進入時鐘運行狀態(tài);按電子鐘KEY1鍵,則電子鐘進入時鐘調(diào)整狀態(tài),此時可利用各調(diào)整鍵調(diào)整時間,調(diào)整結(jié)束后可按KEY1鍵再次進入時鐘運行狀態(tài)。1.3 設(shè)計課題總體方案介紹及工作原理說明本電子鐘主要由單片機、鍵盤、顯示接口電路和復位電路構(gòu)成,設(shè)計課題的總體方案如圖1所示:
8、圖1-1 總體設(shè)計方案圖本電子鐘的所有的軟件、參數(shù)均存放在AT89S52的Flash ROM和內(nèi)部RAM中,減少了芯片的使用數(shù)量簡化了整體電路也降低了整機的工作電流。鍵盤采用動態(tài)掃描方式。利用單片機定時器及計數(shù)器產(chǎn)生定時效果通過編程形成數(shù)字鐘效果,再利用數(shù)碼管動態(tài)掃描顯示單片機內(nèi)部處理的數(shù)據(jù),同時通過端口讀入當前外部控制狀態(tài)來改變程序的不同狀態(tài),實現(xiàn)不同功能。2 設(shè)計課題硬件系統(tǒng)的設(shè)計2.1 設(shè)計課題硬件系統(tǒng)各模塊功能簡要介紹本設(shè)計的硬件系統(tǒng)主要采用以下基本模塊來實現(xiàn),單片機最小系統(tǒng)模塊,輸入模塊、輸出模塊、電源模塊。(1)單片機最小系統(tǒng)模塊:包括低功耗、高性能CMOS8位微控制器AT89S5
9、2;復位電路;晶振電路。本本模塊AT89S52系統(tǒng)控制核心,單片機系統(tǒng)復位由復位電路完成,單片機內(nèi)部有一個高增益、反相放大器,其輸入端為芯片引腳XTAL1,其輸出端位位引腳XTAL2。通過這兩個引腳在芯片外并接石英晶體振蕩器和兩只電容。這樣就構(gòu)成一個穩(wěn)定的自激振蕩器。 (2)輸入模塊:本模塊共用到了4個按鍵,1個電源開關(guān),一個復位鍵,單片機運行期間,利用按鍵完成復位操作。3個按鍵獨立式鍵盤,KEY1鍵控制電子鐘的啟動,KEY2鍵為加1鍵,KEY3鍵為減1鍵,KEY1鍵第三次控制電子鐘的調(diào)整狀態(tài)。且KEY1、KEY2、KEY3、任一鍵都獨自連一個I/O(P1.0、P1.1、P1.2、P1.3)口
10、線,說明它們可以獨立實現(xiàn)相應(yīng)的電子鐘功能。(3)輸出模塊:本次設(shè)計顯示為8位,采用兩個四位一體數(shù)碼管(共陽極)作為顯示窗口,既可以節(jié)約成本又能簡化電路。數(shù)碼管用8個PNP三極管驅(qū)動。(4)電源模塊:現(xiàn)在市面上銷售的編程器有很多都是由PC機的USB口直接供電為了降低本設(shè)計的成本及節(jié)省設(shè)計時間,沒有另外設(shè)計編程器,而直接購買了市場上的USB供電及下載器。2.2 設(shè)計課題電路原理圖、PCB圖、元器件布局圖 圖2-1 電路原理圖 總設(shè)計原理圖見附錄A原理總設(shè)計圖見附錄附錄BPCB圖見附錄C2.3 設(shè)計課題元器件清單 表2-1 設(shè)計所用元器件清單名稱數(shù)量參數(shù)電容2個33pF數(shù)碼管2個4位一體電阻1個20
11、0下載口1個WE普通插座1個40PIN電阻16個470按鍵4個三極管9個PNPUSB供電線1根晶振1個12MHz極性電容1個22F芯片1塊AT89S52發(fā)光二極管9個LED六角開關(guān)1個SW-PB3 設(shè)計課題軟件系統(tǒng)的設(shè)計3.1 設(shè)計課題使用單片機資源的情況設(shè)計課題使用單片機資源的情況如下:P0口輸出數(shù)碼管段選信號,P2口輸出數(shù)碼管位選信號;晶振12MHz;調(diào)整選擇鍵KEY1:P1.0;通過選擇鍵選擇調(diào)整位,選中位閃爍;增加鍵KEY2:P1.1;按一次使選中位加1;減少鍵KEY3:P1.2;按一次使選中位減1;此數(shù)字鐘可實現(xiàn)基本的走時和顯示時間時、分、秒;時間的調(diào)整;鬧鐘的設(shè)定和調(diào)整;鬧鐘的開啟
12、和關(guān)閉功能,具體如下:(1)實現(xiàn)基本的走時和顯示時間的時、分、秒,上電自動顯示初始時間12-00-00,且控制鬧鐘狀態(tài)的的藍色led燈為亮的狀態(tài)。(2)當?shù)谝淮伟聪碌谝粋€彈性按鍵時進入時間的調(diào)節(jié)狀態(tài),此時實現(xiàn)對顯示時間的小時調(diào)節(jié),按下第二個按鍵時實現(xiàn)小時的加一調(diào)節(jié),按下第三個按鍵時實現(xiàn)小時的減一調(diào)節(jié)。(3)當?shù)诙伟聪碌谝粋€彈性按鍵時進入顯示時間的分鐘調(diào)節(jié)狀態(tài),按下第二個按鍵時實現(xiàn)分鐘的加一調(diào)節(jié),按下第三個按鍵時實現(xiàn)分鐘的減一調(diào)節(jié)。(4)當?shù)谌伟聪碌谝粋€彈性按鍵時進入鬧鐘的小時調(diào)節(jié)狀態(tài),按下第二個按鍵時實現(xiàn)鬧鐘小時的加一調(diào)節(jié),按下第三個按鍵時實現(xiàn)鬧鐘小時的減一調(diào)節(jié)。(5)當?shù)谒拇伟聪碌谝粋€彈
13、性按鍵時進入鬧鐘的分鐘調(diào)節(jié)狀態(tài),按下第二個按鍵時實現(xiàn)鬧鐘分鐘的加一調(diào)節(jié),按下第三個按鍵時實現(xiàn)鬧鐘分鐘的減一調(diào)節(jié)。(6)當?shù)谖宕伟聪碌谝粋€彈性按鍵時返回正常的顯示時間走時狀態(tài)。(7)當同時按下第二和第三個彈性按鍵時,關(guān)閉鬧鐘,且此時藍色led燈為滅,及定時時間到蜂鳴器并不響,若再次同時按下第二和第三個彈性按鍵,則開啟鬧鐘,且此時藍色led燈為亮,定時時間到蜂鳴器發(fā)出滴滴的鬧鈴聲,同時按下第二和第三個彈性按鍵即可關(guān)閉鬧鈴。鬧鈴狀態(tài)默認為開啟。 3.2 設(shè)計課題軟件系統(tǒng)個模塊功能簡要介紹 本設(shè)計的軟件系統(tǒng)主要采用以下基本模塊來實現(xiàn),主程序、中斷服務(wù)程序、鍵盤輸入程序模塊、數(shù)碼管及其驅(qū)動模塊和延時模塊
14、。主程序:主要是用于對輸入信號的處理、輸出信號的控制和對各個功能程序模塊的運用及其控制。中斷服務(wù)程序:主要是用于電子鐘的準確運行、數(shù)據(jù)輸入過程中的閃爍。鍵盤輸入程序模塊:主要是用于確定按鍵并得到特定的鍵碼值。數(shù)碼管及其驅(qū)動模塊:主要是用于驅(qū)動數(shù)碼管及利用數(shù)碼管顯示時間。延時模塊:程序中有兩種延時子程序,一種是短延時用于判鍵按下等,一種是 長延時。3.3 設(shè)計課題軟件系統(tǒng)程序流程框圖系統(tǒng)軟件采用匯編語言按模塊化方式進行設(shè)計,然后通過Keil軟件開發(fā)平臺將程序轉(zhuǎn)變成十六進制程序語言,接著使用Proteous 進行仿真,讀出顯示數(shù)據(jù)。主程序流程框圖如3-1所示;時間處理子程序流程框圖3-2所示;中斷
15、服務(wù)程序程序如3=3所示; 圖3-1 主程序流程框圖 圖3-2 時間處理子程序流程框圖 圖3-3 中斷子程序3.4 設(shè)計課題軟件系統(tǒng)程序清單;-;項目名稱:數(shù)字電子鐘;項目功能:本電子鐘實現(xiàn)24小時制,8位數(shù)碼管顯示時分秒,顯示格式:12-59-00 通過4只按鍵來調(diào)整時間,調(diào)整選擇鍵KEY1:P1.0;通過選擇鍵選 擇調(diào)整位,選中位閃爍,增加鍵KEY2:P1.1;按一次使選中位加1。 減少鍵KEY3:P1.2;按一次使選中位減1,bear:P3.1;到了整點和鬧 鐘就會響, 如果長按KEY1第一次切換到正常時鐘顯示,按第二次切換到時的調(diào)整, 按第三次切換到分的調(diào)整,同時led:P1.2就會閃
16、爍, 按第四次和第五次分別切換到鬧鐘的時分的調(diào)整 ,可進行調(diào) 時、調(diào)分快進快減,并停止閃爍。如果選中位是秒, 則按增加鍵或減少鍵可實現(xiàn),但無調(diào)時快進和快減功能。P0口輸出數(shù) 碼管段選信號,P2口輸出數(shù)碼管位選信號;晶振12MHz。編程作者: 林熾逸完成時間: 2013年06月8日程序請清單如下:#include <reg51.h>#include<absacc.h>#include <intrins.h>#define uint unsigned int#define uchar unsigned charsbit KEY1=P11; /切換鍵sbit KE
17、Y2=P12; /minute ,hour調(diào)整加1定義sbit KEY3=P17; /minute ,hour調(diào)整減1定義sbit bear=P31; /鬧鈴sbit led=P12; /鬧鐘,整時燈閃爍code unsigned char tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xc8,0x8e,0xff,0x21; /段碼控制char code weikong_code=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar ms8=2,2,10,4,0,0,1,14;uch
18、ar StrTab8;uchar minute=59,hour=12,second=0; / 正常 時鐘秒,分,時 定義uchar minute1=00,hour1=00; second1=00;/ 鬧鐘 時鐘秒,分,時 定義uchar flag=0, flag1=0; /切換標志 uchar num=0;uint count=0; /定時器計數(shù),定時50ms,count滿20,秒加1/*子函數(shù)聲明*/void xianshishuzu(); /顯示數(shù)組子程序void alarm(); /鬧鐘子程序/* 延時子程序*/ void delay(uint z) uint x,y;for(x=0;x
19、<z;x+)for(y=0;y<110;y+);/*時間處理子程序*/void time_pro(void) if(second=60)second=0;minute+;if(minute=60)minute=0;hour+;if(hour=24)hour=0;/*顯示時鐘子函數(shù)*/ void dispaly(uchar w8) unsigned int i,j,aa; aa=0xfe; /位選初值1111 1110for(i=0;i<8;i+) /依次將數(shù)組w中八個數(shù)取出,并顯示 P2=aa; /位選j=wi; /取出要顯示的數(shù)碼P0=tabj; /取出段選編碼aa=_cr
20、ol_(aa,1); /位選信號循環(huán)右移?delay(1); /顯示延時P0=0xff; /消影 /*顯示時鐘數(shù)組子程序*/void xianshishuzu() StrTab1=second/10; /秒個位 StrTab0=second%10; /秒十位 StrTab2=10; /間隔符 - StrTab4=minute/10; /分個位 StrTab3=minute%10; /分十位 StrTab5=10; /間隔符 - StrTab7=hour/10; /時個位 StrTab6=hour%10; /時十位 /*鍵盤掃描子程序*/ void keycan() if(KEY1=0) /按一
21、次,正常顯示,按第二次,時調(diào)整,按第三次,分調(diào)這整, delay(10); /按鍵1去抖以及動作 if(KEY1=0) /確認按鍵是否按下 flag+; /切換標志 while(!KEY1); /釋放按鍵 if(flag=1) if(KEY2=0) delay(10);if(KEY2=0) hour+;if(hour=24)hour=0; /正常時間 小時 加1 while(!KEY2) /釋放按鍵 dispaly(StrTab); if(KEY3=0) delay(10); if(KEY3=0) hour-;if(hour=0)hour=23; dispaly(StrTab); /正常時間小
22、時 減1 while(!KEY3) dispaly(StrTab); if(flag=2) if(KEY2=0) /按鍵去抖以及動作 delay(10); if(KEY2=0) minute+;if(minute=60)minute=0; /分加1 while(!KEY2) dispaly(StrTab); if(flag=3) / 秒表的加1 if(KEY3=0) delay(10); if(KEY3=0) second+;if(second=0)second=59; /秒加1 while(!KEY3)dispaly(StrTab); if(flag=3) /鬧鐘對時 if(KEY2=0)
23、delay(10); if(KEY2=0) hour1+;if(hour1=24)hour1=0; /鬧鐘時間 小時 加1 while(!KEY2) alarm(); if(KEY3=0) delay(10); if(KEY3=0) hour1-;if(hour1=0)hour1=23; /鬧鐘時間 小時 減 while(!KEY3) alarm(); if(flag=4) if(KEY2=0) /按鍵去抖以及動作 delay(10); if(KEY2=0) minute1+;if(minute1=60)minute1=0; /鬧鐘分加1 while(!KEY2)alarm(); if(KEY
24、3=0) /按鍵去抖以及動作 delay(10); if(KEY3=0) minute1-;if(minute1=0)minute1=59; /鬧鐘分減1 while(!KEY3) alarm(); /*蜂鳴器子程序*/void beng() bear=1;P3=0xfd;delay(100);bear=0;P3=0XFf;delay(100);/*整點報警子程序*/void zhengdian (void)uchar i=0;if(second=0)&(minute=0)/整點報時 for(i=0;i<10;i+) TR0=1; beng();dispaly(ms); /*定時
25、鬧鐘*/ void alarm() uint i; if(hour=hour1&&second1=minute1&&(second>=second1&&second<second1+5)|(minute=0&&second<1) for(i=0;i<3;i+) beng(); StrTab1=second1/10; /鬧鐘秒個位 StrTab0=second1%10; /秒十位 StrTab2=10; /間隔符 - StrTab4=minute1/10; /分個位 StrTab3=minute1%10; /
26、分十位 StrTab5=10; /間隔符 - StrTab7=hour1/10; /時個位 StrTab6=hour1%10; /時十位 TR0=0; dispaly(StrTab); xianshishuzu();/*中斷子程序*/ void time_() interrupt 1 /中斷程序 count+; TH0=(65536-50000)/256; /0.5ms重新送初值 TL0=(65536-50000)%256;if(count=20) /定時器計數(shù),定時50ms,count滿20,秒加1 second+; count=0; if(second=60) /秒值等于60,秒清零,分加
27、1 second=0;minute+;if(minute=60) /分值等于60,分清零,時加1 minute=0; hour+; if(hour=24) /時值等于24,時清零,返回,全部歸零 hour=0; xianshishuzu(); /*主函數(shù)*/ void main() P1=0XFF;TMOD = 0x11; /time0為定時器,方式1TH0=(65536-50000)/256;/預置計數(shù)初值,50ms TL0=(65536-50000)%256;EA=1; /總中斷開ET0=1; /允許定時器0中斷TR0=1; /開啟定時器0 while(1) /主循環(huán) if(flag=0)
28、 TR0=0; dispaly(ms); if(P1!=0XFF) keycan(); if(flag>0) if(flag=1|flag=2) TR0=1; dispaly(StrTab); zhengdian (); if(flag=3|flag=4) TR0=0;alarm(); if(flag=5) dispaly(StrTab); if(flag=6) TR0=0; flag=0; dispaly(ms); 4 設(shè)計結(jié)論、仿真結(jié)果、誤差分析、教學建議4.1 設(shè)計課題的設(shè)計結(jié)論及使用說明本設(shè)計為基于單片機的電子鐘的設(shè)計。剛開始,我們很多地方理不清頭緒,無從下手,但通過認真研究設(shè)計課題,找書上網(wǎng)查資料買元件,確定基本設(shè)計方案,對所用芯片功能進行查找、調(diào)試,然后畫電路圖制PCB板、打孔、溶銅、焊接等
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 11《變廢為寶有妙招》教學設(shè)計-2023-2024學年道德與法治四年級上冊統(tǒng)編版
- 5 一個豆莢里的五粒豆 第二課時(教學設(shè)計)-2024-2025學年統(tǒng)編版語文四年級上冊
- 2023七年級道德與法治下冊 第二單元 做情緒情感的主人第五課 品出情感的韻味第2框 在品味情感中成長教學實錄 新人教版
- 青山不老的教學設(shè)計
- 2024年八年級地理上冊 第一章 第一節(jié) 疆域教學實錄 (新版)新人教版
- 4同學相伴(教學設(shè)計)-部編版道德與法治三年級下冊
- 2025年甲醇制烯烴項目發(fā)展計劃
- 20 海洋和陸地 教學設(shè)計-2024-2025學年科學三年級上冊青島版
- 10、《父母多愛我》 (教學設(shè)計)統(tǒng)編版道德與法治三年級上冊
- 2024年春九年級語文下冊 第一單元 3《家》教學實錄 語文版
- DB50T 441-2012 渝菜 毛血旺烹飪技術(shù)規(guī)范
- 2024年05月富德生命人壽保險股份有限公司招考筆試歷年參考題庫附帶答案詳解
- 醫(yī)防融合培訓
- 高速鐵路設(shè)計規(guī)范
- 《電機能能效等級》課件
- 幼兒園課件之大班科學《四季的變化》
- 電商客服外包服務(wù)合同
- 影視拍攝現(xiàn)場突發(fā)安全事件應(yīng)急預案
- DB37T 5096-2017 建設(shè)工程項目管理咨詢規(guī)范
- 雙方同意小孩改姓名協(xié)議書(2篇)
- 膽囊課件教學課件
評論
0/150
提交評論