999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

帶按鍵的旋轉(zhuǎn)編碼開關(guān)與C8051F020單片機(jī)的接口設(shè)計

2015-11-02 06:27:03岳巍李杰文方哲馬讓奎
關(guān)鍵詞:單片機(jī)設(shè)計

岳巍,李杰,文方哲,馬讓奎

(陜西寶成航空儀表有限責(zé)任公司,陜西 寶雞 721006)

帶按鍵的旋轉(zhuǎn)編碼開關(guān)與C8051F020單片機(jī)的接口設(shè)計

岳巍,李杰,文方哲,馬讓奎

(陜西寶成航空儀表有限責(zé)任公司,陜西 寶雞 721006)

介紹了一種帶按鍵的旋轉(zhuǎn)編碼開關(guān)的使用方法,給出了與C8051F020單片機(jī)的接口電路,以及旋鈕轉(zhuǎn)向判斷和按鍵處理程序。

旋轉(zhuǎn)編碼開關(guān);單片機(jī);接口

0 引言

在單片機(jī)系統(tǒng)的人機(jī)接口設(shè)計中,我們常用按鍵式鍵盤作為人與設(shè)備進(jìn)行信息交流的主要工具。通過按壓不同的按鍵,進(jìn)行菜單的選擇和數(shù)字的輸入等功能。使用按鍵進(jìn)行信息輸入具有效率高、使用方便等優(yōu)點(diǎn),但也有不足之處。比如要方便地完成數(shù)字的輸入,需要0~9共10個數(shù)字按鍵和確認(rèn)鍵、刪除鍵等功能按鍵。在單片機(jī)系統(tǒng)中,這種按鍵信息處理電路通常設(shè)計為矩陣式電路,直接連接到單片機(jī)的I/O端口,以3×4鍵盤為例要占用7個I/O端口,單片機(jī)通過軟件每隔20ms~50ms對這些I/O端口進(jìn)行定時行列掃描,根據(jù)返回的掃描鍵值,判斷是哪一個按鍵按下。所以使用鍵盤方式具有占用的I/O端口較多,鍵盤掃描程序耗時較長,占用單片機(jī)資源多的缺點(diǎn)。

在一些特殊的應(yīng)用場合,如飛機(jī)儀表的面板,因為尺寸所限,通常沒有地方安排較多的按鍵,按鍵太小還不利于飛行員的操作,這時就迫切需要一種體積較小、使用方便的器件來替代按鍵鍵盤實現(xiàn)信息的輸入功能。帶按鍵的旋轉(zhuǎn)編碼開關(guān)就是這樣一種理想的器件。

帶按鍵的旋轉(zhuǎn)編碼開關(guān)是將旋轉(zhuǎn)編碼開關(guān)和一個按鍵集成在一起,通過兩者的配合使用,再結(jié)合相應(yīng)的處理軟件,就可以完成信息的輸入,并且還具有使用快捷、靈活、占用單片機(jī)資源少的優(yōu)點(diǎn)。

C8051F020單片機(jī)具有100個引腳,64個數(shù)字I/O端口,和2路獨(dú)立的12位D/A、4路獨(dú)立的電壓比較器端口。數(shù)字I/O端口可以根據(jù)需要,用軟件對內(nèi)部的3個交叉開關(guān)寄存器編程設(shè)置為讀/寫、定時器、串口、A/ D等多種功能端口,因此該單片機(jī)功能強(qiáng)大,很適合在功能復(fù)雜、需要較多單片機(jī)資源的場合應(yīng)用。

1 接口電路設(shè)計

1.1帶按鍵的旋轉(zhuǎn)編碼開關(guān)工作原理

帶按鍵的旋轉(zhuǎn)編碼開關(guān)由旋轉(zhuǎn)編碼開關(guān)和按鍵兩部分組成,它包括5個信號引腳,分別是編碼開關(guān)輸出端A和B,編碼開關(guān)公共端C,按鍵輸入輸出端S1、S2,如圖1所示。轉(zhuǎn)動編碼開關(guān)手柄,編碼開關(guān)輸出端A和 B反復(fù)與公共端C接通、斷開,通過后續(xù)電路分別輸出有一定相位差的脈沖信號,如圖2所示。按下編碼開關(guān)手柄,按鍵輸入輸出端S1、S2接通,松開手柄,輸出端S1、S2斷開。

圖1 引腳圖

當(dāng)順時針轉(zhuǎn)動編碼開關(guān)手柄時,輸出端A和B輸出的波形為圖2(a),逆時針轉(zhuǎn)動編碼開關(guān)手柄時,輸出端A和B輸出的波形為圖2(b)。

圖2 輸出波形圖

1.2與單片機(jī)接口電路設(shè)計

帶按鍵的旋轉(zhuǎn)編碼開關(guān)與單片機(jī)的接口電路如圖3所示。在帶按鍵的旋轉(zhuǎn)編碼開關(guān)的輸出端用3只10k電阻上拉,使得帶按鍵的旋轉(zhuǎn)編碼開關(guān)在旋轉(zhuǎn)、按壓、松開時能產(chǎn)生高低電平。為了消除開關(guān)信號波形的干擾和抖動,使用3只10k電阻和3只10nF電容組成RC濾波電路進(jìn)行濾波,再使用74HC14施密特觸發(fā)器進(jìn)一步改善信號波形為較為理想的矩形波,以使單片機(jī)能對信號可靠采樣。

圖3 與單片機(jī)接口電路圖

C8051F020單片機(jī)電源為+3.3V,但I(xiàn)/O端口可以直接和+5V電源電路相接。在本接口電路中,將旋轉(zhuǎn)編碼開關(guān)的輸出端A、B分別與單片機(jī)的P1.0和P1.1相連,按鍵S2端與P1.2相連。

2 軟件編程

2.1單片機(jī)端口設(shè)置

單片機(jī)通過對交叉開關(guān)寄存器XBR0、XBR1和XBR2相應(yīng)位的設(shè)置來確定各端口的功能。在本接口設(shè)計中,將與旋轉(zhuǎn)編碼開關(guān)輸出端A相連的P1.0端口設(shè)計為中斷輸入端/INT0,端口P1.1和P1.2設(shè)置為通用I/O口。此時,XBR1.2應(yīng)置1,XBR1寄存器其余位置0。考慮到已經(jīng)將UART1、UART 2和SDA、SCL總線等特殊功能端口配置到P0口,所以對交叉開關(guān)設(shè)置為XBR0=0xc1,XBR1=0x04,XBR2=0x04即可滿足要求。

2.2旋轉(zhuǎn)編碼開關(guān)轉(zhuǎn)向判斷

單片機(jī)是通過檢測旋轉(zhuǎn)編碼開關(guān)輸出信號的狀態(tài)來判斷旋轉(zhuǎn)方向,在程序設(shè)計中,采用下降沿邊沿觸發(fā)中斷方式,為此需置TCON.0=1。當(dāng)旋轉(zhuǎn)編碼開關(guān)信號觸發(fā)中斷,則進(jìn)入端口A中斷服務(wù)程序,如果此時輸出端B信號為高電平,則為順時針旋轉(zhuǎn),反之,為逆時針旋轉(zhuǎn),如圖2所示。中斷服務(wù)程序如下:

#define TRUE1

#define FALSE0

unsigned char xdata Key_direct_R,Key_direct_L;

unsigned int xdata Time1=0;;

void INT0_ISR(void)interrupt 0 using 1//中斷服務(wù)程序

EX0=0;//關(guān)中斷

EX1=0;

ET0=0;

if(Port_B==1)//判斷端口B(P1.1)的電平

Key_direct_R=TRUE;//順時針旋轉(zhuǎn)時,Key_direct_R=1

else

Key_direct_L=TRUE;//逆時針旋轉(zhuǎn)時,Key_direct_L=1

Time1=0;//等待時間清零

EX0=1;//開中斷

EX1=1;

ET0=1;

2.3按鍵判斷

旋轉(zhuǎn)編碼開關(guān)的按鍵的狀態(tài),采用定時查詢的方式檢測,定時時間為35ms,程序采用兩次查詢的按鍵去抖方式。此處提供一經(jīng)過實際驗證的程序如下:

#define TRUE1

#define FALSE0

bit Key=FALSE;

bit Key_ok=FALSE;

unsigned char xdata Key_ok=0x00;

unsigned char xdata KeyData=0x00;

unsigned char xdata KeyDataSave=0x00;

void TIMER0()interrupt 1 using 1

unsigned char Te;

TF0=0;

ET0=0;

EX0=0;

EX1=0;

KeyData=0x04;//先將沒有按鍵按下時KeyData的值存下

P1=0xff;//向P1發(fā)送0xff測試電平

KeyData=P1;//讀取P1的電平

KeyData&=0x04;//將讀取的P1電平存入KeyData

if(KeyData!=0x04)//如果有鍵按下KeyData!=0x04時,說明有按鍵按下

if(KeyDataSave==KeyData)//將按壓后的電平情況存到KeyDataSave

{//循環(huán)判斷有無鍵按下,Te==1,表示有1個鍵

for(Te=0;(Te<1)&&(KeyDataSave!= TabKey[Te]);Te++);

if(Te==1)//如果查后沒有按鍵按下

KeyDataSave=0xff;

Key=FALSE;

else//如果按鍵按下

Key=TRUE;

KeyBuf=Te+1;//存入鍵值

else//如果鍵未按下,或第二次去抖判斷鍵值與去抖前鍵值不同

{KeyDataSave=KeyData;//將此次鍵值存下Key=FALSE;//認(rèn)為沒有鍵按下

else//如果沒有按鍵按下,或是按鍵按下后的松開動作,即鍵松開

if(Key==TRUE)//確認(rèn)是按鍵按下后的松開動作

{Key_ok=TRUE;//對按鍵結(jié)果做處理,此處僅對Key_ok置1,表示“確定”KeyDataSave=0xff;//一次按鍵動作處理完畢,重置KeyDataSave的狀態(tài)Key=FALSE;//此次按鍵動作處理完畢,將Key設(shè)置為FALSE,即無鍵按下

TH0=0x00;

TL0=0x00;

ET0=1;

EX0=1;

EX1=1;

2.4數(shù)據(jù)處理

帶按鍵的旋轉(zhuǎn)編碼開關(guān)的旋轉(zhuǎn)方向和按鍵狀態(tài)確定后,即可在主程序main()中進(jìn)行相應(yīng)的處理。以0~9999m的飛機(jī)高度數(shù)值設(shè)定為例,用帶按鍵的旋轉(zhuǎn)編碼開關(guān)可對個位、十位、百位、千位上的數(shù)值分別設(shè)定。按壓旋鈕時,按鍵起作用,循環(huán)選擇個位、十位、百位、千位;旋轉(zhuǎn)旋鈕時,數(shù)值在0~9內(nèi)循環(huán)增加或減小。主程序的流程圖如圖4所示。

圖4 主程序流程圖

3 結(jié)束語

本文對一種帶按鍵的旋轉(zhuǎn)編碼開關(guān)與C8051F020單片機(jī)的接口電路的軟硬件設(shè)計進(jìn)行了說明,給出了具體的接口電路以及單片機(jī)的端口設(shè)置、編碼器正反轉(zhuǎn)判斷、按鍵處理等程序代碼。帶按鍵的旋轉(zhuǎn)編碼器開關(guān)的應(yīng)用,為單片機(jī)系統(tǒng)的信息輸入提供了一種新的方法,減少了單片機(jī)的資源占用,另外接口程序編程簡單、易用,降低了人機(jī)接口設(shè)計的復(fù)雜程度,有利于縮短設(shè)計的周期,降低設(shè)計和制造成本。經(jīng)實踐驗證,該接口電路及程序工作穩(wěn)定、可靠,完全滿足實際使用要求,有一定的推廣價值。

[1]何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計[M].北京航空航天大學(xué)出版社,1990.

Interface of Rotary Encoder Switch with a Button Based on C8051 MCU

YUE Wei,LI Jie,WEN Fang-Zhe,MA Rang-Kui
(Shaanxi Baocheng Aviation Instrument Co.,Ltd.,Baoji Shaanxi 721006,China)

A rotary encode switch with a button is introduced.Interface based on C8051F020 and program code of the rotate direction and button press determine are given.Practical application shows that the interfacing circuit is stable,effective and reliable.

rotary encode switch;MCU;inerface

TB47

A

10.3969/j.issn.1002-6673.2015.02.043

1002-6673(2015)02-113-03

2015-03-14

岳巍(1966-),男,高級工程師。研究方向:現(xiàn)從事機(jī)載儀表技術(shù)方面的設(shè)計與研究工作;李杰(1981-),男,工程師。研究方向:現(xiàn)從事機(jī)載儀表技術(shù)方面的設(shè)計與研究工作。

猜你喜歡
單片機(jī)設(shè)計
何為設(shè)計的守護(hù)之道?
《豐收的喜悅展示設(shè)計》
流行色(2020年1期)2020-04-28 11:16:38
基于單片機(jī)的SPWM控制逆變器的設(shè)計與實現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
瞞天過海——仿生設(shè)計萌到家
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
設(shè)計秀
海峽姐妹(2017年7期)2017-07-31 19:08:17
有種設(shè)計叫而專
Coco薇(2017年5期)2017-06-05 08:53:16
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計
電子制作(2017年19期)2017-02-02 07:08:27
主站蜘蛛池模板: 乱人伦视频中文字幕在线| 亚洲精品自在线拍| 国产精品成人第一区| 都市激情亚洲综合久久| 国产一在线| 伊人久久影视| 五月天综合婷婷| 国产精品成人一区二区不卡| 亚洲国产日韩视频观看| 亚洲黄色网站视频| www.亚洲一区| 久久精品国产91久久综合麻豆自制| 国产一区二区三区免费| 人妻91无码色偷偷色噜噜噜| 在线精品亚洲一区二区古装| 少妇精品网站| 国产青榴视频| 亚洲欧美精品日韩欧美| 91久久天天躁狠狠躁夜夜| 欧美在线精品怡红院| 日韩午夜伦| 99青青青精品视频在线| 久久精品这里只有精99品| 国产成人综合亚洲网址| 极品尤物av美乳在线观看| 97精品国产高清久久久久蜜芽| 天天操精品| 91区国产福利在线观看午夜| 国产精品所毛片视频| 中文字幕av一区二区三区欲色| jizz在线观看| 久久精品无码一区二区日韩免费| 国产无码精品在线播放| 欧美日韩亚洲国产主播第一区| 亚洲自拍另类| 一本大道香蕉中文日本不卡高清二区| 毛片久久久| 亚洲精品无码AⅤ片青青在线观看| 四虎影视库国产精品一区| 欧美一区二区三区国产精品| 男女性色大片免费网站| 国产高清精品在线91| 精品黑人一区二区三区| 成人91在线| 欧美激情首页| 亚洲中字无码AV电影在线观看| 国产在线精品99一区不卡| 好吊色国产欧美日韩免费观看| 久久免费看片| 久草视频一区| 日韩资源站| 视频二区中文无码| 国产色网站| av午夜福利一片免费看| 亚洲精品综合一二三区在线| 波多野结衣一二三| 久久黄色视频影| 亚洲欧美不卡中文字幕| 91在线中文| 欧美国产日韩在线观看| 国产亚洲欧美日韩在线一区二区三区| 亚洲中文在线看视频一区| 国产高颜值露脸在线观看| 午夜福利网址| 久久黄色一级视频| 综合色天天| 91精品国产91欠久久久久| 欧美激情视频一区| 亚洲国产成熟视频在线多多| 福利姬国产精品一区在线| 国产对白刺激真实精品91| 国产一区二区三区视频| 国产成人高清在线精品| 一级毛片高清| 国产SUV精品一区二区| 老熟妇喷水一区二区三区| 亚洲性日韩精品一区二区| 一级毛片免费不卡在线| 尤物精品国产福利网站| 亚洲天堂色色人体| 亚洲第一黄色网| 九九视频在线免费观看|