標題:
大神可否幫忙看一下單片機按鍵程序哪里出問題了?
[打印本頁]
作者:
stallone
時間:
2018-12-2 21:36
標題:
大神可否幫忙看一下單片機按鍵程序哪里出問題了?
我的這個程序為什么按鍵不起作用?我的數(shù)碼管是分開的,用了兩組 I/O口。 就是仿真的時候它直接就開始倒計時了。按鍵不管用。謝謝大神幫助
單片機源碼:
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uint i,j,m,n,flag1,flag2;
sbit key_1 = P1^0;
sbit key_2 = P1^1;
uchar code aa[]={ 0x3F, //"0"
0x06, //"1"
0x5B, //"2"
0x4F, //"3"
0x66, //"4"
0x6D, //"5"
0x7D, //"6"
0x07, //"7"
0x7F, //"8"
0x6F //"9"
};
void delay(uint z)
{
uint x,y;
for(x = z; x > 0; x--)
for(y = 114; y > 0 ; y--);
}
void show()
{
for(i = 9;i<10;--i)
{
for(j = 9;j<10;--j)
{
P3 = aa[j];
P2 = aa[i];
delay(250);
}
}
}
void key()
{
if(!key_1)
{
delay(10);
if(!key_1)
{
flag1 = 1;
}
}
if(!key_2)
delay(10);
if(!key_2)
{
flag2 = 1;
}
}
void main()
{
while(1)
{
P3 = P2 = 0x00;
key();
if(flag1 = 1)
{
show();
key();
if(flag2 = 1)
{
flag1 == 0;
break;
}
}
if(flag2 = 1)
{
while(1)
{
i = m;
j = n;
P3 = aa[n];
P2 = aa[m];
key();
if(flag1 = 1)
{
flag2 == 0;
break;
}
}
}
}
}
復(fù)制代碼
QQ圖片20181202213529.png
(69.89 KB, 下載次數(shù): 46)
下載附件
2018-12-2 21:36 上傳
兩個分開數(shù)碼管的倒計時
作者:
謝小康4
時間:
2018-12-3 09:19
void main()
{
while(1)
{
P3=P2=0x00;
key();
if(flag1==1)
{
show();
key();
if(flag2 == 1)
{
flag1 = 0;
break;
}
}
if(flag2==1)
{
while(1)
{
i=m;
j=n;
P3=aa[n];
P2=aa[m];
key();
if(flag1==1)
{
flag2=0;
break;
}
}
}
}
}
兩個問題,1,你這個是怎么過的編譯,編譯肯定有錯誤,括號括不明白,if不會用嗎?里邊寫一個等于是賦值的意思,寫兩個才是判斷是否等于。
2,你這格式書寫以后要吃虧的,自己寫的程序自己都不愿意看,別人哪會有功夫給你看,所以說,把程序?qū)懬宄,括號括清楚!不要亂七八糟的
看這不舒服
作者:
xuyaqi
時間:
2018-12-3 10:56
注意在if判斷里要用 ==,賦值時要用 =。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1