數(shù)字時(shí)鐘的課程設(shè)計(jì)--基于單片機(jī)的數(shù)字時(shí)鐘_第1頁(yè)
已閱讀1頁(yè),還剩30頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、<p>  編號(hào): </p><p><b>  課程設(shè)計(jì)說(shuō)明書</b></p><p>  題 目: 基于單片機(jī)的數(shù)字時(shí)鐘 </p><p>  院 (系): 信息與通信學(xué)院 </p><p>  專 業(yè): 電子信息工程

2、 </p><p>  學(xué)生姓名: </p><p>  學(xué) 號(hào): </p><p>  指導(dǎo)教師: </p><p>  2013年 12月 03 日</p><p><b>  

3、摘 要</b></p><p>  電子時(shí)鐘是一種非常廣泛日常計(jì)時(shí)工具,對(duì)現(xiàn)代社會(huì)越來(lái)越流行。它可以實(shí)現(xiàn)對(duì)年、月、日、星期、時(shí)、分、秒進(jìn)行計(jì)時(shí)等多種功能。數(shù)字時(shí)鐘采用直觀數(shù)字顯示,還具有時(shí)間校準(zhǔn)等功能。該電路采用AT89S52單片機(jī)作為核心,功耗小,能在3V的低壓工作,電壓可選用3-5V電壓供電。</p><p>  本系統(tǒng)硬件部分由AT89S52單片機(jī)、1062液晶顯示器、

4、鍵盤、蜂鳴器系統(tǒng)等部分構(gòu)成。軟件部分在keil環(huán)境下用C51語(yǔ)言編寫,包括時(shí)間顯示、時(shí)間校對(duì)。</p><p>  基于單片機(jī)技術(shù)原理,以單片機(jī)芯片AT89C52作為核心控制器,通過(guò)硬件電路的制作以及軟件程序的編制,設(shè)計(jì)制作出一個(gè)簡(jiǎn)易數(shù)字時(shí)鐘系統(tǒng)。單片機(jī)擴(kuò)展的LCD顯示器用來(lái)顯示秒、分、時(shí)、星期、日、月、年計(jì)數(shù)單元中的值。整個(gè)設(shè)計(jì)包括兩大部分:硬件部分和軟件部分,以單片機(jī)為核心,配以一定的外圍電路和軟件。硬件是整

5、個(gè)系統(tǒng)的基礎(chǔ),軟件部分則要合理、充分地支持和使用系統(tǒng)的硬件,從而完成系統(tǒng)所要完成的任務(wù)。</p><p>  關(guān)鍵詞:?jiǎn)纹瑱C(jī)AT89S52;液晶顯示1602;按鍵</p><p><b>  Abstract</b></p><p>  Electronic clock is a very extensive daily timing tool

6、 , more and more popular in modern society . It can be achieved on the year, month , date, day , hour, minute , seconds chronograph and other functions . Intuitive digital display digital clock , also has a time calibrat

7、ion functions. This circuit uses AT89S52 microcontroller as the core , low power consumption , can work in low-voltage 3V voltage can choose 3 ~ 5V voltage supply.</p><p>  The hardware of the system by the

8、AT89S52 microcontroller , some 1062 LCD monitor, keyboard , buzzer systems and other accessories. Software part in keil environment with C51 language, including the time display, time proofreading.</p><p>  

9、Based on the principle of single-chip technology , chip AT89C52 microcontroller as the core controller , and a software program produced by the preparation of the hardware circuit , designed to create a simple digital cl

10、ock system. Single-chip LCD display is used to display the extended seconds, minutes , hours, day, date, month, year counting unit value. The whole design consists of two parts: hardware and software components , microco

11、ntroller as the core , with some peripheral circuits and sof</p><p>  Keywords: Microcontroller AT89S52; LCD 1602; buttons</p><p><b>  目 錄</b></p><p><b>  引言5&

12、lt;/b></p><p><b>  1 設(shè)計(jì)方案5</b></p><p>  1.1 數(shù)字時(shí)鐘的設(shè)計(jì)分析5</p><p>  1.2 設(shè)計(jì)要求6</p><p>  2 總體系統(tǒng)方案的設(shè)計(jì)與選擇論證6</p><p>  2.1 計(jì)時(shí)方案6</p>&l

13、t;p>  2.2 控制芯片的選擇6</p><p>  2.3 芯片控制語(yǔ)言的選擇7</p><p>  3 系統(tǒng)電路的設(shè)計(jì)及原理說(shuō)明8</p><p>  3.1.1AT89S52單片機(jī)性能與特點(diǎn) 8</p><p>  3.1.2AT89S52單片機(jī)的引腳及內(nèi)部結(jié)構(gòu)8</p><p>  3.2

14、 單片機(jī)最小系統(tǒng)電路介紹8</p><p>  3.3 LCD1602顯示電路9</p><p>  4 軟件設(shè)計(jì)部分 9</p><p>  4.1 軟件編程思路9</p><p>  4.2 電路的仿真10</p><p>  4.2.1Proteus仿真原理圖10</p><p&

15、gt;  4.2.2Proteus仿真結(jié)果..........................................................................................................................10</p><p>  4.3 電路調(diào)試............................................

16、.................................................................................................10</p><p>  4.3.1硬件調(diào)試.........................................................................................

17、.................................................10</p><p>  4.3.2軟件調(diào)試.........................................................................................................................................

18、.10 </p><p><b>  5 結(jié)論10</b></p><p><b>  謝 辭11</b></p><p><b>  參考文獻(xiàn)12</b></p><p>  附 錄.........................................

19、...............................................................................................................13</p><p>  附錄一:原理圖.............................................................................

20、......................................................13</p><p>  附錄二:PCB圖....................................................................................................................................1

21、4</p><p>  附錄三:程序代碼.............................................................................................................................15</p><p><b>  引言</b></p><p

22、>  21世紀(jì),電子技術(shù)獲得了飛速的發(fā)展,在其推動(dòng)下,現(xiàn)代電子產(chǎn)品幾乎滲透了社會(huì)的各個(gè)領(lǐng)域,有力地推動(dòng)了社會(huì)生產(chǎn)力的發(fā)展和社會(huì)信息化程度的提高,同時(shí)也使現(xiàn)代化電子產(chǎn)品性能進(jìn)一步提高,產(chǎn)品更新?lián)Q代的節(jié)奏也越來(lái)越快。</p><p>  時(shí)鐘,自它被發(fā)明的那天起,就成為人類的朋友。隨著時(shí)間的推移,隨著科學(xué)技術(shù)的不斷發(fā)展,隨著生活水平的提高,人們?cè)絹?lái)越追求人性化的事物,對(duì)時(shí)間計(jì)量的精度要求越來(lái)越高,應(yīng)用也越來(lái)越廣

23、泛,這些都導(dǎo)致傳統(tǒng)的時(shí)鐘已不能滿足人們的需求?,F(xiàn)代生活的人們?cè)絹?lái)越重視了時(shí)間觀念,可以說(shuō)是時(shí)間和金錢劃上了等號(hào)。對(duì)于那些對(duì)時(shí)間把握非常嚴(yán)格和準(zhǔn)確的人或事來(lái)說(shuō),時(shí)間的不準(zhǔn)確會(huì)帶來(lái)非常大的麻煩,所以以LCD1602為顯示器的時(shí)鐘比指針式的時(shí)鐘表現(xiàn)了更大的優(yōu)勢(shì)。</p><p>  目前,單片機(jī)正朝著高性能和多品種方向發(fā)展趨勢(shì)將是進(jìn)一步向著CMOS化、低功耗、小體積、大容量、高性能、低價(jià)格和外圍電路內(nèi)裝化等幾個(gè)方面發(fā)展

24、。單片機(jī)應(yīng)用的重要意義還在于,它從根本上改變了傳統(tǒng)的控制系統(tǒng)設(shè)計(jì)思想和設(shè)計(jì)方法。從前必須由模擬電路或數(shù)字電路實(shí)現(xiàn)的大部分功能,現(xiàn)在已能用單片機(jī)通過(guò)軟件方法來(lái)實(shí)現(xiàn)了。這種軟件代替硬件的控制技術(shù)也稱為微控制技術(shù),是傳統(tǒng)控制技術(shù)的一次革命。</p><p>  單片機(jī)模塊中最常見的是數(shù)字時(shí)鐘。利用單片機(jī)實(shí)現(xiàn)的電子時(shí)鐘具有編程靈活、精確度高等特點(diǎn),并且便于電子時(shí)鐘的擴(kuò)充,即可用該電子鐘發(fā)出各種控制信號(hào),同時(shí)可以用該電子時(shí)

25、鐘發(fā)出各種控制信號(hào)。</p><p>  本時(shí)鐘還具有環(huán)保、走時(shí)無(wú)噪音、低功耗等非實(shí)時(shí)時(shí)鐘不具有的功能。該實(shí)時(shí)時(shí)鐘不但可以作為家用,而且更可以在公共場(chǎng)合使用,如車站、碼頭、商場(chǎng)等場(chǎng)所。</p><p>  本文主要介紹用單片機(jī)內(nèi)部的定時(shí)/計(jì)數(shù)器來(lái)實(shí)現(xiàn)電子時(shí)鐘的方法,本設(shè)計(jì)由單片機(jī)AT89S52芯片和LCD1602為核心,輔以必要的電路,構(gòu)成了一個(gè)單片機(jī)數(shù)字時(shí)鐘。</p>&l

26、t;p><b>  1 設(shè)計(jì)方案</b></p><p>  1.1 數(shù)字時(shí)鐘的設(shè)計(jì)分析</p><p>  方案一:采用AT89S52作為主控單片機(jī),顯示模塊選用LCD1602,設(shè)置部分選用按鍵電路;</p><p>  方案二:采用AT89S52作為主控單片機(jī),顯示模塊選用數(shù)碼管,設(shè)置部分選用按鍵電路;</p><

27、;p>  方案三:可用數(shù)字電路芯片74192,74153,7447,NE555,與非門和數(shù)碼管實(shí)現(xiàn)數(shù)字時(shí)鐘功能。</p><p>  三種方案相比較,方案三使用芯片過(guò)多,線路繁瑣,方案二顯示電路需要多個(gè)三極管輔助驅(qū)動(dòng),電路復(fù)雜,相比之下,方案一LCD1602顯示電路、驅(qū)動(dòng)程序都相對(duì)簡(jiǎn)單,所以本設(shè)計(jì)選擇了方案一。</p><p><b>  1.2 設(shè)計(jì)要求</b>

28、;</p><p>  設(shè)計(jì)制作一個(gè)能實(shí)現(xiàn)顯示年、月、日、星期、時(shí)、分、秒功能時(shí)鐘,要求方案簡(jiǎn)單,易行并有一定的實(shí)用意義。</p><p>  2 總體系統(tǒng)方案的設(shè)計(jì)與選擇論證</p><p><b>  2.1 計(jì)時(shí)方案</b></p><p>  采用AT89S52作為主控單片機(jī),顯示模塊選用LCD1602,設(shè)置部

29、分選用按鍵電路配合軟件延時(shí)實(shí)現(xiàn)時(shí)、分、秒的計(jì)時(shí)。該方案節(jié)省硬件成本,并且能使讀者在定時(shí)/計(jì)數(shù)器的使用、中斷及程序設(shè)計(jì)方面得到鍛煉和提高,對(duì)單片機(jī)的指令系統(tǒng)能有更深入的了解。</p><p>  AT89S52外接LCD1602顯示電路、按鍵電路、晶振電路、復(fù)位電路、電源以及按鍵電路構(gòu)成設(shè)計(jì)框圖。設(shè)計(jì)框圖如圖2-1所示:</p><p>  圖2-1 系統(tǒng)設(shè)計(jì)框圖</p>&l

30、t;p>  圖2-2 系統(tǒng)整體設(shè)計(jì)圖</p><p>  數(shù)字時(shí)鐘總電路包括單片機(jī)最小系統(tǒng),即單片機(jī)、振蕩電路、復(fù)位電路、電源供電模塊,另外供電,模塊附有LED指示燈,指示電源電源供電是否成功,LCD1602顯示模塊,獨(dú)立按鍵模塊,下載接口模塊,蜂鳴器模塊。</p><p>  2.2 控制芯片的選擇</p><p>  AT89S52 是一種低功耗、高性能C

31、MOS8位微控制器,具有8K 在系統(tǒng)可編程Flash存儲(chǔ)器。使用Atmel 公司高密度非易失性存儲(chǔ)器技術(shù)制造,與工業(yè)80C51 產(chǎn)品指令和引腳完全兼容。片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效的解決方案。</p><p>  2.3 芯片控制語(yǔ)言的選擇</p>

32、<p>  C語(yǔ)言是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,它既具有高級(jí)語(yǔ)言的特點(diǎn),又具有匯編語(yǔ)言的特點(diǎn)。它由美國(guó)貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語(yǔ)言已先后被移植到大、中、小及微型機(jī)上,它可以作為工作系統(tǒng)設(shè)計(jì)語(yǔ)言,編寫系統(tǒng)應(yīng)用程序,也可以作為應(yīng)用程序設(shè)計(jì)語(yǔ)言,編寫不依賴計(jì)算機(jī)硬件的應(yīng)用程序。它的應(yīng)用范圍廣泛,具備很強(qiáng)的數(shù)據(jù)處理能力,不僅僅是在軟件開發(fā)上,而且各類科研都需要用到C語(yǔ)言,適于編寫系統(tǒng)軟件,三維

33、、二維圖形和動(dòng)畫,具體應(yīng)用比如單片機(jī)以及嵌入式系統(tǒng)開發(fā)。</p><p>  3 系統(tǒng)電路的設(shè)計(jì)及原理說(shuō)明</p><p>  3.1 AT89S52單片機(jī)的工作原理</p><p>  AT89S52是一種低功耗、高性能CMOS 8位微控制器,具有8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。它是利用單片機(jī)內(nèi)部定時(shí)器/計(jì)數(shù)器工作與定時(shí)方式,對(duì)機(jī)器周期計(jì)數(shù)形成基準(zhǔn)時(shí)間(如

34、10ms),然后再用另外一個(gè)計(jì)數(shù)器或軟件計(jì)數(shù)的形式對(duì)基準(zhǔn)時(shí)間進(jìn)行計(jì)數(shù),形成秒(如10ms計(jì)數(shù)100次),“秒”計(jì)數(shù)60次形成“分”,“分”計(jì)數(shù)60次形成“時(shí)”,“時(shí)”計(jì)數(shù)24次形成“天”,并清零,然后通過(guò)譯碼、顯示器把它們的內(nèi)容在顯示屏上顯示出來(lái)。在具體的設(shè)計(jì)時(shí),定時(shí)器采用中斷方式工作,對(duì)時(shí)鐘的形成在中端程序中實(shí)現(xiàn),主程序是對(duì)定時(shí)器/計(jì)數(shù)器的定義初始化,調(diào)用顯示程序和控制程序的初始化,另外為了使用方便,也設(shè)計(jì)了按鍵,他可以對(duì)時(shí)分秒等進(jìn)行

35、調(diào)整,這樣,程序就加了按鍵程序。</p><p>  3.1.1AT89S52單片機(jī)性能與特點(diǎn)</p><p> ?。?)AT89S52為 ATMEL 所生產(chǎn)的一種低功耗、高性能CMOS8位微控制器,具有8K在系統(tǒng)可編程Flash存儲(chǔ)器。</p><p> ?。?)在單片機(jī)的應(yīng)用系統(tǒng)中,單片機(jī)作為一種較為簡(jiǎn)單的計(jì)算機(jī)是嵌入到系統(tǒng)內(nèi)部,作為系統(tǒng)電路的一部分,作為系統(tǒng)實(shí)

36、現(xiàn)數(shù)字化和智能化的關(guān)鍵部件。AT89S52主要功能列舉如下:</p><p> ?、贀碛徐`巧的8位CPU和在系統(tǒng)可編程Flash</p><p> ?、诰瑑?nèi)部具時(shí)鐘振蕩器(傳統(tǒng)最高工作頻率可至 12MHz)</p><p> ?、蹆?nèi)部程序存儲(chǔ)器(ROM)為 8KB</p><p> ?、軆?nèi)部數(shù)據(jù)存儲(chǔ)器(RAM)為 256字節(jié)</p&g

37、t;<p> ?、?2 個(gè)可編程I/O 口線</p><p><b> ?、? 個(gè)中斷向量源</b></p><p> ?、呷齻€(gè) 16 位定時(shí)器/計(jì)數(shù)器</p><p> ?、嗳?jí)加密程序存儲(chǔ)器</p><p> ?、崛p工UART串行通道</p><p>  3.1.2AT89S5

38、2單片機(jī)的引腳及內(nèi)部結(jié)構(gòu)</p><p>  P89C5X系列單片機(jī)有40個(gè)引腳。其引腳圖如圖2-1所示:</p><p> ?。?)VCC:AT89S52電源正端輸入,接+5V。</p><p> ?。?)VSS:電源地端。</p><p> ?。?)XTAL1:?jiǎn)涡酒到y(tǒng)時(shí)鐘的反相放大器輸入端。</p><p> 

39、?。?)XTAL2:系統(tǒng)時(shí)鐘的反相放大器輸出端,一般在設(shè)計(jì)上只要在 XTAL1 和 XTAL2 上接上一只石英振蕩晶體系統(tǒng)就可以動(dòng)作了,此外可以在兩引腳與地之間加入一 20PF 的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪聲干擾而死機(jī)。</p><p>  (5)RESET:AT89S52的重置引腳,高電平動(dòng)作,當(dāng)要對(duì)晶片重置時(shí),只要對(duì)此引腳電平提升至高電平并保持兩個(gè)機(jī)器周期以上的時(shí)間,AT89S51便能完成系統(tǒng)重置的各項(xiàng)

40、動(dòng)作,使得內(nèi)部特殊功能寄存器之內(nèi)容均被設(shè)成已知狀態(tài),并且至地址0000H處開始讀入程序代碼而執(zhí)行程序。 </p><p>  (6)EA/Vpp:"EA"為英文"External Access"的縮寫,表示存取外部程序代碼之意,低電平動(dòng)作,也就是說(shuō)當(dāng)此引腳接低電平后,系統(tǒng)會(huì)取用外部的程序代碼(存于外部EPROM

41、中)來(lái)執(zhí)行程序。因此在8031及8032中,EA引腳必須接低電平,因?yàn)槠鋬?nèi)部無(wú)程序存儲(chǔ)器空間。如果是使用 8751 內(nèi)部程序空間時(shí),此引腳要接成高電平。此外,在將程序代碼燒錄至8751內(nèi)部EPROM時(shí),可以利用此引腳來(lái)輸入21V的燒錄高壓(Vpp)。</p><p> ?。?)ALE/PROG:ALE是英文"Address Latch Enable"的縮寫,表示地址鎖存器啟用信號(hào)。AT89S5

42、2可以利用這支引腳來(lái)觸發(fā)外部的8位鎖存器(如74LS373),將端口0的地址總線(A0~A7)鎖進(jìn)鎖存器中,因?yàn)锳T89S52是以多工的方式送出地址及數(shù)據(jù)。平時(shí)在程序執(zhí)行時(shí)ALE引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此可以用來(lái)驅(qū)動(dòng)其他周邊晶片的時(shí)基輸入。此外在燒錄 圖3-1 AT89S52引腳圖</p><p>  8751程序代碼時(shí),此引腳會(huì)被當(dāng)成程序規(guī)劃的特殊功能來(lái)使用。</p>

43、<p> ?。?)PSEN:此為"Program Store Enable"的縮寫,其意為程序儲(chǔ)存啟用,當(dāng)8051被設(shè)成為讀取外部程序代碼工作模式時(shí)(EA=0),會(huì)送出此信號(hào)以便取得程序代碼,通常這支腳是接到EPROM的OE腳。AT89S52可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,使得數(shù)據(jù)存儲(chǔ)器與程序存儲(chǔ)器可以合并在一起而共用64K的定址范圍。</p><p&

44、gt; ?。?)PORT0(P0.0~P0.7):端口0是一個(gè)8位寬的開路汲極(Open Drain)雙向輸出入端口,共有8個(gè)位,P0.0表示位0,P0.1表示位1,依此類推。其他三個(gè)I/O端口(P1、P2、P3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路,P0在當(dāng)做I/O用時(shí)可以推動(dòng)8個(gè)LS的TTL負(fù)載。如果當(dāng)EA引腳為低電平時(shí)(即取用外部程序代碼或數(shù)據(jù)存儲(chǔ)器),P0就以多工方式提供地址總線(A0~A7)及數(shù)據(jù)總線(D0~D7)。設(shè)計(jì)者

45、必須外加一鎖存器將端口0送出的地址栓鎖住成為A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址總線,而定址到64K的外部存儲(chǔ)器空間。</p><p> ?。?0)PORT2(P2.0~P2.7):端口2是具有內(nèi)部提升電路的雙向I/O端口,每一個(gè)引腳可以推動(dòng)4個(gè)LS的TTL負(fù)載,若將端口2的輸出設(shè)為高電平時(shí),此端口便能當(dāng)成輸入端口來(lái)使用。P2除了當(dāng)做一般I/O端口使用外,若是在AT89S52擴(kuò)充外接

46、程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),也提供地址總線的高字節(jié)A8~A15,這個(gè)時(shí)候P2便不能當(dāng)做I/O來(lái)使用了。</p><p> ?。?1)PORT1(P1.0~P1.7):端口1也是具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動(dòng)4個(gè)LS TTL負(fù)載,同樣地若將端口1的輸出設(shè)為高電平,便是由此端口來(lái)輸入數(shù)據(jù)。如果是使用8052或是8032的話,P1.0又當(dāng)做定時(shí)器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可

47、以做外部中斷輸入的觸發(fā)腳位。</p><p> ?。?2)PORT3(P3.0~P3.7):端口3也具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動(dòng)4個(gè)TTL負(fù)載,同時(shí)還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計(jì)時(shí)計(jì)數(shù)控制及外部數(shù)據(jù)存儲(chǔ)器內(nèi)容的讀取或?qū)懭肟刂频裙δ?。其引腳分配如下:</p><p>  ①P3.0:RXD,串行通信輸入。</p><

48、p>  ②P3.1:TXD,串行通信輸出。</p><p>  ③P3.2:INT0,外部中斷0輸入。</p><p> ?、躊3.3:INT1,外部中斷1輸入。</p><p> ?、軵3.4:T0,計(jì)時(shí)計(jì)數(shù)器0輸入。</p><p> ?、轕3.5:T1,計(jì)時(shí)計(jì)數(shù)器1輸入。</p><p>  ⑦P3.6:W

49、R:外部數(shù)據(jù)存儲(chǔ)器的寫入信號(hào)。</p><p> ?、郟3.7:RD,外部數(shù)據(jù)存儲(chǔ)器的讀取信號(hào)。</p><p>  AT89S52單片機(jī)的內(nèi)部功能模塊如下圖3-2,為實(shí)現(xiàn)其基本功能,內(nèi)部必需要有配置輸入輸出(I/O口)、儲(chǔ)存器(RAM或ROM)、運(yùn)算和控制單元(CPU)等相應(yīng)的功能電路。</p><p>  圖3-2 AT89S52內(nèi)部結(jié)構(gòu)</p>

50、<p>  3.2 單片機(jī)最小系統(tǒng)電路介紹 </p><p>  單片機(jī)最小系統(tǒng)主要由復(fù)位電路,晶振電路,電源等幾部分組成。復(fù)位電路是為了把電路初始化到一個(gè)確定的狀態(tài),把一個(gè)例如狀態(tài)機(jī)初始化到空狀態(tài);震蕩電路是為系統(tǒng)提供基本的時(shí)鐘信號(hào);電源則是為系統(tǒng)供電。</p><p>  復(fù)位電路:由電容串聯(lián)電阻構(gòu)成,由圖2-1并結(jié)合“電容電壓不能突變”的性質(zhì),可以知道,當(dāng)系統(tǒng)一上電,RST

51、腳將會(huì)出現(xiàn)高電平,并且這個(gè)高電平持續(xù)的時(shí)間由電路的RC值決定,所以適合組合RC的取值就可以保證可靠的復(fù)位。一般C取10uF,R取10K。單片機(jī)最小系統(tǒng)復(fù)位電路的極性電容的大小直接影響單片機(jī)的復(fù)位時(shí)間,相應(yīng)的值越大,復(fù)位時(shí)間越短。</p><p>  晶振電路:典型的晶振取11.0592MHz或者12MHz,單片機(jī)最小系統(tǒng)晶振的振蕩頻率直接影響單片機(jī)的處理速度,頻率越大處理速度越快。</p><

52、p>  圖3-3 單片機(jī)最小系統(tǒng)</p><p>  3.3 LCD1602顯示電路</p><p>  圖3-4 1602顯示電路</p><p>  液晶顯示器簡(jiǎn)稱是利用液晶經(jīng)過(guò)處理后能夠改變光線傳輸方向的特性,達(dá)到顯示字符或者圖形的目的。其特點(diǎn)是體積小、重量輕、功耗極低、顯示內(nèi)容豐富等特點(diǎn),在單片機(jī)應(yīng)用系統(tǒng)中有著日益廣泛的應(yīng)用。</p>&

53、lt;p>  1602芯片:主要用于顯示時(shí)間和定時(shí)時(shí)間。1602芯片由點(diǎn)陣字符液晶顯示器件和專用的行、列驅(qū)動(dòng)器、控制及必要的鏈接件、結(jié)構(gòu)件組裝而成,可以顯示數(shù)字和西文字符,但不能顯示圖形,已經(jīng)可以滿足本次設(shè)計(jì)的需要。1602型LCD可以顯示2行16個(gè)字符,有8位數(shù)據(jù)總線D0~D7和RS,R/W,EN三個(gè)控制端口,工作電壓為5V,并且具有字符對(duì)比度調(diào)節(jié)和背光功能。</p><p><b>  4

54、軟件設(shè)計(jì)部分</b></p><p>  軟程序主要分為兩個(gè)部分,即液晶顯示部分和控制按鍵部分。由于本設(shè)計(jì)采用的是用按鍵分別控制,可以在主函數(shù)中調(diào)用一個(gè)鍵盤掃描的函數(shù),當(dāng)相應(yīng)的不同按鍵按下后通過(guò)控制單片機(jī)P2的輸出,從而控制液晶的顯示。源程序見附錄三所示:</p><p>  4.1 軟件編程思路</p><p>  在確定了時(shí)鐘要實(shí)現(xiàn)的功能后按照上述各

55、按鍵所實(shí)現(xiàn)的效果編寫程序。本程</p><p>  序包含液晶寫指令函數(shù)(write-com())、寫數(shù)據(jù)函數(shù)(write-data())、初始化函數(shù)(init())、寫入時(shí)分秒函數(shù)(write-sfm())和鍵盤掃描函數(shù)這些程序圍繞主函數(shù)相互調(diào)用。</p><p><b>  4.2 電路的仿真</b></p><p>  4.2.1Prot

56、eus仿真原理圖</p><p>  圖4-1 仿真原理圖</p><p>  4.2.2Proteus仿真結(jié)果</p><p>  圖4-2 仿真結(jié)果圖</p><p><b>  4.3 電路調(diào)試</b></p><p><b>  4.3.1硬件調(diào)試</b></p

57、><p>  將安裝好的電路板按要求接入5V電源,指示燈亮,說(shuō)明電源連接成功;撥動(dòng)開關(guān)后,兩個(gè)指示燈都亮,電路板已進(jìn)入正常供電模塊,液晶也已點(diǎn)亮,調(diào)節(jié)控制LCD1602的電位器,使液晶顯示屏第一行出現(xiàn)16個(gè)小黑方塊,則電位器調(diào)已合適,硬件調(diào)試結(jié)束。</p><p><b>  4.3.2軟件調(diào)試</b></p><p>  先定義管腳,寫void

58、w_com(uchar com);(寫指令)和void w_data(uchar date);(寫數(shù)據(jù))函數(shù),初始化函數(shù),中斷函數(shù),主函數(shù)等,液晶顯示年月日、星期、時(shí)分秒,然后寫按鍵掃描函數(shù),實(shí)現(xiàn)時(shí)間校對(duì)功能。</p><p><b>  5 結(jié)論</b></p><p>  本次設(shè)計(jì)主要采用了AT89S52單片機(jī)和LCD1602顯示頻等元器件,實(shí)現(xiàn)本次設(shè)計(jì)的方法不

59、唯一,但相較而言,本方案所用的元器件較少,提高了設(shè)計(jì)電路的易操作性,并且實(shí)驗(yàn)的調(diào)節(jié)方法也很簡(jiǎn)單,做到了節(jié)約、簡(jiǎn)便、迅速、易行的基本要求。通過(guò)C語(yǔ)言將程序?qū)懭胄酒瑑?nèi)部后,是芯片按照設(shè)定進(jìn)行運(yùn)行。</p><p>  課程設(shè)計(jì)主要目的還是培養(yǎng)我們綜合運(yùn)用所學(xué)的知識(shí),將理論與實(shí)踐相結(jié)合,初步認(rèn)識(shí)單片機(jī)芯片與電路,研究它的線路組成和工作方式、工作原理。電路設(shè)計(jì)是一個(gè)很靈活的東西,它反映你解決問(wèn)題的邏輯思維和創(chuàng)新能力。本次

60、課程設(shè)計(jì),我能運(yùn)用已學(xué)知識(shí)解決設(shè)計(jì)過(guò)程中碰到的問(wèn)題,使自己的動(dòng)手能力和思考問(wèn)題的能力得到很大的提高本次實(shí)驗(yàn)提高了我的課程設(shè)計(jì)基本技能,使我學(xué)會(huì)了如何設(shè)計(jì)電路,熟練了電路焊接方法以及掌握硬件調(diào)試方法與軟件調(diào)試方法,同時(shí)還提高了我的動(dòng)手能力和測(cè)試技術(shù)能力。從開始進(jìn)行設(shè)計(jì)到完成實(shí)現(xiàn)數(shù)字時(shí)鐘功能,我找了很多資料,并應(yīng)用了Altium designer,Proteus軟件進(jìn)行畫圖、仿真,并通過(guò)調(diào)試以完成設(shè)計(jì)要求的功能。</p>&l

61、t;p><b>  謝 辭</b></p><p>  感謝學(xué)校、學(xué)院給我們提供這樣的實(shí)踐動(dòng)手機(jī)會(huì),并通過(guò)課程設(shè)計(jì)使我們能夠有機(jī)會(huì)將書本上學(xué)到的知識(shí)運(yùn)用到的實(shí)際中去。在電路設(shè)計(jì)和硬件調(diào)試的過(guò)程中,本人通過(guò)復(fù)習(xí)課本和上網(wǎng)查閱多種資料,尤其是著重對(duì)單片機(jī)的學(xué)習(xí),了解其原理、性能及各引腳的作用,此外本次設(shè)計(jì)中的復(fù)位電路,晶振電路及LCD1602顯示部分也有了更深刻的認(rèn)識(shí),也對(duì)模擬電路和數(shù)字

62、電路的基礎(chǔ)知識(shí)又有了許多新的了解,從而對(duì)設(shè)計(jì)方法與性能參數(shù)的測(cè)試有所了解與掌握。在這次課程設(shè)過(guò)程中**老師給了我很多的指導(dǎo)和幫助,并監(jiān)督我及時(shí)完成了本次課程設(shè)計(jì),在此對(duì)**老師和所有給予我?guī)椭耐瑢W(xué)表示感謝。謝謝!</p><p><b>  參考文獻(xiàn)</b></p><p>  [1] 王衛(wèi)東 李旭瓊. 模擬電子技術(shù)基礎(chǔ)(第2版). 北京:電子工業(yè)出版社,2010

63、</p><p>  [2] 周茜.電路分析基礎(chǔ)[M].北京:電子工業(yè)出版社,2010.</p><p>  [3] 譚浩強(qiáng).C語(yǔ)言程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2008.</p><p>  [4] 華成英. 模擬電子技術(shù)基礎(chǔ)(第4版). 北京:高等教育出版社,2006</p><p>  [5] 康華光. 電子技術(shù)基礎(chǔ)--

64、--模擬部分(第4版).北京:高等教育出版社,2006</p><p><b>  附 錄</b></p><p><b>  附錄一:原理圖</b></p><p><b>  附錄二:PCB圖</b></p><p><b>  附錄三:程序代碼</b&g

65、t;</p><p>  #include<reg52.h> </p><p>  #define uchar unsigned char </p><p>  #define uint unsigned int </p><p>  sbit rs=P2^0;</p><p>  sbit rw=P2^

66、1; </p><p>  sbit lcden=P2^2; </p><p>  sbit s1=P1^4; </p><p>  sbit s2=P1^6; </p><p>  sbit s3=P1^7;</p><p>  sbit beep=P3^6; </p><p>  uint

67、 count,s1num; </p><p>  uchar shi,fen,miao,zhou,ri,yue,nian; </p><p>  uchar code table[]=" 2013-11-26 2 "; </p><p>  uchar code table1[]=" 23:59:55 "; &l

68、t;/p><p>  void delay(uint z); //延時(shí)1ms</p><p>  void di();//</p><p>  void w_com(uchar com); //寫指令</p><p>  void w_data(uchar date); //寫數(shù)據(jù)</p><p> 

69、 void init(); //1602初始化</p><p>  void w_sfm(uchar add,uchar date);//時(shí)分秒顯示函數(shù)</p><p>  void w_zhou(uchar add,uchar date);//周顯示函數(shù)</p><p>  void w_ryn(uchar add,uchar date);

70、 //日月年顯示函數(shù)</p><p>  void keyscan();//按鍵掃描程序</p><p>  //-------------------主程序--------------------</p><p>  //-------------------主程序--------------------</p><p>  void ma

71、in() </p><p><b>  { </b></p><p><b>  init(); </b></p><p>  TMOD=0x01; //使用定時(shí)器T0的模式1</p><p>  TH0=(65536-46083)/256; //定時(shí)器T0的高8

72、位設(shè)置初值</p><p>  TL0=(65536-46083)%256; //定時(shí)器T0的低8位設(shè)置初值</p><p>  EA=1; //開總中斷</p><p>  ET0=1; //定時(shí)器T0中斷允許</p><p>  TR0=1;

73、 //啟動(dòng)定時(shí)器T0</p><p><b>  while(1) </b></p><p><b>  { </b></p><p>  keyscan(); </p><p>  if(count==20) </p><p><b>  

74、{ </b></p><p><b>  count=0; </b></p><p><b>  miao++; </b></p><p>  if(miao==60) </p><p><b>  { </b></p><p><b&

75、gt;  miao=0; </b></p><p><b>  fen++; </b></p><p>  if(fen==60) </p><p><b>  { </b></p><p>  fen=0; di();</p><p><b>  sh

76、i++; </b></p><p>  if(shi==24) </p><p><b>  { </b></p><p><b>  shi=0; </b></p><p><b>  zhou++; </b></p><p><b&

77、gt;  ri++; </b></p><p>  if(zhou==8) </p><p><b>  { </b></p><p><b>  zhou=1; </b></p><p><b>  } </b></p><p>  w_z

78、hou(14,zhou); </p><p>  if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12) </p><p><b>  {</b></p><p>  if(ri==32) </p><p><b>  { </b>&

79、lt;/p><p><b>  ri=1; </b></p><p><b>  yue++; </b></p><p>  if(yue==13) </p><p><b>  { </b></p><p><b>  yue=1; </b

80、></p><p><b>  nian++; </b></p><p>  if(nian==100) </p><p><b>  nian=1; </b></p><p>  w_ryn(4,nian);</p><p><b>  } </b&g

81、t;</p><p>  w_ryn(7,yue); </p><p><b>  } </b></p><p>  w_ryn(10,ri); </p><p><b>  } </b></p><p>  if(yue==4||yue==6||yue==9||yue==1

82、1) </p><p><b>  { </b></p><p>  if(ri==31) </p><p><b>  { </b></p><p><b>  ri=1; </b></p><p><b>  yue++; </b&g

83、t;</p><p>  if(yue==13) </p><p><b>  { </b></p><p><b>  yue=1; </b></p><p><b>  nian++; </b></p><p>  if(nian==100) <

84、;/p><p><b>  nian=1; </b></p><p>  w_ryn(4,nian); </p><p><b>  } </b></p><p>  w_ryn(7,yue); </p><p><b>  } </b></p>

85、<p>  w_ryn(10,ri); </p><p><b>  } </b></p><p><b>  } </b></p><p>  w_sfm(4,shi); </p><p><b>  } </b></p><p>  w

86、_sfm(7,fen); </p><p><b>  } </b></p><p>  w_sfm(10,miao); </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } &

87、lt;/b></p><p>  //-------------------子程序--------------------</p><p>  //-------------------子程序--------------------</p><p>  void delay(uint z) </p><p><b>  { &

88、lt;/b></p><p>  uint x,y; </p><p>  for(x=0;x<z;x++) </p><p>  for(y=0;y<110;y++); </p><p><b>  } </b></p><p>  void di() </p>

89、<p><b>  { </b></p><p><b>  beep=0; </b></p><p>  delay(50); </p><p><b>  beep=1;</b></p><p>  delay(50); </p><

90、p><b>  } </b></p><p>  void w_com(uchar com) </p><p><b>  { </b></p><p><b>  rs=0; </b></p><p><b>  rw=0;</b></p&

91、gt;<p><b>  lcden=0; </b></p><p><b>  P0=com; </b></p><p>  delay(5); </p><p>  lcden=1;//給高脈沖</p><p>  delay(5); </p><p>&l

92、t;b>  lcden=0; </b></p><p><b>  } </b></p><p>  void w_data(uchar date) </p><p><b>  { </b></p><p><b>  rs=1; </b></p&g

93、t;<p><b>  rw=0;</b></p><p><b>  lcden=0; </b></p><p><b>  P0=date; </b></p><p>  delay(5); </p><p><b>  lcden=1; </

94、b></p><p>  delay(5); </p><p><b>  lcden=0; </b></p><p><b>  } </b></p><p>  void init() </p><p><b>  { </b></p&

95、gt;<p>  uchar num; </p><p>  lcden=0;//初始化使能為0 </p><p><b>  fen=59; </b></p><p><b>  miao=55; </b></p><p><b>  shi=23; </b>&

96、lt;/p><p><b>  zhou=2; </b></p><p><b>  ri=26; </b></p><p><b>  yue=11; </b></p><p>  nian=1013; </p><p>  w_com(0x38);//寫

97、入顯示模式指令碼</p><p>  w_com(0x0c);//寫入顯示開/關(guān)及光標(biāo)指令碼</p><p>  w_com(0x06);//當(dāng)寫一個(gè)字符后,地址指針加一,光標(biāo)加一,不動(dòng)光標(biāo)不閃爍</p><p>  w_com(0x01); //清零</p><p>  w_com(0x80);//代表第一行第一位</p>&

98、lt;p>  for(num=0;num<15;num++) </p><p><b>  { </b></p><p>  w_data(table[num]); </p><p>  delay(5); </p><p><b>  } </b></p><p&g

99、t;  w_com(0x80+0x40);//代表第二行第一位</p><p>  for(num=0;num<12;num++) </p><p><b>  { </b></p><p>  w_data(table1[num]); </p><p>  delay(5); </p><p&

100、gt;<b>  } </b></p><p>  TMOD=0x01; </p><p>  TH0=0x3c; </p><p>  TL0=0xb0; </p><p><b>  EA=1; </b></p><p><b>  ET0=1; </b&

101、gt;</p><p><b>  TR0=1; </b></p><p><b>  } </b></p><p>  /********************************* </p><p><b>  初始化函數(shù)</b></p><p&

102、gt;  *********************************/ </p><p>  void w_sfm(uchar add,uchar date)//時(shí)分秒</p><p><b>  { </b></p><p>  uchar shi,ge; </p><p>  shi=date/10; <

103、;/p><p>  ge=date%10; </p><p>  w_com(0x80+0x40+add);//寫第二行add個(gè)地址 </p><p>  w_data(0x30+shi); </p><p>  w_data(0x30+ge); </p><p><b>  } </b></

104、p><p>  void w_zhou(uchar add,uchar date)//周</p><p><b>  { </b></p><p><b>  uchar z; </b></p><p><b>  z=date; </b></p><p>

105、  w_com(0x80+add); //寫第一行add個(gè)地址 </p><p>  w_data(0x30+z); </p><p><b>  } </b></p><p>  void w_ryn(uchar add,uchar date)//日</p><p><b>  { </b>&l

106、t;/p><p>  uchar shi,ge; </p><p>  shi=date/10; </p><p>  ge=date%10; </p><p>  w_com(0x80+add); </p><p>  w_data(0x30+shi); </p><p>  w_data(0x3

107、0+ge); </p><p><b>  } </b></p><p>  void keyscan() </p><p><b>  { </b></p><p>  if(s1==0)//閃爍位置</p><p><b>  { </b><

108、/p><p>  delay(15); </p><p>  if(s1==0) </p><p><b>  { </b></p><p>  while(!s1);</p><p><b>  s1num++; </b></p><p>  if(s1

109、num==1)//s1鍵按一下依次從秒分周日月時(shí)向左移</p><p><b>  { </b></p><p><b>  TR0=0; </b></p><p>  w_com(0x80+0x40+0x0b); </p><p>  w_com(0x0f);//左移光標(biāo)開始閃爍</p>

110、;<p><b>  } </b></p><p>  if(s1num==2) </p><p><b>  { </b></p><p><b>  TR0=0;</b></p><p>  w_com(0x80+0x40+0x08); </p>

111、<p><b>  } </b></p><p>  if(s1num==3) </p><p><b>  { </b></p><p><b>  TR0=0; </b></p><p>  w_com(0x80+0x40+0x05); </p

112、><p><b>  } </b></p><p>  if(s1num==4) </p><p><b>  {</b></p><p><b>  TR0=0; </b></p><p>  w_com(0x80+0x0e); </p>&

113、lt;p><b>  } </b></p><p>  if(s1num==5) </p><p><b>  { </b></p><p><b>  TR0=0; </b></p><p>  w_com(0x80+0x0b); </p><p&g

114、t;<b>  } </b></p><p>  if(s1num==6) </p><p><b>  { </b></p><p><b>  TR0=0; </b></p><p>  w_com(0x80+0x08); </p><p><

115、b>  } </b></p><p>  if(s1num==7) </p><p><b>  { </b></p><p><b>  TR0=0; </b></p><p>  w_com(0x80+0x05); </p><p><b> 

116、 } </b></p><p>  if(s1num==8) </p><p><b>  { </b></p><p><b>  s1num=0; </b></p><p>  w_com(0x80+0x40+12); </p><p>  w_com(0x0

117、c);//光標(biāo)恢復(fù)原樣,不閃爍</p><p><b>  TR0=1; </b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  } </b></p><p> 

118、 //--------s1num==1------miao---------------</p><p>  if(s1num==1)</p><p><b>  { </b></p><p>  if(s2==0) </p><p><b>  { </b></p><p&g

119、t;  delay(10); </p><p>  if(s2==0) </p><p><b>  { </b></p><p><b>  miao++; </b></p><p>  while(!s2); </p><p>  if(miao==60) miao=

120、0; </p><p>  w_sfm(10,miao); </p><p>  w_com(0x80+0x40+11); </p><p><b>  } </b></p><p><b>  }</b></p><p>  if(s3==0) </p>&l

121、t;p><b>  { </b></p><p>  delay(10);</p><p>  if(s3==0) </p><p><b>  { </b></p><p>  while(!s3);</p><p><b>  miao--;</b&

122、gt;</p><p>  if(miao==-1) </p><p>  miao=59; </p><p>  w_sfm(10,miao); </p><p>  w_com(0x80+0x40+11); </p><p><b>  } </b></p><p>

123、;<b>  } </b></p><p><b>  }</b></p><p>  //--------s1num==2------fen---------------</p><p>  if(s1num==2)</p><p><b>  { </b></p

124、><p>  if(s2==0) </p><p><b>  { </b></p><p>  delay(10); </p><p>  if(s2==0) </p><p><b>  { </b></p><p><b>  fen+

125、+; </b></p><p>  while(!s2);</p><p>  if(fen==60) fen=0; </p><p>  w_sfm(7,fen); </p><p>  w_com(0x80+0x40+8); </p><p><b>  } </b></p

126、><p><b>  }</b></p><p>  if(s3==0) </p><p><b>  { </b></p><p>  delay(10);</p><p>  if(s3==0) </p><p><b>  { </b

127、></p><p>  while(!s3); </p><p><b>  fen--;</b></p><p>  if(fen==-1)</p><p><b>  fen=59; </b></p><p>  w_sfm(7,fen); </p>

128、<p>  w_com(0x80+0x40+8); </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b></p><p>  //--------s1num==3------shi-----

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論