版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)課程設(shè)計(jì)--數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)--基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)
- 課程設(shè)計(jì)-單片機(jī)基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)
- 單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)--數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)(數(shù)字時(shí)鐘)
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)---數(shù)字時(shí)鐘的設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---基于單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)數(shù)字時(shí)鐘
- 單片機(jī)數(shù)字時(shí)鐘控制課程設(shè)計(jì)
- 單片機(jī)課程設(shè)計(jì)報(bào)告---單片機(jī)數(shù)字時(shí)鐘
- 課程設(shè)計(jì)---基于51單片機(jī)的數(shù)字時(shí)鐘
- 單片機(jī)課程設(shè)計(jì)---單片機(jī)數(shù)字時(shí)鐘.doc
- 單片機(jī)數(shù)字時(shí)鐘課程設(shè)計(jì)報(bào)告
- 單片機(jī)課程設(shè)計(jì)數(shù)字時(shí)鐘
- 數(shù)字電子時(shí)鐘-單片機(jī)課程設(shè)計(jì)
- 多功能數(shù)字時(shí)鐘 單片機(jī)課程設(shè)計(jì)
- 單片機(jī)數(shù)字時(shí)鐘
- 基于51單片機(jī)的數(shù)字時(shí)鐘設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論