版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
武夷學(xué)院課程設(shè)計(jì)報(bào)告 LCD智能電子鐘::目錄一、設(shè)計(jì)任務(wù)與設(shè)計(jì)要求 3二、設(shè)計(jì)原理 3一、lcd實(shí)現(xiàn)時(shí)間日期顯示 3(1)lcd1602介紹 3(2)1602的接口電路與工作時(shí)序 3(3)1602字符型LCD驅(qū)動(dòng)程序設(shè)計(jì) 4二、74LS164實(shí)現(xiàn)按鍵掃描 4(1)74LS164關(guān)閉程序 5三、設(shè)計(jì)方案 6一、硬件部分 6(1)按鍵掃描的選擇 6(2)顯示器的選擇 6(3)采用元件列表 6二、軟件部分 6(1)按鍵掃描、確認(rèn)及工作部分 6(2)LCD初始化程序 6(3)中斷T0提高時(shí)間的更新 7四、調(diào)試與性能分析 8一、proteus仿真圖 8二、實(shí)物調(diào)試圖 8三、實(shí)際調(diào)試步驟 9四、性能分析 9五、心得體會(huì) 9六、成品展示 10附錄部分 11附件一、電路設(shè)計(jì)原理圖 11附件二、系統(tǒng)設(shè)計(jì)原始代碼程序 12
一、設(shè)計(jì)任務(wù)與設(shè)計(jì)要求 設(shè)計(jì)一個(gè)LCD時(shí)鐘顯示系統(tǒng)。功能要求如下:可以調(diào)整時(shí)間日期,可設(shè)置一個(gè)鬧鐘,當(dāng)時(shí)間到時(shí)用蜂鳴器提醒。二、設(shè)計(jì)原理一、lcd實(shí)現(xiàn)時(shí)間日期顯示(1)lcd1602介紹1602液晶模塊內(nèi)部的控制器共有11條控制指令。如表4-8所示。表4-81602液晶模塊指令表(2)1602的接口電路與工作時(shí)序LCD與單片機(jī)接口電路如圖4-48所示。調(diào)整電位器RP400可改變LCD的對(duì)比度。LCD的工作時(shí)序如圖4-49所示。從圖中可以看出,寫(xiě)入命令或數(shù)據(jù)時(shí),在LCD使能端E的下降沿時(shí)鎖存數(shù)據(jù);讀狀態(tài)或數(shù)據(jù)時(shí),在LCD使能端E為高電平時(shí)輸出數(shù)據(jù)。圖4-481602LCD接口圖(a)讀時(shí)序圖(b)寫(xiě)時(shí)序圖圖4-491602LCD讀寫(xiě)時(shí)序圖(3)1602字符型LCD驅(qū)動(dòng)程序設(shè)計(jì)1602驅(qū)動(dòng)程序設(shè)計(jì)主要是讀寫(xiě)程序的設(shè)計(jì)。由時(shí)序圖可知,LCD的工作時(shí)序與51單片機(jī)的讀寫(xiě)時(shí)序不同。只能用軟件模擬的方式產(chǎn)生工作時(shí)序。驅(qū)動(dòng)程序可分為四種情況:LCD寫(xiě)命令、LCD讀狀態(tài)、LCD讀數(shù)據(jù)、LCD寫(xiě)數(shù)據(jù)。流程圖如圖4-50所示。LCD讀數(shù)據(jù)RS=1,E=0,RW=1返回輸出數(shù)據(jù)LCD讀數(shù)據(jù)RS=1,E=0,RW=1返回輸出數(shù)據(jù)E產(chǎn)生正脈沖LCD讀狀態(tài)RS=0,E=0,RW=1返回輸出數(shù)據(jù)E產(chǎn)生正脈沖LCD寫(xiě)數(shù)據(jù)RS=1,E=0,RW=0返回輸出數(shù)據(jù)E產(chǎn)生正脈沖LCD寫(xiě)命令RS=0,E=0,RW=0返回輸出數(shù)據(jù)E產(chǎn)生正脈沖二、74LS164實(shí)現(xiàn)按鍵掃描利用74LS164串入并出的特點(diǎn),剛上電時(shí)先關(guān)閉74LS164,然后,先由DIN端移入低電平,后面移入7個(gè)高電平,從而對(duì)接8?jìng)€(gè)輸出口的按鍵進(jìn)行掃描,74LS164的clk與單片機(jī)P3^4連接,應(yīng)用軟件方法實(shí)現(xiàn)時(shí)鐘輸出。其proteus圖如下:圖1(1)74LS164關(guān)閉程序:voidRead_Key() {P1=0xff;Keytemp<<=1; if(Key_InPut==1){ Keytemp++; }}voidkeyscan(){unsignedchartemp=0;if(Keytemp!=0xff)temp=Keytemp;if(temp==0){keyup=1;keybak=0;keyva=0;}elseif(temp==keybak&&keyup==1){keyva=temp;keyup=0;}elsekeybak=temp;}voidKey_job() {switch(Keyval) { case0x7f:x=1;break; case0xbf:y=1;break; case0xdf:m=1;break; case0xef:n=1;break; case0xf7:p=1;break; case0xfb:q=1;break; case0xfd:r=1;break; case0xfe:s=1;break; }}三、設(shè)計(jì)方案一、硬件部分(1)按鍵掃描的選擇本設(shè)計(jì)所需的按鍵不多,如果采用獨(dú)立式按鍵會(huì)比較浪費(fèi)單片機(jī)I/O口,而采用74LS164作為按鍵掃描的作用,避免了利用獨(dú)立式鍵盤(pán)浪費(fèi)單片機(jī)I/O口,優(yōu)化了單片機(jī)外圍接口,使得單片機(jī)的利用率提高。(2)顯示器的選擇方案一:采用數(shù)碼管進(jìn)行顯示,速率比較快,但是顯示的數(shù)據(jù)量有限,并且顯示內(nèi)容有限。方案二:采用LCD1602進(jìn)行顯示,需要讀寫(xiě)指令和數(shù)據(jù)的過(guò)程,顯示速度相對(duì)數(shù)碼管來(lái)說(shuō)會(huì)慢些,但是LCD能顯示2行32個(gè)字符,所顯示的內(nèi)容較之?dāng)?shù)碼管豐富。本設(shè)計(jì)采用LCD作為顯示器,盡可能的把時(shí)間等信息通過(guò)LCD顯示出來(lái),更直觀。(3)采用元件列表74LS164、萬(wàn)利仿真機(jī)、按鈕、LCD1602、蜂鳴器、電阻、UART口二、軟件部分(1)按鍵掃描、確認(rèn)及工作部分采用74LS164進(jìn)行鍵值掃描,通過(guò)P1^0作為按鍵掃描的輸出端,利用以下鍵值輸出程序輸出掃描到的按鍵值:voidRead_Key() //**鍵值讀取函數(shù)**//{keytemp<<=1; if(Key_Input==1) {keytemp++;}}當(dāng)74LS164進(jìn)行8次移位后,鍵值輸出。(2)LCD初始化程序voidWrite_com(ucharcom){ lcd_rw=0; lcd_rs=0; lcd_date=com; delay_ms(2); lcd_en=1; delay_ms(2); lcd_en=0;}voidWrite_dat(uchardat){ lcd_rw=0; lcd_rs=1; lcd_date=dat; delay_ms(2); lcd_en=1; delay_ms(2); lcd_en=0;}voidlcd_init(){ lcd_en=0; delay_ms(15); Write_com(0x38); delay_ms(5); Write_com(0x38); delay_ms(5); Write_com(0x38);//顯示模式設(shè)置 Write_com(0x08);//顯示關(guān)閉 Write_com(0X01);//清屏 Write_com(0x06);//顯示光標(biāo)移動(dòng)設(shè)置 Write_com(0X0c);//顯示開(kāi)及光標(biāo)設(shè)置}(3)中斷T0提高時(shí)間的更新voidtimer0()interrupt1{TF0=0;TH0=0X3C;TL0=0XB0;t++;if(t==10&&keynum!=0)flag2=~flag2; if(t==20) { t=0; second++; if(second==60) { point++; second=0; if(point==60) { hour++; point=0; if(hour==24) { day++; week++; if(day==31)day=1; if(week==8)week=1; hour=0; }}}}}四、調(diào)試與性能分析一、proteus仿真圖圖2二、實(shí)物調(diào)試圖圖3三、實(shí)際調(diào)試步驟1、將程序代碼載進(jìn)萬(wàn)利仿真軟件里,并且使得代碼編譯無(wú)錯(cuò)誤;2、將萬(wàn)利仿真機(jī)和設(shè)計(jì)板接入電源,并且通過(guò)萬(wàn)利軟件將代碼輸出到萬(wàn)利仿真機(jī)進(jìn)行調(diào)試;3、代碼輸出成功后,根據(jù)設(shè)計(jì)所需要的功能在板上調(diào)試,將調(diào)試結(jié)果拍照進(jìn)行分析。四、性能分析按鍵按下時(shí)有時(shí)候不能實(shí)現(xiàn)對(duì)應(yīng)功能,原因是lcd工作頻率較慢;P2^3除了用作74LS164的DIN端外還用于LCD1602的RW端,調(diào)試時(shí)得對(duì)代碼進(jìn)行相關(guān)的調(diào)整,以避免工作紊亂。五、心得體會(huì)通過(guò)這次設(shè)計(jì)性試驗(yàn),知道了80C51、LCD1602以及164做按鍵掃描的工作原理,加深了對(duì)單片機(jī)程序設(shè)計(jì)的理解以及對(duì)單片機(jī)的硬件電路了解加深。另外學(xué)會(huì)了如何將課堂上學(xué)到的東西應(yīng)用到實(shí)際設(shè)計(jì)上來(lái),對(duì)自己實(shí)際操作能力的能有著很大的提高。六、成品展示附錄部分附件一、電路設(shè)計(jì)原理圖附件二、系統(tǒng)設(shè)計(jì)原始代碼程序/************************************************P2.3口lcd和按鍵同時(shí)占用lcd時(shí)鐘顯示包括鬧鐘(響十秒)整點(diǎn)報(bào)時(shí)時(shí)間設(shè)置日期設(shè)置(只能調(diào)日和星期)k0切換顯示(時(shí)間或年月日)k1切換所要調(diào)的0~6(要調(diào)的位置會(huì)閃爍0什么都不調(diào))k2k3調(diào)加減和鬧鐘開(kāi)關(guān)*************************************************/#include<reg52.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedint#definelcd_dateP0sbitLEDCLK=P3^4;sbitLEDDIN=P2^3;sbitPoint=P0^0;sbitBEEP=P1^2;sbitKey_InPut=P1^0;sbitlcd_en=P2^2;sbitlcd_rw=P2^3;sbitlcd_rs=P2^4;ucharkeynum=0;ucharKeytemp;ucharKeyval;ucharA1,A2,A3,A4,A5,A6,g,h,h1,h2,f1,f2,d1,d2,w1;ucharsecond=0;ucharminute=10;ucharhour=14;ucharzhou=2;uchartian=1;ucharshi=0,fen=0;uchart;unsignedcharkeybak=0,keyb;//前一個(gè)鍵盤(pán)備份unsignedcharkeyva=0;//按鍵值存放單元bitx=0,y=0,m=0,n=0,p=0,q=0,r=0,s=0;bitkeyup,flag=0,flag1=0,flag2=0;//按鍵是否執(zhí)行標(biāo)志ucharidatatable1[]={'','','','','','1','4','-','1','0','-','0','0','',''};ucharidatatable2[]={'0','0','-','0','0','','','c'};ucharidatatable3[]={'','2','0','1','3','-','0','1','-','0','1','',''}; ucharidatatable4[]={'','z','h','o','u','-','','2',''};voiddelay_ms(unsignedinttms) {unsignedchari;while(tms--)for(i=123;i>0;i--);}voiddelay_us(unsignedinttt) { while(tt--) { ; }}//蜂鳴器voidBeep(){uchari;for(i=0;i<100;i++){delay_ms(1);BEEP=~BEEP;}BEEP=0;}voidWrite_com(ucharcom){ lcd_rw=0; lcd_rs=0; lcd_date=com; delay_ms(2); lcd_en=1; delay_ms(2); lcd_en=0;}voidWrite_dat(uchardat){ lcd_rw=0; lcd_rs=1; lcd_date=dat; delay_ms(2); lcd_en=1; delay_ms(2); lcd_en=0;}voidlcd_init(){ lcd_en=0; delay_ms(15); Write_com(0x38); delay_ms(5); Write_com(0x38); delay_ms(5); Write_com(0x38);//顯示模式設(shè)置 Write_com(0x08);//顯示關(guān)閉 Write_com(0X01);//清屏 Write_com(0x06);//顯示光標(biāo)移動(dòng)設(shè)置 Write_com(0X0c);//顯示開(kāi)及光標(biāo)設(shè)置}voidupdata_table1() //lcd顯示更新{ A1=hour/10; A2=hour%10; A3=minute/10; A4=minute%10; A5=second/10; A6=second%10; d1=tian/10; d2=tian%10; w1=zhou%10; h1=shi/10; h2=shi%10; f1=fen/10; f2=fen%10; table1[5]=A1+'0'; table1[6]=A2+'0'; table1[8]=A3+'0'; table1[9]=A4+'0'; table1[11]=A5+'0'; table1[12]=A6+'0'; table2[0]=h1+'0'; table2[1]=h2+'0'; table2[3]=f1+'0'; table2[4]=f2+'0';if(flag1==0)table2[7]='c';if(flag1==1)table2[7]='o'; table3[9]=d1+'0'; table3[10]=d2+'0'; table4[7]=w1+'0';}voidRead_Key() //讀按鍵值{P1=0xff;Keytemp<<=1; if(Key_InPut==1){ Keytemp++; }}voidkeyscan(){unsignedchartemp=0;//臨時(shí)變量if(Keytemp!=0xff)temp=Keytemp;if(temp==0){keyup=1;//按鍵已經(jīng)放開(kāi)keybak=0;//清除按鍵備份值keyva=0;}elseif(temp==keybak&&keyup==1)//兩次的檢測(cè)的值一樣且按鍵已經(jīng)放開(kāi){keyva=temp;//存放按鍵值keyup=0;}else//按鍵已經(jīng)執(zhí)行且還沒(méi)放開(kāi)keybak=temp;//把新的鍵值放入備份單元}voidkey_data(){ucharj;LEDCLK=0;LEDDIN=0;_nop_();LEDCLK=1;for(j=0;j<8;j++){Read_Key();LEDCLK=0;LEDDIN=1;_nop_();LEDCLK=1;}} voidKey_job() //鍵值{switch(Keyval) { case0x7f:x=1;break; case0xbf:y=1;break; case0xdf:m=1;break; case0xef:n=1;break; case0xf7:p=1;break; case0xfb:q=1;break; case0xfd:r=1;break; case0xfe:s=1;break; }}voidkey_choose(){if(y==1&&Keytemp==0xff) { keynum++; Beep(); if(keynum==7)keynum=0; y=0; } if(flag2==1) { switch(keynum) { case1:table1[6]='';break; case2:table1[9]='';break; case3:table2[1]='';break; case4:table2[4]='';break; case5:table2[7]='';break; case6:table3[10]='';table4[7]='';break; } }}voidkey_updata() {if(x==1&&Keytemp==0xff){ Beep(); x=0; flag=~flag; }if(keynum==1&&Keytemp==0xff&&m==1) { hour++; if(hour==24)hour=0; m=0; }if(keynum==1&&Keytemp==0xff&&n==1) { hour--; if(hour==0xff)hour=23; n=0; }if(keynum==2&&Keytemp==0xff&&m==1){minute++; if(minute==60)minute=0; m=0; }if(keynum==2&&Keytemp==0xff&&n==1) { minute--; if(minute==0xff)minute=59; n=0;}if(keynum==6&&Keytemp==0xff&&m==1){tian++;zhou++;if(tian==32)tian=1; if(zhou==8)zhou=1; m=0; }if(keynum==3&&Keytemp==0xff&&m==1) { shi++; if(shi==24)shi=0; m=0; }if(keynum==3&&Keytemp==0xff&&n==1) { shi--; if(shi==0xff)shi=23; n=0; }if(keynum==4&&Keytemp==0xff&&m==1){fen++; if(fen==60)fen=0; m=0; }if(keynum==4&&Keytemp==0xff&&n==1){fen--; if(fen==0xff)fen=59; n=0; }if(keynum==5&&Keytemp==0xff&&m==1) { flag1=~flag1; m=0;}} voidkey_init(){ uchari;for(i=0;i<8;i++){LEDCLK=0;LEDDIN=1;_nop_();LEDCLK=1;}TMOD=0x01;TH0=0x3C;TL0=0xB0;EA=1;ET0=1;TR0=1;}voidalarm(){if(minute==0x3b&&second==0x3b) Beep(); if(flag1==1) { if(hour==shi&&minute==fen) { Beep(); if(second==10)flag1=0; } }}voidlcd_display(){ucharnum;if(flag==0){ Write_com(0X80+0x00); for(num=0;num<15;num++) { Write_dat(table1[num]); }Wri
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版甲醛合作協(xié)議書(shū)范本
- 武漢海事職業(yè)學(xué)院《基礎(chǔ)醫(yī)學(xué)概要》2023-2024學(xué)年第一學(xué)期期末試卷
- 溫州大學(xué)《測(cè)繪管理與法規(guī)》2023-2024學(xué)年第一學(xué)期期末試卷
- 二零二五版房產(chǎn)收購(gòu)項(xiàng)目驗(yàn)收標(biāo)準(zhǔn)協(xié)議書(shū)3篇
- 2024高層管理人員保密知識(shí)與信息保護(hù)合同版B版
- 二零二五版夫妻自愿離婚協(xié)議及財(cái)產(chǎn)分配范本6篇
- 2025年度新能源汽車(chē)充電樁安裝與運(yùn)營(yíng)服務(wù)合同6篇
- 唐山工業(yè)職業(yè)技術(shù)學(xué)院《植物營(yíng)養(yǎng)診斷與施肥(實(shí)驗(yàn))》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024版治療承諾協(xié)議書(shū)
- 二零二五年度海鮮產(chǎn)品國(guó)際認(rèn)證采購(gòu)合同3篇
- 職業(yè)技能鑒定要素細(xì)目表和卷庫(kù)編寫(xiě)要求
- 公司設(shè)備轉(zhuǎn)讓合同協(xié)議書(shū)
- 2023年全國(guó)統(tǒng)一建筑工程預(yù)算工程量計(jì)算規(guī)則完整版
- 教科版四年級(jí)科學(xué)下冊(cè)第三單元巖石與土壤4.制作巖石和礦物標(biāo)本(教學(xué)設(shè)計(jì))教案
- 大學(xué)《工程力學(xué)》期末考試試題庫(kù)含詳細(xì)答案
- 2022年湖北省武漢市中考數(shù)學(xué)試卷含解析
- TLFSA 003-2020 危害分析與關(guān)鍵控制點(diǎn)(HACCP)體系調(diào)味面制品生產(chǎn)企業(yè)要求
- LY/T 2244.3-2014自然保護(hù)區(qū)保護(hù)成效評(píng)估技術(shù)導(dǎo)則第3部分:景觀保護(hù)
- 紀(jì)律教育月批評(píng)與自我批評(píng)五篇
- GB/T 26480-2011閥門(mén)的檢驗(yàn)和試驗(yàn)
- GB/T 13342-2007船用往復(fù)式液壓缸通用技術(shù)條件
評(píng)論
0/150
提交評(píng)論