1957年,Ventura發(fā)明了世界上第一個(gè)電子表,從而奠定了電子時(shí)鐘的基礎(chǔ),電子時(shí)鐘開始迅速發(fā)展起來。現(xiàn)代的電子時(shí)鐘是基于單片機(jī)的一種計(jì)時(shí)工具,采用延時(shí)程序產(chǎn)生一定的時(shí)間中斷,用于一秒的定義,通過計(jì)數(shù)方式進(jìn)行滿六十秒分鐘進(jìn)一,滿六十分小時(shí)進(jìn)一,滿二十四小時(shí)小時(shí)清零。從而達(dá)到計(jì)時(shí)的功能,是人民日常生活補(bǔ)課缺少的工具。現(xiàn)在高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LED顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí)、分、秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對,片選的靈活性好。
二、實(shí)現(xiàn)方案選擇
AT895S52單片機(jī)的內(nèi)部16位定時(shí)器/計(jì)數(shù)器是一個(gè)可編程定時(shí)/計(jì)數(shù)器,它既可以工作在13位定時(shí)方式,也可以工作在16位定時(shí)方式或8位定時(shí)方式,只要通過設(shè)置特殊功能寄存器TMOD即可完成。定時(shí)/計(jì)數(shù)器核實(shí)工作也可以通過TCON特殊功能寄存器來設(shè)置的。在此設(shè)計(jì)中,選擇16位定時(shí)工作方式。對于T0來說,系統(tǒng)時(shí)鐘位12MHz,最大定時(shí)也只有65536us,無法達(dá)到所需的1s的定時(shí),因此必須通過軟件來處理這個(gè)問題,假設(shè)取T0的最大定時(shí)為50ms,即要定時(shí)1s需要經(jīng)過20次的50ms的定時(shí)。T0定時(shí)器/計(jì)數(shù)器的TH0、TL0的初值設(shè)定可以通過以下公式計(jì)算:
TH0=(2^16-50000)/256
TL0=(2^16-50000)%256
為了將時(shí)間在LED數(shù)碼管上顯示,可采用靜態(tài)顯示法和動(dòng)態(tài)顯示法,由于靜態(tài)顯示法需要譯碼器,數(shù)據(jù)鎖存器等較多硬件,可采用動(dòng)態(tài)顯示法實(shí)現(xiàn)LED顯示,通過對每位數(shù)碼管的依次掃描,使對應(yīng)數(shù)碼管亮,同時(shí)向該數(shù)碼管送對應(yīng)的字碼,使其顯示數(shù)字。由于數(shù)碼管掃描周期很短,由于人眼的視覺暫留效應(yīng),使數(shù)碼管看起來總是亮的,從而實(shí)現(xiàn)了各種顯示。
針對要實(shí)現(xiàn)的功能,采用AT89S52單片機(jī)進(jìn)行設(shè)計(jì),AT89S52 單片機(jī)是一款低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4KB在線可編程(ISP)的可反復(fù)擦寫1000次的Flash只讀程序存儲(chǔ)器,器件采用高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn)MCS- 51指令系統(tǒng)及80C51引腳結(jié)構(gòu)。這樣,既能做到經(jīng)濟(jì)合理又能實(shí)現(xiàn)預(yù)期的功能。
在程序方面,采用分塊設(shè)計(jì)的方法,這樣既減小了編程難度、使程序易于理解,又能便于添加各項(xiàng)功能。程序可分為鬧鐘的聲音程序、時(shí)間顯示程序、日期顯示程序,秒表顯示程序,時(shí)間調(diào)整程序、鬧鐘調(diào)整程序、定時(shí)調(diào)整程序,延時(shí)程序等。運(yùn)用這種方法,關(guān)鍵在于各模塊的兼容和配合,若各模塊不匹配會(huì)出現(xiàn)意想不到的錯(cuò)誤。
首先,在編程之前必須了解硬件結(jié)構(gòu)尤其是各引腳的用法,以及內(nèi)部寄存器、存儲(chǔ)單元的用法,否則,編程無從下手,電路也無法設(shè)計(jì)。這是前期準(zhǔn)備工作。第二部分是硬件部分:依據(jù)想要的功能分塊設(shè)計(jì)設(shè)計(jì),比如輸入需要開關(guān)電路,輸出需要顯示驅(qū)動(dòng)電路和數(shù)碼管電路等。第三部分是軟件部分:先學(xué)習(xí)理解匯編語言的編程方法再根據(jù)設(shè)計(jì)的硬件電路進(jìn)行分塊的編程調(diào)試,最終完成程序設(shè)計(jì)。第四部分是軟件畫圖部分:設(shè)計(jì)好電路后進(jìn)行畫圖,包括電路圖和仿真圖的繪制。第五部分是軟件仿真部分:軟硬件設(shè)計(jì)好后將軟件載入芯片中進(jìn)行仿真,仿真無法完成時(shí)檢查軟件程序和硬件電路并進(jìn)行修改直到仿真成功。第六部分是硬件實(shí)現(xiàn)部分:連接電路并導(dǎo)入程序檢查電路,若與設(shè)計(jì)的完全一樣一般能實(shí)現(xiàn)想要的功能。最后進(jìn)行功能擴(kuò)展,在已經(jīng)正確的設(shè)計(jì)基礎(chǔ)上,添加額外的功能.
四,時(shí)鐘的實(shí)現(xiàn)
A.電路設(shè)計(jì)
1. 整體設(shè)計(jì)
此次設(shè)計(jì)主要是應(yīng)用單片機(jī)來設(shè)計(jì)電子時(shí)鐘,硬件部分主要分以下電路模塊:顯示電路用2個(gè)四位共陰數(shù)碼管分別顯示時(shí)、分、秒,通過動(dòng)態(tài)掃描進(jìn)行顯示,從而避免了譯碼器的使用,同時(shí)節(jié)約了I/0端口,使電路更加簡單。單片機(jī)采用AT89S52系列,這種單片機(jī)應(yīng)用簡單,適合電子鐘設(shè)計(jì)。
電路的總體設(shè)計(jì)框架如下:
2. 分塊設(shè)計(jì)
模塊電路主要分為:單片機(jī)最小系統(tǒng)、2塊四位七段數(shù)碼管以及鍵盤電路三部分組成
2.1 單片機(jī)最小系統(tǒng)部分
以下為輸入部分樣例:
其中晶振與復(fù)位電路
本實(shí)驗(yàn)單片機(jī)時(shí)鐘用內(nèi)部時(shí)鐘,模塊如下:
復(fù)位電路為手動(dòng)復(fù)位構(gòu)成,模塊如下:
2.2 四位七段數(shù)碼管
本電路的輸出信號為7段數(shù)碼管的位選和段選信號(其中位選信號由P2口輸出,段選信號由P0口輸出),時(shí)間提醒指示燈(LED燈,由P3.2口輸出)
本實(shí)驗(yàn)的數(shù)碼管是共陰的,為了防止段選信號不能驅(qū)動(dòng)數(shù)碼管,故在P0口連接上拉電阻后,再送段選信號,以提高驅(qū)動(dòng),位選信號直接從P2口接入,如下圖:
時(shí)間提醒燈由P3.2端輸出,模塊如下:
2.3 鍵盤電路
鍵盤電路采用4個(gè)四腳輕觸開關(guān)來搭建鍵盤電路,分別用來對時(shí)、分、秒、復(fù)位時(shí)間的控制與調(diào)節(jié),以下是有關(guān)于四腳輕觸開關(guān)的一些參數(shù)以及鍵盤電路的原理圖
四腳輕觸開關(guān)參數(shù):
鍵盤電路的原理圖
分別由P1.0,P1.1,P1.2,P1.3讀取四個(gè)四腳開關(guān)的值,并由單片機(jī)做出相應(yīng)的響應(yīng)
由于四腳輕觸開關(guān)按動(dòng)時(shí)抖動(dòng)現(xiàn)象,由此可以通過編寫延時(shí)程序來實(shí)現(xiàn)“消抖”。延時(shí)程序可參考如下程序段:
各模塊拼接組合,電路總體設(shè)計(jì)圖如下:
B 程序設(shè)計(jì)
B.1 程序總體設(shè)計(jì)
本實(shí)驗(yàn)用匯編程序完成.
程序總的流程圖如下:
B.2 程序主要模塊
B.2.1 延時(shí)模塊
數(shù)碼管顯示動(dòng)態(tài)掃描時(shí),用到延時(shí)程序,這里使用延遲1ms的程序,此程序需反復(fù)調(diào),除數(shù)碼管動(dòng)態(tài)掃描外.
B.2.2中斷服務(wù)程序
本實(shí)驗(yàn)中,T0中斷為時(shí)鐘定時(shí)所用,T1中斷用于音樂播放。T0的定時(shí)長度為0.01s,工作于方式0,計(jì)數(shù)1次,時(shí)長1us,故計(jì)數(shù)器計(jì)數(shù)10000次,進(jìn)入中斷,計(jì)數(shù)初值為65536-10000=55536=#0D8F0,裝滿定時(shí)器需要0.01s的時(shí)間,從而100次中斷為一秒,一秒之后,判斷是否到60秒,若不到則秒加一,然后返回,若到,則秒賦值為0,分加一,依次類推。
B.2.3 顯示子程序
8個(gè)數(shù)碼管輪流進(jìn)行顯示,分別顯示50ms,依賴人的視覺 暫留效應(yīng),給人以數(shù)碼管持續(xù)高亮的錯(cuò)覺。
B.2.4掃描鍵盤程序
通過讀取P1口的P1.0,P1.2,P1.3的0或1值來判斷哪個(gè)按鍵被按下,同時(shí)添加“消抖”程序來防止單片機(jī)誤判。
B.2.5主程序
主程序只要是對定時(shí)/計(jì)數(shù)器裝載初值,初始化定時(shí)/計(jì)數(shù)器以及啟動(dòng)定時(shí)/計(jì)數(shù)器,同時(shí)調(diào)用以上子程序來完成要求和設(shè)計(jì)時(shí)間提醒燈程序來實(shí)現(xiàn)LED的亮滅。
五、程序調(diào)試及仿真
2、先在Proteus上繪制硬件電路,電路設(shè)計(jì)完成后就可以進(jìn)行仿真。先雙擊單片機(jī),把用keiluVision4編譯生成的HEX文件指定為下載文件,點(diǎn)擊PLAY鍵即可進(jìn)行仿真。當(dāng)出現(xiàn)ANALYSER ERRORS時(shí),表示電路有錯(cuò)誤,列表中說明了具體的錯(cuò)誤,必須要先排錯(cuò)才可以進(jìn)行仿真。
軟件調(diào)試及Proteus仿真完成后就進(jìn)行硬件的安裝。本設(shè)計(jì)按照原先設(shè)計(jì)好的電路圖進(jìn)行總體上的布置,采用人工搭電路的方法進(jìn)行硬件的安裝。
3、安裝時(shí)要考慮受熱、穩(wěn)固等多方面的影響使用電烙鐵時(shí)要控制好焊接的時(shí)間,電烙鐵停留的時(shí)間太短,焊錫不易完全熔化,形成“虛焊”,而焊接時(shí)間太長又容易損壞元器件,每一兩秒內(nèi)要焊好一個(gè)焊點(diǎn),若沒完成,寧愿等一會(huì)兒再焊一次。其次芯片的擺置要方便連線,焊接時(shí)要先把芯片拔出,等線接好了再插上去。在焊接時(shí)要考慮電路的抗干擾能力同時(shí)要充分考慮電源對單片機(jī)的影響。每焊接完一個(gè)模塊,要用萬能表根據(jù)電路圖檢查有沒有接錯(cuò)、短路等現(xiàn)象,確認(rèn)正確后再繼續(xù)下一個(gè)模塊。為了防止在焊接過程中由于過熱對AT89S52單片機(jī)芯片以及其他芯片造成損壞,建議先將相應(yīng)的芯片底座焊接在電路板上,然后在焊接完畢后在插進(jìn)芯片。在焊接的過程中,在安全可靠可正常工作的情況下,力保電路板接線簡潔。防止被電烙鐵燙傷。
六、設(shè)計(jì)中遇到的問題
1、 第一次上電時(shí),數(shù)碼管沒顯示,用萬用表測得單片機(jī)VCC接口無電壓。
解決方法:將萬用表打到直流電壓檔來測量USB電源口發(fā)現(xiàn)將USB口的正負(fù)極性弄反了。最后重新接線。
2、單片機(jī)正常工作時(shí),時(shí)間提醒燈沒有按照設(shè)定的時(shí)間區(qū)間來亮滅。
解決方法:由于采用C語言來編寫程序時(shí),使用了if()指令來控制LED亮滅,并且在使用多條件時(shí)不注意if()格式,導(dǎo)致了實(shí)際運(yùn)行結(jié)果不符合期望結(jié)果。所以改寫程序后,運(yùn)行正常,符合要求。
七、設(shè)計(jì)中可以改進(jìn)的地方
1、可以增設(shè)年份、月份以及星期的顯示
2、可以增設(shè)調(diào)節(jié)電路來實(shí)現(xiàn)可以任意時(shí)間提醒
八、心得體會(huì)
本文先從整體論述了設(shè)計(jì)電子鐘的大致思路,然后再采用劃分模塊的方法,將硬件電路劃分為開關(guān)電路,顯示驅(qū)動(dòng)電路,以及數(shù)碼管電路等,而軟件部分,則依據(jù)要實(shí)現(xiàn)的功能,劃分為:秒表顯示程序,時(shí)間調(diào)整程序。最后將各模塊集成為一個(gè)整體,合成一個(gè)多功能的電子鐘。在程序編寫的過程中,通過查閱不少的書籍以及參考一下網(wǎng)上一些可用的程序,我更加加深了對單片機(jī)定時(shí)/計(jì)數(shù)器的工作原理以及使用方法。同時(shí),通過對實(shí)際的單片機(jī)最小系統(tǒng)的搭建與焊接,我更加掌握了單片機(jī)最小系統(tǒng)的硬件要求和焊接技術(shù)。
再者,通過可調(diào)數(shù)字時(shí)鐘設(shè)計(jì)我使用學(xué)會(huì)了如何使用單片機(jī)做出自己想要做的產(chǎn)品同時(shí)也提高了我使用單片機(jī)方面的能力和經(jīng)驗(yàn)。同時(shí)使我能夠更加熟練的使用proteus 電路仿真軟件和keill程序編寫軟件。
【1】宋躍,《單片微機(jī)原理與接口技術(shù)》,電子工業(yè)出版社
【2】周潤景,劉曉霞,《單片機(jī)實(shí)用系統(tǒng)設(shè)計(jì)與仿真經(jīng)典實(shí)例》,電子工業(yè)出版社
附錄
附錄1:整體電路仿真圖
附錄2:電路實(shí)物圖
單片機(jī)源程序如下:
所有資料51hei提供下載:
單片機(jī)課程設(shè)計(jì)報(bào)告.docx
(1.37 MB, 下載次數(shù): 253)
單純 發(fā)表于 2019-12-11 23:55
能把仿真圖發(fā)我下嗎?萬分感謝
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |