位置:51电子网 » 技术资料 » 其它综合

用CPLD实现的数字钟控系统

发布时间:2008/9/2 0:00:00 访问次数:708

  在系统编程(isp)器件是在20世纪90年代出现的最先进的可编程器件,它无须编程,可通过pc机经下载电缆直接对安装在用户目标版上的isp器件重复编程,实现系统重构,它给电子产品的设计和产生带来了革命性的变化。

  isp synario system是lattice半导体公司的isplsi系列器件的开发软件,软件内除了基本逻辑器件库外,还有一个较为完善的宏(macro)器件库,每一个宏器件是一组预先编好存放在库中的逻辑方程,它代表一个逻辑模块,设计时可作为逻辑器件调用。充分利用宏器件可以使逻辑设计大大简化。

  在进行复杂逻辑系统设计时,可以将整个系统划分为若干模块,而每个模块还可划分为若干子模块,设计时可由底层模块开始向上逐级设计、调试(或仿真),最后进行顶层组装调试。逻辑系统中的子模块可以直接用abel-hdl语言编辑,也可直接由电路图编辑而成。以下简要介绍利用isplsi1032e器件构成的数字钟控系统。

  1 数字钟控系统的基本结构

  数字钟控系统结构框图如图1所示,数字钟部分由秒、分、时计数电路,上、下午(a/p)转换电路,译码显示电路以及校时电路等组成。七只led数码管分别显示上、下午和时、分、秒。钟控部分由二—十进制译电路,时间选择矩阵电路,定时电路以及发声电路等组成。脉冲信号发生器提供秒脉冲和发声高频振荡源。整个系统除了系统控制开关、脉冲信号发生器、发声电路以及led数码管外,其余部分(如虚线框内所示)全部在一片isplsi1032e内实现。

  图1 数字钟控系统结构框图

  2 数字钟在isplsi1032e内的实现

  数字钟内核心部分是时、分、秒计数器,选用宏器件中的两位十进制递增计数器cdu38分别构成时、分、秒计数器。cdu38是一个由abe-hdl语言编辑的两位十进制递增计数器,其逻辑符号及功能表如图2所示。输出端:q7 ̄q0以8421bcd码形式输出两位十进制数,cao为进位输出端。输入端:clk为脉冲输入端(上跳沿触发),cd为清零端,cai为进位输入(计数容许)端,en为选片使能端,ld为同步置数控制端,d7 ̄d0为置数输入端。可以通过“反馈置数”方式利用宏器件cdu38组成100以内的任意进制计数器。

  图2 宏器件cdu38的逻辑符号(a)和功能表(b)

  2.1 秒计数模块

  秒计数器为一60进制递增计数器,将cdu38的输出端q6、q4、q3、q0通过与门2控制置数控制端ld,因为置数输入端d7 ̄d0全部接“地”,所以当计数器从0计数至59时,ld端为高电平,为置数做好准备。同时进位输出cao(取自ld端)也为高电平,可用做高位计数器的级连信号。当第60个脉冲到来时,计数器置零,实现60进制计数。秒计数器子电路如图3所示,图中输出端q7 ̄q0采用总线表示方式,其模块符号见图8数字钟模块中i-8。

  图3 秒计数器子电路

  2.2 分计数模块

  分计数器子电路如图4所示,其模块符号见图8数字钟模块中i-7。分计数器也是一个60进制递增计数器,其构成思路与秒计数器相同,不再赘述。在分计数子电路中为cdu38输出端配接了两个输出高电平有效的bcd7段显示译码子模块(ttl47gb),可直接驱动7段显示led数码管。输出高电平有效的bcd7段显示译码子模块符号与用abel—hdl语言编写的子程序如图5所示。

  图4 分计数器子电路

  图5 bcd7段显示译码电路模块符号与子程序

  2.3 时计数模块

  时计数器子电路如图6所示,其模块符号见图8数字钟模块中i-5。时计数器也是利用cdu38通过“反馈置数”方式构成。采用12小时计时制,q4、q1经与门i19和i11接止ld端,计数之间采用同步级连方式,当q4和q1为“1”且进位输入端cai(接分计数器进位输出cao)为高电平,此时对应时间为12时59分59秒,这时cdu38的ld端为高电平,而d7 ̄d1接“地”,d0接高电平,因此在下一个秒脉冲到来之时,时计数器数值为01(分、秒计数器均为00),实现12进制计数。

  在系统编程(isp)器件是在20世纪90年代出现的最先进的可编程器件,它无须编程,可通过pc机经下载电缆直接对安装在用户目标版上的isp器件重复编程,实现系统重构,它给电子产品的设计和产生带来了革命性的变化。

  isp synario system是lattice半导体公司的isplsi系列器件的开发软件,软件内除了基本逻辑器件库外,还有一个较为完善的宏(macro)器件库,每一个宏器件是一组预先编好存放在库中的逻辑方程,它代表一个逻辑模块,设计时可作为逻辑器件调用。充分利用宏器件可以使逻辑设计大大简化。

  在进行复杂逻辑系统设计时,可以将整个系统划分为若干模块,而每个模块还可划分为若干子模块,设计时可由底层模块开始向上逐级设计、调试(或仿真),最后进行顶层组装调试。逻辑系统中的子模块可以直接用abel-hdl语言编辑,也可直接由电路图编辑而成。以下简要介绍利用isplsi1032e器件构成的数字钟控系统。

  1 数字钟控系统的基本结构

  数字钟控系统结构框图如图1所示,数字钟部分由秒、分、时计数电路,上、下午(a/p)转换电路,译码显示电路以及校时电路等组成。七只led数码管分别显示上、下午和时、分、秒。钟控部分由二—十进制译电路,时间选择矩阵电路,定时电路以及发声电路等组成。脉冲信号发生器提供秒脉冲和发声高频振荡源。整个系统除了系统控制开关、脉冲信号发生器、发声电路以及led数码管外,其余部分(如虚线框内所示)全部在一片isplsi1032e内实现。

  图1 数字钟控系统结构框图

  2 数字钟在isplsi1032e内的实现

  数字钟内核心部分是时、分、秒计数器,选用宏器件中的两位十进制递增计数器cdu38分别构成时、分、秒计数器。cdu38是一个由abe-hdl语言编辑的两位十进制递增计数器,其逻辑符号及功能表如图2所示。输出端:q7 ̄q0以8421bcd码形式输出两位十进制数,cao为进位输出端。输入端:clk为脉冲输入端(上跳沿触发),cd为清零端,cai为进位输入(计数容许)端,en为选片使能端,ld为同步置数控制端,d7 ̄d0为置数输入端。可以通过“反馈置数”方式利用宏器件cdu38组成100以内的任意进制计数器。

  图2 宏器件cdu38的逻辑符号(a)和功能表(b)

  2.1 秒计数模块

  秒计数器为一60进制递增计数器,将cdu38的输出端q6、q4、q3、q0通过与门2控制置数控制端ld,因为置数输入端d7 ̄d0全部接“地”,所以当计数器从0计数至59时,ld端为高电平,为置数做好准备。同时进位输出cao(取自ld端)也为高电平,可用做高位计数器的级连信号。当第60个脉冲到来时,计数器置零,实现60进制计数。秒计数器子电路如图3所示,图中输出端q7 ̄q0采用总线表示方式,其模块符号见图8数字钟模块中i-8。

  图3 秒计数器子电路

  2.2 分计数模块

  分计数器子电路如图4所示,其模块符号见图8数字钟模块中i-7。分计数器也是一个60进制递增计数器,其构成思路与秒计数器相同,不再赘述。在分计数子电路中为cdu38输出端配接了两个输出高电平有效的bcd7段显示译码子模块(ttl47gb),可直接驱动7段显示led数码管。输出高电平有效的bcd7段显示译码子模块符号与用abel—hdl语言编写的子程序如图5所示。

  图4 分计数器子电路

  图5 bcd7段显示译码电路模块符号与子程序

  2.3 时计数模块

  时计数器子电路如图6所示,其模块符号见图8数字钟模块中i-5。时计数器也是利用cdu38通过“反馈置数”方式构成。采用12小时计时制,q4、q1经与门i19和i11接止ld端,计数之间采用同步级连方式,当q4和q1为“1”且进位输入端cai(接分计数器进位输出cao)为高电平,此时对应时间为12时59分59秒,这时cdu38的ld端为高电平,而d7 ̄d1接“地”,d0接高电平,因此在下一个秒脉冲到来之时,时计数器数值为01(分、秒计数器均为00),实现12进制计数。

-->
相关IC型号

热门点击

 

推荐技术资料

罗盘误差及补偿
    造成罗盘误差的主要因素有传感器误差、其他磁材料干扰等。... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!