EDN China > 其它文章 > 可编程器件 > PLD > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

【分享】基于CPLD的数字钟设计(VHDL语言)

作者:colinzhang?? 2007年12月23日 ?? 收藏0
引自EDN博客:colinzhang

利用一块芯片完成除时钟源、按键、扬声器和显示器(数码管)之外的所有数字电路功能。所有数字逻辑功能都在CPLD器件上用VHDL语言实现。这样设计具有体积小、设计周期短(设计过程中即可实现时序仿真)、调试方便、故障率低、修改升级容易等特点。

本设计采用自顶向下、混合输入方式(原理图输入顶层文件连接和VHDL语言输入各模块程序设计)实现数字钟的设计、下载和调试。

?

一、?????????? 功能说明

已完成功能

1.?????? 完成秒/分/时的依次显示并正确计数;

2.?????? 秒/分/时各段个位满10正确进位,秒/分能做到满60向前进位;

3.?????? 定时闹钟:实现整点报时,又扬声器发出报时声音;

4.??&n

bsp;???

时间设置,也就是手动调时功能:当认为时钟不准确时,可以分别对分/时钟进行调整;

5.?????? 利用多余两位数码管完成秒表显示:A、精度达10msB、可以清零;C、完成暂停

可以随时记时、暂停后记录数据。

?

待改进功能:

1.?????? 闹钟只是整点报时,不能手动设置报时时间,遗憾之一;

2.?????? 秒表不能向秒进位,也就是最多只能记时100ms

3.?????? 秒表暂停记录数据后不能在原有基础上继续计时,而是复位重新开始。

注意秒表为后来添加功能,所以有很多功能不成熟!

二、?????????? 设计方案

1.?????? 数字钟顶层设计

外部输入要求:输入信号有1kHz1Hz时钟信号、低电平有效的秒/微秒清零信号CLR、低电平有效的调分信号SETmin、低电平有效的调时信号SEThour

?

外部输出要求:整点报时信号SOUND5951357秒时未500Hz低频声,5959秒时为1kHz高频声)、时十位显示信号h1a,b,c,d,e,f,g)、时个位显示信号h0a ,b,c,d,e,f,g)、分十位显示信号m1及分个位m0、秒十位s1及秒个位s0、微秒十位ms1及微秒个位ms0;数码管显示位选信号SEL012等三个信号。

??? 2.? 内部功能模块主要有:

? Fenp分频模块:主要是整点报时用的1kH500Hz的脉冲信号,这里的输入信号是1KHz信号,所以只要一个二分频即可;时间基准采用1Hz输入信号直接提供(当然也可以分频取得,这里先用的是分频取得的信号,后考虑到精度问题而采用硬件频率信号。

? 实现带有100进制进位和清零功能,暂定等功能的微秒模块MINSECONDB输入为1Hz脉冲和低电平的清零信号CLR与暂定信号STOP,输出微秒个位、十位及进位信号CO(虽然没有实现进位功能,但还是编写了这个端口,只是在连线时悬空)。

?? 实现60进制带有进位和清零功能的秒计数模块SECOND,输入为1Hz脉冲和低电平有效的清零信号CLR,输出秒个位、时位及进位信号CO

?? 实现60进制带有进位和置数功能的分计数模块MINUTE,输入为1Hz脉冲和高电平有效的使能信号EN,输出分个位、时位及进位信号CO

?? 实现24进制的时计数模块HOUR,输入为1Hz脉冲和高电平有效的使能信号EN,输出分个位、时位。

?? 实现分时复用功能模块SELTIME,输入为秒(含个/十位)、分、时、扫描时钟CLK1K,输出为D和显示控制信号SEL

实现整点报时功能模块ALERT,输入为分/秒信号,输出为高频声控Q1KQ500

实现译码显示功能模块DISPLAY,输入为D,输出为Q

?

…………

?


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

CPLD? 数字钟? VHDL?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈