




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、/* 實(shí) 驗(yàn) 名 : 動(dòng)態(tài)顯示數(shù)碼管實(shí)驗(yàn)* 使用的IO : 數(shù)碼管使用P0,P2.2,P2.3,P2.4鍵盤(pán)使用P1* 實(shí)驗(yàn)效果 : 按矩陣鍵盤(pán)分別顯示在數(shù)碼管上面顯示十六進(jìn)制的0到F。* 注 意 :*/#include<reg51.h>/#include<intrins.h>#define GPIO_DIG P0#define GPIO_KEY P1sbit LSA=P22;sbit LSB=P23;sbit LSC=P24;unsigned char code DIG_CODE17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x
2、7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼unsigned char KeyValue;/用來(lái)存放讀取到的鍵值unsigned char KeyState;/記錄按鍵的狀態(tài),0沒(méi)有,1有unsigned char DisplayData8;/用來(lái)存放要顯示的8位數(shù)的值unsigned char Num;/用來(lái)存放中斷的時(shí)候顯示的第位數(shù)值void Delay50us(); /延時(shí)50usvoid KeyDown(); /檢測(cè)按鍵函數(shù)void DigDisplay(); /動(dòng)態(tài)顯示函數(shù)void
3、 TimerConfiguration();/定時(shí)器初始化設(shè)置/* 函 數(shù) 名 : main* 函數(shù)功能 : 主函數(shù)* 輸 入 : 無(wú)* 輸 出 : 無(wú)*/void main(void)TimerConfiguration();KeyState=0; /初始化按鍵狀態(tài)while(1)KeyDown(); if(KeyState=1)DisplayData7=DisplayData6;DisplayData6=DisplayData5;DisplayData5=DisplayData4;DisplayData4=DisplayData3;DisplayData3=DisplayData2;Dis
4、playData2=DisplayData1;DisplayData1=DisplayData0;DisplayData0=DIG_CODEKeyValue;KeyState=0;/DigDisplay();/* 函 數(shù) 名 : TimerConfiguration* 函數(shù)功能 : 定時(shí)器初始化* 輸 入 : 無(wú)* 輸 出 : 無(wú)*/void TimerConfiguration()TMOD=0X02;/選擇為定時(shí)器0模式,工作方式2,僅用TRX打開(kāi)啟動(dòng)。TH0=0X9C;/給定時(shí)器賦初值,定時(shí)100usTL0=0X9C;ET0=1;/打開(kāi)定時(shí)器0中斷允許EA=1;/打開(kāi)總中斷TR0=1;/打
5、開(kāi)定時(shí)器/* 函 數(shù) 名 : DigDisplay* 函數(shù)功能 : 使用數(shù)碼管顯示* 輸 入 : 無(wú)* 輸 出 : 無(wú)*/void DigDisplay()unsigned char i,j;/for(i=0;i<8;i+)/GPIO_DIG=0x00;/消隱switch(i) /位選,選擇點(diǎn)亮的數(shù)碼管,case(0):LSA=0;LSB=0;LSC=0; break;case(1):LSA=1;LSB=0;LSC=0; break;case(2):LSA=0;LSB=1;LSC=0; break;case(3):LSA=1;LSB=1;LSC=0; break;case(4):LSA=
6、0;LSB=0;LSC=1; break;case(5):LSA=1;LSB=0;LSC=1; break;case(6):LSA=0;LSB=1;LSC=1; break;case(7):LSA=1;LSB=1;LSC=1; break;GPIO_DIG=DisplayDatai;i+;if(i>7)i=0;/j=10; /掃描間隔時(shí)間設(shè)定/while(j-)/Delay50us();/GPIO_DIG=0x00;/消隱/* 函 數(shù) 名 : KeyDown* 函數(shù)功能 : 檢測(cè)有按鍵按下并讀取鍵值* 輸 入 : 無(wú)* 輸 出 : 無(wú)*/void KeyDown(void)unsigne
7、d int a=0;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f) Delay50us();a+;a=0;if(GPIO_KEY!=0x0f)ET0=0;/關(guān)定時(shí)器中斷KeyState=1;/有按鍵按下/測(cè)試列GPIO_KEY=0X0F;/ Delay50us();switch(GPIO_KEY)case(0X07):KeyValue=0;break;case(0X0b):KeyValue=1;break;case(0X0d): KeyValue=2;break;case(0X0e):KeyValue=3;break;/default:KeyValue=17;/檢測(cè)出錯(cuò)回復(fù)1
8、7意思是把數(shù)碼管全滅掉。/測(cè)試行GPIO_KEY=0XF0;Delay50us();switch(GPIO_KEY)case(0X70):KeyValue=KeyValue;break;case(0Xb0):KeyValue=KeyValue+4;break;case(0Xd0): KeyValue=KeyValue+8;break;case(0Xe0):KeyValue=KeyValue+12;break;/default:KeyValue=17;ET0=1;/開(kāi)定時(shí)器中斷while(a<5000)&&(GPIO_KEY!=0xf0) /檢測(cè)按鍵松手檢測(cè)Delay50u
9、s();a+;a=0;/* 函 數(shù) 名 : Delay50us* 函數(shù)功能 : 延時(shí)函數(shù),延時(shí)50us* 輸 入 : 無(wú)* 輸 出 : 無(wú)*/void Delay50us(void) /延時(shí)50us誤差 0us unsigned char a,b; for(b=1;b>0;b-) for(a=22;a>0;a-);/* 函 數(shù) 名 : Delay50us* 函數(shù)功能 : 延時(shí)函數(shù),延時(shí)50us* 輸 入 : 無(wú)* 輸 出 : 無(wú)*/void Timer() interrupt 1DigDisplay();/* 實(shí) 驗(yàn) 名 : 動(dòng)態(tài)顯示數(shù)碼管實(shí)驗(yàn)* 使用的IO : 數(shù)碼管使用P0,P
10、2.2,P2.3,P2.4* 實(shí)驗(yàn)效果 : 數(shù)碼管顯示76543210。* 注 意 :*/#include<reg51.h>#define GPIO_DIG P0sbit LSA=P22;sbit LSB=P23;sbit LSC=P24;unsigned char code DIG_CODE17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼unsigned char DisplayData8;/
11、用來(lái)存放要顯示的8位數(shù)的值void DigDisplay(); /動(dòng)態(tài)顯示函數(shù)/* 函 數(shù) 名 : main* 函數(shù)功能 : 主函數(shù)* 輸 入 : 無(wú)* 輸 出 : 無(wú)*/void main(void)unsigned char i;for(i=0;i<8;i+)DisplayDatai=DIG_CODEi;while(1)DigDisplay();/* 函 數(shù) 名 : DigDisplay* 函數(shù)功能 : 使用數(shù)碼管顯示* 輸 入 : 無(wú)* 輸 出 : 無(wú)*/void DigDisplay()unsigned char i;unsigned int j;for(i=0;i<8;i
12、+)switch(i) /位選,選擇點(diǎn)亮的數(shù)碼管,case(0):LSA=0;LSB=0;LSC=0; break;/顯示第0位case(1):LSA=1;LSB=0;LSC=0; break;/顯示第1位case(2):LSA=0;LSB=1;LSC=0; break;/顯示第2位case(3):LSA=1;LSB=1;LSC=0; break;/顯示第3位case(4):LSA=0;LSB=0;LSC=1; break;/顯示第4位case(5):LSA=1;LSB=0;LSC=1; break;/顯示第5位case(6):LSA=0;LSB=1;LSC=1; break;/顯示第6位ca
13、se(7):LSA=1;LSB=1;LSC=1; break;/顯示第7位GPIO_DIG=DisplayDatai;/發(fā)送段碼j=10; /掃描間隔時(shí)間設(shè)定while(j-);GPIO_DIG=0x00;/消隱/* 實(shí) 驗(yàn) 名 : 動(dòng)態(tài)顯示數(shù)碼管實(shí)驗(yàn)* 使用的IO : 數(shù)碼管使用P0,P2.2,P2.3,P2.4鍵盤(pán)使用P1* 實(shí)驗(yàn)效果 : 按矩陣鍵盤(pán)分別顯示在數(shù)碼管上面顯示十六進(jìn)制的0到F。* 注 意 :*/#include<reg51.h>#define GPIO_DIG P0#define GPIO_KEY P1sbit LSA=P22;sbit LSB=P23;sbit
14、LSC=P24;unsigned char code DIG_CODE17=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;/0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F的顯示碼unsigned char KeyValue;/用來(lái)存放讀取到的鍵值unsigned char KeyState;/記錄按鍵的狀態(tài),0沒(méi)有,1有unsigned char DisplayData8;/用來(lái)存放要顯示的8位數(shù)的值void Delay10ms(); /延時(shí)10msvoid Key
15、Down(); /檢測(cè)按鍵函數(shù)void DigDisplay(); /動(dòng)態(tài)顯示函數(shù)/* 函 數(shù) 名 : main* 函數(shù)功能 : 主函數(shù)* 輸 入 : 無(wú)* 輸 出 : 無(wú)*/void main(void)KeyState=0;while(1)KeyDown(); if(KeyState=1)DisplayData7=DisplayData6;DisplayData6=DisplayData5;DisplayData5=DisplayData4;DisplayData4=DisplayData3;DisplayData3=DisplayData2;DisplayData2=DisplayDat
16、a1;DisplayData1=DisplayData0;DisplayData0=DIG_CODEKeyValue;KeyState=0;DigDisplay();/* 函 數(shù) 名 : DigDisplay* 函數(shù)功能 : 使用數(shù)碼管顯示* 輸 入 : 無(wú)* 輸 出 : 無(wú)*/void DigDisplay()unsigned char i;unsigned int j;for(i=0;i<8;i+)switch(i) /位選,選擇點(diǎn)亮的數(shù)碼管,case(0):LSA=0;LSB=0;LSC=0; break;/顯示第0位case(1):LSA=1;LSB=0;LSC=0; break
17、;/顯示第1位case(2):LSA=0;LSB=1;LSC=0; break;/顯示第2位case(3):LSA=1;LSB=1;LSC=0; break;/顯示第3位case(4):LSA=0;LSB=0;LSC=1; break;/顯示第4位case(5):LSA=1;LSB=0;LSC=1; break;/顯示第5位case(6):LSA=0;LSB=1;LSC=1; break;/顯示第6位case(7):LSA=1;LSB=1;LSC=1; break;/顯示第7位GPIO_DIG=DisplayDatai;/發(fā)送段碼j=10; /掃描間隔時(shí)間設(shè)定while(j-);GPIO_DI
18、G=0x00;/消隱/* 函 數(shù) 名 : KeyDown* 函數(shù)功能 : 檢測(cè)有按鍵按下并讀取鍵值* 輸 入 : 無(wú)* 輸 出 : 無(wú)*/void KeyDown(void)unsigned int a=0;GPIO_KEY=0x0f;if(GPIO_KEY!=0x0f) Delay10ms();a+;a=0;if(GPIO_KEY!=0x0f)KeyState=1;/有按鍵按下/測(cè)試列GPIO_KEY=0X0F;/ Delay10ms();switch(GPIO_KEY)case(0X07):KeyValue=0;break;case(0X0b):KeyValue=1;break;case(0X0d): KeyValue=2;break;case(0X0e):KeyValue=3;break;/default:KeyValue=17;/檢測(cè)出錯(cuò)回復(fù)17意思是把數(shù)碼管全滅掉。/測(cè)試行GPIO_KEY=0XF0;Delay10ms();switch(GPIO_KEY)case(0X70):KeyValue=KeyValue;break;case(0Xb0):KeyValue=KeyValue+4;break;case(0Xd0): KeyValue=KeyValue+8;break;
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)人主材合同范本
- 醫(yī)院規(guī)范用工合同范本
- 與物業(yè)簽訂廣告合同范本
- 浠水購(gòu)房合同范本
- 銀行居間付款合同范本
- 修建鄉(xiāng)村公路合同范本
- 醫(yī)院日常裝飾維修合同范本
- 協(xié)調(diào)服務(wù)合同范本
- 公房買給個(gè)人合同范本
- 上海吊車租用合同范本
- 2024年江蘇農(nóng)牧科技職業(yè)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)及參考答案
- 患者轉(zhuǎn)運(yùn)意外應(yīng)急預(yù)案
- 大學(xué)生國(guó)防教育教案第四章現(xiàn)代戰(zhàn)爭(zhēng)
- 人教版初中化學(xué)實(shí)驗(yàn)?zāi)夸?總表)
- AS9100航空航天質(zhì)量管理體系-要求培訓(xùn)教材
- 第2課+古代希臘羅馬【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- Q-GDW 11711-2017 電網(wǎng)運(yùn)行風(fēng)險(xiǎn)預(yù)警管控工作規(guī)范
- 《桃樹(shù)下的小白兔》課件
- 電工儀表與測(cè)量(第六版)中職技工電工類專業(yè)全套教學(xué)課件
- 強(qiáng)調(diào)句(完整版)-高三英語(yǔ)市公開(kāi)課一等獎(jiǎng)省賽課獲獎(jiǎng)?wù)n件
- 2022年4月自考00277行政管理學(xué)試題及答案含解析
評(píng)論
0/150
提交評(píng)論