版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、智能儀器及應(yīng)用實(shí)驗(yàn)報(bào)告項(xiàng)目名稱(chēng): 基于51單片機(jī)的簡(jiǎn)易電子表設(shè)計(jì)與仿真專(zhuān)業(yè)名稱(chēng):測(cè)控技術(shù)與儀器班 級(jí):測(cè)控0901學(xué)生姓名:劉景坤18 魯娣聲23 張長(zhǎng)軒34指導(dǎo)教師:段海龍 李宏偉一、任務(wù)要求使用keil uvision編程軟件以及isis 7 professional仿真軟件制作一個(gè)簡(jiǎn)易電子表,要求具備電子表基本功能(時(shí)間顯示、時(shí)間調(diào)整等)。二、總體設(shè)計(jì)方案利用at89c51作為控制以及1602lcd作為顯示,通過(guò)6個(gè)按鍵實(shí)現(xiàn)出入時(shí)間設(shè)置狀態(tài)、出入鬧鈴設(shè)置狀態(tài)、小時(shí)位調(diào)整、分鐘位調(diào)整、開(kāi)關(guān)鬧鈴等功能。系統(tǒng)的流程圖如下:圖1-1 系統(tǒng)仿真流程圖三、系統(tǒng)硬件1、at89c51引腳功能說(shuō)明:at
2、89c51芯片如圖1-2所示圖1-2 at89c51vcc:供電電壓。 gnd:接地。 p0口:p0口為一個(gè)8位漏極開(kāi)路雙向i/o口,每腳可吸收8ttl門(mén)電流。當(dāng)p1口的管腳第一次寫(xiě)1時(shí),被定義為高阻輸入。p0能夠用于外部程序數(shù)據(jù)存儲(chǔ)器,它可以被定義為數(shù)據(jù)/地址的第八位。在fiash編程時(shí),p0 口作為原碼輸入口,當(dāng)fiash進(jìn)行校驗(yàn)時(shí),p0輸出原碼,此時(shí)p0外部必須被拉高。 p1口:p1口是一個(gè)內(nèi)部提供上拉電阻的8位雙向i/o口,p1口緩沖器能接收輸出4ttl門(mén)電流。p1口管腳寫(xiě)入1后,被內(nèi)部上拉為高,可用作輸入,p1口被外部下拉為低電平時(shí),將輸出電流,這是由于內(nèi)部上拉的緣故。在flash編
3、程和校驗(yàn)時(shí),p1口作為第八位地址接收。 p2口:p2口為一個(gè)內(nèi)部上拉電阻的8位雙向i/o口,p2口緩沖器可接收,輸出4個(gè)ttl門(mén)電流,當(dāng)p2口被寫(xiě)“1”時(shí),其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時(shí),p2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。p2口當(dāng)用于外部程序存儲(chǔ)器或16位地址外部數(shù)據(jù)存儲(chǔ)器進(jìn)行存取時(shí),p2口輸出地址的高八位。在給出地址“1”時(shí),它利用內(nèi)部上拉優(yōu)勢(shì),當(dāng)對(duì)外部八位地址數(shù)據(jù)存儲(chǔ)器進(jìn)行讀寫(xiě)時(shí),p2口輸出其特殊功能寄存器的內(nèi)容。p2口在flash編程和校驗(yàn)時(shí)接收高八位地址信號(hào)和控制信號(hào)。 p3口:p3口管腳是8個(gè)內(nèi)部上拉電阻的雙向i/o口,可接收輸出4個(gè)
4、ttl門(mén)電流。當(dāng)p3口寫(xiě)入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,p3口將輸出電流(ill)這是由于上拉的緣故。 p3口也可作為at89c51的一些特殊功能口,如下所示: 口管腳 備選功能 p3.0 rxd(串行輸入口) p3.1 txd(串行輸出口) p3.2 (外部中斷0) p3.3 (外部中斷1) p3.4 t0(記時(shí)器0外部輸入) p3.5 t1(記時(shí)器1外部輸入) p3.6 (外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通) p3.7 (外部數(shù)據(jù)存儲(chǔ)器讀選通) p3口同時(shí)為閃爍編程和編程校驗(yàn)接收一些控制信號(hào)。 rst:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時(shí),要保持rst腳兩個(gè)機(jī)器周
5、期的高電平時(shí)間。 ale:當(dāng)訪問(wèn)外部存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ale端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此它可用作對(duì)外部輸出的脈沖或用于定時(shí)目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ale脈沖。如想禁止ale的輸出可在sfr8eh地址上置0。此時(shí),ale只有在執(zhí)行movx,movc指令是ale才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ale禁止,置位無(wú)效。 :外部程序存儲(chǔ)器的選通信號(hào)。在由外部程序存儲(chǔ)器取指期間,每個(gè)機(jī)器周期兩次有效。但在訪問(wèn)外部數(shù)據(jù)
6、存儲(chǔ)器時(shí),這兩次有效的信號(hào)將不出現(xiàn)。 :當(dāng)保持低電平時(shí),則在此期間外部程序存儲(chǔ)器(0000h-ffffh),不管是否有內(nèi)部程序存儲(chǔ)器。注意加密方式1時(shí),將內(nèi)部鎖定為reset;當(dāng)端保持高電平時(shí),此間內(nèi)部程序存儲(chǔ)器。在flash編程期間,此引腳也用于施加12v編程電源(vpp)。 xtal1:反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入。 xtal2:來(lái)自反向振蕩器的輸出。 振蕩器特性: xtal1和xtal2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內(nèi)振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時(shí)鐘源驅(qū)動(dòng)器件,xtal2應(yīng)不接。有余輸入至內(nèi)部時(shí)鐘信號(hào)要通過(guò)一個(gè)二分頻觸發(fā)器,因此對(duì)
7、外部時(shí)鐘信號(hào)的脈寬無(wú)任何要求,但必須保證脈沖的高低電平要求的寬度。2、1602lcd液晶顯示引腳功能說(shuō)明:1602lcd顯示用來(lái)顯示當(dāng)前時(shí)鐘與鬧鐘時(shí)間。當(dāng)運(yùn)行仿真軟件時(shí),可以清楚的看到時(shí)間。1602lcd芯片如圖1-3所示圖1-3 1602lcd編號(hào)符號(hào)引腳說(shuō)明編號(hào)符號(hào)引腳說(shuō)明1vss電源地8d1數(shù)據(jù)2vdd電源正極9d2數(shù)據(jù)3vl液晶顯示偏壓10d3數(shù)據(jù)4rs數(shù)據(jù)/命令選擇11d4數(shù)據(jù)5r/w讀/寫(xiě)選擇12d5數(shù)據(jù)6e使能信號(hào)13d6數(shù)據(jù)7d0數(shù)據(jù)14d7數(shù)據(jù)四、系統(tǒng)軟件設(shè)計(jì)設(shè)計(jì)仿真圖:圖1-4 電子表仿真圖設(shè)計(jì)程序:#include<reg51.h>#define uint u
8、nsigned int #define 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;i<ms;i+)for(j=0;j<100;j+);sbit setsj=p20;/設(shè)置時(shí)間sbit setnl=p21;/設(shè)置鬧鈴sbit ts=p22;/調(diào)整小時(shí)sbit tf=p23;/
9、調(diào)整分鐘sbit knl=p24;/開(kāi)鬧鈴sbit 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,
10、0x1f,0x00,0x0a,0x00,0x00,0x00,0x0c,0x12,0x12,0x0c,0x00,0x00,0x00,0x00;/鬧鈴符號(hào)void wcmd(uchar cmd)/lcd1602寫(xiě)指令lcden=0;lcdrs=0;port=cmd;delay(5);lcden=1;delay(5);lcden=0;void wdata(uchar dat)/lcd1602寫(xiě)數(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
11、);elsewcmd(0x80+0x40+y);void disp_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);/開(kāi)顯示,不顯光標(biāo),光標(biāo)不閃爍wcmd(0x06);/地址自動(dòng)加1wcmd(0x01);/清屏wcmd(0x40);/寫(xiě)cgram for (i=0;i<16;i+) wdata
12、(bmpi);goxy(2,0);disp_str(table1);void 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('
13、; ');wdata(' ');inc_minute_nop()minute+;if(minute=60)minute=0;void inc_second()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_ho
14、ur()hour+;if(hour=24)hour=0;void inc_nlminute()nlminute+;if(nlminute=60)nlminute=0;void inc_nlhour()nlhour+;if(nlhour=24)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);voi
15、d disp_apm()if(hour<12)goxy(2,0);wdata('a');wdata('m');elsegoxy(2,0);wdata('p');wdata('m');void tzsjfun()if(nlflag=0)/若鬧鈴沒(méi)按下,則可設(shè)置時(shí)間,否則無(wú)效 if(setsj=0)delay(2);while(!setsj);delay(2);if(setsj=1) /表示按下了設(shè)置時(shí)間,且已經(jīng)消抖 sj+;if(sj=1)tr0=0;/按下1次停止計(jì)時(shí)if(sj=2) /第2次按下表示設(shè)置完畢tr0=1;sj
16、=0; if(sj)/要調(diào)整時(shí)間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_sfm(2,4,hour);if(tzflag=2)tzflag=0;inc_minute_nop();disp_sfm(2,7,minute);void nl0()nlhour=0;nlminute
17、=0;disp_sfm(1,4,nlhour);wdata(':');disp_sfm(1,7,nlminute);void nldisappear()uchar i;goxy(1,0);for(i=0;i<9;i+)wdata(' ');delay(2);void tznlfun()if(sj=0)/若設(shè)置時(shí)間沒(méi)按下,則可設(shè)置鬧鈴,否則無(wú)效 if(wdnum=0)if(setnl=0)while(!setnl);delay(5);if(setnl=1)nlflag+;if(nlflag=1)nl0();if(nlflag=2)/按下1次鬧鈴鍵,設(shè)置鬧鈴;
18、按下2次,設(shè)置完畢;nlflag=0;nldisappear();if(nlflag)/要設(shè)置鬧鈴if(nlhour<12)goxy(1,0);wdata('a');wdata('m');elsegoxy(1,0);wdata('p');wdata('m');if(ts=0)while(!ts);delay(5);if(ts=1)tznl=1;if(tf=0)while(!tf);delay(5);if(tf=1)tznl=2;if(tznl)if(tznl=1)tznl=0;inc_nlhour();disp_sfm(1,4,nlhour);if(tznl=2)tznl=0;inc_nlminute();disp_sfm(1,7,nlminute);void kgnlf
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年個(gè)人居間協(xié)議范文(2篇)
- 2025年個(gè)人貨運(yùn)汽車(chē)租賃合同模板(2篇)
- 2025年產(chǎn)品經(jīng)銷(xiāo)協(xié)議標(biāo)準(zhǔn)范文(2篇)
- 2025年五年級(jí)班主任期末個(gè)人工作總結(jié)模版(2篇)
- 2025年產(chǎn)品供貨合同格式范文(2篇)
- 智慧小鎮(zhèn)用地中介合同范本
- 辦公大樓石材運(yùn)送合同模板
- 2025年度安防設(shè)備展覽會(huì)現(xiàn)場(chǎng)展位安保合同
- 婚慶服務(wù)居間合同
- 教育設(shè)施改造貸款居間合同
- RB/T 101-2013能源管理體系電子信息企業(yè)認(rèn)證要求
- GB/T 4513.7-2017不定形耐火材料第7部分:預(yù)制件的測(cè)定
- GB/T 10205-2009磷酸一銨、磷酸二銨
- 公司財(cái)務(wù)制度及流程
- 高支模專(zhuān)項(xiàng)施工方案(專(zhuān)家論證)
- 深圳版初中英語(yǔ)單詞匯總
- 健康養(yǎng)生,快樂(lè)生活課件
- 《物流與供應(yīng)鏈管理-新商業(yè)、新鏈接、新物流》配套教學(xué)課件
- MDD指令附錄一 基本要求檢查表2013版
- 駱駝祥子1一24章批注
- 新部編人教版四年級(jí)下冊(cè)道德與法治全冊(cè)教案(教學(xué)設(shè)計(jì))
評(píng)論
0/150
提交評(píng)論