單片機應(yīng)用技術(shù)-基于STC15系列單片機 課件 3.2 數(shù)碼管顯示按鍵按下次數(shù)_第1頁
單片機應(yīng)用技術(shù)-基于STC15系列單片機 課件 3.2 數(shù)碼管顯示按鍵按下次數(shù)_第2頁
單片機應(yīng)用技術(shù)-基于STC15系列單片機 課件 3.2 數(shù)碼管顯示按鍵按下次數(shù)_第3頁
單片機應(yīng)用技術(shù)-基于STC15系列單片機 課件 3.2 數(shù)碼管顯示按鍵按下次數(shù)_第4頁
單片機應(yīng)用技術(shù)-基于STC15系列單片機 課件 3.2 數(shù)碼管顯示按鍵按下次數(shù)_第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

項目搶答器的實現(xiàn)搶答器的實現(xiàn)任務(wù)目錄任務(wù)一開關(guān)控制LED燈顯示任務(wù)二數(shù)碼管顯示按鍵按下次數(shù)任務(wù)三多路搶答器的實現(xiàn)項目任務(wù)實現(xiàn)1位共陽極數(shù)碼管顯示按鍵按下次數(shù)序號名稱Proteus中元件名參數(shù)數(shù)量1單片機STC15W4K32S412LED數(shù)碼管7seg-com-anode13排阻RX847014按鍵button1數(shù)碼管顯示按鍵按下次數(shù)1數(shù)碼管2獨立按鍵主要內(nèi)容數(shù)組數(shù)碼管的應(yīng)用數(shù)碼管的分類數(shù)碼管的外觀和引腳數(shù)碼管的內(nèi)部結(jié)構(gòu)abcdefgCOM共陽極bcadefgCOM共陰極數(shù)碼管的內(nèi)部電路及公共端控制共陽極共陰極VCCGND數(shù)碼管電路設(shè)計在共陽極數(shù)碼管上循環(huán)顯示數(shù)字0~9電路設(shè)計序號名稱Proteus中元件名參數(shù)數(shù)量1單片機STC15W4K32S412LED數(shù)碼管7seg-com-anode

13排阻RX84701數(shù)碼管電路設(shè)計在共陽極數(shù)碼管上循環(huán)顯示數(shù)字0~9電路設(shè)計數(shù)碼管為共陽管,公共端接電源;受控端a~g采用低電平點亮數(shù)碼管,通過限流電阻連接到單片機P0口;阻值越大,電流越小,數(shù)碼管點亮時越暗,阻值越小,電流越大,數(shù)碼管點亮時越亮,但阻值過小,會導致P0口的總負載電流過大數(shù)碼管顯示原理dpgfedcba11000000字形碼0XC0111110010XF9端口的控制電平為低,LED燈亮;端口的控制電平為高,LED燈滅數(shù)碼管字形碼顯示字符共陰字形碼共陽字形碼顯示字符共陰字形碼共陽字形碼03FHC0H96FH90H106HF9HA77H88H25BHA4HB7CH83H34FHB0HC39HC6H466H99HD5EHA1H56DH92HE79H86H67DH82HF71H8EH707HF8HP73H8CH87FH80H“滅”00HFFH數(shù)碼管顯示控制原理顯示數(shù)字共陽極共陰極0C03F1F9062A45B3B04F499665926D6827D7F8078807F9906F共陽數(shù)碼管,如果要顯示“0”,單片機只要給連接到受控端的并口輸出0XC0,如果要顯示“1”,給并口輸出0XF9,以此類推;共陰數(shù)碼管,如果要顯示“0”,單片機只要給連接到受控端的并口輸出0X3F,如果要顯示“1”,給并口輸出0X06,以此類推;單片機只要將字形碼輸出到并口,數(shù)碼管就會顯示字形碼對應(yīng)的字符程序控制原理數(shù)碼管靜態(tài)顯示程序設(shè)計voidmain() {P0M0=0x00;P0M1=0X00;while(1)

{P0=0xc0; delay_ms(1000);

P0=0xf9; delay_ms(1000);

P0=0xa4; delay_ms(1000);

P0=0xb0; delay_ms(1000);

P0=0x99; delay_ms(1000);

P0=0x92; delay_ms(1000);

P0=0x82; delay_ms(1000);

P0=0xf8; delay_ms(1000);

P0=0x80; delay_ms(1000);

P0=0x90; delay_ms(1000);}}設(shè)計程序:在共陽極數(shù)碼管上循環(huán)顯示數(shù)字0~9P0=0XC0…………延時1秒P0=0XF9延時1秒P0=0X90延時1秒將字形碼定義成一個數(shù)組,優(yōu)化程序數(shù)組#include<stc15.h>voiddelay_ms(unsignedintms);#defineMAIN_Fosc11059200L unsignedcharsegtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};voidmain(void)

{unsignedchari=0;

P0M0=0x00;P0M1=0X00;

while(1) //主(外)循環(huán){for(i=0;i<10;i++)//內(nèi)循環(huán){P0=segtab[i];//數(shù)組元素引用delay_ms(1000);}}}主(外)循環(huán)循環(huán)次數(shù)+1送數(shù)組元素延時1s

循環(huán)10次?YN數(shù)組初始化數(shù)碼管靜態(tài)顯示程序設(shè)計數(shù)碼管外部引腳、內(nèi)部電路及顯示原理小結(jié)共陽碼和共陰碼設(shè)計靜態(tài)顯示電路和控制程序,實現(xiàn)了循環(huán)顯示0~9數(shù)碼管顯示按鍵按下次數(shù)——按鍵庫函數(shù)搶答器——按鍵的使用庫函數(shù)按鍵按鍵分類什么是按鍵編碼鍵盤

非編碼鍵盤

矩陣鍵盤鍵盤上按鍵的識別由專用的硬件編碼器實現(xiàn),并產(chǎn)生鍵值。如:普通的PC鍵盤(PS2接口、USB接口)。需要靠軟件編程來識別按鍵的稱為非編碼鍵盤,在單片機組成的各種系統(tǒng)中,用的最多。獨立按鍵按鍵:又稱按鈕開關(guān),是嵌入式系統(tǒng)中常見的一種人機交互輸入設(shè)備。分類什么是按鍵ABCD

AD引腳內(nèi)部連通BC引腳內(nèi)部連通按鍵與單片機的連接序號名稱Proteus中元件名參數(shù)數(shù)量1單片機STC15W4K32S412按鍵button4按鍵測試按鍵用作開關(guān):在proteus中編程實現(xiàn)按鍵按下,P1.0連接燈亮,按鍵彈起來,燈滅;按鍵測試:在proteus中編程實現(xiàn)按鍵按下一次,P1.0連接燈狀態(tài)切換一次。按鍵的識別P3.2引腳電平狀態(tài)思考:如何判斷按鍵是否按下一次?機械式按鍵按鍵所用開關(guān)為機械彈性開關(guān),當機械觸點斷開、閉合時,由于機械觸點的彈性作用,不能馬上穩(wěn)定地接通或斷開,最終由于機械在過渡時的不穩(wěn)定會以電信號抖動的形式體現(xiàn)出來。

按鍵實際波形:機械式按鍵機械式按鍵抖動時間:長短由按鍵的機械特性決定,一般為5ms~10ms;按鍵按下:一般為20ms按鍵按下時的電平變化:干擾、噪聲:去抖方法如何消抖:(1)硬件消抖

RS觸發(fā)器:常用并聯(lián)電容法:利用電容的的硬件去抖。

放電延時,實現(xiàn)硬件消抖。

去抖方法如何消抖:(2)軟件消抖

軟件消抖的方法:檢測出鍵閉合后執(zhí)行一個延時程序(10ms左右的延時),等待抖動消失后再檢測一次鍵的狀態(tài),如果仍然保持閉合狀態(tài),則確認為真正有鍵按下。

5-10ms20ms10ms獨立式按鍵電路設(shè)計開始按鍵是否按下延時去抖按鍵是否按下執(zhí)行按鍵功能按鍵是否釋放按鍵測試:在proteus中編程實現(xiàn)按鍵按下一次,P1.0連接燈狀態(tài)切換次。YNYYNN20ms獨立式按鍵電路設(shè)計開始按鍵是否按下延時去抖按鍵是否按下執(zhí)行按鍵功能按鍵是否釋放按鍵測試:在proteus中編程實現(xiàn)按鍵按下一次,P1.0連接燈狀態(tài)切換次。YNYYNN20ms機械式按鍵內(nèi)容拓展:1.如何優(yōu)化軟件去抖部分10ms的延時程序段;2.是否需要后延去抖;3.如何識別按鍵雙擊;

期待你的解決思路或者效果展示!統(tǒng)計按鍵次數(shù),顯示在單個數(shù)碼管上,按鍵次數(shù)不超過9次獨立式按鍵電路設(shè)計序號名稱Proteus中元件名參數(shù)數(shù)量1單片機STC15W4K32S4127段共陽數(shù)碼管7seg-com-anode

13排阻RX847014按鍵button1獨立式按鍵判別處理流程P3.2==0?NP3.2==0?YNY延時幾個ms去抖P3.2==0?NY次數(shù)+1,顯示退出按鍵狀態(tài)判別:判到按下,軟件消抖;確認按鍵按下的處理;按鍵松開判別次數(shù)超9,清0數(shù)碼管顯示按鍵次數(shù)程序sbitKEY=P3^2;unsignedcharcodesegtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0xff};voidmain(void){unsignedcharnum=0;//統(tǒng)計按鍵次數(shù)的變量P0M0=0x00;P0M1=0X00;P3M0&=~0X04;P3M1&=~0X04;P0=segtab[0];//數(shù)碼管初始顯示0while(1){if(KEY==0)//按鍵引腳電平是否為0,為0,有可能有按鍵按下{delay_ms(10);//去抖動if(KEY==0)//再次判斷按鍵引腳電平是否為0,為0,有按鍵按下 {num++;if(num>9)num=0; }while(KEY==0); //等待按鍵釋放

}P0=segtab[num];}}4個按鍵,在單個數(shù)碼管上,顯示按鍵號按鍵電路設(shè)計4個按鍵判別處理方法是否有任意按鍵按下;有鍵按下,延時消抖;確認鍵號,按鍵處理;等待該鍵松開保留位”&1”,其他位”&0”即P3&二進制數(shù)11110000即P3&0xf0位與P3&0xf0P3.7P3.6P3.5P3.4P3.3P3.2P3.1P3.0無鍵按下:0xf011110000S1按下:0xe011100000S2按下:0xd011010000S3按下:0xb010110000S2按下:0x70011100004個按鍵判別處理流程P3&0xf0=0xf0?NNYY延時10msYY顯示”1”退出P3&0xf0=0xf0?P3&0xf0=0xf0?顯示”2”顯示”3”顯示”4”N0xe00xd00xb00x70顯示按鍵號程序unsignedcharcodesegtab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0xff};voidmain(){P0M0=0x00;P0M1=0X00;P3M0&=~0X04;P3M1&=~0X04;P0=0xff;while(1) {if((P3&0xf0)!=0xf0)//高4位不為f,有鍵按下 {delay_ms(10);//去抖動 if((P3&0xf0)!=0xf0)//高4位不為f,有鍵按下 {switch(P3&0xf0) {case0xe0:P0=segtab[1];break;//1號鍵 case0xd0:P0=segtab[2];break;//2號鍵

溫馨提示

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

評論

0/150

提交評論