版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、明達職業(yè)技術學院畢業(yè)設計 (論文)20092010 學年度信息工程系 系電子信息工程技術 專業(yè)班級 07電信(1) 學號 43073117 課題名稱 簡易數(shù)字鐘的設計與制作學生姓名陳勇強指導教師陳慕銘2009年12月25日前言隨著電子技術的迅猛發(fā)展和超大集成電路設計和制造工藝的進一步提高,單片機也有了迅速的發(fā)展,各種新穎的單片機產品層出不窮,令人目不暇接。當前單片機技術已滲透到國防尖端、工業(yè)、農業(yè)、日常生活的各個領域,成為當今世界現(xiàn)代化不可缺少的工具和強有力的武器。單片機技術是當代理工科大學生必會的技能之一。單片機的學習和掌握是當前迫切的任務和要求,為此進行了本次設計,本次設計旨在提高對單片機
2、的內部硬件電路的理解和軟件編程能力的提高,真正體驗一下產品的研發(fā)和制造的各部分流程,在一定程度上加強了對工程設計的理解和實際操作。簡易數(shù)字鐘是對單片機的一次綜合的應用,對單片機中至關重要的中斷概念的理解有著十分重要的意義,簡易數(shù)字鐘不僅需要時間的準確跟需要有廉價的電路組成即將部分硬件用軟件編程的方法加以代替,降低成本以提高市場的競爭力,這是對單片機設計的最高要求。本次設計就是針對以上問題的一種解決策略,希望通過后面的設計對讀者有所啟發(fā)和鼓勵,單片機其實很簡單,天下無難事,勇者必勝之。簡易數(shù)字鐘的設計與制作作者:陳勇強【摘要】:數(shù)字鐘已經廣泛應用于車站、廣場、家庭等場所,本次設計中的簡易數(shù)子鐘是
3、采用單片機的定時功能并結合單片機的強大的控制功能;利用先進的計算機仿真軟件對采用單片機做的數(shù)字鐘進行先期的模擬測試以達到加快設計周期,節(jié)約成本的目的;在仿真通過及參數(shù)確定以后進行實際的制作完成設計,單片機采用AT89C51經74LS373的驅動,通過六個數(shù)碼管進行顯示,時間通過鍵盤可以任意調整,時間誤差小于200ms,性能比較穩(wěn)定?!娟P鍵詞】 數(shù)字鐘 單片機 計算機仿真 數(shù)碼管 第一章 方案論證一 設計要求:(1) 該數(shù)字鐘應具有基本時鐘功能;(2) 24小時制;(3) 時間可以任意調整;(4) 時間用數(shù)碼管顯示。二 方案的論證與選擇:方案一本方案采用數(shù)子電路來實現(xiàn)功能,應用多諧振蕩器產生固定
4、頻率為1HZ的方波信號作為計數(shù)器的計數(shù)脈沖,并經過譯碼驅動電路驅動數(shù)碼管,達到時間顯示。本方案的特點是電路結構復雜,時間精度較低,且成本較高。硬件電路系統(tǒng)框圖如圖1所示。多諧振蕩器電源電路計數(shù)電路顯示電路 譯碼電路圖1 方案一系統(tǒng)框圖方案二本方案采用單片機控制系統(tǒng)用來定時1S信號,經數(shù)碼驅動電路驅動數(shù)碼管,顯示當前時間,并可以通過鍵盤調整時間。本方案的優(yōu)點是時間精確,成本低,但斷電時間會丟失,編程復雜。硬件電路系統(tǒng)框圖如圖2所示。圖2方案二系統(tǒng)框圖方案比較與選擇方案一與方案二相比電路復雜,無需編程,但成本較高,時間精度不及后者,不利于推廣和普及。方案二時間精度較高,可以節(jié)約元器件,成本低。本著
5、提高動手能力,加強對單片機的內部原理的進一步的理解,降低成本,提高編程能力;決定采用方案二,由于程序較為復雜,故采用國際較為通用的C語言編程。第二章 硬件電路設計一 硬件電路總體框圖:硬件電路由電源電路、單片機最小應用系統(tǒng)、復位電路、振蕩電路、顯示電路、時間調整電流組成。硬件電路系統(tǒng)框圖如圖2所示。 二 單元電路設計:1單片機最小應用系統(tǒng)的設計單片機最小應用系統(tǒng)是單片機能正常工作的最小應用系統(tǒng),其由單片機、復位電路、振蕩電路三個模塊組成,如圖3所示。 圖3 單片機最小應用系統(tǒng)1.1 單片機本次設計所使用的單片機是ATMEL公司的AT89C51單片機,這種單片機功能比較強大,價格低,性價比較高。
6、1.2 復位電路在給單片機通電時,其內部電路處于不確定的工作狀態(tài)。為了使單片機工作時內部電路有一個確定的工作狀態(tài),單片機在工作之前要有一個復位過程。單片機復位電路工作原理:當通電瞬間 穩(wěn)壓電源給電容充電。RST為復位輸入端,當RST引腳持續(xù)兩個機器周期以上的高電平時,使單片機完成復位操作。 隨著電容充電結束,將使電容與電阻之間將呈現(xiàn)低電平,單片機復位結束。復位操作的主要功能是把PC初始化為0000H,使單片機程序存儲器從0000H單元開始執(zhí)行程序。此外,復位操作使P0-P3這些引腳變?yōu)楦唠娖?,還會對內部的一些單元產生影響.1.3 振蕩電路單片機是一種時序電路,必須有脈沖信號才能工作,在它的內部
7、有一個時鐘產生電路,有兩種振蕩方式,一種是內部振蕩方式,只要接上兩個電容和一個晶振即可;另一種是外部振蕩方式,采用外部振蕩方式時,需在XTAL2 上加外部時鐘信號。本文論文選擇的方案中采用的是內部振蕩方式,外接晶振為12MHZ,震蕩周期=1/12us 時鐘周期=1/6us 機器周期=1us 指令周期=1-4us。2顯示及驅動電路顯示電路的主要作用是對時間進行顯示,顯示器件可以是LCD液晶顯示器、數(shù)碼管等;本次設計采用七段數(shù)碼管作為顯示的器件,數(shù)碼管具有亮度高,功耗低,壽命長,夜間顯示無需背光,價格低等優(yōu)點。數(shù)碼管根據驅動方式的不同可以分為共陰極數(shù)碼管和共陽極數(shù)碼管,其驅動的方式這里不再做敘述;
8、數(shù)碼管的驅動電流為310mA,本次設計所采用的單片機的最大輸出電流為2.5mA,最大輸入電流為1.6mA。故單片機無法驅動數(shù)碼管的顯示需加驅動電路加以驅動。驅動電路的主要作用是對數(shù)碼管進行驅動,本次設計采用集成塊74LS373來對數(shù)碼管進行驅動,74LS373的使用方法和工作原理這里不再敘述;74LS373的輸出電流大于3mA,足以驅動數(shù)碼管。數(shù)碼管在工作時的最大電壓為1.7V,而單片機的輸出電壓為5V,直接將數(shù)碼管接在單片機上將燒壞數(shù)碼管,因此需加限流電阻,根據理論計算和以往使用數(shù)碼管的經驗,本次設計采用100的電阻。本次設計中采用六個共陽的數(shù)碼管。電路如圖4所示。 圖4 顯示及驅動電路3時
9、間調整電路時間調整電路的主要作用是完成時間的調整,本次設計用鍵盤進行相應的操作。按照鍵盤按鍵的結構形式,可分為獨立式鍵盤和矩陣式鍵盤。本次設計主要采用獨立式鍵盤。獨立式鍵盤就是各個按鍵是相互獨立的,分別接一根輸入線,各條輸入線上的按鍵工作狀態(tài)不會影響其他輸入線的工作狀態(tài)。因此,通過檢測輸入線的電平狀態(tài),可以判斷哪個按鍵被按下。獨立式按鍵電路配置靈活,軟件設計簡單。缺點是每個按鍵需要一根輸入口線,在按鍵數(shù)量較多時,占用大量的輸入口資源,電路結構顯得很繁雜,只適用于按鍵較少或操作速度較高的場合。鍵盤一般采用彈性按鍵,按鍵在按下和彈起的過程中存在著抖動,消抖的方法有兩種,一種是采用硬件消抖電路,另一
10、種是采用軟件延時消抖。本次設計采用軟件消抖。本次設計中采用獨立式鍵盤因為P3口中已經有上拉電阻故不再加上拉電阻如圖5所示。 圖5 時間調整電路三 總體電路的工作原理總體電路的工作原理中涉及到硬件電路的工作原理和軟件程序的工作原理,軟件程序的工作原理將在下一章中作詳細的說明,在此對硬件電路的工作原理作詳細的說明。本電路的核心元件是單片機,單片機負責產生相應的時間信號由不同的端口進行輸出,數(shù)碼管的驅動需要段碼信號和位選信號,段碼信號由單片機的P1口經限流電阻傳輸至各個數(shù)碼管的段碼輸入端,位選信號由單片機的P2口經74LS373處理傳送至各個數(shù)碼管的位選端,本次設計中數(shù)碼管的顯示方式采用動態(tài)掃描顯示
11、。單片機P1口先輸出段碼信號,緊接著P2口輸出位選信號,相應的數(shù)碼管被點亮;依次循環(huán)輸出段碼和位選信號點亮相應的數(shù)碼管,利用人眼的滯留效應就可以看到六個數(shù)碼管同時顯示,配以LED的閃爍裝飾,一個精美的數(shù)字鐘展現(xiàn)在眼前??傠娐穲D見附錄A。第三章 程序設計程序設計即單片機的軟件部分的設計,是單片機能正常工作的指令的集合;程序也被稱為單片機的靈魂。本次設計中采用C語言編程,程序中包括主函數(shù)、延時模塊、定時模塊、時間調整模塊、時間計算模塊、顯示模塊、鍵盤識別模塊。一 程序流程圖:程序流程圖如圖6所示開始初始化時間顯示時間調整 N自動調整 Y 手動調整時間計算YN圖6 程序流程圖二 各部分程序的設計:1
12、主函數(shù)主函數(shù)的作用是完成程序中相關變量的初始化,其中包括定時器的初始化以及外部中斷的初始化。程序如下:void main() /主函數(shù)TMOD=0x02;TH0=6;TL0=6;ET0=1;EA=1;EX0=1;IT0=0;PX0=1;TR0=1;js();while(1)if(nuk!=0)tz();if(nuk=0)display();2延時模塊延時模塊的主要作用是對程序中的顯示部分進行相應的時間延遲,程序如下:void delay(uchar m)/延時模塊uchar n;for(;m>0;m-)for(n=0;n<80;n+);3定時程序模塊定時程序是利用單片機的定時器T0
13、產生1S,定時的方式采用方式2,方式2可以在定時時間到達后自動重新裝入初值,這樣的方式可以減小誤差。程序中TH0和TL0的均為6,即中斷一次為250us,產生一秒需中斷4000次。程序如下:void T0_time() interrupt 1 /定時器0中斷num+; if(num/4000) ss=ss; js(); num=0; 4時間調整模塊時間調整程序模塊的主要作用是完成對時間的外部手動調整,主要功能有時間調整位的選擇,時間的加減。程序如下:int kz(int d) /手動時間調整 jia=1; jian=1; if(jia=0) delay(10); if(jia=0) while
14、(!jia);d+;if(jian=0) delay(10); if(jian=0) while(!jian); d-; return(d); void tz() /時間調整位選擇 TR0=0; switch(nuk) case 1: P2=0x20;P1=tableh1;h1=kz(h1);if(h1<0) h1=2;if(h1>2) h1=0;break;case 2:P2=0x10;P1=tableh2;h2=kz(h2);if(h2<0)if(h1=2) h2=3; else h2=9;if(h1=2)if(h2>3) h2=0;if(h1!=2)if(h2&g
15、t;9) h2=0;numh=h1*10+h2;break; case 3:P2=0x08;P1=tablem1;m1=kz(m1);if(m1<0) m1=5;if(m1>5) m1=0;break;case 4:P2=0x04;P1=tablem2;m2=kz(m2);if(m2<0) m2=9;if(m2>9) m2=0;numm=m1*10+m2;break;case 5:P2=0x02;P1=tables1;s1=kz(s1);if(s1<0) s1=5;if(s1>5) s1=0;break;case 6:P2=0x01;P1=tables2;s
16、2=kz(s2);if(s2<0) s2=9;if(s2>9) s2=0;nums=s1*10+s2;break;void int0() interrupt 0/外部中斷0 delay(10); if(aa=0) while(!aa); nuk+; if(nuk=7) nuk=0; TR0=1; 5時間計算模塊時間計算模塊的主要功能是對定時時間到達后相應的時、分、秒進行計算;必要時可以加入時間補償程序以提高時間的精確性。程序如下:js() /時間計算模塊 nums+;if(nums=60) nums=0; numm+; if(numm=60)numm=0;numh+; if(num
17、h=24) numh=0;h1=numh/10;h2=numh%10;m1=numm/10;m2=numm%10;s1=nums/10;s2=nums%10; 6顯示模塊顯示模塊的主要功能是驅動數(shù)碼管顯示出相應的時間,因為本次設計中采用動態(tài)顯示所以程序中P1口負責輸出段碼,緊接著P2口輸出位選信號,相應的數(shù)碼管被點亮,依次循環(huán),人眼就能看見一排亮著的數(shù)碼管,為防止各個數(shù)碼管之間出現(xiàn)互相干擾的情況,程序中特意加入了消影指令;因為采用的是共陽極的數(shù)碼管,所以在數(shù)碼管的公共端加高電平,數(shù)碼管的段碼端加低電平,數(shù)碼管才能顯示。程序如下:void display() /顯示模塊 P1=tableh1;
18、/段碼輸出 P2=0x20; /位選輸出 delay(YS); /延時 P2=0x00; /消影 P1=tableh2; P2=0x10; delay(YS); P2=0x00; P1=tablem1; P2=0x08; delay(YS); P2=0x00; P1=tablem2; P2=0x04; delay(YS); P2=0x00; P1=tables1; P2=0x02; delay(YS); P2=0x00; P1=tables2; P2=0x01; delay(YS); P2=0x00;7鍵盤識別模塊鍵盤識別模塊的作用是完成時間調整的輸入,鍵盤識別的一般步驟是判斷是否有鍵按下,有
19、無抖動,有鍵按下是哪個鍵被按下及鍵碼的值。程序如下:void int0() interrupt 0/鍵盤識別 delay(10); /軟件消抖 if(aa=0) while(!aa); nuk+; if(nuk=7) nuk=0; TR0=1; 三 總程序:見附錄B第四章 電路的組裝與調試硬件電路組裝完成以后,將在仿真軟件中調試過的程序用仿真器在硬件電路上進行仿真,當外部電源接通,仿真器啟動后電路的基本功能都可以實現(xiàn),但發(fā)現(xiàn)數(shù)碼管在黑暗中有小的抖動現(xiàn)象產生;根據動態(tài)顯示的原理初步判斷是延時時間存在問題,在多次改變延時間后,現(xiàn)象未得到有效地處理。據此改變調試的方法,由改延時時間變?yōu)楦淖兿暗姆椒?/p>
20、,由原來的消除段碼的消影方法換成消除位選的方法;經調試后數(shù)碼管閃爍消除。將程序燒錄到單片機后,將單片機安裝到電路板上,通電測試時數(shù)碼管出現(xiàn)亂碼和時亮時不亮的情況,且復位電路無法正常復位,根據以往的經驗懷疑是單片機的時鐘電路沒有工作機外圍的振蕩電路沒有正常工作,遂對外圍的振蕩電路進行檢查,檢查發(fā)現(xiàn)是晶振的引腳接觸不良,重新安裝以后問題解決。電路可以完成正常的工作。用Keil軟件編譯產生HEX文件,將HEX文件燒錄到單片機中,用單片機取代仿真器,電路工作一切正常。心得體會我通過本次的設計深深體會到電子產品的設計確實不容易,借助單片機強大的控制和定時能力,我的硬件設計略顯簡單,但就是這樣簡單的硬件電
21、路里面也包含著很多的知識。需要把三年來學的知識加以融合消化才能設計出電路來。在軟件編程方面,我采用的是C語言,C語言是我掌握的第一個計算機編程語言,在此能得到應用我感到非常高興;在高興之余我對我的設計上的欠缺感到一些遺憾,我的數(shù)字鐘不具有斷電時間保護的功能,由于我的知識方面的欠缺導致設計上存在相應的缺陷,我在今后的人生中一定會學習更多的知識來進一步完善我的設計。致 謝畢業(yè)設計,也許是我大學生涯交上的最后一個作業(yè)了。想借此機會感謝三年以來給我?guī)椭乃欣蠋?、同學,你們的友誼是我人生的財富,是我生命中不可或缺的一部分。感謝實驗時期指導我的所有老師,他們給了我太多的幫助,在此非常謝謝你們,非常感謝我
22、的指導老師陳慕銘老師在畢業(yè)設計中不厭其煩的給我講解有關知識,并且精心指導我一些重要問題。在此,特向他道聲謝謝。在此也感謝我的搭檔給了我很大的幫助,讓我們順利完成畢業(yè)設計。也感謝信息工程系所有老師這些年來對我的教育!參考文獻【參考文獻】:【1】 單片機C語言入門 主編:郭天祥 電子工業(yè)出版社 2005.1出版【2】 單片機原理與運用 主編:董少明 中國鐵道出版社 2007.11 出版:【3】 8051單片機實踐與應用 主編:吳金戌 沈慶陽 清華大學出版社 2002.8出版【4】 模擬電路 主編:楊毅德 重慶大學出版社 2004.3年出版附錄 A:附錄B:#include<reg51.h&g
23、t;#define uint unsigned int #define uchar unsigned char #define YS 1sbit ss=P34;sbit aa=P32;sbit jia=P33;sbit jian=P35;uchar code table=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;int h1,h2,m1,m2,s1,s2,numh=15,numm=59,nums=0,nuk;int num,b;void delay(uchar m)/延時模塊uchar n;for(;m>0;m-)for(n=0;
24、n<80;n+);int kz(int d) /手動時間調整 jia=1; jian=1; if(jia=0) delay(10); if(jia=0) while(!jia);d+;if(jian=0) delay(10); if(jian=0) while(!jian); d-; return(d); void tz() /時間調整位選擇 TR0=0; switch(nuk) case 1: P2=0x20;P1=tableh1;h1=kz(h1);if(h1<0) h1=2;if(h1>2) h1=0;break;case 2:P2=0x10;P1=tableh2;h2
25、=kz(h2);if(h2<0)if(h1=2) h2=3; else h2=9;if(h1=2)if(h2>3) h2=0;if(h1!=2)if(h2>9) h2=0;numh=h1*10+h2;break; case 3:P2=0x08;P1=tablem1;m1=kz(m1);if(m1<0) m1=5;if(m1>5) m1=0;break;case 4:P2=0x04;P1=tablem2;m2=kz(m2);if(m2<0) m2=9;if(m2>9) m2=0;numm=m1*10+m2;break;case 5:P2=0x02;P1=tables1;s1=kz(s1);if(s1<0) s1=5;if(s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 學?;顒雍⒆觽儽憩F(xiàn)介紹
- 管理基礎考試題(附參考答案)
- 成形車刀課程設計6
- 無線電課程設計射頻系統(tǒng)
- 廣東省深圳市龍崗區(qū)外國語學校2024-2025學年九年級上學期期中歷史試題
- 大班鯊魚科學課程設計
- 耕讀文化教育理念的理論基礎與歷史淵源
- 校本書法校本培訓
- 幼兒園植物特色課程設計
- 電氣主保護講解
- 2024-2025學年人教版數(shù)學五年級上冊期末檢測試卷(含答案)
- 【MOOC】犯罪心理學-中南財經政法大學 中國大學慕課MOOC答案
- 【MOOC】商業(yè)銀行管理學-湖南大學 中國大學慕課MOOC答案
- 2024年山西建設投資集團有限公司校園招聘考試筆試試題及答案解析
- 護理脊柱外科出科
- 2024江蘇鹽城港控股集團限公司招聘23人易考易錯模擬試題(共500題)試卷后附參考答案
- 2024年陜西省初中學業(yè)水平考試·數(shù)學
- 2024年三支一扶考試基本能力測驗試題及解答參考
- 快遞員合同協(xié)議書格式
- 企業(yè)三年規(guī)劃方案
- 2024屆高考英語詞匯3500左右
評論
0/150
提交評論