基于CPLD芯片控制的日历时钟显示系统
传统的DS12887日历时钟芯片成熟的控制电路均采用单片机〔1〕.但由于单片机的I/O资源较少(例如51系列只有P1口完全为用户开放),在一些场合下,如使用键盘及LED数码管显示时,就必须外扩接口电路才能满足系统要求.在本例中,若只使用单片机进行控制,需10根以上的端口与DS12887进行通信,驱动四个数码管采用静态方式需要四个74LS165,增进了设计成本.CPLD在系统编程及丰富的I/O资源(如EPM7128SLC84-15有59根I/O线)在上述场合下就显示出极大的优势,作为一种尝试,我们仅用一片EPM7128SLC84-15芯片没有附加任何扩展芯片,实现了键盘、4位LED数码管及DS12887的控制显示.取得较好效果.
1 硬件结构
1.1 结构框图及功能
图1中,键盘模块实现了日历时钟的校对功能.共阳极4位LED数码管采用静态显示方式,在CPLD内部用VHDL编程完成并串转换,形成32位串行移位寄存器结构,由于EPM7128SLC84-15芯片高电平拉电流为4 mA,低电平灌电流为12 mA,因此可以直接驱动LED数码管静态显示〔2〕.日历时钟模块电路如图3所示.
1.2 CPLD与DS12887电路结构及功能
DS12887为24脚双列直插式芯片,引脚如图2所示.内部有128个非易失性RAM,四个控制寄存器.其中0至13的14个字节为系统RAM,其余114个字节供用户使用.该芯片的主要特点是:断电情况下十年以上不丢失数据,计秒、分、时、天、星期、日、月、年,并有润年补偿功能,可以用二进制数码或BCD码表示时间、日历和警报.
图3中CPLD的2脚外接1 MHz的有源晶振作为系统工作时钟,在CPLD内4分频后得到250kHz频率作为32位移位寄存器的发送时钟.
2 VHDL编程及仿真
该系统的电路设计参考单片机DS12887的电路结构〔1〕,并用VHDL实现了INTEL8051系列的总线时序〔3〕(图4),限于篇幅,本文仅给出软件流程图和总线时序部分的详细VHDL源程序.
2.1 软件流程
在CPLD内部完成数据存储,移位等功能,充分体现了CPLD的优点.与DS12887的通信时序请参见图5.
library ieee;
use ieee.std ilogic 1164.all;
use ieee.std logic unsigned.all;
entity cpld c1 is
port(clk,reset:in std logic;
rw,ds,as:out std logic;
ad:out std logic vector(7 downto
0));
end cpld c1;
architecture behav of cpld c1 is
signal ount:std logic vector(3 downto
0);
signal ad latch:std logic vector(7 down-
to 0);
begin
process (clk,reset)
begin
if rest:` 1` then
ount<="0000";
elsif clk` event and clk=` 0` then
相关文章
- 2024-11-04ADSL技术在远程工业计量中的应用
- 2023-11-16一种液体流量计在线检测装置
- 2024-05-14大靶面光电探测靶光源研究与设计
- 2024-11-048508型数字多用表测量交直流电压表测量结果不确定度分析
- 2023-05-29基于两步换相控制策略的SR电机直接数字控制系统设计
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。