99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

按鍵的復用應該怎樣編寫程序?

以下的程序按鍵只能跳一次,如果按照我的流程圖工作應該怎樣寫?

#include
void main()
{ unsigned char KeyValue;
for(;;)

{

    P2=0xff;
    
KeyValue=P2;
switch(KeyValue)
{
            if(P2=0xfe)
              else
     P1=0xfe;
case 0xfe:P1=0x00;break;  //P20
case 0xfd:P1=0xdd;break;  //P21
case 0xfb:P1=0xbb;break;  //P22
            case 0xf7:P1=0x77;break;  //P23
            case 0xef:P1=0x55;break;  //P23
}
}
}
全部回復(6)
正序查看
倒序查看
xing1234
LV.6
2
2009-03-28 09:19
可以用時間來區分,比如長按多少時間,或連續按幾次,或按下后等多少時間再按下,具體要與用戶商量,看他們能接受哪種方式.這是我的一點小經驗,供參考.
0
回復
madboy21
LV.8
3
2009-04-02 13:52
很簡單的問題
你可以定義一個靜態變量或是全局變量KEY1_state;
if(KEY1_UP)KEY1_state++;
而執行子程序按KEY1_state的數據來選擇就可以了.
0
回復
金箍棒
LV.3
4
2009-04-03 16:26
@madboy21
很簡單的問題你可以定義一個靜態變量或是全局變量KEY1_state;if(KEY1_UP)KEY1_state++;而執行子程序按KEY1_state的數據來選擇就可以了.
madboy21: 你好!我還是不明白,能否詳細點!因為我是初學的.謝謝!
0
回復
madboy21
LV.8
5
2009-04-03 17:11
@金箍棒
madboy21:你好!我還是不明白,能否詳細點!因為我是初學的.謝謝!
手上有實驗板不?我看你上面程序也是錯誤的,初學者最好能配實驗板學習會更好.
            if(P2=0xfe)
              else
     P1=0xfe;
上面不要包含在switch里面,if括號里等號應是"=="

關于上面的問題:KEY_state按一次就加一,如果按了三次是不是數值就是三?也就是說這時應去做什么工作(執行什么程序)
0
回復
金箍棒
LV.3
6
2009-04-06 22:56
@madboy21
手上有實驗板不?我看你上面程序也是錯誤的,初學者最好能配實驗板學習會更好.            if(P2=0xfe)              else    P1=0xfe;上面不要包含在switch里面,if括號里等號應是"=="關于上面的問題:KEY_state按一次就加一,如果按了三次是不是數值就是三?也就是說這時應去做什么工作(執行什么程序)
我自己用萬用板搭了有一塊試驗板.下面的程序只能檢測到一個按鍵.如果我要檢測到8個按鍵的話應該怎樣改一下啊?
#include
#define uint unsigned int
#define uchar unsigned char
sbit key1=P2^0;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
  uchar num;

void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void main()
{
P1=0xfe;
P2=0xff;
while(1)
{
if(key1==0)
{
delay(5);
if(key1==0)
{
num++;
if(num==10)
num=0;
}
while(!key1);
delay(5);
while(!key1);
}
else
P1=table[num];
}
}
0
回復
madboy21
LV.8
7
2009-04-07 09:51
@金箍棒
我自己用萬用板搭了有一塊試驗板.下面的程序只能檢測到一個按鍵.如果我要檢測到8個按鍵的話應該怎樣改一下啊?#include#defineuintunsignedint#defineucharunsignedcharsbitkey1=P2^0;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};  ucharnum;voiddelay(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidmain(){P1=0xfe;P2=0xff;while(1){if(key1==0){delay(5);if(key1==0){num++;if(num==10)num=0;}while(!key1);delay(5);while(!key1);}elseP1=table[num];}}
單片機編程需要配合實際電路,上面只給你一個提示方法.在你程序中找不到與你所畫流程圖相符的程序.修正下廷時程序:void delay(uint z){uint y;for(;z>0;z--)           {for(y=110;y>0;y--);};}看看我做的C51單片機學習板 
0
回復
主站蜘蛛池模板: 麻豆影视国产在线观看 | 人妻三级日本三级日本三级极 | 国产精品亚洲综合色区韩国 | 国产精品美女久久久久久 | 色婷婷五月综合丁香中文字幕 | 熟女性饥渴一区二区三区 | 国产95亚洲 | 男人天堂亚洲成人 | 超碰97在线免费 | 国产免费拔擦拔擦8x高清在线人 | 伊人中文字幕在线观看 | 成人免费毛片片v | 欧美一级日韩一级亚洲一级 | 国产黑色丝袜在线视频 | AV无码精品1区2区3区 | 亚洲精品成人片在线播放4388 | 亚洲精品一二三四五区 | 中文字幕之中文字幕 | 国产偷窥熟妇高潮呻吟 | 大地资源第二页中文高清版 | 97精品久久中文 | 亚洲你我色| 亚州av在线播放 | 国产日韩AV免费无码一区二区三区 | 亚洲激情小视频 | 亚洲av无码成h人动漫网站系 | 国产熟睡乱子伦视频在线播放 | 中文字幕一区二区三区乱码在线 | 精品人妻少妇一区二区三区 | 国产www亚洲а∨天堂 | 久久精品成人免费观看三 | 国产九色在线观看 | 久久99久久99精品免视看看 | 开心五月激情综合婷婷 | 色呦呦麻豆 | 日韩精品中文有码 | 国产高清美女一级毛片 | 国产成人久久久精品二区三区 | 日本天堂视频在线观看 | 亚洲视频免费在线播放 | 黄色毛片大全 |