




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上數(shù)碼管顯示電子時(shí)鐘設(shè)計(jì)一.功能要求1.數(shù)字電子時(shí)鐘最主要是LED數(shù)碼管顯示功能,以24小時(shí)為一個(gè)周期,顯示時(shí)間時(shí)、分、秒。2.具有校時(shí)功能,可以對(duì)時(shí)、進(jìn)行單獨(dú)校對(duì),使其校正到標(biāo)準(zhǔn)時(shí)間。二.方案論證1.數(shù)字時(shí)鐘方案數(shù)字時(shí)鐘是本設(shè)計(jì)的最主要的部分。根據(jù)需要,可利用兩種方案實(shí)現(xiàn)。方案一:本方案采用Dallas公司的專用時(shí)鐘芯片DS12887A。該芯片內(nèi)部采用石英晶體振蕩器,其芯片精度不大于10ms/年,且具有完備的時(shí)鐘鬧鐘功能,因此,可直接對(duì)其以用于顯示或設(shè)置,使得軟件編程相對(duì)簡(jiǎn)單。為保證時(shí)鐘在電網(wǎng)電壓不足或突然掉電等突發(fā)情況下仍能正常工作,芯片內(nèi)部包含鋰電池。當(dāng)電網(wǎng)電壓不
2、足或突然掉電時(shí),系統(tǒng)自動(dòng)轉(zhuǎn)換到內(nèi)部鋰電池供電系統(tǒng)。而且即使系統(tǒng)不上電,程序不執(zhí)行時(shí),鋰電池也能保證芯片的正常運(yùn)行,以備隨時(shí)提供正確的時(shí)間。方案二:本方案完全用軟件實(shí)現(xiàn)數(shù)字時(shí)鐘。原理為:在單片機(jī)內(nèi)部存儲(chǔ)器設(shè)三個(gè)字節(jié)分別存放時(shí)鐘的時(shí)、分、秒信息。利用定時(shí)器與軟件結(jié)合實(shí)現(xiàn)1秒定時(shí)中斷,每產(chǎn)生一次中斷,存儲(chǔ)器內(nèi)相應(yīng)的秒值加1;若秒值達(dá)到60,則將其清零,并將相應(yīng)的分字節(jié)值加1;若分值達(dá)到60,則清零分字節(jié),并將時(shí)字節(jié)值加1;若時(shí)值達(dá)到24,則將十字節(jié)清零。該方案具有硬件電路簡(jiǎn)單的特點(diǎn)。但由于每次執(zhí)行程序時(shí),定時(shí)器都要重新賦初值,所以該時(shí)鐘精度不高。而且,由于是軟件實(shí)現(xiàn),當(dāng)單片機(jī)不上電,程序不執(zhí)行時(shí),時(shí)
3、鐘將不工作。基于硬件電路的考慮,本設(shè)計(jì)采用方案二完成數(shù)字時(shí)鐘的功能。2.數(shù)碼管顯示方案方案一:靜態(tài)顯示。所謂靜態(tài)顯示,就是當(dāng)顯示器顯示某一字符時(shí),相應(yīng)的發(fā)光二極管恒定的導(dǎo)通或截止。該方式每一位都需要一個(gè)8 位輸出口控制。靜態(tài)顯示時(shí)較小的電流能獲得較高的亮度,且字符不閃爍。但當(dāng)所顯示的位數(shù)較多時(shí),靜態(tài)顯示所需的I/O口太多,造成了資源的浪費(fèi)。方案二:動(dòng)態(tài)顯示。所謂動(dòng)態(tài)顯示就是一位一位的輪流點(diǎn)亮各個(gè)位,對(duì)于顯示器的每一位來說,每隔一段時(shí)間點(diǎn)亮一次。利用人的視覺暫留功能可以看到整個(gè)顯示,但必須保證掃描速度足夠快,字符才不閃爍。顯示器的亮度既與導(dǎo)通電流有關(guān),也于點(diǎn)亮?xí)r間與間隔時(shí)間的比例有關(guān)。調(diào)整參數(shù)可
4、以實(shí)現(xiàn)較高穩(wěn)定度的顯示。動(dòng)態(tài)顯示節(jié)省了I/O口,降低了能耗。從節(jié)省I/O口和降低能耗出發(fā),本設(shè)計(jì)采用方案二。3 .計(jì)時(shí)方案利用AT89S51單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器進(jìn)行中斷時(shí),配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。該方案節(jié)省硬件成本,且能使讀者在定時(shí)/計(jì)數(shù)器的使用、中斷及程序設(shè)計(jì)方面得到鍛煉與提高,對(duì)單片機(jī)的指令系統(tǒng)能有更深入的了解,從而對(duì)學(xué)好單片機(jī)技術(shù)這門課程起到一定的作用。4. 控制方案AT89S51的P0口和P2口外接由八個(gè)LED數(shù)碼管(LED8LED1)構(gòu)成的顯示器,用P0口作LED的段碼輸出口,P2口作八個(gè)LED數(shù)碼管的位控輸出線,P1口外接四個(gè)按鍵A、B、C構(gòu)成鍵盤電路。AT89S51
5、 是一種低功耗,高性能的CMOS 8位微型計(jì)算機(jī)。它帶有8K Flash 可編程和擦除的只讀存儲(chǔ)器(EPROM),該器件采用ATMEL的高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)上標(biāo)準(zhǔn)的80C51和80C52的指令系統(tǒng)及引腳兼容,片內(nèi)Flash 集成在一個(gè)芯片上,可用與解決復(fù)雜的問題,且成本較低。簡(jiǎn)易電子鐘的功能不復(fù)雜,采用其現(xiàn)有的I/O便可完成,所以本設(shè)計(jì)中采用此的設(shè)計(jì)方案。三.系統(tǒng)硬件電路的設(shè)計(jì)根據(jù)以上的電子時(shí)鐘的設(shè)計(jì)要求可以分為以下的幾個(gè)硬件電路模塊:?jiǎn)纹瑱C(jī)模塊、數(shù)碼顯示模塊與按鍵模塊,模塊之間的關(guān)系圖如下面得方框電路圖1所示 圖1 硬件電路方框圖1. 單片機(jī)模塊設(shè)計(jì)11 芯片分析AT89C5
6、1單片機(jī)引腳圖如下:圖2 AT89C51引腳圖MCS-51單片機(jī)是標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片,其各引腳功能如下:VCC:+5V電源。VSS:接地。RST:復(fù)位信號(hào)。當(dāng)輸入的復(fù)位信號(hào)延續(xù)兩個(gè)機(jī)器周期以上的高電平時(shí)即為有效,用完成單片機(jī)的復(fù)位初始化操作。XTAL1和XTAL2:外接晶體引線端。當(dāng)使用芯片內(nèi)部時(shí)鐘時(shí),此二引線端用于外接石英晶體和微調(diào)電容;當(dāng)使用外部時(shí)鐘時(shí),用于接外部時(shí)鐘脈沖信號(hào)。P0口:P0口為一個(gè)8位漏極開路雙向I/O口,當(dāng)作輸出口使用時(shí),必須接上拉電阻才能有高電平輸出;當(dāng)作輸入口使用時(shí),必須先向電路中的鎖存器寫入“1”,使FET截止,以避免鎖存器為“0”狀態(tài)時(shí)對(duì)引腳讀入
7、的干擾。P1口:P1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向I/O口,它不再需要多路轉(zhuǎn)接電路MUX;因此它作為輸出口使用時(shí),無需再外接上拉電阻,當(dāng)作為輸入口使用時(shí),同樣也需先向其鎖存器寫“1”,使輸出驅(qū)動(dòng)電路的FET截止。P2口:P2口電路比P1口電路多了一個(gè)多路轉(zhuǎn)接電路MUX,這又正好與P0口一樣。P2口可以作為通用的I/O口使用,這時(shí)多路轉(zhuǎn)接電路開關(guān)倒向鎖豐存器Q端。P3口:P3口特點(diǎn)在于,為適應(yīng)引腳信號(hào)第二功能的需要,增加了第二功能控制邏輯。當(dāng)作為I/O口使用時(shí),第二功能信號(hào)引線應(yīng)保持高電平,與非門開通,以維持從鎖存器到輸出端數(shù)據(jù)輸出通路的暢通。當(dāng)輸出第二功能信號(hào)時(shí),該位應(yīng)應(yīng)置“1”,使與非門
8、對(duì)第二功能信號(hào)的輸出是暢通的,從而實(shí)現(xiàn)第二功能信號(hào)的輸出。MCS-51單片機(jī)共有4個(gè)雙向的8位并行I/O端口(Port),分別記作P0-P3,共有32根口線,各口的每一位均由鎖存器、輸出驅(qū)動(dòng)器和輸入緩沖器所組成。實(shí)際上P0-P3已被歸入特殊功能寄存器之列。這四個(gè)口除了按字節(jié)尋址以外,還可以按位尋址。由于它們?cè)诮Y(jié)構(gòu)上有一些差異,故各口的性質(zhì)和功能有一些差異。P0口是雙向8位三態(tài)I/O口,此口為地址總線(低8位)及數(shù)據(jù)總線分時(shí)復(fù)用口,可驅(qū)動(dòng)8個(gè)LS型TTL負(fù)載。P1口是8位準(zhǔn)雙向I/O口,可驅(qū)動(dòng)4個(gè)LS 型負(fù)載。P2口是8位準(zhǔn)雙向I/O口,與地址總線(高8位)復(fù)用,可驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。P3
9、口是8位準(zhǔn)雙向I/O口,是雙功能復(fù)用口,可驅(qū)動(dòng)4個(gè)LS型TTL負(fù)載。P1口、P2口、P3口各I/O口線片內(nèi)均有固定的上拉電阻,當(dāng)這3個(gè)準(zhǔn)雙向I/O口做輸入口使用時(shí),要向該口先寫“1”,另外準(zhǔn)雙向I/O口無高阻的“浮空”狀態(tài),故稱為雙向三態(tài)I/O 口。時(shí)鐘電路用于產(chǎn)生MCS-51單片機(jī)工作時(shí)所必需的時(shí)鐘信號(hào)。MCS-51單片機(jī)本身就是一個(gè)復(fù)雜的同步時(shí)序電路,為保證同步工作方式的實(shí)現(xiàn),MCS-51單片機(jī)應(yīng)在唯一的時(shí)鐘信號(hào)控制下,嚴(yán)格地按時(shí)序執(zhí)行進(jìn)行工作,而時(shí)序所研究的是指令執(zhí)行中各個(gè)信號(hào)的關(guān)系。在執(zhí)行指令時(shí),CPU首先要到程序存儲(chǔ)器中取出需要執(zhí)行的指令操作碼,然后譯碼,并由時(shí)序電路產(chǎn)生一系列控制信
10、號(hào)去完成指令所規(guī)定的操作。CPU發(fā)出的時(shí)序信號(hào)有兩類,一類用于片內(nèi)對(duì)各個(gè)功能部件的控制,這列信號(hào)很多。另一類用于片外存儲(chǔ)器或I/O端口的控制,這部分時(shí)序?qū)τ诜治?、設(shè)計(jì)硬件接口電路至關(guān)重要。這也是單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)者普遍關(guān)心的問題。1.2 數(shù)碼顯示模塊設(shè)計(jì)系統(tǒng)采用動(dòng)態(tài)顯示方式,用P0口來控制LED數(shù)碼管的段控線,而用P2口來控制其位控線。動(dòng)態(tài)顯示通常都是采用動(dòng)態(tài)掃描的方法進(jìn)行顯示,即循環(huán)點(diǎn)亮每一個(gè)數(shù)碼管,這樣雖然在任何時(shí)刻都只有一位數(shù)碼管被點(diǎn)亮,但由于人眼存在視覺殘留效應(yīng),只要每位數(shù)碼管間隔時(shí)間足夠短,就可以給人以同時(shí)顯示的感覺。圖3 數(shù)碼顯示電路1.3 按鍵模塊下圖為按鍵模塊電路原理圖,A為復(fù)
11、位鍵,B為時(shí)鐘調(diào)控鍵,C為分鐘調(diào)控鍵。 圖 4 按鍵模塊電路原理圖四系統(tǒng)程序的設(shè)計(jì)軟件設(shè)計(jì)分析顯示的效果為動(dòng)態(tài)顯示,利用CPU控制數(shù)碼管顯示的選通和停止,通過定時(shí)器中斷不斷掃描,從而實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)顯示。在編程上,首先進(jìn)行了初始化,定義程序的的入口地址以及中斷的入口地址,在主程序開始定義了一組固定單元用來儲(chǔ)存計(jì)數(shù)的時(shí).分.秒,在顯示初值之后,進(jìn)入主循環(huán)。在主程序中,對(duì)不同的按鍵進(jìn)行掃描,實(shí)現(xiàn)秒表,時(shí)間調(diào)整,復(fù)位清零等功能,系統(tǒng)總流程圖如下圖5:圖 5 系統(tǒng)總體流程圖五.調(diào)試及性能分析電子時(shí)鐘主要的設(shè)計(jì)要求是能夠?qū)崿F(xiàn)時(shí)鐘的一般功能,以及包括時(shí)間的調(diào)整功能,這個(gè)基于單片機(jī)的電子時(shí)鐘基本上實(shí)現(xiàn)了上述功
12、能,能夠通過時(shí)間調(diào)整電路對(duì)時(shí)間進(jìn)行調(diào)整以及復(fù)位。下述為18:30:30的仿真圖:首先確保各器件的完好性,其次檢測(cè)各芯片的電源線和地線是否接觸良好,然后焊接器件,接好電源用萬用表檢測(cè)各電源端、地端的狀態(tài)是否正常。檢查無誤后插上AT89S51并燒寫一簡(jiǎn)易的程序,觀察電路是否能協(xié)同工作。最后燒寫工作程序,根據(jù)顯示現(xiàn)象調(diào)試程序直至成功。上電運(yùn)行時(shí),數(shù)碼管開始顯示00:00:00,時(shí)鐘開始走時(shí)。程序的編寫和調(diào)試是一個(gè)比較復(fù)雜的過程。由于對(duì)C語言知識(shí)的薄弱,所以在編譯過程中總是有很多語法上的錯(cuò)誤,但是在和同學(xué)一起討論研究后,程序是編寫出來了,但結(jié)合到硬件調(diào)試中又出現(xiàn)各種問題。在調(diào)試過程中出現(xiàn)了很多問題,在
13、第一次把程序燒到單片機(jī)里,通電運(yùn)行時(shí),雖然控制時(shí)、分、秒的按鈕能夠?qū)?shù)碼管顯示進(jìn)行調(diào)整,但是數(shù)碼管全亮,不能通過按鍵變化顯示,更改程序中的問題,但是調(diào)時(shí)設(shè)置又沒有用了。經(jīng)過檢查及修改,終于完成了所做的設(shè)計(jì),不容易啊。六控制源程序清單#include#include#define uchar unsigned char#define uint unsigned int/*七段共陰管顯示定義*/uchar code dispcode =0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F, 0xBF,0x86,0xCB,0xCF,0xEF,0xED,0
14、xFD,0x87,0xFF,0xDF;/*定義并初始化變量*/uchar seconde=0;uchar minite=0;uchar hour=12;uchar mstcnt=0;sbit P1_0=P10; / second 調(diào)整定義sbit P1_1=P11; /minite調(diào)整定義sbit P1_2=P12; /hour調(diào)整定義/*函數(shù)聲明*/void delay(uchar k ); /延時(shí)子程序void time_pro( ); /時(shí)間處理子程序void display( ); /顯示子程序void keyscan( ); /鍵盤掃描子程序/*/*延時(shí)子程序*/*/void del
15、ay (uchar k)uchar j;while(k-)!=0) for(j=0;j125;j+) ; /*/*時(shí)間處理子程序*/*/void time_pro( void) if(seconde=60) /秒鐘設(shè)為60進(jìn)制 seconde=0; minite+; if( minite=60) /分鐘設(shè)為60進(jìn)制 minite=0; hour+; if(hour=24) /時(shí)鐘設(shè)為24進(jìn)制 hour=0; /*/* 顯示子程序*/*/void display(void) P2=0xfe; P0=dispcodehour/10; /顯示小時(shí)的十位 delay(4); P2=0xfd; P0=(
16、dispcode(hour%10)|0X80; /顯示小時(shí)的個(gè)位 delay(4); P2=0xfb; P0=dispcodeminite/10; /顯示分的十位 delay(4); P2=0xf7; P0=(dispcodeminite%10)|0X80; /顯示分的個(gè)位 delay(4); P2=0xef; P0=dispcodeseconde/10; /顯示秒的十位 delay(4); P2=0xdf; P0=dispcodeseconde%10; /顯示秒的個(gè)位 delay(4);/*/*鍵盤掃描子程序*/*/void keyscan (void) if(P1_0=0) /按鍵1秒的調(diào)
17、整 delay(30); if(P1_0=0) seconde+; if(seconde=60) seconde=0; if(P1_1=0) /按鍵2分的調(diào)整 delay(30); if(P1_1=0) minite+; if(minite=60) minite=0; if(P1_2=0) /按鍵3小時(shí)的調(diào)整 delay(30); if(P1_2=0) hour+; if(hour=24) hour=0; void timer0(void) interrupt 1 using 0 /定時(shí)器0方式1,50ms中斷一次 TH0=0x3c;TMOD = 0x11; mstcnt+; if(mstcnt=20) seconde+; mstcnt=0; /注意點(diǎn)。對(duì)計(jì)數(shù)單元的清零十分的重要,本次調(diào)試中就是 /因?yàn)楹雎粤诉@一點(diǎn),給我早成了很大的被動(dòng)。/*/*主函數(shù)*/*/voi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 國(guó)家旅游課題申報(bào)書
- 辦公購(gòu)置合同范本
- 單位套房出售合同范本
- 售賣義齒器械合同范本
- 建設(shè)知識(shí)產(chǎn)權(quán)保護(hù)高地的實(shí)施細(xì)則與規(guī)劃
- 員工欠款合同范本
- 黨務(wù)材料外包合同范本
- 品牌油漆采購(gòu)合同范本
- 合同范本書庫
- 同城兼職用工合同范本
- 教育機(jī)構(gòu)招生合作協(xié)議
- 我的寒假生活課件模板
- ISO37000-2021組織治理-指南(雷澤佳譯2022)
- c語言期末機(jī)考(大連理工大學(xué)題庫)
- 洞頂回填技術(shù)交底
- 貝多芬與《月光奏鳴曲》
- 《汽車?yán)碚摗窂?fù)習(xí)提綱
- 利用勾股定理作圖計(jì)算(課堂PPT)
- 第18課 罐和壺(一)
- 初二下分式混合計(jì)算練習(xí)1(附答案)
- 交通建設(shè)工程工程量清單計(jì)價(jià)規(guī)范(第1部分公路工程)-解析
評(píng)論
0/150
提交評(píng)論