




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、摘 要 at89s52單片機是一款應用廣泛、功能強大的八位單片機。本設(shè)計是由單片機at89s52作為核心,通過單片機使電子鐘具有調(diào)節(jié)顯示時分秒的功能,電子鐘是一種利用數(shù)字電路來顯示秒、分、時的計時裝置,與傳統(tǒng)的機械鐘相比,它具有走時準確、顯示電子鐘直觀、無機械傳動裝置等優(yōu)點。它的計時周期為24小時,顯示滿刻度為23時59分59秒,另外應有校時功能。本設(shè)計在原來電子鐘的基礎(chǔ)上,增加了年月日顯示、鬧鈴、整點提示等功能。使用時s8鍵為控制鍵,控制運行的調(diào)時,s4鍵為翻頁查看鍵,s5、s6、s7鍵為調(diào)時狀態(tài)下的控制鍵,分別為減一、加一、移格功能。關(guān)鍵詞 電子鐘;單片機;定時;鬧鈴;abstractat
2、89s52 scm is a eight bit microcontroller of wided applicationan and powerful. cores this design is by monolithic at89s52 scm . it has adjust display by that electric clock.electric clock is a device that use of digital circuit to display seconds, points and the timer. compare of the tradition, , dis
3、play electric clock intuitive, no mechanical transmission device etc. its timing cycle be for 24 hour, the full scale is hour of 23,minutes of 59, second of 59, another reset function is also the function. the foundation of clock display year month day and other functions. s8 keys control tone. s4 k
4、eys scroll view. on the state of adjust, s5、s6、s7control functions of minus one,plus one, move lattice function. key words :electronic clock; single-chip; timing; alarm目 錄。1目 錄31.1 設(shè)計課題任務41.2 功能要求說明41.3 總體方案介紹及工作原理42 硬件系統(tǒng)的設(shè)計62.1 系統(tǒng)各功能模塊介紹62.1.2 鍵盤功能模塊62.1.4 定時提示模塊72.1.5 整時提示模塊72.2 系統(tǒng)電路圖7總原理圖.總布局圖.pc
5、b圖見附錄(1)72.3 系統(tǒng)的元器件清單73 軟件系統(tǒng)的設(shè)計83.1使用單片機資源介紹83.3.1 獨立式鍵盤模塊83.2.2 數(shù)碼管顯示模塊83.2.3 整點提示、秒表模塊83.4 軟件系統(tǒng)的程序10軟件系統(tǒng)的程序如附錄(2)104 系統(tǒng)的仿真分析及結(jié)論114.1 系統(tǒng)設(shè)計的使用說明114.2 系統(tǒng)設(shè)計的仿真結(jié)果114.3 系統(tǒng)的誤差分析124.4 設(shè)計體會12參考文獻13致 謝13附錄(1) 13附錄(2) 151 系統(tǒng)總體設(shè)計方案1.1 設(shè)計課題任務設(shè)計一個具有特定功能的電子鐘。1.2 功能要求說明 (1)、屏幕保護(p.顯示);(2)、時、分、秒之間用“-”分割,年、月、日之間用“_
6、”分割,定時時間用=分開;(3)、運行時按下s8鍵進入調(diào)時分秒狀態(tài),再按一次進入調(diào)年月日狀態(tài),再按一次進入調(diào)定時狀態(tài),調(diào)整狀態(tài)時二極管全亮、調(diào)整單位閃爍;(4)、在運行狀態(tài)下,按下s4鍵切換時分秒、年月日和定時時間的顯示;(5)、在調(diào)整狀態(tài)下,按s7鍵移動調(diào)整單位,每按一次移動一個單位,可調(diào)整時分秒、年月日和定時;(6)、整點提示功能:當時間為整時時,二極管交替顯示4次;(7)、鬧鈴功能:當定時時間到時,鬧鈴會滴滴滴報警;(7)、附加功能:當在運行狀態(tài)時,二極管循環(huán)移動.1.3 總體方案介紹及工作原理單片機控制原理圖如圖1.1所示。圖1.1電子鐘的總體功能原理是以at89s52單片機為主要的控
7、制核心,通過外接5個獨立式鍵盤作為控制信號源,八個七段數(shù)碼管作為顯示器件,在數(shù)碼管上顯示出來,時通過不同的按鍵來觀看和調(diào)節(jié)各種數(shù)據(jù)。2 硬件系統(tǒng)的設(shè)計2.1 系統(tǒng)各功能模塊介紹2.1.1 at89s52控制模塊考慮到設(shè)計功能需要,控制器的功能用于外部鍵盤信號的接收和識別、數(shù)碼管的顯示控制,定時器應用等,我們選擇了學習過的at89s52系列單片機,具有反應速度極快,工作效率特高的特點。at89s52主要性能 與mcs-51單片機產(chǎn)品兼容 、8k字節(jié)在系統(tǒng)可編程flash存儲器,1000次擦寫周期,全靜態(tài)操作:0hz33hz三級加密程序存儲器32個可編程i/o口線 、三個16位定時器/計數(shù)器 八個
8、中斷源 、全雙工uart串行通道、 低功耗空閑和掉電模式 、掉電后中斷可喚醒 、看門狗定時器 、雙數(shù)據(jù)指針 、掉電標識符 。 at89s52是一種低功耗、高性能cmos8位微控制器,具有 8k 在系統(tǒng)可編程flash 存儲器。使用atmel 公司高密度非 易失性存儲器技術(shù)制造,與工業(yè)80c51 產(chǎn)品指令和引腳完 全兼容。另外,at89s52 可降至0hz 靜態(tài)邏 輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,cpu 停止工作,允許ram、定時器/計數(shù)器、串口、中斷繼續(xù)工 作。掉電保護方式下,ram內(nèi)容被保存,振蕩器被凍結(jié), 單片機一切工作停止,直到下一個中斷或硬件復位為止。2.1.2 鍵盤功
9、能模塊根據(jù)系統(tǒng)的基本的要求,基于時間的觀看和設(shè)定等功能,采用由八個鍵構(gòu)成的獨立式鍵盤分別接在at89s52單片機的p1.0-p1.7口,非常的方便,同時相對于獨立式鍵盤大大節(jié)省了空間,在軟件的設(shè)計時帶來了極大的方便,使程序簡易明了,可讀性強。本次設(shè)計中,五個功能鍵分別定義為s4鍵、s5鍵、s6鍵、s7鍵和s8鍵,對應著翻頁切換、加一、減一、控制單位移動、時間顯示與控制,操作起來十分的清晰與方便。2.1.3 數(shù)碼管顯示模塊 顯示模塊要具有顯示時分秒,年月日和間隔閃爍符(至于每兩級單位之間)的功能,共需要八位數(shù)碼管。數(shù)碼管的八個位控口接在at89s52單片機的p0口線上,從左到右順序連接,段控制線
10、接在at89s52單片機的p2口線上,從低位到高位對應連接.再由于數(shù)碼管的本身顯示亮度不夠,所以一般都會在其位控和段控口前加上一定的驅(qū)動電路,本次設(shè)計中采用三極管作為驅(qū)動。 本次采用的數(shù)碼管型號為s9012。2.1.4 定時提示模塊電子鐘的另外一個要求功能是在定時到達時候發(fā)出鬧鈴,本次設(shè)計利用蜂鳴器來實現(xiàn)。具有電路結(jié)構(gòu)非常簡單,控制極其方便等優(yōu)點。2.1.5 整時提示模塊電子鐘的一個功能是在整時到達時候二極管交替顯示。具有電路結(jié)構(gòu)非常簡單,控制極其方便等優(yōu)點。2.1.5 二極管顯示模塊 二極管采用共陽接法,其負極接在p3口線上。在正常運行時,二極管流水工作,當在調(diào)整狀態(tài)時,二極管全亮,當整點時
11、,二極管交替顯示。2.2 系統(tǒng)電路圖總原理圖.總布局圖.pcb圖見附錄(1) 2.3 系統(tǒng)的元器件清單本系統(tǒng)中所用到的元件如表2.1所示。表2.1 系統(tǒng)元器件表器件型號數(shù)量器件型號數(shù)量單片機at89s521個按鍵普通8個晶振12mhz1 個開關(guān)6腳雙路2個電容22f,33pf1個,2個 數(shù)碼管 cps05641b8個電阻普通若干下載接口10針接口1個蜂鳴器壓電式1個單排針普通若干253 軟件系統(tǒng)的設(shè)計3.1 使用單片機資源介紹at89s52的p0、p1、p2、p3口作為輸入輸出口,: p1.5 mosi(在系統(tǒng)編程用) p1.6 miso(在系統(tǒng)編程用)p1.7 sck (在系統(tǒng)編程用) xt
12、al1、xtal2:晶振輸入 rst: 復位輸入片內(nèi)資源主要為:定時器/計數(shù)器t0,定時器/計數(shù)器t1,定時器中斷0,通用寄存器前三組,專用寄存器a、psw、ie、p1、p2、p3、tcon、scon,位尋址單元f0h、f1h、f2h、 f3h、f4h、f5h。3.2 軟件系統(tǒng)各功能模塊介紹3.3.1 獨立式鍵盤模塊獨立式鍵盤軟件設(shè)計通過在主程序中調(diào)用子程序key去執(zhí)行鍵盤掃描和調(diào)用子程序chuli去執(zhí)行相應的功能 ,單片機p1口在復位后保持高電平,當鍵按下相應口線為低電平,此時cpu做初期判斷,之后延時12ms,確定為按鍵后等待鍵松,之后執(zhí)行子程序。達到通過鍵功能程序的分支執(zhí)行相應的程序段,
13、完成對應的操作。3.2.2 數(shù)碼管顯示模塊數(shù)碼管顯示是通過調(diào)用子程序display來實現(xiàn)的,由于數(shù)碼管動態(tài)顯示,所以在執(zhí)行其他的程序的時候依然要經(jīng)常調(diào)用顯示子程序disp。數(shù)碼管的段控由單片機改變p2口相應位電平來實現(xiàn),為實現(xiàn)不同的顯示功能,設(shè)置了不同的顯示緩沖單元,通過控制標志位控制。數(shù)碼管的位控由cpu改變p0口相應位電平來實現(xiàn),基于人的視覺延遲性,通過從右到左的循環(huán)保證所有數(shù)碼管都被點亮。3.2.3 整點提示、鬧鈴在軟件的設(shè)計中整點提示,提示模塊是通過二極管的交替顯示來告訴整點是否已到,通過在中斷中運行程序執(zhí)行相應的功能,二極管交替顯示十次來作為提示信號。當時間達到定時時間時,鬧鈴報警。
14、3.3 軟件系統(tǒng)程序流程框圖軟件系統(tǒng)的總體流程框圖如圖3.1,鍵掃和顯示程序流程框圖分別如圖3.2、圖3.3所示。圖3.2總體流程框圖圖3.2鍵掃流程圖圖3.3顯示程序流程圖 3.4 軟件系統(tǒng)的程序 軟件系統(tǒng)的程序如附錄(2)。4 系統(tǒng)的仿真分析及結(jié)論4.1 系統(tǒng)設(shè)計的使用說明在proteus上畫好原理圖,檢查無誤后再通電,主要在數(shù)碼管上顯示p. 循環(huán)左移。其按下不同的鍵進入不同的功能,其具體的操作步驟是:按s4鍵進入電子鐘翻頁模式,按s5、s6鍵加一、減一,按s7鍵進入單位移動,按s8鍵進入調(diào)整運行模式。連續(xù)按s7循環(huán)上述功能,按s6循環(huán)移動,按s4循環(huán)查看.4.2 系統(tǒng)設(shè)計的仿真結(jié)果仿真主
15、要爭對是對獨立式盤和數(shù)碼管,在按鍵盤不同的鍵值的時,顯示正確的顯示信息,不同功能的仿真的結(jié)果如圖4.1、4.2、4.3和4.4所示。 圖4.1 時分秒顯示結(jié)果 圖4.2 年月日顯示結(jié)果圖4.3 屏保顯示圖 4.3 系統(tǒng)的誤差分析 系統(tǒng)準備工作結(jié)束后,在硬件調(diào)試中有時候按下鍵但卻沒反應者是最主要的誤差,也許這是老化的現(xiàn)象以及硬件的焊接有些地方存在虛焊的原因,但是范圍很小,還有在最初幾次數(shù)碼管顯示有一定的問題,但最后發(fā)現(xiàn)是位控線和段控線的焊接存在問題。4.4 設(shè)計體會電子技術(shù)的快速發(fā)展,使一些新型電子器件和集成芯片應用越來越廣泛,電子系統(tǒng)的功能越來越強大,印刷電路板越來越復雜和精密。單片機的應用使
16、得我們對各種電路變得模塊化,集成化,電子設(shè)計自動化(electronics design automates,即eda)工具的集成設(shè)計環(huán)境,電子設(shè)計軟件protel 軟件等的運用使得電子設(shè)計電路更加方便,而我做為電子信息工程專業(yè)的學生,應該熟練掌握各種電路編輯軟件,在這次的設(shè)計中我深刻的體會到電子產(chǎn)品的快樂,當我們看到顯示屏上正確的顯示出現(xiàn)時,好開心,這意味著我們的設(shè)計成功了,幾十天的努力方案設(shè)計,和實踐工作我們從中熟練各種電子的技術(shù)和強大,并不斷地總結(jié)經(jīng)驗。這次課設(shè)對我們來說非常重要,也是我們最滿意的一次,好的開頭是成功的第一步,只有經(jīng)歷過,才會懂得過程的重要性。4.5 教學建議 號召同學們
17、購買實驗板,強化單片機實訓,隨著單片機學習的深入,漸漸的就涌入出一批對單片機興趣很強的學生,單純的仿真和一周才二次的試驗課已不能滿足學生對單片機強烈的興趣,因此花點錢買試驗版式個明智的選擇!我還知道老師在實驗課上很是注重學生的動手操作能力,要求很嚴格,但由于學校給我們的實驗課時還不夠。老師應該給我們學生多一些布置課外的實物制作課題,讓學生從操作的過程中學到一些經(jīng)驗。參考文獻 附 錄(1) 圖1 電路原理圖 圖3 pcb bottom layer 圖圖4 pcb top layer 圖附 錄(2);= /設(shè)計項目:電子鐘 /功能: s8鍵:開始/調(diào)時分秒/調(diào)年月日/調(diào)定時 / s7鍵:調(diào)時選擇
18、/ s6鍵:減一 / s5鍵:加一 / s4鍵:切換頁面 #include #define uchar unsigned char #define uint unsigned int/* uchar code tab_duan=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff,0x0c,0xbf,0xf7,0xb7; /*0-f、滅(16)、p.、-、=*/void delay(uint count) ;void display(uchar,uchar,uchar,uchar
19、,uchar,uchar,uchar,uchar); void ini();void send();void chuli();void xiangling();void zhengdian();void liushuideng(); uchar t0,t1,t2,t3,sec,min,hour,ri=1,yue=1,nian=10,function,function1=0,function2,function3; uchar i,j,k1,k2,k3,k4=20,k5,n,l1=4,l2; uchar m0,m1,m2,m3,m4,m5,m6,m7,a0,a1,a2,a3,a4,a5,a6,a
20、7; /時分秒; uchar n0,n1,n2,n3,n4,n5,n6,n7,b0,b1,b2,b3,b4,b5,b6,b7; /年月日; uchar x0,x1,x2,x3,x4,x5,x6,x7,c0,c1,c2,c3,c4,c5,c6,c7,dsec=5,dmin,dhour; /定時; uchar key(); uchar keychuli();/*/*主函數(shù)*/void main() ini(); for(j=0;j=5;j+)for(i=0;i30)m0=16;m1=16;n0=16;n1=16;x0=16;x1=16; else if(k11)m0=a0;m1=a1;n0=b0;
21、n1=b1;x0=c0;x1=c1; else if(k1=0)k1=60; break; case 1: case 4: case 7: k1-;if(k130)m3=16;m4=16;n3=16;n4=16;x3=16;x4=16; else if(k11)m3=a3;m4=a4;n3=b3;n4=b4;x3=c3;x4=c4;else if (k1=0)k1=60; break; case 2: case 5: case 8:k1-;if(k130)m6=16;m7=16;n6=16;n7=16;x6=16;x7=16; else if(k11)m6=a6;m7=a7;n6=b6;n7=
22、b7;x6=c6;x7=c7; else if (k1=0)k1=60; break; case 9: break; switch(function1) case 0:display( m0,m1,a2,m3,m4,a2,m6,m7);break; case 1:display( n0,n1,b2,n3,n4,b2,n6,n7);break; case 2:display( x0,x1,c2,x3,x4,c5,x6,x7);break; /* /*按鍵程序*/ void chuli()switch(key()case 0:break;case 128: function3+; switch (
23、function3) case 1:tr0=0;p3=2;function1=0;break; case 2:function1=1;break; case 3:function1=2;break; case 4:tr0=1;function3=0;function1=0;break; break;case 64: if(function3!=0) switch(function) case 0: case 1: case 2: case 3: function+;if(function=3)function=0;break; break; case 32: switch(function3)
24、 case 1: if(function=0) sec+; if(sec59)sec=0; if(function=1) min+; if(min59)min=0; if(function=2) hour+; if(hour23)hour=0; break;case 2: if(function=0) ri+; if(ri30)ri=1; if(function=1) yue+; if(yue12)yue=1; if(function=2) nian+; if(nian99)nian=10; break; case 3: if(function=0) dsec+; if(dsec59)dsec
25、=0; if(function=1) dmin+; if(dmin59)dmin=0; if(function=2) dhour+; if(dhour23)dhour=0; break; break;case 16: switch(function3) case 1: if(function=0) sec-; if(sec=-1)sec=59; if(function=1) min-; if(min=-1)min=59; if(function=2) hour-; if(hour=-1)hour=23; break;case 2: if(function=0) ri-; if(ri=-1)ri
26、=30; if(function=1) yue-; if(yue=-1)yue=12; if(function=2) nian-; if(nian=10)nian=99; break; case 3: if(function=0) dsec-; if(dsec=-1)dsec=59; if(function=1) dmin-; if(dmin=-1)dmin=59; if(function=2) dhour-;if(dhour=-1)dhour=23; break; break; case 8: if(function3=0) function1+; switch(function1) cas
27、e 1: break;case 2: break;case 3: function1=0;break; break;/*/*中斷程序*/void timer0() interrupt 1 using 3th0=0x3c,tl0=0xb0;t0+;t1+;t2+;if(sec=dsec)&(min=dmin)&(hour=dhour)t3=1000;/定時響鈴if(t31)t3-; xiangling();if(function2!=1)if(t2=7) /流水燈 t2=0;if(t330) ri=1; yue+; if(yue12) yue=1; nian+; if(nian99)nian=1
28、; /定時響鈴* void xiangling() k4-; if(k411) k5+; switch (k5) case 1:p3=0xfd;break; case 2:p3=0xff;k5=0;break; if(k49)p3=0xff; if(k4=0)k4=20; /整點提示*void zhengdian() k3-; if(k3%2)p3=0xaa; if(k3%2)=0)p3=0x55; if (k3=0)function2=0; /流水燈*void liushuideng() l2=0xff-l1; p3=l2; l1=l11; if(l2=0x7f)l1=4; /中斷初始化,定
29、時器賦初值*voidini()tmod=0x01,th0=0x3c,tl0=0xb0;ea=1,et0=1,tr0=0;/*/*顯示子程序*/void display(uchar a0,uchar a1,uchar a2,uchar a3,uchar a4,uchar a5,uchar a6,uchar a7)p0=tab_duana0;p2=0xfe;delay(1);p0=tab_duana1;p2=0xfd;delay(1);/從左到右依次寫數(shù)即可 p0=tab_duana2;p2=0xfb;delay(1); p0=tab_duana3;p2=0xf7;delay(1);p0=tab_
30、duana4;p2=0xef;delay(1); p0=tab_duana5;p2=0xdf;delay(1); p0=tab_duana6;p2=0xbf;delay(1); p0=tab_duana7;p2=0x7f;delay(1); p0=0xff;/*void send()/第一頁顯示;a0=sec%10;a1=sec/10;a2=18;a3=min%10;a4=min/10;a5=18;a6=hour%10;a7=hour/10;/第二頁顯示;b0=ri%10;b1=ri/10;b2=19;b3=yue%10;b4=yue/10;b5=19;b6=nian%10;b7=nian/10;/第三頁顯示;c0=dsec%10;c1=dsec/10;c2=20;c3=dmin%10;c4=dmin/10;c5=20;c6=dhour%10;c7=dhour/10;/*void delay(uint count) uint j; while(count-!=0) for(j=0;j80;j+); /*uchar keychuli() uchar k; k=p1; /p1口內(nèi)容送k k=k; /取反 k=(k&0xff); /屏蔽高4位,如果掃描8鍵,屏蔽該句。
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 借款合同范本中介版
- 云南購房合同范本
- 從化學校食堂承包合同范本
- 保潔公司人員合同范本
- pu線條安裝合同范本
- fob合同范本日文
- 包架子合同范本
- 公司代管合同范本
- 共同經(jīng)營餐廳合同范本
- 三方合作民宿協(xié)議合同范本
- 2016屆高三備考建議
- 北師大版六年級下冊數(shù)學全冊表格式教案
- 2021年阿里巴巴全球數(shù)學競賽預選賽試題及參考答案
- 龐中華硬筆字帖-2500常用字-硬筆書法-描紅-全集-打印版
- 上海市崇明區(qū)2025屆高三上學期一模 英語試卷(含答案)
- 突發(fā)事件應急預案管理辦法培訓課件
- 國家電投《新能源電站單位千瓦造價標準值(2024)》
- 糧食儲備庫內(nèi)圓筒鋼板倉及附房工程施工組織設(shè)計
- 原發(fā)性肺癌臨床路徑
- 學??萍脊?jié)活動方案
- 校園食品安全和膳食經(jīng)費管理方案3篇
評論
0/150
提交評論