求帮忙写一段基于单片机89c51的C语言程序:60s内显示关于一脉冲信号次数值x,脉冲信号基本为恒定
显示器引脚(0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90)是每过60s,显示60s内脉冲信号次数的总值X(X在100...
显示器引脚(0xc0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90)
是每过60s,显示60s内脉冲信号次数的总值X(X在1000-1500之间) 展开
是每过60s,显示60s内脉冲信号次数的总值X(X在1000-1500之间) 展开
3个回答
展开全部
给你个89c52的,你用的应该也是这种单片机,如果是89c51的话就把定时器2改成定时器1吧
#include <reg52.h>
#include <intrins.h>
#include <stdlib.h>
#define uchar unsigned char
#define uint unsigned int
bit flag=0;
uint num1=0,num2=0,count=0;
void display();
void delayms(uint x)
{
uint i,j;
for(j=0;j<x;j++)
for(i=0;i<110;i++)
;
}
void Time2_Init(void) //T2定时器自动重装初值定时50ms 晶振12M
{
EA=1;
ET2=1;
TR2=1;
RCAP2L=(65535-46083)%256;
RCAP2H=(65535-46083)/256;
}
void display() //数码管显示函数
{
//此处省略,你自己编吧,懒得写了
}
main()
{
Time2_Init();
TMOD=0x55;
TR0=1;
while(1)
{
TH0=0;
TL0=0;
flag=0;
if(flag);
num=TH0<<8|TL0; //num为T0在1s内统计的下降沿次数,输入引脚为P3.4
display(); //数码管显示函数,显示num
}
}
void Time2(void) interrupt 5 //T2定时器中断1s,
{
TF2=0;
count++;
if(count==20) //如果想定时1分钟就把20改成1200
{
flag=1;
count=0;
}
}
展开全部
你的信息不够。
首先你要说明哪个管脚接受脉冲。
其次要说明显示器是什么,你写了10个管脚控制,是指2个数码管吗。
硬件资源搞清楚,程序才能动。
首先你要说明哪个管脚接受脉冲。
其次要说明显示器是什么,你写了10个管脚控制,是指2个数码管吗。
硬件资源搞清楚,程序才能动。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该是转速表。
到百度文库中,搜:单片机转速表,能找出很多的。
到百度文库中,搜:单片机转速表,能找出很多的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询