實時顯示電子時鐘創(chuàng)新設計(共21頁)_第1頁
實時顯示電子時鐘創(chuàng)新設計(共21頁)_第2頁
實時顯示電子時鐘創(chuàng)新設計(共21頁)_第3頁
實時顯示電子時鐘創(chuàng)新設計(共21頁)_第4頁
實時顯示電子時鐘創(chuàng)新設計(共21頁)_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、精選優(yōu)質(zhì)文檔-傾情為你奉上J I A N G S U U N I V E R S I T Y 實時顯示電子時鐘創(chuàng)新設計The innovative design of real-time dynamic display device學院名稱: 電 氣 學 院 專業(yè)班級: 電子信息1102班 學生學號: 學生姓名: 田 亞 坤 基于單片機的電子時鐘Electronic clock based on MCU摘 要:單片機的應用給人們的生活帶來了很大的變化。本文主要介紹了采用STC12C5A60S2單片機實現(xiàn)的電子計時鐘。該電子鐘系統(tǒng)的硬件主要由電源電路,按鍵電路,復位電路,時鐘電路和蜂鳴器電路等幾

2、部分組成。軟件部分包括主程序,中斷時鐘程序,顯示程序,鬧鐘程序,按鍵程序等。該設計的主要功能就是實現(xiàn)電子計時及準點報時,其中計時包括時分鐘秒。關鍵詞:STC12C5A60S2;單片機;數(shù)字鐘;LED數(shù)碼管Abstract :The application of SCM have brought to the life of people a big change.this paper has mainly introduced the electronic the clock based on STC12C5A60S2. The hardware of the electric clock s

3、ystem mainly includes power supply circuit, key circuits, reset circuit, clocking circuit and a buzzer circuit and so on. Software part includes the main program, the interrupt clock program, show program, alarm clock, procedures, key procedure and so on. Keywords: STC12C5A60S2 microcontroller; Digi

4、tal clock;LED digital tube 目 錄一、基于單片機的電子時鐘電路設計 4 1.單片機實訓目的 42.單片機實訓要求及其實現(xiàn)的功能 4二、電子時鐘硬件電路設計方案與設計方法 41.設計方案與設計方法 42.設計總體框圖 53.設計應用硬件介紹 54.電子時鐘電路原理圖 75.PCB7三、電子時鐘軟件電路設計方案與設計方法81.程序設計方案 82.詳細的程序清單和注釋 9四、設計過程 191.Proteus仿真電路 19 2.實際電路板調(diào)試 19五、遇到的問題及其處理方法 20六、實訓的個人體會及對本次實訓的建議20七、參考書目21一、基于單片機的電子時鐘電路設計 1.單片

5、機實訓目的(1) 熟悉單片機應用系統(tǒng)的開發(fā)、研制過程;(2) 能運用單片機進行簡單的應用系統(tǒng)的硬件設計;(3) 能運用單片機匯編語言或C51語言進行簡單的應用系統(tǒng)的軟件設計;(4) 掌握單片機應用系統(tǒng)的硬件、軟件調(diào)試方法;(5) 檢驗用Proteus進行電路仿真的能力2.單片機實訓要求及其實現(xiàn)的功能 【1】單片機實訓要求 (1) 根據(jù)設計功能,選擇元器件,繪制系統(tǒng)原理電路圖;(2) 根據(jù)系統(tǒng)原理圖繪制PCB圖,并用感光板制作PCB板;(3) 完成硬件電路焊接與調(diào)試;(4) 完成軟件編程與調(diào)試;(5) 完成實訓報告的撰寫; 【2】實現(xiàn)的功能(1) 用單片機和一個4位LED數(shù)碼管、2個一位數(shù)碼管動

6、態(tài)顯示時、分、秒;(2) 用3個按鍵設置/修改時分秒的值; 在此次設計中,采用了三個按鍵實現(xiàn)復位/設置/加/減功能;(3) 上電和復位時的時分秒初值設為12:00:00二、電子時鐘硬件電路設計方案與設計方法1.設計方案及其設計方法通過了解和分析此次電子時鐘設計的要求及其所要實現(xiàn)的功能,參考網(wǎng)上資料、圖書館有些書籍,來選擇此次電子時鐘電路的設計電路,此次設計將其電路部分分為10個模塊:單片機,基本復位電路、晶振電路、功能電路、數(shù)碼管位選電路、數(shù)碼管段選電路、上拉電路、電源整流電路、工作指示燈電路、數(shù)碼管顯示電路。應用Proteus的ISIS軟件,編寫簡單的程序來測試電路設計正確性、可行性、準確性

7、、實用性,從而確定最后電路方案。2.設計總體框圖數(shù)碼管顯示STC12C5A60S2D1302時鐘芯片蜂鳴器鍵盤輸入3.設計應用硬件介紹1)DS1302時鐘芯片介紹 DS1302 是DALLAS 公司推出的涓流充電時鐘芯片內(nèi)含有一個實時時鐘/日歷和31 字節(jié)靜態(tài)RAM,可通過簡單的串行接口與單片機進行通信。DS1302內(nèi)部有一個318的用于臨時性存放數(shù)據(jù)的RAM寄存器。DS1302是DS1202的升級產(chǎn)品,與DS1202兼容,但增加了主電源/后背電源雙電源引腳,同時提供了對后背電源進行涓細電流充電的能力??商峁?-秒分時日日期月年的信息-每月的天數(shù)和閏年的天數(shù)可自動調(diào)整-可通過AM/PM 指示決

8、定采用24 或12 小時格式-保持數(shù)據(jù)和時鐘信息時功率小于1mW2)STC12C5A60S2芯片介紹STC12C5A60S2是STC生產(chǎn)的單時鐘/機器周期(1T)的單片機,是高速、低功耗、超強抗干擾的新一代8051單片機,指令代碼完全兼容傳統(tǒng)8051,但速度快8-12倍。內(nèi)部集成MAX810專用復位電路,2路PWM,8路高速10位A/D轉換,針對電機控制,強干擾場合。1、增強型8051CPU,1T(1024G),單時鐘/機器周期2、工作電壓 5.5-3.5V3、1280字節(jié)RAM4、通用I/O口,復位后為:準雙向口/弱上拉 可設置成四種模式:準雙向口/弱上拉,強推挽/強上拉,僅為輸入/高阻,開

9、漏 每個I/O口驅(qū)動能力均可達到20mA,但整個芯片最大不要超過120mA5、有EEPROM功能6、看門狗7、內(nèi)部集成MAX810專用復位電路8、外部掉電檢測電路9、時鐘源:外部高精度晶體/時鐘,內(nèi)部R/C振蕩器 常溫下內(nèi)部R/C振蕩器頻率為:5.0V單片機為:1117MHz 3.3V 單片機為:812MHz10、4個16位定時器 兩個與傳統(tǒng)8051兼容的定時器/計數(shù)器,16位定時器T0和T111、3個時鐘輸出口,可由T0的溢出在P3.4/T0輸出時鐘,可由T1的溢出在 P3.5/T1輸出時鐘,獨立波特率發(fā)生器可以在P1.0口輸出時鐘12、外部中斷I/O口7路,傳統(tǒng)的下降沿中斷或電平觸發(fā)中斷,

10、并新增支持上升沿中斷的PCA模塊,Power Down模式可由外部中斷喚醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3,CCP0/P1.313、PWM2路14、A/D轉換,10位精度ADC,共8路,轉換速度可達250K/S15、通用全雙工異步串行口(UART)16、雙串口,RxD2/P1.2,TxD2/P1.317、工作范圍:-408518、封裝:LQFP-48,LQFP-44,PDIP-40,PLCC 4.電子時鐘電路原理圖5.PCB三、電子時鐘軟件電路設計方案與設計方法1.程序設計方案 此次基于單片機的電子時鐘設計的軟件系統(tǒng)

11、主要可分為主程序、顯示程序、定時計數(shù)中斷程序、時間調(diào)整程序、延時程序五大模塊。 設計方案如下:開始DS1302中斷入口通過查表方式動態(tài)掃描、顯示數(shù)據(jù)數(shù)碼位選亦通過查表方式,逐位顯示判斷是否進入時間設置SET狀態(tài)進入時間設置功能程序YYNNN判斷tcount=20Y分計數(shù)加1N判斷是否滿60minY時計數(shù)加1判斷是否滿24hour中斷返回時間置為00:00:002.詳細的程序清單和注釋/* 說明:老師所給片選針腳為p3.4p3.7,本程序跳線連接至p2.0p2.3,更改程序中片選編碼可不跳線。將頭文件STC12C5A60S2.h和本程序須放在同目錄下。*/#include STC12C5A60S

12、2.h#define HZL#define uchar unsigned char#define uint unsigned int #define D P1 /段選#define W P2 /位選sbit IO=P04; /數(shù)據(jù)口sbit SCLK=P05; /控制數(shù)據(jù)時鐘sbit RST=P03; /使能端、復位端 /*按鍵引腳定義*/sbit s1=P30; /按鍵 加sbit s2=P31; /按鍵 減sbit s3=P32; /按鍵 選擇sbit led=P33; /閃爍的小數(shù)點uchar s, knum=0,snum,fnum;bit flag;/*寫時分秒地址*/#define

13、write_shi 0x84#define write_fen 0x82#define write_miao 0x80/*讀時分秒地址*/#define read_shi 0x85#define read_fen 0x83#define read_miao 0x81bit miao_flag;char miao_num;char Dmiao;char shi,fen,miao; /讀出數(shù)據(jù)存儲變量uchar d=0x03,0X9F,0X25,0X0D,0X99,0X49,0X41,0X1F,0X01,0X09; /不帶小數(shù)點Uchardd=0x02,0X9e,0X24,0X0c,0X98,0X

14、48,0X40,0X1e,0X00,0X08; /帶小數(shù)點void delay(uint z) /延時函數(shù),z的取值為這個函數(shù)的延時ms數(shù) uint x,y;for(x=z;x0;x-) for(y=110;y0;y-); void t0_init() /定時50ms一個中斷 TMOD=0X01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1; ET0=1; TR0=1;uchar read_1302(uchar add) /讀函數(shù)uchar i,date;RST=0; /禁止讀寫數(shù)據(jù)for(i=0;i=1; SCLK=1;for(i=0

15、;i=1; SCLK=0;RST=0;date=date/16*10+date%16;/進制轉換 16轉10進制IO=0; /數(shù)據(jù)讀完后,IO口必須為0,不然小時一直顯示85return date;void write_1302(uchar add,uchar dat) /寫函數(shù)uchar i;RST=0; /禁止讀寫數(shù)據(jù)SCLK=0; for(i=0;i=1; SCLK=1;for(i=0;i=1; SCLK=1;RST=0;void init_1302() /初始化函數(shù) 設置時間 flag=read_1302(0x81); if(flag&0x80)write_1302(0x8e,0x00

16、); /保護取消,可以進行讀寫操作write_1302(write_miao,0x56); write_1302(write_fen,0x49);write_1302(write_shi,0x14);write_1302(0x90,0xa5);write_1302(0x8e,0x80); /保護啟動,不能進行讀寫操作void display(uchar shi,uchar fen) /顯示函數(shù) if(knum=0) snum=30; fnum=30;if(knum=1) fnum+; snum=30;if(knum=2) snum+; fnum=30;if(snum=30) W=0xFe; /

17、位選 s=dshi/10;/段碼先給s,判斷其值是否為0, if(s=0xc0) W=0xff; D=0xff; D=s;/s不為零則給D,讓其顯示 delay(5); D=0Xff; /消隱 if(miao_flag) /小數(shù)點閃爍 miao_flag=0; W=0xFd; D=ddshi%10; delay(5); D=0Xff; /消隱 else W=0xFd; D=dshi%10; delay(5); D=0Xff; if(snum=60) snum=0; if(fnum=30) W=0xFb; D=dfen/10; delay(5); D=0Xff; /消隱 W=0xF7; D=df

18、en%10; delay(5); D=0Xff; /消隱 if(fnum=60) fnum=0;void read_sf() miao=read_1302(read_miao);/*if(miao!=Dmiao) Dmiao=miao; TR0=1; miao_flag=1; */fen=read_1302(read_fen);shi=read_1302(read_shi); display(shi,fen);void keyscan() /按鍵掃描函數(shù) if(s3=0) /選擇按鍵按下 delay(10); if(s3=0) while(!s3) display(shi,fen); /按鍵按

19、下就不會閃 knum+; if(knum=1) /分閃爍 write_1302(0x8e,0x00); /保護取消 write_1302(write_miao,0x80); if(knum=3) /時鐘啟動 knum=0; write_1302(write_miao,0x00); write_1302(0x8e,0x80); /保護啟動 if(knum=1) /分鐘調(diào)節(jié) if(s1=0) /加 delay(10); if(s1=0) while(!s1) display(shi,fen); /按鍵按下就不會閃 fen+; if(fen=60) fen=0; write_1302(write_f

20、en,fen/10*16+fen%10); /寫入1302/ read_sf(); /讀出時間,然后顯示 if(s2=0) delay(10); if(s2=0) while(!s2) display(shi,fen); /按鍵按下就不會閃 if(fen=-1) fen=59; write_1302(write_fen,fen/10*16+fen%10); read_sf(); if(knum=2) if(s1=0) delay(10); if(s1=0) while(!s1) display(shi,fen); /按鍵按下就不會閃 shi+; if(shi=24) shi=0; write_

21、1302(write_shi,shi/10*16+shi%10); read_sf(); if(s2=0) delay(10); if(s2=0) while(!s2) display(shi,fen); /按鍵按下就不會閃 shi-; if(shi=-1) shi=23; write_1302(write_shi,shi/10*16+shi%10); read_sf(); void main()init_1302();t0_init();while(1) if(miao_num=10) led=1; read_sf(); keyscan();void t0_timer() interrupt

22、 1 TMOD=0X01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;miao_num+;if(miao_num=20) miao_num=0; miao_flag=1;四、設計過程1.Proteus仿真電路(1)仿真電路圖(2)制作過程的部分圖片 2.實際電路板調(diào)試(1) 檢測電路板沒什么接觸問題后,用燒錄實驗板把自己寫的程序?qū)懭雴纹瑱C;(2) 將單片機插入自己的電路板中,上電看是實驗板數(shù)碼管顯示效果;分析出現(xiàn)效果不佳或者時間誤差大的原因,并在軟件上修改重新調(diào)試,直至達到實訓要求與更佳效果。五、遇到的問題及其處理方法(1)問題一:用Proteus仿真電路原理圖,用的芯片較多,電路比較復雜; 處理一:仿真時用Proteus內(nèi)部的電流電壓探針測試電路各端的電壓電流值,判斷是否可簡化電路原理圖,最后決定去掉了驅(qū)動74LS245; 處理二:用相似的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論