利用定时器计数器设计一个电路,其功能是每输入1个脉冲,发光二极管状态改变一次

2020-05-15 科技 153阅读
(一)设计思路
1.测量方法:
多周期同步测量法( 倒数计数器法 )从根本上消除了±1误差,实现了等精度测量
2.实现技术的选择:
硬件实现法(可选的器件有通用的SSI/MSI/LSI集成电路、专用集成电路、可编程逻辑器件——如isPLD器件等);
软件实现法(可选的平台有PC机、单片机、 DSP器件等)
将这两种结合来实现设计要求。
3.信号发生器的选择(频率范围900—1300.0(KHz))
SG-4162AD高频信号发生器/计频器:频率范围:100KHZ-150MHZ◆分6档三次谐波到450MHZ±5%◆输出电压:100MVRMS◆低频输出:1KHZ2VRMS
3.大概的系统设计原理框图:
(二)子系统设计
1.输入通道的设计。输入通道是由前置放大器和整形器组成的,所以要对前置放大器的增益和带宽指标进行估计。为了能准确测量信号,将输入信号经过一个放大整形电路。其具体实施方案为:将输入信号经过LM358运放放大,再通过74LS132整形,此时的信号还不能直接送入单片机,这是因为在硬件上CPU对INT0和INT1引脚的信号不能控制,解决这个问题要通过硬件,再配合软件来解决。
2.预置闸门时间发生电路设计。闸门时间的确定,可以先由一个555定时器产生一个脉冲信号,将555产生的脉冲信号送入到74LS90十进制计数器当中,由于74LS90具有二-五进制混合计数的功能,所以可以用它来实现五进制计数,将74LS90的输出接到3—8线译码器74LS138的输入端,再将译码器的输出端接上五个发光二极管,这样就可以实现硬件上的闸门时间控制。但是考虑到硬件实现上的复杂性,可以通过软件上来实现,就是将五个发光二极管直接接到单片机的P1口由软件上来实现,通过按键来改变它的闸门时间。
3.数码显示电路的设计。该部分电路是由单向八位移位寄存器74LS164和数码管组成的。同时还要显示频率和周期的单位,所以还需再级联一块74LS164,在74LS164的输出端接六个单位指示灯,分别表示周期频率的三个不同的单位数量级,即周期单位s,ms,μs和频率单位Hz,KHz及MHz。移位寄存器的时钟信号是由单片机的串行输出口TXD脚控
1.单片机系统的选择:
单片机子系统(根据下列要求选用AT89C51)
①由+5V电源供电,I/O口与TTL电平兼容,并有足够数目的I/O口;②要有丰富的四则算术运算和逻辑运算指令,指令执行速度要快;③片内除RAM外还要有EPROM;④至少有两个16位的定时器/计数器;⑤有外部中断输入引脚;⑥具有串行通信口;⑦价格要低廉
其中输入通道组成框图如下:
被测信号边沿选择电路:
被测信号边沿选择电路的工作波形图:
三、软件设计
(一)软件主程序流程图(见图)
(二)子程序的设计
1.键盘中断服务子程序。因该频率计的测量项目较多,所以在系统初始化时,将默认测量项目设置为测频,且预置闸门时间设置为1ms。具体做法就是在主程序的系统初始化部分,将测频选择键的键值以及预置闸门时间设置代码写入单片机RAM单元中去。这样开机后即使用户没有选择任何测量项目键,也能进行频率测量。
2.软件计数器子程序。该频率计所需要的不同闸门预置时间信号是由单片机产生的。由于预置闸门时间的范围很宽,最大值为10s,最小值为1ms,仅用单片机中的定时器硬件是不能实现的,需采用软硬件相结合的方法来实现。其具体实现方案为将C/T0定时器/计数器设置为由引脚高电平启动的方式1定时器T0,初始化将其初值设为0.该计数器的启动过程如下:主程序首先将单片机P1.6脚置为高电平(逻辑1)发出预置闸门信号,该信号经同步电路而产生高电平的同步门信号,从而使单片机引脚变为高电平,C/T0定时器中的计数器就被启动开始计数。
3.数据处理子程序。当事件计数器和时间计数器的计数值NA,NB被读到单片机中后,通过调用数据处理子程序,根据过去读入并保存在单片机RAM单元中的测量项目的键值,预置闸门值代码,判断出所要测量的参数项目,对计数值NA,NB进行相应的处理,求出所测参数的值和单位,最后应将参数值转换为十进制数,再转换为驱动LED数码显示器的段码(每位包含5个数字段码和1个小数点)以及驱动三个单位符号指示灯之一的位码,作为显示子程序的输入数据,存放在9个RAM单元组成的显示缓冲区中。对计数值NA,NB的处理运算要用到除法和乘法,为了提高运算精度,应当采用浮点运算。显然,采用C语言来编写这些运算程序可大大提高编程效率。
计数式测频的原理方框图:
四、结论
本系统采用大规模集成电路设计,用C51语言编程,实现了对不同波形、不同频率信号的测量。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com