欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
有沒有大佬 看下怎么調試 求幫助
[打印本頁]
作者:
新手求帶
時間:
2018-6-22 00:24
標題:
有沒有大佬 看下怎么調試 求幫助
#include<reg52.h>
#include<intrins.h>
sbit ADDR0=P1^0;
sbit ADDR1=P1^1;
sbit ADDR2=P1^2;
sbit ADDR3=P1^3;
sbit ENLED=P1^4;
sbit BUZZ = P1^6; //蜂鳴器控制引腳
unsigned char code LEDwei[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e
};
unsigned char code KeyCode[]={0xff,0xe7,0xd7,0xb7,0x77,0xeb,0xdb,0xbb,0x7b,
0xed,0xdd,0xbd,0x7d,0xee,0xde,0xbe,0x7e
}; //矩陣鍵盤按鍵編碼
unsigned char scan0=0xfe;
unsigned char count[]={0,0,0,0,0,0};
unsigned char byte=5;
unsigned char number[5];
unsigned char key;
unsigned char n;
unsigned int cnt;
unsigned char flag=1;
bit f0;
void delay_ms(unsigned int cnt)
{
unsigned char i;
while(cnt--)
{
for(i=0;i<=110;i++);
}
}
void Scankeyboard();
void countDown();
void main()
{
ADDR3=1;
ENLED=0;
TMOD=0x01;
TH0=0xfc;
TL0=0x67;
EA=1;
TR0=1;
ET0=1;
while(1)
{
Scankeyboard();
countDown();
}
}
void time0()interrupt 1
{
unsigned char i;
cnt++;
TH0=0xfc;
TL0=0x67;
P0=0xff;
switch(i)
{
case 0:ADDR0=0; ADDR1=0; ADDR2=0; i++; if(byte>=1) P0=LEDwei[count[0]];break;
case 1:ADDR0=1; ADDR1=0; ADDR2=0; i++; if(byte>=2) P0=LEDwei[count[1]];break;
case 2:ADDR0=0; ADDR1=1; ADDR2=0; i++; if(byte>=3) P0=LEDwei[count[2]];break;
case 3:ADDR0=1; ADDR1=1; ADDR2=0; i++; if(byte>=4) P0=LEDwei[count[3]];break;
case 4:ADDR0=0; ADDR1=0; ADDR2=1; i++; if(byte>=5) P0=LEDwei[count[4]];break;
case 5:ADDR0=1; ADDR1=0; ADDR2=1; i=0; P0=LEDwei[count[5]];break;
default:break;
}
}
void countDown()
{
if(flag==3)
{
if(byte==1&count[0]>9) BUZZ=~BUZZ;
if(byte==2&count[1]>9) BUZZ=~BUZZ;
if(byte==3&count[2]>9) BUZZ=~BUZZ;
if(byte==4&count[3]>9) BUZZ=~BUZZ;
if(byte==5&count[4]>9) BUZZ=~BUZZ;
if(cnt==1000&f0==0)
{
cnt=0;
count[0]--; //個位
if(count[0]>9)
{ f0=1;
if(byte>1)
{
f0=0;
count[0]=9;
count[1]--; //十位
if(count[1]>9)
{
f0=1;
if(byte>2)
{
f0=0;
count[1]=9;
count[2]--; //百位
if(count[2]>9)
{
f0=1;
if(byte>3)
{
f0=0;
count[2]=9;
count[3]--; //千位
if(count[3]>9)
{
f0=1;
if(byte>4)
{
f0=0;
count[3]=9;
count[4]--; //萬位
if(count[4]>9)
{
f0=1;
}
}
}
}
}
}
}
}
}
}
}
}
void Scankeyboard()
{
unsigned char scan,keyboard;
unsigned char i;
P2=scan0;
scan=P2;
if(scan!=scan0)
{
delay_ms(2);
if(scan!=scan0)
{
while(P2!=scan0);
keyboard=scan;
for(i=1;i<17;i++)
{
if(keyboard==KeyCode[i])
key=i;
}
if(flag==2)
{
if(n>byte)
n=byte;
if(key>=1&key<=3) //1~3
{
number[n++]=key;
}
if(key>=5&key<=7) //4~6
{
number[n++]=key-1;
}
if(key>=9&key<=11) //7~9
{
number[n++]=key-2;
}
if(keyboard==KeyCode[13]) //0
{
number[n++]=0;
}
count[n-1]=number[n-1];
}
if(flag==1)
{
if(key>=1&key<=3) //1~3
{
key=key;
byte=key; //設置倒計時的位數
count[5]=byte;
// flag=2;
}
if(key==5|key==6) //4~5
{
key=key-1;
byte=key; //設置倒計時的位數
count[5]=byte;
//flag=2;
}
}
if(flag==3&key==15) //重新設定倒計時
{
flag=1;f0=0;
count[0]=0;
count[1]=0;
count[2]=0;
count[3]=0;
count[4]=0;
count[5]=0;
byte=5;
}
else if(flag==1&key==15)
flag=2;
else if(flag==2&key==15)
flag=3;
}
}
else
{
scan0=_crol_(scan0,1);
if(scan0==0xef)
{
scan0=0xfe;
}
}
}
復制代碼
作者:
新手求帶
時間:
2018-6-22 00:29
我調試的老是計時很久才響應
作者:
zsyzdx
時間:
2018-6-22 12:29
你怎么是限制會員,還有你提問不會很清楚,不明白你問什么意思?
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1