




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.SETTINGS.H#include<reg51.h>#define uint unsigned int#define uchar unsigned char/ 延時(shí)程序 ,以毫秒為單位 ,用軟件計(jì)時(shí) ,輸入的參數(shù)為毫秒數(shù)void Delay_ms( uint Time);/ 電梯向上走void Up();/ 電梯向下走void Down();/ 報(bào)警函數(shù)void Warnning();/ 獲取目的樓層void Destination();/ 顯示某一樓層void Display( uchar n, uchar a);.專業(yè)專注./ 閃爍顯示到達(dá)的樓層void Flash( uc
2、har a);/ 點(diǎn)陣鍵盤掃描uchar KBScan();/ 延時(shí)void dl_ms();/ 解析出按鍵所代表的樓層uchar Reprsent();.專業(yè)專注.SIMPLE.C#include "settings.h"uchar code TAB16 =0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;sbit P0_0 = P00;sbit P0_1 = P01;sbit P0_2 = P02;sbit P0_3 = P03;sbit P0_4 = P04;
3、sbit P0_5 = P05;sbit P0_6 = P06;sbit P0_7 = P07;sbit P1_0 = P10;uchar lift = 1;/電梯所在的樓層uchar destination1 = 1;/電梯的目的樓層uchar flag = 0;/進(jìn)入電梯程序的標(biāo)志.專業(yè)專注.uchar key;/按鍵的鍵碼uchar request = 0, 0, 0, 0, 0, 0, 0, 0, 0;/18樓有無請(qǐng)求 ,有請(qǐng)求為1uchar status = 1;/電梯往上還是往下走, 1 為上 , 0 為下/ 報(bào)警的響聲的頻率產(chǎn)生void Timer1() interrupt 3P
4、1_0 = P1_0;TH1 = 0xfc;TL1 = 0x0c;int main()uchar i;P0 = 0xff;P2 = 0x76;/數(shù)碼管 HEA = 1;/開啟外部中斷INT0EX0 = 1;IT0 = 1;while(1)/ 檢查 flag 標(biāo)志.專業(yè)專注./flag初始化為0if(flag = 1)/ 在中斷中將其置1break;P1 = 0x01;/ 數(shù)碼管跑馬顯示HDelay_ms( 100);/flag置 1 后則進(jìn)入電梯程序for(i = 0; i < 5; +i)P1=P1<<1;Delay_ms( 100);while(1)/ 電梯程序的循環(huán)if
5、( (key = KBscan() = 0x77)/ 若點(diǎn)陣按鍵右下角的按鍵(其代碼為0x77 )按下Warnning();/ 則報(bào)警.專業(yè)專注.elseDestination();/ 查詢有無樓層請(qǐng)求到達(dá)if( destination1 >= lift)/ 請(qǐng)求的樓層比要到達(dá)的樓層高Up();/ 電梯向上走elseDown();/ 否則電梯向下走return 0;/ 中斷請(qǐng)求 ,將 flag 置 1,表示要進(jìn)入電梯程序void Int0() interrupt 0.專業(yè)專注.flag = 1;/ 延時(shí)程序 ,以毫秒為單位 ,用軟件計(jì)時(shí) ,輸入的參數(shù)void Delay_ms( uint
6、 Time)uint i = 0, j = 0;for(i = 0; i < Time; +i)for( j = 0; j < 125; +j);/ 電梯向上走void Up()uchar n, m;/n為所在樓層 , m 為存儲(chǔ)查詢有無樓層請(qǐng)求的變量uchar i;/ 循環(huán)控制status = 1;/ 置 1 表示電梯向上走.專業(yè)專注.for( n = lift; n <= destination1; +n)/ 電梯到達(dá)目的樓層之前往上走Display( n, 1);/ 沒到達(dá)一樓就顯示該樓層數(shù)lift = n;m = Represent();/ 讀取點(diǎn)陣鍵盤if( m =
7、 9)/ 報(bào)警鍵按下則報(bào)警Warnning();else/ 有樓層請(qǐng)求到達(dá)/ 將對(duì)應(yīng)的request 置 1requestm = 1;for(i = 1; i <= 8; +i)/ 若請(qǐng)求到達(dá)的樓層在所在樓層和目的樓層之間/ 則停下閃爍顯示if( requesti = 1 && i = n)/ 并將其對(duì)應(yīng)的request 清零requesti = 0;Flash( 1);.專業(yè)專注.-n;lift = n;Flash( 1);/ 到達(dá)目的樓層閃爍顯示該樓層/ 電梯向下走void Down()uchar n, m;/n 為所在樓層 , m 為存儲(chǔ)查詢有無樓層請(qǐng)求的變量uch
8、ar i;/ 循環(huán)控制status = 0;/ 置 1 表示電梯向上走for( n = lift; n >= destination1; -n)/ 電梯到達(dá)目的樓層之前往下走Display( n, 0);/ 沒到達(dá)一樓就顯示該樓層數(shù)lift = n;m = Represent();/ 讀取點(diǎn)陣鍵盤if( m = 9)/ 報(bào)警鍵按下則報(bào)警.專業(yè)專注.Warnning();else/ 有樓層請(qǐng)求到達(dá)/ 將對(duì)應(yīng)的request 置 1requestm = 1;for(i = 1; i <= 8; +i)/ 若請(qǐng)求到達(dá)的樓層在所在樓層和目的樓層之間/ 則停下閃爍顯示if( requesti
9、 = 1 && i = n) /并將其對(duì)應(yīng)的request 清零requesti = 0;Flash( 0);+n;lift = n;Flash( 0);/ 到達(dá)目的樓層閃爍顯示該樓層.專業(yè)專注./ 報(bào)警函數(shù)void Warnning()TMOD = 0x10;/T1定時(shí)器初始化ET1 = 1;TH1 = 0xfc;TL1 = 0x0c;TR1 = 1;while(1)P1= 0x02;/ 顯示 STOPP2= 0x6D;Delay_ms( 5);P1= 0x04;P2= 0x07;Delay_ms( 5);P1= 0x08;P2= 0x3f;Delay_ms( 5);P1=
10、0x10;P2= 0x73;.專業(yè)專注.Delay_ms( 5);if( KBScan() != 0x77) /報(bào)警鍵沒有按/ 則跳出 ,并停止喇叭響TR1 = 0;break;/ 獲取目的樓層void Destination()uchar j, n;/j循環(huán)控制變量 , n 存儲(chǔ)度點(diǎn)陣鍵盤變量n = Represent(); /有鍵按下requestn = 1;/ 其對(duì)應(yīng)的樓層request 置 1if( status = 1)/ 若電梯向上走則從高樓層到低樓層掃描/ 以此達(dá)到判斷優(yōu)先級(jí)的目的for( j = 8; j >= 1; -j).專業(yè)專注.if( requestj = 1)r
11、equest j = 0;/ 哪一層有請(qǐng)求destination1 = j;/ 則將目的樓層設(shè)為該樓break;/ 并將其對(duì)應(yīng)的request 置 1,然后跳出else if( status = 0)/ 若電梯向下走則從低樓層到高樓層掃描/ 以此達(dá)到判斷優(yōu)先級(jí)的目的for( j = 1; j <= 8; +j)if( requestj = 1)request j = 0;destination1 = j;break;.專業(yè)專注./ 顯示某一樓層void Display( uchar n, uchar a)uchar i, b;if(a = 1)b = 0x73;else if(a = 0
12、)b = 0x5E;for(i = 0; i < 60; +i)P1 = 0x20;P2 = b;Delay_ms( 10);P1 = 0x02;P2 = TABn;Delay_ms( 10);.專業(yè)專注./ 閃爍顯示到達(dá)的樓層void Flash( uchar a)uchar i, j, b;uchar m;if(a = 1)/a=1表示向上b = 0x73;/ 七段碼 Pelse if(a = 0)/a=0表示向下b = 0x5E;/ 七段碼 dfor(i = 0; i < 5; +i)m = Represent();/ 閃爍時(shí)判斷有無樓層請(qǐng)求到達(dá)requestm = 1;.專
13、業(yè)專注. . .for( j = 0; j < 15; +j) /閃爍顯示樓層和P 或者 dP1= 0x20;/ 先顯示 P 或者 d 以及樓層數(shù)P2= b;/ 再顯示 P 或者 d 而不顯示樓層數(shù)Delay_ms( 10);/ 以此達(dá)到閃爍的目的P1= 0x02;P2= TABlift;Delay_ms( 10);for( j = 0; j < 15; +j)P1 = 0x20;P2 = b;Delay_ms( 10);P1 = 0x02;P2 = 0x00;Delay_ms( 10);.專業(yè)專注.OPERATIONS.C#include "settings.h&quo
14、t;/ 延時(shí)void dl_ms()uchar i;for(i = 0; i < 200; +i);/ 點(diǎn)陣鍵盤掃描uchar KBScan()uchar sccode, recode;/sccode低位 ,recode 高位uchar i, a;/i 循環(huán)控制 , a 讀取 P0 口P0 = 0x0f;if( (P0 & 0x0f) != 0x0f)/有無鍵按下dl_ms();/ 消抖延時(shí).專業(yè)專注.if( (P0 & 0x0f) != 0x0f)/ 有鍵按下則繼續(xù)recode = 0x7f;for(i = 1; i <= 4; +i)P0 = recode;/
15、從 P0 的最高位開始掃描,即點(diǎn)陣鍵盤第四行if( (P0 & 0x0f) != 0x0f)a = P0;/ 若該行有鍵按下,則返回其代碼sccode = a & 0x0f;recode = recode & 0xf0;return (sccode + recode);elserecode = (recode >> 1) | 0x80; /若沒有則掃描其上面一行return 0;.專業(yè)專注./ 解析出按鍵所代表的樓層uchar Represent()uchar key, n;key = KBScan();switch( key)case 0xee: n = 1; brea
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 雪孩子幼兒教育動(dòng)畫片觀后感
- 故事性文本的寫作技巧與實(shí)踐練習(xí):初中作文指導(dǎo)課程教案
- 互聯(lián)網(wǎng)產(chǎn)品聯(lián)合推廣合作協(xié)議書
- 古詩文朗讀技巧與欣賞
- 小學(xué)生綜合素質(zhì)評(píng)價(jià)標(biāo)準(zhǔn)征文
- 法律學(xué)科民法學(xué)原理試題及答案庫(kù)
- 家用電器選購(gòu)與使用注意事項(xiàng)指南
- 協(xié)作方案指南
- 數(shù)字教育平臺(tái)教學(xué)資源采購(gòu)合同
- 虛擬現(xiàn)實(shí)內(nèi)容制作合作協(xié)議
- 淺談物業(yè)管理行業(yè)工程造價(jià)控制
- 社會(huì)工作-心理學(xué)視角下的校園欺凌認(rèn)知與對(duì)策研究論文
- 公文寫作規(guī)范及技巧
- 面神經(jīng)炎臨床路徑
- 月光奏鳴曲全面版
- 2022年湖北省中小學(xué)教師高級(jí)職稱專業(yè)水平能力測(cè)試模擬題
- 社會(huì)救助綜合信息管理平臺(tái)
- 中小學(xué)校傳染病預(yù)防控制工作管理規(guī)范及常見傳染病預(yù)課件
- 數(shù)控車床操作培訓(xùn)課件
- 工程經(jīng)濟(jì)學(xué)-邵穎紅-第五版-課后作業(yè)
- 遼寧職業(yè)技術(shù)學(xué)院?jiǎn)握小堵殰y(cè)》考前特訓(xùn)復(fù)習(xí)題庫(kù)(含答案)
評(píng)論
0/150
提交評(píng)論