久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機數碼管只顯示0,按鍵無反應,求幫忙
[打印本頁]
作者:
skcxks
時間:
2019-5-30 09:55
標題:
單片機數碼管只顯示0,按鍵無反應,求幫忙
#include"math.h"
#include "reg51.h"
#define uchar unsigned char
uchar key_temp,key=0,i,j,k,t=0;
uchar a=0,b=0,c=0,d=0;
unsigned long qian,hou;
uchar table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
static unsigned char state_key=0;
static unsigned char state_dis=0;
void keyscan()
{
switch(state_key)
{
case 0:
key_temp=(P1&0x0f);
if(key_temp!=0x0f)
t=0;
state_key=1;
break;
case 1:
if(t>=10)
{
t=0;
if(key_temp==(P1&0x0f))
{
if(P1^0==0)
key=1;
if(P1^1==0)
key=2;
if(P1^2==0)
key=3;
if(P1^3==0)
key=4;
}
state_key=2;
}
else
state_key=0;
break;
case 2:
if(P1&0x0f==0x0f)
{
state_key=0;
break;
}
key=0;//default:break;
}
}
void keyaction()
{
switch(key)
{
case 1:break;
case 2:i=0;
i++;
if(i>9)
break;
case 3:j=0;
if(j<=3)
j++;
switch(j)
{
case 0:P3=0xfe;i++;break;
case 1:P3=0xfd;i++;break;
case 2:P3=0xfb;i++;break;
case 3:P3=0xf7;i++;break;
}
break;
case 4: k=0;
k++;
if(k==1)
hou=hou+qian;
qian=0;
if(k==2)
hou=hou+qian;
qian=0;
k=0;
break;
}
}
void display()
{
switch(j)
{
case 0:P2=table[a];break;
case 1:P2=table[b];break;
case 2:P2=table[c];break;
case 3:P2=table[d];break;
}
}
void display0()
{
switch(state_dis)
{
case 0:a=i;b=0;c=0;d=0;break;
case 1:b=i;c=0;d=0;break;
case 2:c=i;d=0;break;
case 3:d=i;break;
}
display();
}
void time0init()
{
TMOD=0x01;
TH0=-50000/256;
TL0=-50000%256;
EA=1;
ET0=1;
TR0=1;
}
void time0()interrupt 1
{
TH0=-50000/256;
TL0=-50000%256;
t++;
if(state_dis<=3)
state_dis++;
else
state_dis=0;
if(t<10)
t++;
}
void main()
{
time0init();
while(1)
{
keyscan();
keyaction();
display0();
switch(j)
{
case 0:qian=a;break;
case 1:qian=a+b*10;break;
case 2:qian=a+b*10+c*100;break;
case 3:qian=a+b*10+c*100+d*1000;break;
}
a=0;
b=0;
c=0;
d=0;
}
復制代碼
數碼管只顯示0,按鍵無反應,求幫忙
作者:
lxbeiming
時間:
2019-5-30 11:30
原理圖得提供啊,至少框圖有吧,怎么接線的
作者:
suncat0504
時間:
2019-5-30 14:35
求助之前,自己先別急,靜下心來,仔細檢查代碼有沒有錯誤;程序處理邏輯有沒有問題。必要的話,各變量隨著處理流程的值變化,列成清單。如果程序是你寫的,對于if判斷后的處理代碼,是不是忘了{}而導致處理流程出問題,一定要檢查仔細。我看你的代碼,沒有注釋,不敢肯定有沒有問題,但是case中初始化為0,再判斷范圍,然后加1,這樣的處理邏輯很不正常,會導致每次都從0開始計數,if判斷后加1.每次都這樣,永遠不會有2以上的值。
作者:
a庚
時間:
2019-5-30 19:46
不要這么用全局變量去傳遞參數,用函數返回值或者指針。這么寫自己看不亂么?
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
男人天堂网av
|
www.99热
|
午夜免费在线观看
|
人妖一区
|
久久中文一区二区
|
免费观看一级毛片
|
国产91在线精品
|
国产精品视频免费观看
|
亚洲视频一区
|
亚洲天堂中文字幕
|
欧美精品一区在线发布
|
亚洲福利在线观看
|
国产精品精品视频一区二区三区
|
国产精品美女视频
|
成人精品国产
|
av一级毛片
|
一级美国黄色片
|
亚洲精品久久久久久久不卡四虎
|
免费在线h视频
|
欧洲高清转码区一二区
|
久久久久久成人
|
一级做a爰片性色毛片视频停止
|
精品一区二区电影
|
欧美日韩在线视频一区
|
羞羞的视频免费观看
|
特级毛片
|
一区二区三区国产精品
|
国产一区二区三区亚洲
|
欧美精品一区在线
|
欧美视频一区二区三区
|
国产精品99久久久久久动医院
|
久久高潮
|
欧美色a v
|
黄色在线网站
|
国产精品毛片一区二区在线看
|
国产成人亚洲精品自产在线
|
中文字幕国产视频
|
久久99精品久久久久子伦
|
99伊人
|
国产精品99久久久久久久vr
|
亚洲国产精品久久人人爱
|