为什么我这个数字钟的数码管不变化

嵌入式小白(学习中) 2020-11-24 04:11:25
...全文
92 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
数字逻辑 课程设计 VHDL 多功能数字钟 这个数字钟是我根据我老师的设计自己改编的,内部结构变化挺大的,功能也比较全。 1、具有以二十四小时制计时、显示、整点报时、时间设置和闹钟的功能。 2、设计精度要求为1秒。 (一)计时:正常工作状态下,每日按24h计时制计时并显示,蜂鸣器无声,逢整点报时。 (二)校时:在计时显示状态下,k=1,进入“小时”校准状态,之后按下“k=1”则进入“分”校准状态,继续按下“k=1”则进入“调秒”状态,第三次按下“k键”又恢复到正常计时显示状态。 (1)“小时”校准状态:在“小时”校准状态下,显示“小时”的数码管闪烁,并以1HZ的频率递增计数。 (2)“分”校准状态:在“分”校准状态下,显示“分”的数码管闪烁,并以1HZ的频率递增计数。 (3)“秒”校准状态:在“调秒”状态下,显示“秒”的数码管闪烁,并以1HZ的频率递增计数。 (三)整点报时:蜂鸣器在“59”分钟的第“51”、“53”、“55”、“57”秒发频率为512HZ的低音,在“59”分钟的第“59”秒发频率为1024HZ的高音,结束时为整点。 (四)显示:要求采用扫描显示方式驱动6个LED数码管显示小时、分、秒。 (五)闹钟:闹钟定时时间到,蜂鸣器发出周期为1秒的“滴”、“滴”声,持续时间为60秒;闹钟定时显示。 (六)闹钟定时设置:在闹钟定时显示状态下,按下“k=1”,进入闹钟的“时”设置状态,之后按下“k=1”进入闹钟的“分”设置状态,继续按下“k=1”,又恢复到闹钟定时显示状态。 (1)闹钟“小时”设置状态:在闹钟“小时”设置状态下,显示“小时”的数码管闪烁,并以1HZ的频率递增计数。 (2)闹钟“分”设置状态:在闹钟“分”设置状态下,显示“分”的数码管闪烁,并以1HZ的频率递增计数。
课 程 设 计 任 务 书 "专 业 "自动化 "班 级 " "姓 名 " " "设 计 起 止 日 期 "2013.12.16~2013.12.20 " "设计题目:基于8086CPU的数字时钟的设计 " "设计任务(主要技术参数): " "1、利用实验系统上提供的8253和LED数码显示等电路,设计一个电子时钟;" "2、格式如下:6个数码由左向右分别显示为:时、分、秒。 " " " "指导教师评语: " " " " " " " " " " " " " "成绩: 签字: " "年 月 日 " 课程设计说明书 NO.1 "1 引言 " "随着在现代技术进步,电子产品越来越多的在生活中出现,服务于人们的生活,从" "简单的电子手表,到人人必备的手机,我们都可以看到电子时钟的身影。 " "本系统就是基于8086系统,配合8255和8253芯片开发的一个数字电子时钟,有显示" "时分秒的功能。 " "2 设计方案论证 " "2.1一秒定时方案的选择 " "运用8253产生周期为2秒的方波,通过8255芯片的A、B、C口读取电平高低,判断电" "平变化,进而判断1秒延时是否已经到达,这种方法可以写成子程序,执行返回就 " "近似于1秒延时。 " "2.2时钟时分秒的处理方式选择 " "时钟的时分秒的处理方法实际上时数学逻辑问题。在编辑过程中我想到两种解决方" "案。 " "方案一:将时分秒当做三个数据进行处理,设置三个数据空间,作为是分秒的数据" "缓存区,再将缓存区的内容转换成显示数据。每次延时之后判断"秒"是否应该向" " "分"进位,"分"是否应该向"时"进位,"时"是否已经超过24.这个过程理论上可以实" "现,但是逻辑判断较为繁琐。 " "方案二;将时分秒分成六位,放在显示数据缓存区里,每次一秒延时之后判断是否" "向高位进一,若还不进一,则跳回最低位,再次进行一秒延时;由于秒和分都是60" "进制,处理方法一样,而"时"是24进制,应该进行额外处理。 " "2.3八段数码管动态显示 " "对于8279八段数码管的显示需要入码位和段码,因此采用74LS373作为位码输出端 " "口,8255的A、B、C口作为段码输出口。通过CPU输出数据进行位码选择,经74LS37" "3 " 沈 阳 大 学 课程设计说明书 NO.2 " " "输出到位码输入口;设置到六位数据缓存区,经过换码可以取得相应的段码输出到" "段码 " "输入口,并简单延时,就可以显示了。 " "2.4系统原理 " "通过并行接口芯片8255和8086计算机的硬件相连,以及通过8253一秒延时的方法," "来实现适中的计时功能。 " "8086工作在最小模式,5255芯片片选端接到CPU的片选段CS0,A口组委输出口,B口" "作为输入口,B口的第一位用于检测电平;8253片选端接到CPU的片选段CS2,用于 " "锁存位码。一秒计时和功能有软件控制进行。 " "3 系统硬件设计 " "3.1 8086简介 " "Intel8086是16位的微处理器(其内部总线为16位,外部总线为8位,故称为准16位" "微处理器),它采用HMOS工艺40条引脚封装。8086工作时使用5V电源,时钟频率5M" "Hz(8086-1为10MHz,8086-2为8MHz)它有20根地址线,故可寻址的内存空间为1MB" "【2】。 " "(1)8086的主要特性 " "Intel8086/8088CPU是Intel公司推出的高性能的微处理器,具体如下主要特性: " "(a)8086CPU数据总线为16位,8088CUP数据总线为8位。 " "(b)地址总线都是20位,低16位用于数据总线复用,可直接寻址为1MB的存储空间。" "(c)有16位的端口地址,可以寻址64KB的I/O端口。 " "(d)有99条基本指令,指令功能强大。 " "(e)有9种基本寻址方式。 " "(f)可以处理内部和外部中断,外部中断源多达256个。 " "(g)兼容性好,8086、8085在源程序一级兼容。 " 沈 阳 大 学 课程设计说明书 NO.3 " " "(h)8086/8088标准主频为5MHz,8086/8088-2主频为8MH【3】。 " "(i)支持单处理器或多处理器系统工作。 " "(2)8086CPU寄存器结构 " "8086CPU中有14个16位的寄存器,其中有4个16位的通用寄存器,2个16位指针寄存器," "2个16位变址寄存器,1个16位指令指针及1个16位标志寄存器【8】。 " "通用寄存器包括累加器AX,基址寄存器BX,计数寄存器CX,数据寄存器DX四个寄存" "器,位于CPU的EU中,每个数据寄存器可存放16位操作数, 也可拆成两个8位寄存 " "器,用来存放8位操作数。
根据以上对于多功能数字钟的功能的描述,可以将整个的电路设计分为以下几个模块: 分频模块:由于实验电路板上所能提供的只有1Khz和6Mhz的信号,而本设计过 程的即时以及跑表模块需要1hz、100hz和4hz的时钟信号。 控制模块:为达到多动能数字钟在计时、校时、显示日历、跑表等不同的模块之间 切换,需要控制模块产生时序要不相冲突的控制信号,保证各个模块的功能有序的执行。 计时模块:在输入的1hz时钟信号,产生显示的AM、PM、时、分、秒信号,由 于要涉及到后面的校时模块,这里采用带有置数的计时模块,在load信号控制下将校时模块设定的时间转载至初始值,在初始值的基础上正常计时。 校时模块:当功能切换至校时模块时,本程序采用在外部按键的上升沿即:每按动 一次校时键对应显示相应加1。 万年历模块:在计时模块的进位输出信号(每次跳动代表一年),产生显示的年、月、 日、星期、是否闰年信号,同样类似于计时模块考虑到后面的校正日历模块,这里同样采用带有置数的计时模块,在load信号控制下将校正日历模块设定的日历转载至初始值,在初始值的基础上正常计时。 6. 校正日历模块:切换至该模块时,采用外部按键的上升沿:每按动一次校正键对应的显示相应的加1。 闹钟模块:这里采用和校时模块同样的电路设定闹钟的时间,一旦触发信号为高电 平,触发音乐播放模块,播放歌曲《两只蝴蝶》,不按停止键播放一分钟自动停止。 跑表模块:采用显示毫秒、秒、分的显示格式,并设有stop按钮和reset按钮。 9. 显示模块:采用从控制模块中出来的mode 信号为变量,跟随该信号的变化,选着不同的模块的输出信号,通过两个译码器输出数据连接到数码管显示。 以上简单的介绍了构成电路的几大模块,下面给出本设计电路的总的模块化示意图: 1)10分频模块: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity fenpin10 is port (clk_in:in std_logic;- - 输入时钟信号      clk_out:buffer std_logic);- -输出时钟信号 end fenpin10; architecture rtl of fenpin10 is

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧