欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
誰幫我看看獨立按鍵程序,不知道哪里出問題
[打印本頁]
作者:
zh_jian
時間:
2016-7-5 16:02
標題:
誰幫我看看獨立按鍵程序,不知道哪里出問題
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula = P2^6;
sbit wela = P2^7;
sbit KEY_1 = P3^7;
unsigned char leddata[]={
0x3F, //"0"
0x06, //"1"
0x5B, //"2"
0x4F, //"3"
0x66, //"4"
0x6D, //"5"
0x7D, //"6"
0x07, //"7"
0x7F, //"8"
0x6F, //"9"
};
void delay_xms(uint xms) //延時函數
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void display(uchar shi,uchar ge) //顯示函數
{
wela = 1;
P0 = 0xfe;
wela = 0;
P0 = 0xff;
dula = 1;
P0 = leddata[shi];
dula = 0;
delay_xms(5);
wela = 1;
P0 = 0xfd;
wela = 0;
P0 = 0xff;
dula = 1;
P0 = leddata[ge];
dula = 0;
delay_xms(5);
}
void keyscan() //按鍵掃描
{
uchar num,shi,ge;
if(KEY_1==0)
{
delay_xms(10);
if(KEY_1==0)
{
num++;
if(num==20)
num=0;
shi=num/10;
ge=num%10;
while(!KEY_1);
}
display(shi,ge);
}
}
void main()
{
while(1)
{
keyscan();
}
}
實現功能:用獨立按鍵 按下數碼管加1
我這樣寫的函數,實現不了,求解哪里的問題 謝謝大神。小白一枚
作者:
騰飛的龍
時間:
2016-7-6 09:13
你的程序寫到有問題,我改了一下現在正常啦
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula = P2^6;
sbit wela = P2^7;
sbit KEY_1 = P3^7;//加
sbit KEY_2 = P3^6;//減
uchar num,shi,ge,i;
uchar leddata[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,
0xa1,0x86,0x8e,0x89};
/*uchar leddata[]={
0x3F, //"0"
0x06, //"1"
0x5B, //"2"
0x4F, //"3"
0x66, //"4"
0x6D, //"5"
0x7D, //"6"
0x07, //"7"
0x7F, //"8"
0x6F, //"9"
};*/
void delay_xms(uint xms) //延時函數
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void display(uchar num) //顯示函數
{
shi=num/10;
ge=num%10;
for(i=0;i<10;i++)//顯示10次增加亮度
{
wela = 1;
P0 = 0xfe;
wela = 0;
dula = 1;
P0 = leddata[shi];
dula = 0;
delay_xms(5);
P0 = 0xff;
wela = 1;
P0 = 0xfd;
wela = 0;
dula = 1;
P0 = leddata[ge];
dula = 0;
delay_xms(5);
P0 = 0xff;
}
}
void keyscan() //按鍵掃描
{
if(KEY_1==0)
{
delay_xms(10);
if(KEY_1==0)
{
num++;
if(num==99)
num=0;
}
while(!KEY_1);
}
if(KEY_2==0)
{
delay_xms(10);
if(KEY_2==0)
{
num--;
if(num==0)
num=0;
}
while(!KEY_2);
}
}
void main()
{
num=0;
while(1)
{
keyscan();
display(num);
}
}
復制代碼
作者:
460864915
時間:
2016-7-6 12:07
把 display(shi,ge); 放在主函數里面,num,ge,shi 定義為全局變量
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit dula = P2^6;
sbit wela = P2^7;
sbit KEY_1 = P3^7;
uchar num,shi,ge;
unsigned char leddata[]={
0x3F, //"0"
0x06, //"1"
0x5B, //"2"
0x4F, //"3"
0x66, //"4"
0x6D, //"5"
0x7D, //"6"
0x07, //"7"
0x7F, //"8"
0x6F, //"9"
};
void delay_xms(uint xms) //延時函數
{
uint i,j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
}
void display(uchar shi,uchar ge) //顯示函數
{
wela = 1;
P0 = 0xfe;
wela = 0;
P0 = 0xff;
dula = 1;
P0 = leddata[shi];
dula = 0;
delay_xms(5);
wela = 1;
P0 = 0xfd;
wela = 0;
P0 = 0xff;
dula = 1;
P0 = leddata[ge];
dula = 0;
delay_xms(5);
}
void keyscan() //按鍵掃描
{
if(KEY_1==0)
{
delay_xms(10);
if(KEY_1==0)
{
num++;
if(num==20)
num=0;
shi=num/10;
ge=num%10;
while(!KEY_1);
}
}
}
void main()
{
while(1)
{
keyscan();
display(shi,ge);
}
}
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1