亚洲国产高清在线观看视频_日韩欧美国产aⅴ另类_奇米影视7777久久精品_欧美 国产 亚洲 卡通 综合

您的位置:首頁(yè) > 熱點(diǎn) >

單片機(jī)之矩陣鍵盤

下面是一個(gè)stc89c52單片機(jī)下的矩陣鍵盤程序,P0口接鍵盤,顯示在P2口.

本文引用地址:http://www.eepw.com.cn/article/170916.htm

#includereg52.h>#define uchar unsigned char#define uint unsigned intsbit key1=P3^2;sbit key2=P3^3;uchar code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; //定義八個(gè)燈的工作狀態(tài)。uchar code wep[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};void yanshi(uint t) { while(--t);}

void main(){ uchar han,lei,key;while(1){ P0=0xf0; //初始化為開關(guān)狀態(tài)。11110000 han=P0; //han變量讀取P0口的值。第一次掃描鍵盤。 han=han0xf0; //對(duì)han變量與0xf0與. //如果結(jié)果等于P0口初值(0xf0)說明沒有鍵被按下. //如果結(jié)果不等于P0(0xf0)口初值,說明有鍵按下. if(han!=0xf0) yanshi(125*5); //延時(shí)消抖. if(han!=0xf0) //語句執(zhí)行到這里說明真的有鍵按下. { //例如按下S1鍵.則P0=1110 0000 lei=P00xf0; //lei讀取P0口的值. lei=lei|0x0f; //lei=11101111 P0=lei; //P0=11101111 han=P0; //han=11101110 第二次掃描鍵盤, //因?yàn)檫@里按鍵S1還是閉合的狀態(tài)。 han=han0x0f; //han=00001110 lei=lei0xf0; //lei=11100000 key=han+lei; } switch(key) { case 0xee: P2=tab[0]; break; case 0xde: P2=tab[1]; break; case 0xbe: P2=tab[2]; break; case 0x7e: P2=tab[3]; break; case 0xed: P2=tab[4]; break; case 0xdd: P2=tab[5]; break; case 0xbd: P2=tab[6]; break; case 0x7d: P2=tab[7]; break; case 0xeb: P2=tab[8]; break; case 0xdb: P2=tab[9]; break; case 0xbb: P2=tab[10]; break; case 0x7b: P2=tab[11]; break; case 0xe7: P2=tab[12]; break; case 0xd7: P2=tab[13]; break; case 0xb7: P2=tab[14]; break; case 0x77: P2=tab[15]; break; } } }

標(biāo)簽: 鍵盤 矩陣 單片機(jī)

相關(guān)閱讀

昆明市| 渝北区| 东至县| 平度市| 酒泉市| 忻州市| 滦南县| 凤冈县| 牙克石市| 陆川县| 淮北市| 和顺县| 磐石市| 崇仁县| 彭阳县| 和硕县| 阿巴嘎旗| 拉萨市| 疏附县| 郎溪县| 元阳县| 邵武市| 积石山| 阿巴嘎旗| 弥勒县| 卫辉市| 图木舒克市| 民权县| 当雄县| 新丰县| 高淳县| 溧阳市| 阳曲县| 奉新县| 灵丘县| 登封市| 当阳市| 肃宁县| 盈江县| 谷城县| 十堰市|