采用PIC16C54制作的计数器

2013-10-29 13:59:00
  •   首先简单介绍一下,计数器广泛应用在工业控制中。传统的数字计数器都是用中小规模数字集成电路构成的,不但电路复杂,成本高,功能修改也不易。用单片机制作的计数器可以克服传统数字电路计数器的局限,有着广阔的应用前景。  本文介绍的计数器采用microchip公司的pic16

首先简单介绍一下,计数器广泛应用在工业控制中。传统的数字计数器都是用中小规模数字集成电路构成的,不但电路复杂,成本高,功能修改也不易。用单片机制作的计数器可以克服传统数字电路计数器的局限,有着广阔的应用前景。

本文介绍的计数器采用microchip公司的pic16c54单片机。该型单片机为risc结构,在4mhz的工作频率下,每一个指令周期为1μs,运行速度大大超过mcs-51系列,适用于对实时性要求较高的工业控制领域。

电路原理

附图为计数器的原理图。pic16c54具有两个i/o口,ra口有4条i/o线,rb口有8条i/o线,如果你想要详细了解这个芯片的话可以到各大搜索引擎查到他的资料。本计数器中ra口设置为输入口,用于读取bcd拨盘开关(bcd1~bcd5)设定的计数值;rb口设置为输出口,用于对数码管进行扫描和控制输出继电器。t0cki为pic16c54内部计数器的输入脚,计数脉冲经过光电转换后从该脚输入,pic16c54的内部计数器对输入的脉冲进行计数。

该注意的是,由于该内部计数器宽度仅有8位,最多只能计数到256,因此要用软件对该计数器进行扩展,以满足实际计数需要,不要超越他的极限。

bcd拨盘开关(bcd1~bcd5)设定计数终止值,当扩展的内部计数器计到与bcd拨盘开关设定值相等时,rb7输出高电平,使继电器吸合,控制外部设备。此时,即使有计数脉冲输入,计数器也不会再计数,必须在复位端输入复位信号,才能重新计数。

软件设计

本计数器的主程序完成bcd拨盘开关的读取和数码管扫描。数码管采用动态扫描的方法显示,每个数码管依次亮一定的时间,利用人的视觉暂留使数码管看上去是全亮的。每个数码管亮时都调用一个延时程序,在延时程序中,实现对t0cki脚的检测与pic16c54内部计数器的操作。由于pic16c54没有中断功能,用这种方法可以实现实时计数。

来源:阴雨