欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
單片機(jī)+數(shù)碼管顯示不穩(wěn)
[打印本頁]
作者:
可愛萌萌噠
時間:
2020-7-4 22:06
標(biāo)題:
單片機(jī)+數(shù)碼管顯示不穩(wěn)
把數(shù)碼管顯示放在中斷里面,然后再開一個定時器(定時一秒,用于蜂鳴器計時)按下一號按鍵,數(shù)碼管亮,按下二號按鍵蜂鳴器響一秒(此時數(shù)碼管還亮,)復(fù)位后都不反應(yīng),程序?qū)懲曛,打開數(shù)碼管的時候,顯示不穩(wěn),閃爍,這是怎么了
#include<reg51.h>
#define uchar unsigned char
uchar smg[]={0xc0,0xf9,0xa4,0xb0};
sbit a1=P2^0;
sbit a2=P2^1;
sbit a3=P2^2;
sbit a4=P2^3;
sbit feng=P2^5;
sbit jian0=P3^2;
sbit jian1=P3^3;
void delay1()
{
uchar k;
for(k=20;k>0;k--)
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
while(TF1==0);
TF1=0;
}
}
void delay()
{
int i;
for(i=600;i>0;i--);
}
void main()
{
TMOD=0X11;
TH0=(65536-5)/256;
TL0=(65536-5)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR1=1;
EA=1;
ET0=1;
while(1)
{
if(jian1==0)
{
delay();
if(jian1==0)
{
while(!jian1);
TR0=1;
}
}
if(jian0==0)
{
delay();
if(jian0==0)
{
while(!jian0);
feng=0;
delay1();
feng=1;
}
}
}
}
void t0(void) interrupt 1
{
a1=0;
P0=smg[2];
delay();
a1=1;
a2=0 ;
P0=smg[0];
delay();
a2=1;
a3=0;
P0=smg[0];
delay();
a3=1;
a4=0;
P0=smg[3];
delay();
a4=1;
}
作者:
adject
時間:
2020-7-4 23:53
t0,中斷顯示寫的不對
作者:
daiya
時間:
2020-7-5 07:48
掃描頻率太低導(dǎo)致頻閃
作者:
可愛萌萌噠
時間:
2020-7-5 11:06
adject 發(fā)表于 2020-7-4 23:53
t0,中斷顯示寫的不對
能不能指導(dǎo)一下,這個地方,困擾好久了,謝謝啊
作者:
可愛萌萌噠
時間:
2020-7-5 17:10
daiya 發(fā)表于 2020-7-5 07:48
掃描頻率太低導(dǎo)致頻閃
能不能指導(dǎo)一下
作者:
wulin
時間:
2020-7-6 06:32
樓主要實(shí)現(xiàn)的功能:
1.開機(jī)不顯示,數(shù)碼管不亮,蜂鳴器不響。
2.按下一號按鍵,數(shù)碼管亮,顯示01233.按下二號按鍵,蜂鳴器響此時數(shù)碼管還亮,一秒后復(fù)位,數(shù)碼管不亮,蜂鳴器不響。
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar smg[]={0xc0,0xf9,0xa4,0xb0};
sbit a1=P2^0;
sbit a2=P2^1;
sbit a3=P2^2;
sbit a4=P2^3;
sbit feng=P2^5;
sbit jian0=P3^2;
sbit jian1=P3^3;
uchar i;
uint j;
void delay()
{
int i;
for(i=600;i>0;i--);
}
void main()
{
TMOD=0X01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
// TR0=1;
EA=1;
ET0=1;
P2=0xf0;
while(1)
{
if(jian1==0)
{
delay();
if(jian1==0)
{
while(!jian1);
TR0=1;
}
}
if(jian0==0)
{
delay();
if(jian0==0)
{
while(!jian0);
feng=0;
}
}
}
}
void t0(void) interrupt 1
{//重裝初值
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
//數(shù)碼管顯示
P2&=0xf0;
P0=smg[i];
P2|=0x01<<i;
i++;i%=4;
//蜂鳴器計時
if(feng==0)
{
j++;
if(j>=1000)//1s
{
j=0;
P0=0xff;
P2&=0xf0;
feng=1;
TR0=0;
}
}
}
復(fù)制代碼
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1