标题:
关于C51单片机频率计的程序问题
[打印本页]
作者:
繁星雨落
时间:
2017-5-21 14:50
标题:
关于C51单片机频率计的程序问题
总是报错,也不知道哪里出错。
#include<reg51.h>
#include<math.h>
#define uint unsigned int
#define uchar unsigned char
uchar m=0;
uchar u;
uint i;
uint x;
uint c; //相位数据结果保存
float t0,f;
uint a[]={70,61,48,48,48,48,48,46,48,48,72,90}; //频率数据结果保存
//F,=,0,0,0,0,0,.,0,0,H,Z
sbit lcdrw=P2^1;
sbit lcdrs=P2^0;
sbit lcden=P2^2;
/////////////////LCD1602的设置//////////////////////////////////
void delay(uint s)//延时1MS
{
uint r,g;
for(r=s;r>0;r--)
for(g=110;g>0;g--);
}
void write_com(uchar com) // 写指令
{
lcdrs=0;
P0=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date) // 写数据
{
lcdrs=1;
P0=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void initlcd()//初始化
{
lcdrw=0;
lcden=0;
//write_com(0x01);//显示清屏
write_com(0x38);//显示模式设置
write_com(0x0c); //显示开,开游标,不闪烁
write_com(0x06); // 字符时整体不移动
}
////////////LCD1602设置///////////////
///////////定时器的设置//////////////
void CT_init() //定时计数器初始化
{ TMOD=0x99; //GATE=1,T1、T0工作在方式1,定时方式
TH0=0; //定时计数器初值清零
TL0=0;
// TH1=0;
// TL1=0;
TR0=1; //TR0,TR1置位,此时定时计数器的启动有INT0,INT1引脚电平决定
// TR1=1;
ET0=1; //开中断
// ET1=1;
}
void ITC0() interrupt 0 //外部中断0服务程序
{
u=m; //读定时计数器0溢出次数
m=0; //溢出次数清零
x=TH0*256+TL0; //读定时计数器0当前值
TH0=0; //定时计数器0清零
TL0=0;
}
void TIME0() interrupt 1 //定时计数器0溢出中断
{
m++; //溢出次数加1
}
////////////定时器的设置//////////////
void main()
{
initlcd(); //液晶显示初始化
CT_init(); //定时计数器初始化
EA=1; //开总中断
EX0=1; //允许外部中断
// EX1=1;
IT0=1; //设置外部中断方式为下降沿触发
// IT1=1;
P3=0xff;
while(1)
{
t0=u*65536+x; //计算脉冲时间宽度
f=1000000/(2*t0); //计算频率
c=f*100; //计算结果逐位保存
a[9]=c%10+48;
a[8]=(c/10)%10+48;
c=f;
a[6]=c%10+48;
a[5]=(c/10)%10+48;
a[4]=(c/100)%10+48;
a[3]=(c/1000)%10+48;
a[2]=(c/10000)%10+48;
write_com(0x80);
for(i=0;i<=11;i++)
{
write_data(a[ i]);
delay(10);
}
}
}
作者:
ahshmj
时间:
2017-5-21 16:58
报的什么错?
作者:
zl2168
时间:
2017-5-21 17:59
本帖最后由 zl2168 于 2017-5-21 18:08 编辑
实例73 测量脉冲频率
先
Proteus
仿真一下,确认有效
实例73 测量脉冲频率.rar
(52.74 KB, 下载次数: 9)
2017-5-21 18:08 上传
点击文件名下载附件
测量脉冲频率.jpg
(150.67 KB, 下载次数: 53)
下载附件
2017-5-21 18:08 上传
以上摘自张志良编著《单片机实验实训
100
例》
ISBN 978-7-5124-1603-1
,北航社出版书中电路和程序设计有详细说明,程序语句条条有注解。
仿真电路和
Hex
文件能在清华出版社网站免费下载,程序源代码只能到书上看了。
到图书馆借,或到新华书店翻阅,或到网上书店打折购买。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1