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

標題: c51單片機獨立按鍵控制一盞燈亮滅編程問題 [打印本頁]

作者: 單片機之神    時間: 2020-4-4 16:32
標題: c51單片機獨立按鍵控制一盞燈亮滅編程問題
各位大佬,如果我不用位定義,改為總線操作方法編寫這個程序,那么判斷按鍵抬起while(!     )這個括號里我該怎么編寫?
附圖片

IMG_20200404_162945.jpg (549.15 KB, 下載次數: 48)

IMG_20200404_162945.jpg

作者: 單片機之神    時間: 2020-4-4 17:22
為什么沒有大神幫我解答一下,各位大神幫忙看看
作者: mffhxa    時間: 2020-4-4 19:37
P3^0XFF 就可以了,不要 !。
作者: tyrl800    時間: 2020-4-4 19:44
while(P3!=0xfe );
作者: benclee    時間: 2020-4-4 20:26
不加while判斷抬起也可以實現功能了吧。
作者: xxpp2011    時間: 2020-4-4 20:28
無鍵按下P3為0XFF,按鍵按下P3為0XFE,按鍵抬起P3恢復到0XFF,所以判斷按鍵抬起可以用while(P3!=0XFF);
意思是直到P3=0XFF時才跳出循環,也可以寫作while(!P3==0XFF);
作者: 我叫小大打    時間: 2020-4-4 21:35
#include<reg51.h>
#define uchar unsigned char
sbit KEY_S1=P3^0;                   //定義輸入引角
sbit KEY_S2=P3^1;
sbit KEY_S3=P3^2;
sbit KEY_S4=P3^3;

void main(void)
{
  uchar temp;
  P3=0xff;                          //將p3口置成輸入狀態
  while(1)
  {
  temp=P3;
  switch(temp&=0x0f)           //屏蔽高4位
  {
   case 0x0e:P1=0xe7;break;                 //按下k1,p1端口位3、位4控制的led燈亮
   case 0x0d:P1=0xdb;break;                 //按下k2,p1端口位2、位5控制的led燈亮
   case 0x0b:P1=0xbd;break;                 //按下k3,p1端口位1、位6控制的led燈亮
   case 0x07:P1=0x7e;break;                 //按下k4,p1端口位0、位7控制的led燈亮
   default:P1=0xc3;break;                //不按鍵或同時按下多個按鍵時,p1端口位2、位3、位4、位5控制的led燈亮
   }
   }
}






歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 就操在线 | 日韩一二区 | 五月天激情电影 | 亚洲高清av在线 | 91看片网| 久久高清 | 精久久久| 91社区在线观看高清 | 亚洲一区二区久久 | 九九热精品在线 | 久热国产精品 | 国产免费一区二区 | 国产资源在线播放 | 国产欧美精品 | 一区二区三区观看视频 | 91免费电影| 成人在线免费观看视频 | 毛片在线视频 | 国产一区2区 | 国产精品国产精品国产专区不卡 | 国产一区二区三区四区在线观看 | 国产亚洲一区二区三区 | 午夜成人免费视频 | 国产一区二区激情视频 | 亚洲不卡在线观看 | 人妖无码| 国产精品毛片一区二区三区 | 免费的色网站 | a欧美 | 国产精品欧美一区二区三区不卡 | 91日韩| 97国产精品视频人人做人人爱 | 国产999精品久久久影片官网 | 欧洲视频一区 | 99久久精品免费看国产四区 | 日本天天操 | 先锋资源在线 | 99国内精品久久久久久久 | 一区2区 | 中文字幕视频在线 | 中文字幕一二三区 |