智能儀器及應(yīng)用實驗報告基于51單片機的簡易電子表設(shè)計與仿真_第1頁
智能儀器及應(yīng)用實驗報告基于51單片機的簡易電子表設(shè)計與仿真_第2頁
智能儀器及應(yīng)用實驗報告基于51單片機的簡易電子表設(shè)計與仿真_第3頁
智能儀器及應(yīng)用實驗報告基于51單片機的簡易電子表設(shè)計與仿真_第4頁
智能儀器及應(yīng)用實驗報告基于51單片機的簡易電子表設(shè)計與仿真_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、智能儀器及應(yīng)用實驗報告項目名稱: 基于51單片機的簡易電子表設(shè)計與仿真專業(yè)名稱:測控技術(shù)與儀器班 級:測控0901學(xué)生姓名:劉景坤18 魯娣聲23 張長軒34指導(dǎo)教師:段海龍 李宏偉一、任務(wù)要求使用keil uvision編程軟件以及isis 7 professional仿真軟件制作一個簡易電子表,要求具備電子表基本功能(時間顯示、時間調(diào)整等)。二、總體設(shè)計方案利用at89c51作為控制以及1602lcd作為顯示,通過6個按鍵實現(xiàn)出入時間設(shè)置狀態(tài)、出入鬧鈴設(shè)置狀態(tài)、小時位調(diào)整、分鐘位調(diào)整、開關(guān)鬧鈴等功能。系統(tǒng)的流程圖如下:圖1-1 系統(tǒng)仿真流程圖三、系統(tǒng)硬件1、at89c51引腳功能說明:at

2、89c51芯片如圖1-2所示圖1-2 at89c51vcc:供電電壓。 gnd:接地。 p0口:p0口為一個8位漏極開路雙向i/o口,每腳可吸收8ttl門電流。當(dāng)p1口的管腳第一次寫1時,被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時,p0 口作為原碼輸入口,當(dāng)fiash進行校驗時,p0輸出原碼,此時p0外部必須被拉高。 p1口:p1口是一個內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門電流。p1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編

3、程和校驗時,p1口作為第八位地址接收。 p2口:p2口為一個內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個ttl門電流,當(dāng)p2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,p2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗時接收高八位地址信號和控制信號。 p3口:p3口管腳是8個內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個

4、ttl門電流。當(dāng)p3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為at89c51的一些特殊功能口,如下所示: 口管腳 備選功能 p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 (外部中斷0) p3.3 (外部中斷1) p3.4 t0(記時器0外部輸入) p3.5 t1(記時器1外部輸入) p3.6 (外部數(shù)據(jù)存儲器寫選通) p3.7 (外部數(shù)據(jù)存儲器讀選通) p3口同時為閃爍編程和編程校驗接收一些控制信號。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持rst腳兩個機器周

5、期的高電平時間。 ale:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時,ale端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時,ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無效。 :外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次有效。但在訪問外部數(shù)據(jù)

6、存儲器時,這兩次有效的信號將不出現(xiàn)。 :當(dāng)保持低電平時,則在此期間外部程序存儲器(0000h-ffffh),不管是否有內(nèi)部程序存儲器。注意加密方式1時,將內(nèi)部鎖定為reset;當(dāng)端保持高電平時,此間內(nèi)部程序存儲器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。 振蕩器特性: xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅(qū)動器件,xtal2應(yīng)不接。有余輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對

7、外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。2、1602lcd液晶顯示引腳功能說明:1602lcd顯示用來顯示當(dāng)前時鐘與鬧鐘時間。當(dāng)運行仿真軟件時,可以清楚的看到時間。1602lcd芯片如圖1-3所示圖1-3 1602lcd編號符號引腳說明編號符號引腳說明1vss電源地8d1數(shù)據(jù)2vdd電源正極9d2數(shù)據(jù)3vl液晶顯示偏壓10d3數(shù)據(jù)4rs數(shù)據(jù)/命令選擇11d4數(shù)據(jù)5r/w讀/寫選擇12d5數(shù)據(jù)6e使能信號13d6數(shù)據(jù)7d0數(shù)據(jù)14d7數(shù)據(jù)四、系統(tǒng)軟件設(shè)計設(shè)計仿真圖:圖1-4 電子表仿真圖設(shè)計程序:#include#define uint unsigned int #de

8、fine uchar unsigned char#define portp0void inc_second();void inc_minute();void inc_hour();void disp_sfm(uchar x,uchar y,uchar dat);void delay(unsigned int ms)unsigned int i,j;for(i=0;ims;i+)for(j=0;j100;j+);sbit setsj=p20;/設(shè)置時間sbit setnl=p21;/設(shè)置鬧鈴sbit ts=p22;/調(diào)整小時sbit tf=p23;/調(diào)整分鐘sbit knl=p24;/開鬧鈴sb

9、it gnl=p25;/關(guān)鬧鈴sbit lcden=p26;/lcd使能端sbit lcdrs=p27;/lcd數(shù)據(jù)命令選擇端sbit lam=p10;/am指示燈sbit lpm=p11;/pm指示燈sbit lnl=p12;/鬧鈴就緒指示燈uchar sj,tzflag,nlflag,tznl,wdnum,hwnum;uchar hour,minute,second,tcnt,nlhour,nlminute,nldk;uchar code table1= 00:00:00;uchar code bmp=0x0e,0x11,0x1f,0x00,0x0a,0x00,0x00,0x00,0x0c

10、,0x12,0x12,0x0c,0x00,0x00,0x00,0x00;/鬧鈴符號void wcmd(uchar cmd)/lcd1602寫指令lcden=0;lcdrs=0;port=cmd;delay(5);lcden=1;delay(5);lcden=0;void wdata(uchar dat)/lcd1602寫數(shù)據(jù)lcden=0;lcdrs=1;port=dat;delay(5);lcden=1;delay(5);lcden=0;void goxy(uchar x,uchar y)if(x=1)wcmd(0x80+y);elsewcmd(0x80+0x40+y);void disp_

11、str(uchar *str)while(*str)wdata(*str);str+;void disp_bmp(uchar x,uchar y,uchar dat)goxy(x,y);wdata(dat);void lcd_init() uchar i ;wcmd(0x38);/顯示模式設(shè)置:16*2,5*7,8位數(shù)據(jù)接口wcmd(0x0c);/開顯示,不顯光標(biāo),光標(biāo)不閃爍wcmd(0x06);/地址自動加1wcmd(0x01);/清屏wcmd(0x40);/寫cgram for (i=0;i16;i+) wdata(bmpi);goxy(2,0);disp_str(table1);void

12、 timer0_init()tmod=0x01;th0=0x4c;tl0=0;ea=1;et0=1;tr0=1;void timer0() interrupt 1th0=0x4c;tl0=0;tcnt+;if(tcnt=20)tcnt=0;inc_second();disp_sfm(2,4,hour);disp_sfm(2,7,minute);disp_sfm(2,10,second);wdata( );wdata( );wdata( );wdata( );wdata( );inc_minute_nop()minute+;if(minute=60)minute=0;void inc_secon

13、d()second+;if(second=60) second=0; inc_minute();if(second%2) /隔一秒:閃一次goxy(2,9);wdata( );elsegoxy(2,9);wdata(:);void inc_minute()minute+;if(minute=60)minute=0;inc_hour();void inc_hour()hour+;if(hour=24)hour=0;void inc_nlminute()nlminute+;if(nlminute=60)nlminute=0;void inc_nlhour()nlhour+;if(nlhour=24

14、)nlhour=0;void disp_sfm(uchar x,uchar y,uchar dat)uchar shi,ge;shi=dat/10+0;ge=dat%10+0; /加0表示算出的數(shù)要加上0的ascii碼才能顯示出想要的數(shù)goxy(x,y);wdata(shi);wdata(ge);void disp_apm()if(hour12)goxy(2,0);wdata(a);wdata(m);elsegoxy(2,0);wdata(p);wdata(m);void tzsjfun()if(nlflag=0)/若鬧鈴沒按下,則可設(shè)置時間,否則無效 if(setsj=0)delay(2);

15、while(!setsj);delay(2);if(setsj=1) /表示按下了設(shè)置時間,且已經(jīng)消抖 sj+;if(sj=1)tr0=0;/按下1次停止計時if(sj=2) /第2次按下表示設(shè)置完畢tr0=1;sj=0; if(sj)/要調(diào)整時間goxy(2,9);wdata(:);if(ts=0)delay(2);while(!ts);delay(2);if(ts=1)tzflag=1;if(tf=0)delay(2);while(!tf);delay(2);if(tf=1)tzflag=2;if(tzflag)if(tzflag=1)tzflag=0;inc_hour();disp_sf

16、m(2,4,hour);if(tzflag=2)tzflag=0;inc_minute_nop();disp_sfm(2,7,minute);void nl0()nlhour=0;nlminute=0;disp_sfm(1,4,nlhour);wdata(:);disp_sfm(1,7,nlminute);void nldisappear()uchar i;goxy(1,0);for(i=0;i9;i+)wdata( );delay(2);void tznlfun()if(sj=0)/若設(shè)置時間沒按下,則可設(shè)置鬧鈴,否則無效 if(wdnum=0)if(setnl=0)while(!setnl);delay(5);if(setnl=1)nlflag+;if(nlflag=1)nl0();if(nlflag=2)/按下1次鬧鈴鍵,設(shè)置鬧鈴;按下2次,設(shè)置完畢;nlflag

溫馨提示

  • 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)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論