久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 單片機按鍵掃描程序 [打印本頁]

作者: daxiao    時間: 2015-3-21 16:45
標題: 單片機按鍵掃描程序
#include "reg51.h"
typedef unsigned int uint;
typedef unsigned char uchar;
sbit LED1=P0^0;
sbit LED2=P0^1;
sbit LED3=P0^2;
sbit LED4=P0^3;
/*sbit LED5=P0^4;
sbit LED6=P0^5;
sbit LED7=P0^6;
sbit LED8=P0^7;
sbit LED9=P2^0;
sbit LED10=P2^1;
sbit LED11=P2^2;
sbit LED12=P2^3;
sbit LED13=P2^4;
sbit LED14=P2^5;
sbit LED15=P2^6;
sbit LED16=P2^7;*/
//延時函數  毫秒延時
void delay(uint xms)  
{
int x,y;
for(x=0;x<xms;x++)
for(y=130;y>0;y--);
}
//鍵盤掃描函數
void scankey(void)
{
uchar temp=0;
/******************掃描第一行*********************/
P1=0xfe;//選擇第一行 1111 1110
temp=P1;//把P0口的電平變化實時給temp
temp=temp&0xf0;//屏蔽低四位,只考慮高四位控制的列
if(temp!=0xf0)
{
delay(10);
temp=P1;//把P0口的電平變化實時給temp
temp=temp&0xf0;//屏蔽低四位,只考慮高四位控制的列
if(temp!=0xf0)
{
temp=P1;//由于temp被前面的0xf0改變了,所以在此需要再獲得一次P0的值
switch(temp)
{
case 0x7e:LED1=~LED1 ; break;//第一行第一列按鍵按下
case 0xbe:LED2=~LED2 ; break;//第一行第二列按鍵按下
case 0xde:LED3=~LED3 ; break;//第一行第三列按鍵按下
case 0xee:LED4=~LED4; break;//第一行第四列按鍵按下
}
while(temp!=0xf0)//按鍵釋放程序
{
temp=P1; //再次讀取P0的值,看看有沒有釋放,如果釋放高四位全是1
temp=temp&0xf0;
}
}
}
}
void main()
{
while(1)
{
scankey();
}
}







歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产福利av | 久久久精品 | 狠狠干av | 精品国产成人 | 一区二区三区四区在线播放 | 国产高清视频在线播放 | 中文字幕在线观看免费视频 | 伦一理一级一a一片 | 日韩a级片 | 国产激情一区二区三区 | 亚洲天天操| 欧美专区在线 | 久久在线播放 | 黄色一级片免费看 | 久久一区二区三区四区 | 韩国精品在线 | 亚洲免费播放 | 免费av大片 | 久久手机视频 | 久久动态图| 黄色高清网站 | 99国产精品99久久久久久粉嫩 | 国产中文字幕在线播放 | 香蕉视频一区二区三区 | 在线观看三级 | 在线视频a| 中文字幕在线免费视频 | 一区中文字幕 | av免费在线观看网站 | 黄色大片免费在线观看 | 韩日精品视频 | 欧美亚洲视频 | 国产1区2区 | 亚洲激情在线 | 九九热在线播放 | 国产一区高清 | 美国黄色一级大片 | www.久久久久 | 亚洲综合视频在线观看 | 亚洲国产成人在线 | 欧美日韩精品一区二区 |