鬧鐘實驗報告_第1頁
鬧鐘實驗報告_第2頁
鬧鐘實驗報告_第3頁
鬧鐘實驗報告_第4頁
鬧鐘實驗報告_第5頁
已閱讀5頁,還剩37頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、阿壩師專電子信息工程系單片機與接口技術課程設計總結報告設計題目:帶有LCD的定時鬧鐘 學生姓名: 翟華學 號:20113043系 別: 電子信息工程系專 業(yè): 計算機控制技術指導教師:莫建麟 2012年12月16日題目 帶有LCD的定時鬧鐘 專業(yè) 計算機控制技術 學號 20113043 姓名 翟華 主要內容:設使用89C51單片機結合字符型LCD顯示器設計一個簡易的定時鬧鐘LCD時鐘,若LCD選擇有背光顯示的模塊,在夜晚或黑暗的場合中也可以使用?;疽螅?字符型LCD(16*2)顯示器.顯示格式“時時 分分”。.由LED閃動來做秒計數表示。.一旦時間到側發(fā)動聲響,同時繼電器啟動,可以擴充控制

2、家電開啟和關閉。.程序執(zhí)行后工作指示燈LED閃動,表示程序開始執(zhí)行,LCD顯示“00 00”,按下操作鍵K1-k4動作如下:(1) K1設置現在的時間。(2) K2顯示鬧鐘設置的時間。(3) K3設置鬧鈴的時間。(4) K4鬧鈴ON/OFF的 狀態(tài)設置,設置ON時連續(xù)三次發(fā)出“嘩”的一聲,off置為嘩的一聲。設置當前時間或鬧鈴時間如下:(1) K1時的調整。(2) K2分的調整。(3) K3設置完成。(5) OFF發(fā)出“嘩”K4-鬧鈴時間到時,發(fā)出一陣聲響,按下本鍵可以停止聲響。除了顯示當前時間的功能外,還可以擴充如下功能; .增加秒表計數。 .鬧鈴時間到側產生音樂聲。 .增加減計數功能。 .

3、增加多組計數的功能。參考文獻郭天祥 51單片機C語言教程-入門。余發(fā)山 單片機原理及應用技術。中國礦業(yè)大學出版社。涂世亮,張友德。單片微機控制技術。清華大學出版社。一.設計本電子定時鬧鐘的目的和意義以單片機為核心的數字時鐘是很有社會意義和社會價值的。鐘表原先的報時功能已經原不能滿足人們日益增長的要求,現代的電子時鐘多帶有類似自動報警、按時自動打鈴、時間程序自動控制、定時廣播、自動起閉路燈、通斷動力設備、甚至各種定時電氣的自動啟用等功能。 1.1 本LCD電子鬧鐘的特點和功能介紹 數字鐘介紹時鐘是將小時、分鐘、秒鐘顯示于人的肉眼的計時裝置。而單片機模塊中最常見的正是數字鐘,數字鐘是一種用數字電路

4、技術實現時、分、秒計時的裝置,與機械式時鐘相比具有更高的準確性和直觀性,且無機械裝置,具有更長的使用壽命,因此得到了廣泛的使用。而LCD電子定時鬧鐘是以單片機為基礎的數字電路實現對時、分、秒的數字顯示的數字計時裝置,它的計時周期為24小時,另外應有校時功能和一些顯示日期、鬧鐘等附加功能。一個基本的數字鐘電路主要由譯碼顯示器、“時”,“分”,“秒”,“星期”計數器、校時電路、報時電路和振蕩器組成。目前電子鐘廣泛用于各種私人和公眾場合,成為我們生活、工作和學習中不可缺少的好幫手。2 總體方案設計2.1 總體設計方案本LCD定時鬧鐘,是以單片機及外圍接口電路為核心硬件,輔以其他外圍硬件電路,用匯編語

5、言設計的程序來實現的。根據C51單片機的外圍接口特點擴展相應的硬件電路,然后根據單片機的指令設計出數字鐘相應的軟件,再利用軟件執(zhí)行一定的程序來實現數字鐘的功能。由于采用集成芯片性的單片機來制作電子鐘,這樣設計制作簡單而且功能多、精確度高,也可方便擴充其他功能,實現也十分簡單。本設計是利用AT89C51單片機為主控芯片,由LCD、晶振、電阻、電容、發(fā)光二極管、開關、喇叭等元件組成硬件電路,通過編寫軟件程序來實現和控制的數字定時鬧鐘AT89C51震蕩電路調時電路喇叭LCD片選代碼AT89C51震蕩電路調時電路喇叭LCD片選代碼。3 硬件設計3.1 主控芯片AT89C51的設計在本LCD電子鬧鐘設計

6、中就是采用利用我們熟悉的AT89C51單片機為主控芯片。AT89C51單片機由微處理器,存儲器,I/O口以及特殊功能寄存器SFR等部分構成。其存儲器在物理上設計成程序存儲器和數據存儲器兩個獨立的空間,片內程序存儲器的容量為4KB,片內數據存儲器為128個字節(jié)。89C51單片機有4個8位的并行I/O口:P0口,P1口,P2口和P3口。各個接口均由接口鎖存器,輸出驅動器,和輸入緩沖器組成。P1口是唯一的單功能口,僅能用作通用的數據輸入/輸出口。P3口是雙功能口除了具有數據輸入/輸出功能外,每條接口還具有不同的第二功能,如P3.0是串行輸入口線,P3.1口是串行輸出口線。在需要外部程序存儲器和數據存

7、儲器擴展時,P0可作為分時復用的低8位地址/數據總線,P2口可作為高8位的地址總線。P3口也可作為AT89C51的一些特殊功能口,同時為閃爍編程和編程校驗接收一些控制信號.3.2 時鐘電路部分設計AT89C51系列的單片機的時鐘方式分為內部方式和外部方式。內部方式就是在單片機的XTAL1和XTAL2的兩引腳外接晶振,就夠成了自激振蕩器在單片機內部產生時鐘脈沖信號。外部時鐘方式是把外部已經有的時鐘信號引入到單片機內部。時鐘電路在計算機系統(tǒng)中起著非常重要的作用,是保證系統(tǒng)正常工作的基礎。在一個單片機應用系統(tǒng)中,時鐘有兩方面的圖3.2含義:一是指為保障系統(tǒng)正常工作的基準振蕩定時信號,主要由晶振和外圍

8、電路組成,晶振頻率的大小決定了單片機系統(tǒng)工作的快慢;二是指系統(tǒng)的標準定時時鐘,即定時時間。本LCD電子鬧鐘設計是采用內部時鐘方式,用一個12MHz晶振和兩個30Pf瓷片電容組成,為單片機提供標準時鐘,其中兩個瓷片電容起微調作用.其電路圖見圖3.2。之所以采用高性能的振蕩電路,因為:1.單片機電子鐘的計時脈沖基準是由外部晶振的頻率經過12分頻后提供,采用內部的定時/計數器來實現計時功能。所以,外接晶振頻率精確度直接影響電子鐘計時的準確性。 2.單片機電 子鐘利用內部定時/計數器溢出產生中斷(12M晶振一般為50ms)再乘以相應的倍率來實現秒、分、時的轉換。大家都知道從定時/計數器產生中斷請求到響

9、 應中斷需要3-8個機器周期,定時中斷子程序中的數據入棧和重裝定時/計數器的初值還需要占用數個機器周期,還有從中斷入口轉到中斷子程序也要占用一定的 機器周期。3.3 LCD顯示電路部分為了獲得更好的效果本設計并沒有采用常見的LED,而是采用了型號為1602的 LCD。LCD有LED數碼顯示更好的更的直觀效果,也更加經久耐用。液晶顯示模塊體積小功耗低、顯示內容豐富,現在字符型液晶顯示模塊已經是單片機應用設計中最常用的信息顯示器件之一了。本LCD是2行16列液晶 可顯示2行16列英文字符,有8位數據總線D0-D7,RS,R/W,EN三個控制端口(共14線),工作電壓為5V。沒背光,和常用的1602

10、B功能和引腳一樣(除了調背光的二個線腳). 該模塊也可只用D4-D7作為四位數據分兩次傳送。這樣的話可以節(jié)省MCU的I/O口資源。引腳說明,見表3.1。VDD:電源正極,4.55.5V,通常使用5V電壓;VL:LCD對比度調節(jié)端,電壓調節(jié)范圍為05V。接正電源時對比度最弱,接地電源時對比度最高,但對比度過高時會產生“鬼影”,因此通常使用一個10K的電位器來調整對比度或者直接串接一個電阻到地;RS:MCU寫入數據或者指令選擇端。MCU要寫入指令時,使RS為低電平;MCU要寫入數據時,使RS為高電平;R/W:讀寫控制端。R/W為高電平時,讀取數據;R/W為低電平時,寫入數據;E:LCD模塊使能信號

11、控制端。寫數據時,需要下降沿觸發(fā)模塊。D0D7:8位數據總線,三態(tài)雙向。如果MCU的I/O口資源緊張的話,該模塊也可以只使用4位數據線D4D7接口傳送數據。本充電器就是采用4位數據傳送方式;BLA: LED背光正極。需要背光時,BLA串接一個限流電阻接VDD,BLK接地,實測該模塊的背光電流為50mA左右;BLK: LED背光地端。12表3.1 LCD顯示屏引腳說明編號符號引腳說明編號符號引腳說明1VCC電源地9D2雙向數據口2VDD電源正極10D3雙向數據口3VL對比度調節(jié)11D4雙向數據口4RS數據/命令選擇12D5雙向數據口5R/W讀/寫選擇13D6雙向數據口6E模塊使能端14D7雙向數

12、據口7D0雙向數據口15BLK背光源地8D1雙向數據口16BLA背光源正極4 軟件設計4.1 軟件設計概述這里用匯編的單片機程序構成了本LCD電子鬧鐘的軟件系統(tǒng)。該程序實現時間及定時(時間以0點0分0秒為基準計算,鬧鈴定時以0時0分為基準計算)的顯示,有外中斷0和五個開關實現校時,鬧鐘功能。其中程序的晶振頻率為12MHz,最小計時單位為1/20秒。主芯片p0.1-p0.7輸出數據到LCD數據總線,p3.0-2.2輸出LCD控制信號,P2.1輸出聲音信號,.P1.0-P1.3輸入外部控制信號,整個軟件系統(tǒng)也是根據這個關系連接成一個完整的系統(tǒng)。4.2 主函數的設計本LCD電子鬧鐘的的主程序流程圖如

13、圖4.1所示:系統(tǒng)初始化定時器初始化定時器初始化串口初始化顯示待機指示符設定鬧鈴時間判設置鬧鈴時間否?顯示刷新啟動走時有關變量初始化刷新顯示判斷日期是否變化化否?秒指示判斷時間是否變化鬧鈴判是否到鬧鈴時間?延時YYYY4.3.1 程序初始化在系統(tǒng)開始上電時,需要.首先初始化液晶:void TimeInit()write_com(0x01); /初始化1602液晶write_com(0x80); /設置現實初始坐標for(num=0;num9;num+) /顯示年月日write_date(tablenum); delay(5);write_com(0x80+0x40+6); /寫出時間顯示部分的

14、兩個冒號write_date(:);delay(5);write_com(0x80+0x40+9);write_date(:);delay(5);write_sfm(4,shi); /分別送去液晶顯示write_com(0x80+0x40+4);write_sfm(7,fen);write_com(0x80+0x40+7);write_sfm(10,miao);write_com(0x80+0x40+10)4.3.2 鬧鐘的實現鬧鐘功能的實現涉及到兩個方面:鬧鈴時間設定和是否鬧鈴判別與相應處理。鬧鈴時間設定模塊的設計可參照時間設定模塊,這里著重闡述鬧鈴判別與處理模塊的設計問題。鬧鈴判別與鬧鈴處

15、理的關鍵在于判別何時要進行鬧鈴。當時十位、時個位、分十位、分個位中任一位發(fā)生改變(進位)時,就必須進行鬧鈴判別。程序設計思想如圖4.3。 8 時十位、個位,分十位、個位改變了設置鬧鈴標志是否設置了鬧鈴清除鬧鈴標志判當前時間是設定時間中斷返回中斷返回鬧鈴判別處理4.3.3 顯示程序顯示程序包括時鐘顯示和定時顯示程序。具體程序見附錄。液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認模塊的忙標志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表4.1是TC1602EL液晶模塊的內部顯示地址。15表4.1 內部顯示地址123456789

16、10111213141516000102030405060708090A0B0C0D0E0F404142434445464748494A4B4C4D4E4F硬件原理圖程序:/*使用說明:K1鍵為菜單選項:單擊進入位選擇修改;雙擊:修改;K2鍵為上調鍵;K3鍵為下調鍵;K4鍵為退出修改;K5鍵為鬧鐘時間設置鍵;按一次:鬧鐘一;兩次:鬧鐘二;三次:鬧鐘三;四次:重置 五次:紀念日*/#include/* 位定義*/sbit RS=P20; /功能數據選擇位sbit RW=P21; /讀寫選擇位sbit E=P22; /使能位 0sbit busy=P07; /lcd忙標位sbit menu=P10

17、; /菜單及確定sbit inc=P11; /增一sbit dec=P12; /減一sbit quit=P13; /退出sbit sound=P14; /鬧鐘控制/* 全局變量*/unsigned char data sec20,sec,min,hour,amin1,ahour1,amin2,ahour2,amin3,ahour3,temp,year1,year2,month,day,amonth,aday; /計秒,秒,分,時unsigned char data timebuf=0,0,0x3a,0,0,0x3a,0,0,0,0,0,0,0x2d,0,0,0x2d,0,0; /存放時間uns

18、igned char key; /按鍵標志unsigned char time=0; /記錄按menu鍵的次數unsigned char place=0x84; /記錄光標的位置unsigned char signal=0; /光標與時間值增減標志位 /0光標 1時間值/* 函數申明*/void delay(unsigned char ms); /延時函數void cbusy(); /測試lcd忙碌狀態(tài)函數void wrcom(unsigned char cmd); /寫指令函數void wrdat(unsigned char dat); /寫數據函數void lcdinit(); /lcd初

19、始化函數void protime(); /時間處理函數void display(); /時間顯示函數unsigned char scankey(); /按鍵掃描void keywork(); / 按鍵功能處理函數void naoling1();void naoling2();void naoling3();/* 延時函數*/void delay(unsigned char ms) unsigned char i; unsigned char m=4; while(ms-) for(i=0;i19) /一秒到 sec20=0; sec+; if(sec59) sec=0; min+; if(mi

20、n59) min=0; hour+; if(hour23) hour=0; day+; if(day31) day=0; month+; if(month12) month=0;year2+; timebuf0=sec%10+48; /時間數據更新 timebuf1=sec/10+48; timebuf3=min%10+48; timebuf4=min/10+48; timebuf6=hour%10+48; timebuf7=hour/10+48; timebuf8=year1/10+48; /時間數據更新 timebuf9=year1%10+48; timebuf10=year2/10+48

21、; /時間數據更新 timebuf11=year2%10+48; timebuf13=month/10+48; timebuf14=month%10+48; timebuf16=day/10+48; timebuf17=day%10+48; display(); /* if(min=0&sec=0)sound=0;delay(1);sound=1;delay(1); sound=0;delay(1);sound=1;delay(1);sound=0;delay(1);sound=1;delay(1); */ if(min=0&sec=0|amin1=min&ahour1=hour&sec=0|

22、amin2=min&ahour2=hour&sec=0|amin3=min&ahour3=hour&sec=0|aday=day&amonth=month&min=0&sec=0&hour=0) sound=0; if(sec5) sound=1;/* 時間顯示函數*/void display() unsigned char t; /wrcom(0x80); /wrdat(0xfb); wrcom(0x84); for(t=8;t=1;t-) wrdat(timebuft-1); wrcom(0xc3); for(t=7;t=0xcd) place=0x83; else switch(plac

23、e) /修改時間值模式下 case 0x84: wrcom(0x84); /保證光標閃爍位置和當前位置一至 wrcom(0x0f); timebuf7+; if(timebuf750) timebuf7=48; display(); wrcom(0x84); break; case 0x85: wrcom(0x85); wrcom(0x0f); timebuf6+; if(timebuf757) timebuf6=48; else if(timebuf651) timebuf6=48; display(); wrcom(0x85); break; case 0x86:break; case 0

24、x87: wrcom(0x87); wrcom(0x0f); timebuf4+; if(timebuf453) timebuf4=48; display(); wrcom(0x87); break; case 0x88: wrcom(0x88); wrcom(0x0f); timebuf3+; if(timebuf357) timebuf3=48; display(); wrcom(0x88); break; case 0x89:break; case 0x8a: wrcom(0x8a); wrcom(0x0f); timebuf1+; if(timebuf153) timebuf1=48;

25、 display(); wrcom(0x8a); break; case 0x8b: wrcom(0x8b); wrcom(0x0f); timebuf0+; if(timebuf057) timebuf0=48; display(); wrcom(0x8b); break;case 0xcc: wrcom(0xcc); wrcom(0x0f); timebuf17+; if(timebuf1757) timebuf17=48; display(); wrcom(0xcc); break;case 0xcb: wrcom(0xcb); wrcom(0x0f); timebuf16+; if(timebuf1651) timebuf16=48; display(); wrcom(0xcb); break; case 0xc9: wrcom(0xc9); wrcom(0x

溫馨提示

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

評論

0/150

提交評論