一、要求
在CT107D平台上测量NE555产生方波的频率值并显示在数码管上。频率数据显示用5位数码管,单位是Hz,数码管最左边显示“F”。改变滑动变阻器Rb3可以改变频率大小。
二、分析
使用两个定时器实现频率的测量,一个定时器用于计数,另一个用于定时。(频率:1s内的计数值)
在CT107D单片机平台上,用杜邦线将J13的SIGNAL和P34连接起来,NE555产生的信号便输入到单片机的P34引脚。P34是单片机定时器0引脚,因为这个原因,将定时器0设置为计数模式用于计数,定时器1设置为定时模式,当定时时间到达1s时将计数值读出并显示,这样就将由NE555产生信号的频率测量了出来。
三、代码
#include "reg52.h"
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
code uchar table[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x80,0xc6,0xc0,0x86,0x8e,
0xbf,0xc6,0xc6};//共阳段码表(不含小数点)
uint fq = 0; //频率变量(要用uint型)
uint count_f = 0; //频率计数变量
uint count_t = 0; //定时计数变量