如何用C语言编程将红外传感器的返回值在数码管上用0和1显示?
2个回答
2014-03-31
展开全部
#include<reg52.h>
sbit wei1=P3^0;
sbit wei2=P3^1;
unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9
unsigned char Data[8]; //存储显示值的全局变量
void Delay(unsigned int t); //函数声明
main()
{
unsigned char num=0;
unsigned int j;
while(1)
{
Data[1]=DuanMa[num/10];
Data[0]=DuanMa[num%10];
num++;
if(num==100) //用于显示0~99
num=0;
for(j=0;j<5;j++)
{ wei1=0;
wei2=1;
P2=Data[1];
Delay(5000);
wei1=1;
wei2=0;
P2=Data[0];
Delay(5000);
}
}
}
void Delay(unsigned int t)
{
while(--t);
}
用的共阴极数码管,p2口接数码管数据输入端,p3.0和p3.1接使能端
我用proteus仿真了一下,个位总是闪,很是郁闷,不知是何原因,但你可以参考一下,找到原因了可以告诉我一声,谢谢!
sbit wei1=P3^0;
sbit wei2=P3^1;
unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 显示段码值0~9
unsigned char Data[8]; //存储显示值的全局变量
void Delay(unsigned int t); //函数声明
main()
{
unsigned char num=0;
unsigned int j;
while(1)
{
Data[1]=DuanMa[num/10];
Data[0]=DuanMa[num%10];
num++;
if(num==100) //用于显示0~99
num=0;
for(j=0;j<5;j++)
{ wei1=0;
wei2=1;
P2=Data[1];
Delay(5000);
wei1=1;
wei2=0;
P2=Data[0];
Delay(5000);
}
}
}
void Delay(unsigned int t)
{
while(--t);
}
用的共阴极数码管,p2口接数码管数据输入端,p3.0和p3.1接使能端
我用proteus仿真了一下,个位总是闪,很是郁闷,不知是何原因,但你可以参考一下,找到原因了可以告诉我一声,谢谢!
上海盛仪自动化仪表
2024-04-08 广告
2024-04-08 广告
YHD-10位移传感器是我们公司推出的一款高精度测量设备。它采用先进的传感技术,能够实时监测和测量物体的位移变化,具有响应速度快、测量准确、稳定性高等特点。无论是在工业自动化生产线,还是在科研实验室,YHD-10都能提供可靠的位移数据,助力...
点击进入详情页
本回答由上海盛仪自动化仪表提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询