單片機(jī)電子時(shí)鐘(LCD顯示)_第1頁(yè)
單片機(jī)電子時(shí)鐘(LCD顯示)_第2頁(yè)
單片機(jī)電子時(shí)鐘(LCD顯示)_第3頁(yè)
單片機(jī)電子時(shí)鐘(LCD顯示)_第4頁(yè)
單片機(jī)電子時(shí)鐘(LCD顯示)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(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、下載可編輯單片機(jī)綜合實(shí)驗(yàn)報(bào)告題目 : 電子時(shí)鐘( LCD)顯示班級(jí):0310405班學(xué)號(hào):031040514學(xué)生姓名:張金龍指導(dǎo)老師:高林2013年6月17日.專業(yè) .整理 .下載可編輯一、 實(shí)驗(yàn)內(nèi)容 :以 AT89C51 單片機(jī)為核心的時(shí)鐘,在LCD顯示器上顯示當(dāng)前的時(shí)間:使用字符型LCD顯示器顯示當(dāng)前時(shí)間。顯示格式為“時(shí)時(shí):分分:秒秒”。用 4 個(gè)功能鍵操作來(lái)設(shè)置當(dāng)前時(shí)間,4 個(gè)功能鍵接在P1.0 P1.3 引腳上。功能鍵K1 K4 功能如下。K1進(jìn)入設(shè)置現(xiàn)在的時(shí)間。K2設(shè)置小時(shí)。K3設(shè)置分鐘。K4確認(rèn)完成設(shè)置。程序執(zhí)行后工作指示燈LED 閃動(dòng), 表示程序開(kāi)始執(zhí)行,LCD顯示“ 00:00

2、:00 ”,然后開(kāi)始計(jì)時(shí)。二、實(shí)驗(yàn)電路及功能說(shuō)明1) 單片機(jī)主控制模塊以 AT89C51單片機(jī)為核心進(jìn)行一系列控制。2) 時(shí)鐘顯示模塊用 1602 為 LCD顯示模塊,把對(duì)應(yīng)的引腳和最小系統(tǒng)上的引腳相連,連接后用初始化程序?qū)ζ溥M(jìn)行簡(jiǎn)單的功能測(cè)試。 測(cè)試成功后即可為實(shí)驗(yàn)所用,如圖:3) 時(shí)間調(diào)整電路用 4 個(gè)功能鍵操作來(lái)設(shè)置當(dāng)前時(shí)間, 4 個(gè)功能鍵接在 P1.0 P1.3 引腳上。 功能鍵 K1 K4功能如下。 K1進(jìn)入設(shè)置現(xiàn)在的時(shí)間。 K2設(shè).專業(yè) .整理 .下載可編輯置小時(shí)。 K3設(shè)置分鐘。 K4確認(rèn)完成設(shè)置。如圖:三、實(shí)驗(yàn)程序流程圖:主程序:時(shí)鐘主程序流程子程序:.專業(yè) .整理 .下載可編

3、輯四、實(shí)驗(yàn)結(jié)果分析.專業(yè) .整理 .下載可編輯實(shí)驗(yàn)結(jié)果及分析 :?jiǎn)纹瑱C(jī)的晶振可以根據(jù)要求設(shè)定。 6MHZ為和現(xiàn)實(shí)時(shí)間顯示相同。實(shí)驗(yàn)采用 12MHZ晶振采用方式 1 定時(shí) , 選取 50ms采用 20 次中斷達(dá)到一秒,采用查表方式控制 LCD顯示。當(dāng)燒入程序后開(kāi)始運(yùn)行, 根據(jù)初始值設(shè)定可以觀察到顯示的時(shí)間,這里 為了更明顯觀察顯示數(shù)據(jù)變化 把起始值設(shè)為 23 :59:50 運(yùn)行后顯示,K1 為進(jìn)入現(xiàn)在設(shè)置時(shí)間,當(dāng)按下 K1 后顯示, 和實(shí)驗(yàn)要求相比較,實(shí)現(xiàn)了按下 K1 進(jìn)入現(xiàn)在時(shí)間設(shè)置, 按下 K4 確認(rèn)完成時(shí)間設(shè)置的功能; 不同之處 : 當(dāng)進(jìn)入時(shí)間設(shè)置時(shí)在按下 K1 設(shè)置小時(shí),再次按下 K1

4、是設(shè)置分鐘。 增加功能:進(jìn)入時(shí)間設(shè)置并選擇設(shè)置位置后 K2 鍵位數(shù)字增加功能, K3 鍵為數(shù)字減小功能。根據(jù)仿真結(jié)果能夠確定編程正確,基本實(shí)現(xiàn)了所有功能,而且有所改進(jìn)。五、心得體會(huì)每次做單片機(jī)實(shí)驗(yàn)都會(huì)有不同的等收獲,而這次的實(shí)驗(yàn)讓.專業(yè) .整理 .下載可編輯我感覺(jué)收獲更大。這次的實(shí)驗(yàn)讓我鞏固了以往所學(xué),而且鍛煉了自己發(fā)現(xiàn)問(wèn)題解決問(wèn)題的能力。在編程過(guò)程,發(fā)現(xiàn)自己對(duì)C語(yǔ)言很生疏,很多技巧和函數(shù)運(yùn)用都不會(huì),通過(guò)參考資料和詢問(wèn)同學(xué)終于讓我完成了程序,并實(shí)現(xiàn)了程序的功能。這不僅提高了自己動(dòng)手能力,也培養(yǎng)了自己的思考能力。這次在編程過(guò)程中學(xué)到了很多新東西, 特別是 LCD的顯示,在設(shè)定的顯示字符后,正確編

5、譯后顯示各種設(shè)定值,LCD顯示16 位字符,在最初編程時(shí)編譯正確但是LCD上的顯示字符有缺失,顯示不完整,經(jīng)過(guò)不斷調(diào)試發(fā)現(xiàn)空格同樣占據(jù)字符,只有所有字符不超過(guò)16 位且位置正確時(shí)才能完整正確顯示。時(shí)間的顯示需要每一個(gè)顯示的位子有定義,而且要給“:”留下特定位子。同時(shí)編程時(shí)發(fā)現(xiàn)還可以顯示其他如日期。但本實(shí)驗(yàn)不需要且很難完成最終沒(méi)實(shí)現(xiàn)。在仿真過(guò)程中發(fā)現(xiàn)許多模型不知道名稱,最后搜索了一份Proteus元件庫(kù),里邊有很多元件模型的名稱。最后搭建成功了仿真模型,并且運(yùn)行成功。在這里要感謝老師在以往實(shí)驗(yàn)過(guò)程中不厭其煩的幫助自己解決所遇到的問(wèn)題和傳授一些知識(shí)和小竅門。讓我對(duì)單片機(jī)有機(jī)會(huì)加深了解,體會(huì)到了單片

6、機(jī)的強(qiáng)大, 學(xué)到了很多,感謝。六、程序清單#include <reg51.h>#include <intrins.h>#define uchar unsigned char.專業(yè) .整理 .下載可編輯#define uint unsigned int#define DelayNOP() _nop_();_nop_();_nop_();_nop_();sbit K1 =P10; /選擇調(diào)整小時(shí),分鐘sbit K2 =P11;/ 增加sbit K3 =P12;/ 減小sbit K4 =P13;sbit SPK=P30;sbit RS =P20;sbit RW =P21;sb

7、it E =P22;uchar code Str1 ="Current Time " /一下兩個(gè)字符串的串長(zhǎng)均為16uchar code Str2 ="Set New Time"uchar HMS_String="00:00:00"/帶顯示的時(shí)間串bit Settime=0;/是否修改時(shí)間bit Change_H_or_M =1;/1表示修改時(shí) .0 表示修改分uchar MilliSecond,Hour =23,Minute=59, Second =50; /延時(shí)函數(shù)void DelayMS(uint x)uchar i;while

8、(x-)for(i=0;i<120;i+);/LCD 忙狀態(tài)檢測(cè)bit LCD_Busy_Check()bit result;RS = 0;RW = 1;E = 1;DelayNOP();result = (bit)(P0 & 0x80);E = 0; return result; /寫 LCD命令void LCD_Write_Command(uchar cmd)while(LCD_Busy_Check();/判斷 LCD是否忙碌RS = 0;RW = 0;E = 0;_nop_();_nop_();P0= cmd; DelayNOP();E = 1;DelayNOP();E=

9、0;/ 設(shè)置 LCD顯示位置void LCD_Set_Pos(uchar pos)LCD_Write_Command(pos | 0x80);/ 寫 LCD數(shù)據(jù)void LCD_Write_Data(uchar dat)while(LCD_Busy_Check();/判斷 LCD是否忙碌RS = 1;RW = 0;E = 0; P0 = dat; DelayNOP(); E = 1;DelayNOP();E = 0; /LCD 初始化.專業(yè) .整理 .下載可編輯void LCD_Initialize()LCD_Write_Command(0x38);DelayMS(1);LCD_Write_C

10、ommand(0x0c);DelayMS(1);LCD_Write_Command(0x06);DelayMS(1);LCD_Write_Command(0x01);DelayMS(1);/ 顯示函數(shù),在 LCD指定的行上顯示字符串void Display_String(uchar*str,uchar LineNo)uchar k;LCD_Set_Pos(LineNo);for(k=0;k<16;k+) LCD_Write_Data(strk);/ 時(shí)分秒顯示void Display_HMS(uchar h,m,s)if(Settime) HMS_String3 = '>&

11、#39;/else HMS_String3 = ' '/HMS_String4 = h/10 + '0'/HMS_String5 = h%10 + '0'/HMS_String7 = m/10 + '0' / HMS_String8 = m%10 + '0' /HMS_String10= s/10 + '0' / HMS_String11= s%10 + '0' / Display_String(HMS_String,0x40); / 設(shè)置時(shí)間void Change_Time()顯示

12、修改標(biāo)志不顯示修改標(biāo)志時(shí)十位 HMS_String5 = h/10 + '0'時(shí)個(gè)位 HMS_String5 = h%10 + '0'分 HMS_String8 = m/10 + '0' 分 HMS_String8 = m%10 + '0'秒 HMS_String11= s/10 + '0' 秒 HMS_String11= s%10 + '0'Settime=0;if(K1=0)/按下 k1 鍵即進(jìn)入修改狀態(tài)TR0 = 0;Display_String(Str2,0x00);/第一行提示修改時(shí)間Se

13、ttime = 1;while (Settime)if(K1 = 0)/確定調(diào)整小時(shí)還是分鐘.專業(yè) .整理 .下載可編輯while(K1 = 0)Change_H_or_M = !Change_H_or_M;else if(K2 = 0)/增加while(K2 = 0);if(Change_H_or_M=1)if(+Hour = 24) Hour = 0;elseif(+Minute = 60) Minute = 0;else if(K3 = 0)/減少while(K3 = 0);if(Change_H_or_M = 1)if(-Hour = 0xff) Hour = 23;elseif(-M

14、inute = 0xff) Minute = 59;else if(K4 = 0)/確定while(K4 = 0);Display_String(Str1,0x00);/第一行還原顯示str1Settime = 0;TR0 = 1;Display_HMS(Hour,Minute,Second);/外層 While 在這里結(jié)束/ 定時(shí)器 0 中斷void Time0() interrupt 1TH0 = (65536 -50000)/256;TL0 = (65536 -50000)%256;/重新裝入50MS定時(shí)if(+MilliSecond = 20)/50*20=1sMilliSecond = 0;if(+Second = 60).專業(yè) .整理 .下載可編輯Second = 0;if(+Minute = 60)Minute = 0;if(+Hour = 24)Hour = 0;Minute = 0;Second = 0;/ 主函數(shù)void main()TMOD = 0x01;TH

溫馨提示

  • 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ù)網(wǎng)僅提供信息存儲(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)論