《大工16春《單片機(jī)原理》大作業(yè)正確答案》由會(huì)員分享,可在線閱讀,更多相關(guān)《大工16春《單片機(jī)原理》大作業(yè)正確答案(11頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、
網(wǎng)絡(luò)教育學(xué)院
《單片機(jī)原理及應(yīng)用》大作業(yè)
題 目:單片機(jī)電子時(shí)鐘設(shè)計(jì)
學(xué)習(xí)中心:******學(xué)習(xí)中心
層 次:專升本
專 業(yè):*****
2、
年 級(jí):2016年04 春季
學(xué) 號(hào): *****
學(xué)生姓名: *****
基于51單片機(jī)的電子時(shí)鐘設(shè)計(jì)
摘 要:本文介紹了基于51單片機(jī)的電子時(shí)鐘的設(shè)計(jì),從硬件和軟件兩個(gè)方面給出了具體實(shí)現(xiàn)過程。該時(shí)鐘的設(shè)計(jì)采用功能分塊的思想方法,將硬件電路劃分為開關(guān)電路,顯示驅(qū)動(dòng)電路和數(shù)碼管電路等若干獨(dú)立模塊,而軟件的實(shí)現(xiàn)則由鬧鐘的聲音程序、時(shí)間顯示程序、日期顯示程序,秒表顯示程序,時(shí)間調(diào)整程序、鬧鐘調(diào)整程序、定時(shí)調(diào)整程序,延時(shí)程序等組成。文中給出了各個(gè)模塊的電路圖,并用Prot
3、eus的ISIS軟件對(duì)電子時(shí)鐘系統(tǒng)的各個(gè)功能進(jìn)行了仿真,并給出了相應(yīng)的仿真結(jié)果圖像。
關(guān)鍵詞:單片機(jī);電子時(shí)鐘;鍵盤控制
一、引言
1957年,Ventura發(fā)明了世界上第一個(gè)電子表,從而奠定了電子時(shí)鐘的基礎(chǔ),電子時(shí)鐘開始迅速發(fā)展起來?,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í)的功能,是人們?nèi)粘I畈豢扇鄙俚墓ぞ摺,F(xiàn)在高精度的計(jì)時(shí)工具大多數(shù)都使用了石英晶體振蕩器,由于電子鐘、石英鐘、石英表都采用了石英技術(shù),因此走時(shí)精度高,穩(wěn)定性好,使用方便,不需要經(jīng)常調(diào)試
4、,數(shù)字式電子鐘用集成電路計(jì)時(shí)時(shí),譯碼代替機(jī)械式傳動(dòng),用LED顯示器代替指針顯示進(jìn)而顯示時(shí)間,減小了計(jì)時(shí)誤差,這種表具有時(shí)、分、秒顯示時(shí)間的功能,還可以進(jìn)行時(shí)和分的校對(duì),片選的靈活性好。
二、時(shí)鐘的基本原理分析
利用單片機(jī)定時(shí)器完成計(jì)時(shí)功能,定時(shí)器0s中斷一次并當(dāng)作一個(gè)計(jì)數(shù),設(shè)定定時(shí)1秒的中斷計(jì)數(shù)初值為100,每中斷一次中斷計(jì)數(shù)初值減1,當(dāng)減到0時(shí),則表示1s到了,秒變量加1,同理再判斷是否1min鐘到了,再判斷是否1h到了。
三、時(shí)鐘設(shè)計(jì)分析
針對(duì)要實(shí)現(xiàn)的功能,采用AT89S51單片機(jī)進(jìn)行設(shè)計(jì),AT89S51 單片機(jī)是一款低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4KB在線可編程(ISP
5、)的可反復(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è)
6、計(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)想要的功能。
四、時(shí)鐘的設(shè)計(jì)
1. 整體設(shè)計(jì)
此次設(shè)計(jì)主要是應(yīng)用單片機(jī)來設(shè)計(jì)電子
7、時(shí)鐘,硬件部分主要分以下電路模塊:顯示電路用8個(gè)共陰數(shù)碼管分別顯示,星期(年份),小時(shí)、分鐘(月份)和秒(日),通過動(dòng)態(tài)掃描進(jìn)行顯示,從而避免了譯碼器的使用,同時(shí)節(jié)約了I/0端口,使電路更加簡單。單片機(jī)采用AT89S51系列,這種單片機(jī)應(yīng)用簡單,適合電子鐘設(shè)計(jì)。
電路的總體設(shè)計(jì)框架如下:
單片機(jī)
輸入部分
晶振和復(fù)位
輸出部分
2. 分塊設(shè)計(jì)
模塊電路主要分為:輸入部分、輸出部分、復(fù)位和晶振電路。
2.1 輸入部分
輸入信號(hào)主要是各種模式選擇和調(diào)整信號(hào),由按鍵開關(guān)提供。
以下為輸入部分樣例:
在本實(shí)驗(yàn)中主要用用P3口輸入
8、按鍵信號(hào),還用到了特殊的P0口。對(duì)于P0口,由于其存在高阻狀態(tài),為了實(shí)現(xiàn)開關(guān)功能,給其添加上拉電阻,具體如下圖所示:
2.2 輸出部分
本電路的輸出信號(hào)為7段數(shù)碼管的位選和段選信號(hào),鬧鈴脈沖信號(hào),提示燈信號(hào)。
本實(shí)驗(yàn)的數(shù)碼管是共陰的,為了防止段選信號(hào)不能驅(qū)動(dòng)數(shù)碼管,故在P1口連接上拉電阻后,再送段選信號(hào),以提高驅(qū)動(dòng),位選信號(hào)直接從P2口接入,如下圖:
鬧鈴由P2.6端輸出,模塊如下:
2.3 晶振與復(fù)位電路
本實(shí)驗(yàn)單片機(jī)時(shí)鐘用內(nèi)部時(shí)鐘,模塊如下:
復(fù)位電路為手動(dòng)復(fù)位構(gòu)成,模塊如下:
各模塊拼接組合,電路總體設(shè)計(jì)圖如下:
B.1 程序總體設(shè)計(jì)
本實(shí)
9、驗(yàn)用匯編程序完成.
程序總的流程圖如下:
主程序開始
顯示星期,時(shí),
分,秒
是否有調(diào) 轉(zhuǎn)?
T0中斷
秒,分,時(shí)等進(jìn)位
閃爍提示
顯示日期并調(diào)整
響鈴提示
時(shí)間調(diào)整
鬧鈴設(shè)置
定時(shí)設(shè)置
鈴聲測(cè)試
秒表模式
回主程序
定時(shí)到
按0鍵
按0鍵
鬧鈴到
按1鍵
按2鍵
按3鍵
按4鍵
按5鍵
按7鍵
7鍵恢復(fù)
按4鍵
按8鍵
按0鍵
按0鍵
倒計(jì)時(shí)啟動(dòng)并顯示
回主程序
秒表暫停
秒表清零
回主程序
按7鍵
10、
B.2 程序主要模塊
B.2.1 延時(shí)模塊
數(shù)碼管顯示動(dòng)態(tài)掃描時(shí),用到延時(shí)程序,這里使用延遲1ms的程序,此程序需反復(fù)調(diào),除數(shù)碼管動(dòng)態(tài)掃描外,數(shù)碼管的閃爍提示,以及音樂模塊也用到了延時(shí),只是延時(shí)的長短不同罷了 。
本實(shí)驗(yàn)中,計(jì)數(shù)器T0,T1中斷都有運(yùn)用,其中T0中斷為時(shí)鐘定時(shí)所用,T1中斷用于音樂播放。T0的定時(shí)長度為0.01s,工作于方式1,計(jì)數(shù)1次,時(shí)長1us,故計(jì)數(shù)器計(jì)數(shù)10000次,進(jìn)入中斷,計(jì)數(shù)初值為65536-10000=55536=#0D8F0,裝滿定時(shí)器需要0.01s的時(shí)間,從而100次中斷為一秒,一秒之后,判斷
11、是否到60秒,若不到則秒加一,然后返回,若到,則秒賦值為0,分加一,依次類推。包括日期顯示的功能也是如此。另外,由于要實(shí)現(xiàn)倒計(jì)時(shí)功能,因此在中斷程序中還要加入減一的寄存器,需要時(shí)將其進(jìn)行顯示?;谝陨峡紤],以R3為倒計(jì)時(shí)中的秒,R4為倒計(jì)時(shí)的分,當(dāng)秒加1時(shí)R3減一,減到0之后,秒賦值為59,分減一,直到分為0。
計(jì)數(shù)器T1工作于方式1, 當(dāng)調(diào)用響鈴程序時(shí),其計(jì)數(shù)功能開啟,為音樂音調(diào)不同頻率的方波的形成,提供延時(shí)。其中斷服務(wù)程序就是根據(jù)音調(diào)改變音樂方波輸出口電平的高低,用語句 CPL實(shí)現(xiàn)。
中斷服務(wù)程序中日歷的實(shí)現(xiàn)較為復(fù)雜,要考慮平年,閏年,特殊的2月,每月的天數(shù)的不盡相同。具體的邏輯判斷
12、方法為:首先,要考慮年份是不是閏年,閏年的判斷方法是:將年份除以100,若能整除,則將年份除以400,若還能整除,則為閏年,若不能,則為平年;若不能被100整除,則判斷是否能被4整除,若能,則為閏年,若不能則為平年。只有2月與平、閏年相關(guān),因此在閏年和平年的子程序中,要判斷是不是2月,若是則在相應(yīng)的年中進(jìn)行日期的增加,若不是則轉(zhuǎn)入平時(shí)的月份。其中1、3、5、7、8、10、12月是每月31天,4、6、9、11月為每月30天。
日歷進(jìn)位判斷流程圖如下
年份能否被100整除
N
Y
年份是否能被4整除
年份是否能被400整除
N
N
平年
閏年
Y
Y
是不
13、是2月
是不是2月
Y
日>=28之后返回為1
N
N
Y
日>=29之后返回為1
若月份為1、3、5、7、8、10、12月則調(diào)用31天的程序
若月份為4、6、9、11則調(diào)用30天的程序
本實(shí)驗(yàn)用8個(gè)數(shù)碼管,剛好能顯示年,月,日,掃描顯示與時(shí)間的掃描顯示類似。年比較特殊,由兩個(gè)寄存器存儲(chǔ),個(gè)位,十位為0時(shí),表明年數(shù)能被100整除,若此時(shí)千位,百位
組成兩位數(shù)能被4整除,則年數(shù)被400整除,為閏年。若十位,個(gè)位組成兩位數(shù)能被4整除,則年數(shù)能被4整除,為閏年。
主程序主要對(duì)按鍵進(jìn)行掃描,以及判斷定時(shí)和鬧鈴時(shí)間是否已到,
14、若到則調(diào)用相關(guān)程序。
B.2.4 顯示子程序
8個(gè)數(shù)碼管輪流進(jìn)行顯示,分別顯示1ms,依賴人的視覺 暫留效應(yīng),給人以數(shù)碼管持續(xù)高亮的錯(cuò)覺。
日期的顯示,秒表的顯示,倒計(jì)時(shí)的顯示,調(diào)鬧鈴,調(diào)定時(shí)的顯示,閃爍的顯示程序與以上的的掃描相似,有的以子程序的方式出現(xiàn),通過子程序調(diào)用語句ACALL調(diào)用;有點(diǎn)直接嵌套在相應(yīng)的程序里面,順序執(zhí)行,或者用調(diào)轉(zhuǎn)語句AJMP調(diào)用。
C 程序調(diào)試及仿真
本程序通過Keil單片機(jī)開發(fā)平臺(tái)實(shí)現(xiàn)程序的編譯,鏈接,生成HEX文件。通過Keil和硬件仿真平臺(tái)Proteus的聯(lián)合,可以將設(shè)計(jì)效果仿真出來,根據(jù)效果,有目的的改變?cè)O(shè)計(jì),優(yōu)化程序。
利用Proteus仿真實(shí)驗(yàn)過程截圖:
普通時(shí)間顯示模式仿真圖,表示:星期一 9點(diǎn)10分38秒
五、總結(jié)
本文先從整體論述了設(shè)計(jì)電子鐘的大致思路,然后再采用劃分模塊的方法,將硬件電路劃分為開關(guān)電路,顯示驅(qū)動(dòng)電路,以及數(shù)碼管電路等,而軟件部分,則依據(jù)要實(shí)現(xiàn)的功能,劃分為:鬧鐘的聲音程序,時(shí)間顯示程序,日期顯示程序,秒表顯示程序,時(shí)間調(diào)整程序、鬧鐘調(diào)整程序、定時(shí)調(diào)整程序,延時(shí)程序等。最后將各模塊集成為一個(gè)整體,合成一個(gè)多功能的電子鐘。