基于CPLD的数字秒表设计 一,设计简介 本设计是一款基于CPLD的数字秒表,具有计时、暂停和清零功能,计时最大时间为99.99秒,程序采用Verilog HDL语言设计,开发环境为QuartusII9.0软件平台。 二,设计内容 此秒表是基于CPLD设计的,其中包括按键处理模块、定时模块、数码管显示编码模块和数码管驱动模块。其中按键处理模块是将输入的按键进行识别,包括按键消抖以及相应按键的标志位置位等。file:///C:/Users/MHB/AppData/Local/Temp/ksohtml/wps1C1A.tmp.jpg 其次为定时模块,本定时模块为对秒的定时,定时的基本单位为10ms,为了避免使用除法单元,设计时采用十位和各位分开计时功能,即各位计时超过9则向十位进一的原则,这样十位和各位可以分开计时,而不用使用除法分别取十位和各位,以下为定时模块。 file:///C:/Users/MHB/AppData/Local/Temp/ksohtml/wps1C3A.tmp.jpg 再者就是编码模块,即对上述模块产生的十进制数进行编码,编成数码管所能识别并能显示的码,以下为编码模块 file:///C:/Users/MHB/AppData/Local/Temp/ksohtml/wps1C3B.tmp.jpg 最后就是数码管驱动模块,因为在本设计中采用的是四位数码管,所以为了使其显示所定的时间,必须采用动态扫描的方式进行显示,其中动态显示的时间步长为1ms,此模块就是数码管的驱动模块,段选送要显示的数字,即前面编码器产生的数据,位选则采用3-8译码器进行控制要显示的位,以下为数码管的驱动模块。 file:///C:/Users/MHB/AppData/Local/Temp/ksohtml/wps1C4B.tmp.jpg 总体电路模块如下所示。 file:///C:/Users/MHB/AppData/Local/Temp/ksohtml/wps1C5C.tmp.jpg 因为定时器定时的最大时长为99.99秒,所以会产生四个十进制数据,故使用四个编码器对这四个数据进行编码。 三,设计结果 设计之后进行测试时,本设计达到之前预期的结果,能够正常计时、暂停以及清零等功能。本设计有待于再次提高,包括计时数据存储等功能,后续将继续开发。 |