欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
為什么按鍵不能實現加減(求助)
[打印本頁]
作者:
小新夏
時間:
2015-4-25 21:02
標題:
為什么按鍵不能實現加減(求助)
#include <reg52.h>
#define Dataport P0
sbit key_add=P3^2;
sbit key_dec=P3^3;
sbit wei_latch=P2^3;
sbit duan_latch=P2^2;
unsigned char code duan_ma[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//段碼1~9顯示
unsigned char code wei_ma[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//維瑪第一個數碼管到最后一個
unsigned char temp[8];
//函數申明
void display(unsigned char firstbit,unsigned char Num);
void delay2x(unsigned char t);
void delayMs(unsigned char t);
main()
{unsigned int num=0;
key_add=1; //按鍵輸入端口電平置高
key_dec=1;
while(1)
{
if(!key_add)
{delayMs(10);
if(!key_add)
{
while(!key_add)
{
if(num<99)
num++;
}
}
}
if(!key_dec)
{
delayMs(10);
if(!key_dec)
{
while(!key_dec)
{
if(num>0)
num--;
}
}
}
temp[0]=duan_ma[num/10];
temp[1]=duan_ma[num%10];
display(0,8);
}
}
void display(unsigned char firstbit,unsigned char Num)
{
unsigned int i;
for(i=0;i<Num;i++)
{
Dataport=0;
duan_latch=1;
duan_latch=0;
Dataport=wei_ma[i+firstbit];
wei_latch=1;
wei_latch=0;
Dataport=temp[i];
duan_latch=1;
duan_latch=0;
delay2x(200);
//delayMs(1);
}
}
void delay2x(unsigned char t)
{
while(--t);
}
void delayMs(unsigned char t)
{
while(t--);
{
delay2x(245);
delay2x(245);
}
}
以上是我仿照例子寫的按鍵來實現數字的加減。但是按一下加號鍵就直接跳到99,減號鍵就直接跳到00.
作者:
lxa0
時間:
2015-4-25 22:26
看不懂C
幫不了你~~~~~~~~~~~~
作者:
小新夏
時間:
2015-4-26 09:53
lxa0 發表于 2015-4-25 22:26
看不懂C
幫不了你~~~~~~~~~~~~
我也不是很懂
作者:
小新夏
時間:
2015-4-26 16:43
問題在while(!key_add)后應該加分號,這樣就是按鍵釋放后進行加1.不加就是按下按鍵,一直進行加
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1