#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
sbit K1=P3^0;
sbit K2=P3^2;
void display();
uint count=0,flag,BJ=3,n,k;
uchar code wei[]={0x01,0x02,0x04,0x08};
uchar code duan[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar data a[]={0,0,0,0};
double u;
void delay(uint t)
{
uint i,j;
for(i=t;i>0;i--)
for(j=110;j>0;j--);
}
void main()
{
IE=0X83;
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
while(1)
{
if(K1==0)
{
while(K1==0)
{
TR0=1;
flag=0; //正常
}
}
}
}
void INIT()interrupt 0
{
if(K2==0)
{
TR0=0;
while(K2==0)
{
u=50*count/1000;
count=0;
if(u<BJ)
{
flag=0;
display();
}
else if(u>BJ)
{
flag=1;
display();
}
}
}
}
void TI0()interrupt 1
{
count++;
TR0=0;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
}
void display()
{
n=(int)(u*100);
a[0]=n/1000;
a[1]=n/100%10;
a[2]=n/10%10;
a[3]=n%10;
if(flag==0)
{
for(k=0;k<4;k++)
{
P0=wei[k];
P2=duan[a[k]];
delay(2);
}
}
else if(flag==1)
{
P1=0;
for(k=0;k<4;k++)
{
P0=wei[k];
P2=0xc8;
}
}
}
四位数码管接显示数据后,之后自动清零,最后一位又不显示
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
相关推荐 更多相似问题
点击登录
提问题
悬赏问题
- ¥15 我想用matlab处理spm8和vbm8的数据分析,用于分析nii文件各种脑区的图像,但是在第一步使用estimate and write中就出错,如何解决?
- ¥15 能否给一个SOCKET通转USB通信的安卓程序代码
- ¥15 前端js跨域请求问题
- ¥15 C++SMTP服务器
- ¥15 为什么52单片机测温实物LCD不显示数值?(c语言)
- ¥30 《红色警戒2》最新mod《泰矿危机2》修改敌方单位阵营易语言
- ¥15 C语言频闪问题与时间显示
- ¥15 利用funguild进行大型真菌生态型划分
- ¥20 急!希望找到这个程序的作者help
- ¥20 windows系统文件缺失去