0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何利用I/O设备和PLD芯片实现数字日历的设计?

冬至子 来源:吃小竹子丫 作者:吃小竹子丫 2023-08-25 17:00 次阅读

1 系统设计

1.1 设计要求

1.1.1 设计任务

设计并制作一台数字日历。

1.1.2 性能指标要求

① 用EDA实训仪的I/O设备和PLD芯片实现数字日历的设计。

② 数字日历能够显示年、月、日、时、分和秒。

③ 用EDA实训仪上的8只八段数码管分两屏分别显示年、月、日和时、分、秒,即在一定时间段内显示年、月、日(如20080101),然后在另一时间段内显示时、分、秒(如00123625),两个时间段能自动倒换。

④ 数字日历具有复位和校准年、月、日、时、分、秒的按钮,但校年和校时同用一个按钮,即在显示年、月、日时用此按钮校年,在显示时、分、秒时则用此按钮校时,依此类推。

1.2 设计思路及设计框图

1.2.1设计思路

根据万年历的实际特点,本设计最基础的部分就是24小时计数器部分。它由两片60进制计数器和一片24进制计数器构成,输入clk为1Hz(秒)的时钟,经过60分频后产生1分钟的时钟信号,再经过60分频后,产生1小时的时钟信号,最后进行24分频,得到1天的脉冲送cout输出。

当计时器设计完成后,可以为它产生一个元件符号,作为万年历设计的基本元件。除了基础的计时器模块(day),万年历电路还包括年月日模块(nyr2013),控制模块(contr),校时选择模块(mux_4)和显示选择模块(mux_16)。

在基础计数器完成的天计数脉冲完成之后,送入年月日模块中进入进一步的计数,最终进一步得到日,月,年的计数结果。由于设计要求8只八段数码管分两屏分别显示年、月、日和时、分、秒,所以控制模块便通过控制信号k来控制数码管是显示时、分、秒还是年、月、日,或者自动轮流显示。

相应的显示选择模块也是通过k信号来控制是选择将计时器模块的时、分、秒结果信号,还是将年月日模块的年、月、日结果信号送到数码管显示。设计还要求数字日历具有复位和校准年、月、日、时、分、秒的按钮,但校年和校时同用一个按钮,所以应运而生有校时选择模块,同样也是在k信号的控制下,对j1、j2、j3这三个公共校时按钮所产生的校时信号选择是送到计时器模块的校时端,还是年月日模块的校年端,从而实现校时选择功能。以上就是大体的设计思路,各个模块相辅相成,最终满足设计要求。

1.2.2总体设计框图

2 各个模块程序的设计

2.1 控制模块contr的设计

控制模块的元件符号如上图所示。由于设计要求8只八段数码管分两屏分别显示年、月、日和时、分、秒,因此需要通过在控制模块中通过分频电路来实现,在此模块中采用了一个16秒的分频电路,占空比为50%,即8秒高电平,8秒低电平,因此很容易实现万年历年、月、日和时、分、秒的自动切换显示功能。其中clk是1秒脉冲信号输入端,k1和k2是控制输入端:当{k1,k2}=00或11时即进入自动切换显示模式,当{k1,k2}=01时,数码管仅显示时、分、秒,当{k1,k2}=10时,数码管仅显示年、月、日。{k1,k2}的值决定了控制信号k的输出。

2.2 校时选择模块mux_4v的设计

校时选择模块的元件符号如上图所示。k是控制信号的输入端,由控制模块输出,控制对j1、j2、j3这三个公共校时按钮所产生的校时信号选择是送到计时器模块的校时端,还是年月日模块的校年端,其中当k=0时,将j1、j2、j3产生的信号送到计时器模块的jm(校秒)、jf(校分)、js(校时)端;其中当k=1时,将j1、j2、j3产生的信号送到年月日模块的jr(校日)、jy(校月)、jn(校年)端,从而校年和校时可以同用一组按钮。

2.3 年月日模块nyr2020的设计

年月日模块的元件符号如上图所示。k是控制信号的输入端,由控制模块输出。其中,clrn是异步清除输入端,低电平有效;clk是时钟输入端,上升沿有效;jn、jy、jr分别是校年、校月。校日的输入端,qn、qy、qr则分别是年、月、日的状态输出端。

2.4 显示选择模块mux_16v的设计

显示选择模块的元件符号如上图所示。k是控制信号的输入端,由控制模块输出。因为控制模块决定了数码管有多中不同的显示模式,所以当k=0时,将计时器模块输出的qm、qf、qs的状态信号送到数码管显示;而当k=1时,将年月日模块输出的qr、qy、qn的状态信号送到数码管显示。其中我加入了扩展功能,在数码管只显示时、分、秒的时候,有2个数码管并没有数值显示,因此我将其中一个数码管选择显示A或F,当时间在12点之前是显示A,代表上午(AM),当时间在12点之后时显示F,代表下午(FM)。

2.5 计时器模块jsq的设计

计时器模块的元件符号如上图所示。clk是秒时钟输入端;clrn是清除输入端,低电平有效;jm、jf、js分别是校秒、校分、校时的输入端,下降沿有效;qm、qf、qs分别是秒、分、时的输出端;day是“天”脉冲输出端。计时器模块是万年历电路最基础的组成部分。它由分频器、两片60进制计数器和一片24进制计数器构成,具体构成如下图:

2.6 LED显示模块LED1的设计(扩展功能的实现)

qy和qr和nyr模块中的输出相连,LED是输出,在实验时用一个LED灯把管脚锁住锁住,每到节日来的脉冲便会使LED灯亮。加入的扩展功能,能让万年历在节日的时候能亮一盏LED灯,比如在元旦节、情人节一些比较重要的节日,起到提醒的作用,也可以从而使万年历的显示内容更为完整。

3 调试过程

把写好的程序经验证仿真确认无误并且锁定好管脚后经下载端口下载到EDA实训仪上,通过实际操作来验证是否能实现相应功能。

4 功能测试

4.1 测试仪器与设备

① EDA实训仪 1台

电脑 1台

4.2 性能指标测试

① 数字日历能够正确显示年、月、日、时、分和秒。

② EDA实训仪上的8只八段数码管能够分两屏分别显示年、月、日和时、分、秒。

③ EDA实训仪上的8只八段数码管能够自动切换显示年、月、日和时、分、秒。

④ 数字日历具有复位和校准年、月、日、时、分、秒的按钮,且校年和校时同用一个按钮就能实现。

4.3 误差分析

由于在程序编写的过程中经过了反复的思考和检查,因此在下载到硬件电路后,所有基础功能都达到了设计要求,并且自己的扩展功能也成功的实现。

部分程序清单

1、计算器模块(jsq)

(1)分频器

module fenpin(clk,cout);

input clk;

output reg cout;

reg[24:0]qq;

always @(posedge clk)

begin

if(qq==19999999) begin qq=0;cout=1;end

else begin qq=qq+1;cout=0;end

end

endmodule

(2)cnt60

module cnt60(clk,clrn,j,q,cout);

input clrn,clk,j;

output reg[7:0]q;

output reg cout;

always @(posedge clk^j or negedge clrn)

begin

if(~clrn) q=0;

else begin

if(q=='h59) q=0;

else q=q+1;

if(q[3:0]=='ha) begin q[3:0]=0; q[7:4]=q[7:4]+1;end

if(q=='h59) cout=1;

else cout=0;

end

end

endmodule

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 分频器
    +关注

    关注

    43

    文章

    447

    浏览量

    49912
  • 数码管
    +关注

    关注

    32

    文章

    1882

    浏览量

    91124
  • LED显示
    +关注

    关注

    0

    文章

    361

    浏览量

    38039
  • 计时器
    +关注

    关注

    1

    文章

    420

    浏览量

    32712
  • PLD芯片
    +关注

    关注

    0

    文章

    35

    浏览量

    17815
收藏 人收藏

    评论

    相关推荐

    virtio I/O通信流程及设备框架的实现

    virtio 是一种通用的半虚拟化的 I/O 通信协议,提供了一套前后端 I/O 通信的的框架协议和编程接口。根据该协议实现
    的头像 发表于 03-10 13:37 6535次阅读

    基于PLD的视频接口

    复用器被送至最终的视频解码器播放。u*** 2.0 phy芯片可被轻松连接至pld的任意i/o引脚。大多数pld
    发表于 12-28 07:00

    采用PLD实现视频接口设计

    通过现有的数字编码器(DENC)芯片播放这些视频流。这种总线可被选通或复用输出到DENC。 图1给出的PLD应用框图将数字视频源连接到视频播放。一个典型的高
    发表于 05-14 07:00

    请问怎样设计并实现闪存设备I/O软件?

    闪存设备管理技术的现状及存在的问题是什么?闪存设备I/O软件的分层结构是怎样的?怎样设计并实现闪存设备
    发表于 04-27 06:44

    什么是Super I/O?用SuperIo实现什么

    UEFI学习(四)-SuperIo的访问一、什么是Super I/O?二、我们要用SuperIo实现什么三、NCT5581D的访问机制一、什么是Super I/
    发表于 01-24 08:12

    数字I/O模块在数字电路板自动测试设备中的应用

    本文介绍了一种基于VXI总线的数字I/O模块(型号为DIOM-64)在数字电路板ATE中的应用,内容包括模块的工作原理和测试设备的组成。该
    发表于 07-15 11:20 37次下载

    利用FactorySuite 2000 I/O Server

    本文介绍了利用美国WONDERWARE 公司的Wonderware ® FactorySuite™2000 I/O Server Toolkit 如何开发用户自己的I
    发表于 08-14 09:41 39次下载

    数字I/O介绍

    数字I/O脚有专用和复用。数字I/O脚的功能通过9个16位控制寄存器来控制。控制寄存器分为两类:
    发表于 09-16 12:20 19次下载

    基于PLD芯片的时序逻辑设计与实现

    基于PLD芯片的时序逻辑设计与实现:原理图输入设计直观、便捷、操作灵活;1-1、原理图设计方法简介QuartusII已包含了数字电路的基本逻辑元件库(各类逻辑门及触发器),宏
    发表于 10-29 22:03 0次下载

    利用普通I/O实现电容触摸感应方案

    利用普通I/O实现电容触摸感应方案 技术背景   现在电子产品中,触摸感应技术日益受到更多关注和应用,不仅美观
    发表于 04-22 10:16 1544次阅读
    <b class='flag-5'>利用</b>普通<b class='flag-5'>I</b>/<b class='flag-5'>O</b>口<b class='flag-5'>实现</b>电容触摸感应方案

    输入输出设备I/O设备总结

    I/O设备又叫输入输出设备。对于I/O bus 包含数据总线、控制总线、地址总线;每一个
    发表于 11-24 09:28 3643次阅读
    输入输出<b class='flag-5'>设备</b><b class='flag-5'>I</b>/<b class='flag-5'>O</b><b class='flag-5'>设备</b>总结

    Smart I/O模块的应用 实现管脚电平数字逻辑的实现

    芯片设计工程师常常需要根据输入输出信号(Input and Output, I/O实现管脚电平数字逻辑。例如,系统工程师
    发表于 04-07 10:04 5219次阅读

    关于PROFINET I/O设备芯片TPS-1演示过程介绍

    PROFINET I/O设备芯片TPS-1演示
    的头像 发表于 07-20 01:07 1.2w次阅读

    采用IP模块和PLD设计工具实现可编程器件辅助软件的设计

    在基于MCU的系统设计中,一般采用“MCU+PLD”的系统结构。PLD器件具有在系统现场可重复编程的能力,用来实现系统的I/O接口等外围功能
    的头像 发表于 03-12 07:59 2148次阅读
    采用IP模块和<b class='flag-5'>PLD</b>设计工具<b class='flag-5'>实现</b>可编程器件辅助软件的设计

    EDA程序设计之数字日历电路

    1  系统设计1.1 设计要求1.1.1 设计任务   设计并制作一台数字日历。1.1.2 性能指标要求 ① 用EDA实训仪的I/O设备
    发表于 04-03 09:32 10次下载