电子电路网,电子制作,电路图 首页

当前位置:主页 > 其它电路 > 未分类电路 >
结合555 实验电路和单片机定时器频率计电路,366电子电路网网站提供各种电子实验,实验图,原理图,IC资料,技术文章,免费下载等资料,是广大电子工程师所喜爱电子资料网站。

结合555 实验电路和单片机定时器频率计电路

一. 电路目的
利用单片机的定时器/计数器功能,开发设计一个低频信号频率计。
二. 电路设备及器件
IBM PC 机 一台
DP-51PROC 单片机综合仿真电路仪 一台
10K 电阻 二只
104 电容 二只
三. 电路内容
利用电路十一的555 多谐振荡器产生的输出为输入(频率低于6KHz),用单片机算出
频率,并在LED 上显示。
四. 电路要求
用定时器0 作为定时器,定时1s;用定时器1 作为计数器,对输入的脉冲进行计数。
利用ZLG7290 键盘显示芯片在LED 上显示五位的频率数值。
五. 电路步骤
1. 首先按电路十一的555 多谐振荡器实验图连接,其中将474 电容换为104 电容。
2. 用导线连接A2 区的T1 与C6 区的OUT(即555 的输出)。
3. 用导线连接A2 区的P16 与D5 区的SCL。
4. 用导线连接A2 区的P17 与D5 区的SDA。
5. 将D5 区的RST_L 连接到+5V。
6. 短接C6 区JP5 的555 电源跳线和D5 区JP1 的电源跳线。
7. 编写程序并运行,可以在D5 区的数码管上显示频率值。
六. 电路预习要求


认真阅读电路参考程序,理解程序的算法和原理。
七. 电路参考程序
#include "reg52.h"
#include "Zlg7290.h" //Zlg7290 库
#include "viic_c51.h" //I2C 库
unsigned char scount;
void timer0_int() interrupt 1
{
TR0=0; //关闭定时器
TH0=0x4C; //重装定时器值

TL0=0x19;
TF0=0; //清除溢出标志
scount--;
if(scount>0) //到1s 了吗?
TR0=1; //没到,开定时器
else
TR1=0; //到了,停止T1 的计数
}
main()
{
unsigned char a[5];
unsigned char i,resh,resl;
unsigned long int freq;
TMOD=0xD1;
//定时器0 工作在定时方式1,定时器1 工作在计数方式1
TH0=0x4C; //定时50ms
TL0=0x19;
TH1=0; //计数值清0
TL1=0;
scount=20; //定时1s
ET0=1; //开定时器0 中断
EA=1; //开总中断
TR0=1; //启动定时器和计数器
TR1=1;
for (i=0;i<5;++i)
a[i]=0;
ZLG7290_SendBuf(a,5); //在LED 上显示5 位0。
while(1)
{
if(!scount) //1s时间到
{
resh=TH1; //取出计数值
resl=TL1;
TH1=0; //计数值清零
TL1=0;
TH0=0x4C; //重装定时器0
TL0=0x19;
scount=20; //定时1S
TR0=1; //启动定时器和计数器


TR1=1;
freq=resh*256+resl; //计算频率值
a[0]=freq%10; //将各位分离显示

a[1]=(freq/10)%10;
a[2]=(freq/100)%10;
a[3]=(freq/1000)%10;
a[4]=freq/10000;
ZLG7290_SendBuf(a,5); //送ZLG7290 显示
}
}
}
八. 电路思考题
(1)请编写一段程序实现6KHz 以上的频率计。
(2)请用硬件实现,用本程序制作6KHz 以上的频率计。

关键字: [错误报告] [推荐] [收藏] [打印] [关闭] [返回顶部]