單片機電子鐘c語言程序_第1頁
單片機電子鐘c語言程序_第2頁
單片機電子鐘c語言程序_第3頁
單片機電子鐘c語言程序_第4頁
單片機電子鐘c語言程序_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、單片機電子鐘程序設(shè)計實習(xí)報告單片機LCD1602電子鐘畢業(yè)論文這次嵌入式系統(tǒng)綜合實習(xí)已經(jīng)結(jié)束了,哎. 在網(wǎng)絡(luò)發(fā)現(xiàn)很多計算機專業(yè)的畢業(yè)生都是以電子鐘為題的畢業(yè)論文,個人感覺做一個電子鐘程序設(shè)計的技術(shù)含量,技術(shù)水平都不高。呵呵 個人還是比較偏向于軟件開發(fā)的,比較喜歡vc+開發(fā)。一、引言1.1課題的背景及目的隨著計算機科學(xué)與技術(shù)的飛速發(fā)展,計算機的應(yīng)用已經(jīng)滲透到國民經(jīng)濟與人們生活的各個角落,正在日益改變著傳統(tǒng)的人類工作方式和生活方式,而單片機技術(shù)又作為計算機技術(shù)中的一個獨立分支,有著性價比高,集成度高,體積小,可靠性高,控制功能強大,低功耗,低電壓,便于生產(chǎn),便于攜帶等特點,所以得到越來越廣泛的應(yīng)用

2、,特別是在工業(yè)控制和儀表儀器智能化中起極其重要的作用.本文利用單片機強大的控制功能和內(nèi)部定時器重要部件,設(shè)計了一款自行對時間進行調(diào)整以及把時、分、秒用LCD顯示的電子鐘。電子鐘從原理上講是一種典型的數(shù)字電路,其中包括了組合邏輯電路和時序電路。因此,我們此次設(shè)計與制做數(shù)字鐘就是為了了解數(shù)字鐘的原理,從而學(xué)會制作數(shù)字鐘.而且通過數(shù)字鐘的制作進一步的了解各種在制作中用到的中小規(guī)模集成電路的作用及實用方法.且由于數(shù)字鐘包括組合邏輯電路和時敘電路.通過它可以進一步學(xué)習(xí)與掌握各種組合邏輯電路與時序電路的原理與使用方法1.2課題的內(nèi)容要求及研究方法 時間以24小時為一個周期; 顯示時、分、秒; 具有校時功能

3、,可以分別對時及分進行單獨校時,使其校正到標準時間;本文先按照設(shè)計的一般步驟,先選定用單片機實現(xiàn)的方案,了解設(shè)計要求,再分別從硬件系統(tǒng)設(shè)計和軟件系統(tǒng)設(shè)計兩個宏觀方面著手.然后大量閱讀相關(guān)資料,硬件方面,熟練單片機工作基本原理,查出相關(guān)元器件的參數(shù),八個八段數(shù)碼管,繼電器等性能.然后畫出系統(tǒng)框圖和單元電路原理圖,再對系統(tǒng)工作原理按照單元電路作簡單的說明。軟件方面,熟悉編程語言,查找相關(guān)子程序.熟悉使用Keil uVision2開發(fā)軟件及STC-ISP下載軟件.把原器件按電路原理圖安裝.最后再對硬件和軟件系統(tǒng)進行調(diào)試和仿真。課題的內(nèi)容是要求設(shè)計一款電子鐘,而且要求計時準確,顯示直觀,清晰,時能夠精

4、確到秒。最后設(shè)計出來的產(chǎn)品,要求電路簡潔,穩(wěn)定性好。二、課題設(shè)計1、基本原理本設(shè)計基于單片機技術(shù)原理,以單片機芯片AT89C52作為核心控制器,通過硬件電路的制作以及軟件程序的編制,設(shè)計制作出一個多功能數(shù)字時鐘系統(tǒng)。單片機擴展的LCD顯示器用來顯示秒、分、時計數(shù)單元中的值。整個設(shè)計包括兩大部分: 硬件部分和軟件部分,以單片機為核心, 配以一定的外圍電路和軟件。硬件是整個系統(tǒng)的基礎(chǔ), 軟件部分則要合理、充分地支持和使用系統(tǒng)的硬件, 從而完成系統(tǒng)所要完成的任務(wù)。該時鐘系統(tǒng)主要由時鐘模塊、液晶顯示模塊、鍵盤控制模塊以及信號提示模塊組成。能夠準確顯示時間(顯示格式為時時:分分:秒秒,24小時制),可隨

5、時進行時間調(diào)整。設(shè)計以硬件軟件化為指導(dǎo)思想,充分發(fā)揮單片機功能,大部分功能通過軟件編程來實現(xiàn),電路簡單明了,系統(tǒng)穩(wěn)定性高。單片機在這種情況下誕生了基于單片機電子時鐘。2、原理框圖3、硬件電路原理圖3.硬件模塊功能介紹3.1 AT89C52單片機AT89C52提供以下標準功能:8k字節(jié)Flash閃速存儲器,256字節(jié)內(nèi)部RAM,32個I/O口線,3個16位定時/計數(shù)器,一個6向量兩級中斷結(jié)構(gòu),一個全雙工串行通信口,片內(nèi)振蕩器及時鐘電路2。同時,AT89C52可降至0HZ的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時/計數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)

6、工作。掉電方式保存RAM中的內(nèi)容,但振蕩器停止工作并禁止其它所有部件工作直到下一個硬件復(fù)位。3.2 液晶顯示器LCD液晶顯示器簡稱是利用液晶經(jīng)過處理后能夠改變光線傳輸方向的特性,達到顯示字符或者圖形的目的。其特點是體積小、重量輕、功耗極低、顯示內(nèi)容豐富等特點,在單片機應(yīng)用系統(tǒng)中有著日益廣泛的應(yīng)用。1602芯片:主要用于顯示時間和定時時間。1602芯片由點陣字符液晶顯示器件和專用的行、列驅(qū)動器、控制及必要的鏈接件、結(jié)構(gòu)件組裝而成,可以顯示數(shù)字和西文字符,但不能顯示圖形,已經(jīng)可以滿足本次設(shè)計的需要。1602型LCD可以顯示2行16個字符,有8位數(shù)據(jù)總線D0D7和RS,R/W,EN三個控制端口,工作

7、電壓為5V,并且具有字符對比度調(diào)節(jié)和背光功能。3.3 鍵盤控制模塊按鍵中有一個復(fù)位鍵及定時鍵、調(diào)時鍵加一鍵和減一鍵,一個按鍵接在復(fù)位電路上,另外四個按鍵接在P0P4口,低電平表示有按鈕按下;按鈕沒有接防抖電路,需要設(shè)計軟件防抖。1、定時。按下定時鍵后可以開始定時,過程如下:定時-小時加/減-按定時-分鐘加/減-按定時。2、調(diào)時。按下調(diào)時鍵后可以調(diào)時,過程如下:調(diào)時-年加/減-調(diào)時-月加/減-調(diào)時-日加/減-調(diào)時-時加/減-調(diào)時-分加/減-調(diào)時-秒加/減 -調(diào)時。 3.4 直流穩(wěn)壓電源部分直流穩(wěn)壓電源是給電子設(shè)備提供穩(wěn)定直流電壓的電子電路。這次電路需要的是+5V直流電源。4.軟件設(shè)計4.3 代碼

8、附錄#include <reg51.h>#include <intrins.h>#include <absacc.h>uchar code str0=""uchar code str1=" 情侶網(wǎng)名 "void delay_LCM(uint); /LCD延時子程序void initLCM( void); /LCD初始化子程序void lcd_wait(void); /LCD檢測忙子程序void WriteCommandLCM(uchar WCLCM,uchar BusyC); /寫指令到ICM子函數(shù)void Write

9、DataLCM(uchar WDLCM); /寫數(shù)據(jù)到LCM子函數(shù)void DisplayOneChar(uchar X,uchar Y,uchar DData); /顯示指定坐標的一個字符子函數(shù)void DisplayListChar(uchar X,uchar Y,uchar code *DData); /顯示指定坐標的一串字符子函數(shù)void init_timer0(void); /定時器初始化void displayfun1(void);void displayfun2(void);void displayfun3(void);void keyscan(void ); /鍵盤掃描子程序v

10、oid set_adj(void);void inc_key(void);void dec_key(void);/*顯示指定坐標的一串字符子函數(shù)*/void DisplayListChar(uchar X,uchar Y,uchar code *DData) uchar ListLength=0;Y&=0x01;X&=0x0f;while(X<16) DisplayOneChar(qq情侶網(wǎng)名);ListLength+; X+;/*液晶顯示子函數(shù)1正常顯示*/void displayfun1(void)WriteCommandLCM(0x0c,1); /顯示屏打開,光標不

11、顯示,不閃爍,檢測忙信號DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);DisplayOneChar(7,1,hour/10+0x30); /液晶上顯示小時DisplayOneChar(8,1,hour%10+0x30);DisplayOneChar(10,1,minite/10+0x30);/液晶上顯示分DisplayOneChar(11,1,minite%10+0x30);DisplayOneChar(13,1,second/10+0x30); /液晶上顯示秒DisplayOneChar(14,1,second%10+0x30);/*

12、鍵盤掃描子函數(shù)*/void keyscan(void) if(ADJ_key=0) delay_LCM(5); if(ADJ_key=0) while(!ADJ_key); set_adj();if(INC_key=0) delay_LCM(5);if(INC_key=0) while(!INC_key); inc_key();if(DEC_key=0) delay_LCM(5);if(DEC_key=0) while(!DEC_key);dec_key();/*設(shè)定工作模式子函數(shù)*/void set_adj(void) delay_LCM(100); set+;if(set>2) se

13、t=0;/*按鍵加法子函數(shù)*/void inc_key(void) delay_LCM(150); if(set=1) hour+;if(hour>=23) hour=23; else if(set=2) minite+; if(minite>=59) minite=59; elsedisplayfun1();/*按鍵減法子函數(shù)*/void dec_key(void)delay_LCM(150);if(set=1) hour-; if(hour<=0) hour=0;else if(set=2) minite-; if(minite<=0) minite=0; else

14、 displayfun1();/*定時器t0初始化*/void init_timer0(傷感網(wǎng)名) TMOD=0x01; /time0為定時器,方式1TH0=0x3c; /預(yù)置計數(shù)初值TL0=0xb0; EA=1; ET0=1; TR0=1; /*定時器t0中斷子函數(shù)*/void timer0(void) interrupt 1 using 0 /定時器0方式1,50ms中斷一次TH0=0x3c; TL0=0xb0; mstcnt+;if(mstcnt>=20 ) second+; mstcnt=0; if(second>=60) minite+; second=0; if(min

15、ite>=60)hour+; minite=0; light=0; delay_LCM(200); light=1; if(hour>=24) hour=0; keyscan( ); /按鍵掃描/*個性網(wǎng)名*/void main(void)P1=0xff; /初始化p1口,全設(shè)為1delay_LCM(500); /延時500ms啟動initLCM( ); /LCD初始化init_timer0( ); /時鐘定時器0初始化DisplayListChar(0,0,str0);DisplayListChar(0,1,str1); while (1) keyscan(); /按鍵掃描 sw

16、itch(set) /LCD根據(jù)工作模式顯示case 0:displayfun1();delay_LCM(1000); /正常工作顯示 break;case 1:displayfun2();delay_LCM(1000); /調(diào)整分顯示 break;case 2:displayfun3();delay_LCM(1000); /調(diào)整時顯示 break;default:break; 5.調(diào)試過程調(diào)試的主要過程包括硬件調(diào)試和軟件調(diào)試,其中軟件調(diào)試,也即程序編譯與仿真過程處于本次設(shè)計調(diào)試過程的核心環(huán)節(jié)。由于本設(shè)計已經(jīng)制作出液晶顯示電子鐘,所以硬件調(diào)試也很重要。兩種調(diào)試過程并非孤立或者分開的,而是緊密相

17、關(guān)。在此我們用到的開發(fā)工具是仿真器。5.1硬件調(diào)試完成仿真器軟件仿真后,就要連接上硬件也即液晶顯示電子鐘成品板進行硬件調(diào)試。將仿真器通過串行電纜連接計算機上,將仿真頭接到仿真器,檢查接線是否有誤,確信沒有接錯后,接上電源,打開仿真器的電源開關(guān)。再進行仿真器和通信設(shè)置。仿真器和仿真頭設(shè)置正確,并且硬件連接沒有錯誤,出現(xiàn) “硬件仿真”的對話框,并顯示仿真器、仿真頭的型號及仿真器的序列號。表明仿真器初始化正確。硬件調(diào)試很重要也很麻煩,由于本次設(shè)計硬件非PCB制板,而是手工焊板,焊點質(zhì)量、布線是否合理等對系統(tǒng)的影響比較大,這無疑增加硬件調(diào)試的難度。由于此前沒有很多的練習(xí),本次設(shè)計我所制作的液晶顯示電子

18、鐘在質(zhì)量工藝上很難達到滿意程度,不過在調(diào)試中還算穩(wěn)定,基本功能都能較穩(wěn)定地實現(xiàn)。5.2軟件調(diào)試系統(tǒng)仿真分析電路原理圖在ISIS里設(shè)計完成,并將系統(tǒng)軟件編譯成.Hex文件,再進行電子時鐘的系統(tǒng)虛擬仿真 。(1)在ISIS的原理圖中,右鍵單擊AT89C51將其選中,然后單擊左鍵打開AT89C51的Edit Component 對話框,如下圖所示。(2)選擇相應(yīng)的.Hex文件,再在Proteus ISIS 編輯窗口的File菜單中選擇Save Design 選項,保存設(shè)計,生成.DSN文件。5.3測試數(shù)據(jù)與數(shù)據(jù)分析在Proteus ISIS的Debug菜單中選擇Execute,運行程序,系統(tǒng)仿真結(jié)果如下圖所示。實現(xiàn)功能的具體方法:當進入調(diào)整功能時,按第一個鍵K1進行減運算,按第二個鍵K2進行加運算。按下第三個鍵K3,實現(xiàn)日期時間調(diào)整及定時功能,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論