基于FPGA的时间温度监视器

2016-12-31 19:41徐其善徐芳芳成都理工大学信息科学与技术学院苏州高博软件技术学院
数码世界 2016年6期
关键词:寄存器个位时钟

徐其善 徐芳芳.成都理工大学信息科学与技术学院 .苏州高博软件技术学院



基于FPGA的时间温度监视器

徐其善1徐芳芳2
1.成都理工大学信息科学与技术学院2.苏州高博软件技术学院

摘要:利用Verilog HDL 语言采用自顶向下的设计方法实现多功能数字钟。具有良好可读性、可移植性等特点,同时具有实时温度显示功能。通过Alteral Quartus II 完成设计仿真,具有时、分、秒、温度显示,以及校对功能。系统主芯片采用EP3C25Q240C8,由时钟模块、控制模块、计时模块、温度模块、数据译码模块、显示模块组成。由按键输入进行数字钟的校时功能。

关键字:数字钟 VerilogHDL DS18B20

1 数字钟的构成

本设计为一个多功能的数字钟,含有24和60进制两种计数模块。有24小时计数时、分、秒显示和校对功能。以硬件描述语言Verilog HDL为系统逻辑描述手段,采用自顶向下方法,主芯片EP3C25Q240C8,由时、控制、计时、数据译码、显示模块组成。温度传感器DS18B20对环境中的温度进行采集,经过CPU处理,以数码管的形式显示实时温度。

2 功能实现

计数的功能,秒和分钟都是60进制的计数器产生,小时是24进制计数器产生。因此需要1Hz信号,主芯片晶振的频率是50MHZ的。对50Mhz的系统时钟信号进行分频,得到1Hz的信号。计数模块首先实现计数的功能,在编写程序过程中,重要的是各个特殊情况的表示。先将特殊的状况表示出来然后处理一般情况。 二十四进制计数器首先考虑个位的情况,个位有两个特殊情况3和9。当个位为3若果十位为2的时候下一个状态应该将十位和个位的寄存器清零即跳变成00进行模为24的计数否则个位进行加1计数;当个位为9时,个位要归零重新计数同时十位进加1计数。其他情况个位正常进行加1计数。六十进制计数器设计判断个位,若是9将个位数置零同时向十位数进1,判断十位上的数字是否是5,若是下一状态跳到0,若不是就加一循环计数;若个位不是9那么个位继续向上加一计数。译码显示设计中要显示时分秒所以要六个数码管,设定一个16位的计数器对时钟信号的上升沿进行计数,到达一定的次数后对数码管进行扫描点亮,并利用高三位构成一个8选一的数据选择器,相当于扫描周期为2的13次方个时钟周期,选择不同位数的数码管让其点亮同时将该位要显示的七段字型码赋值给发光二极管让其显示。

3 软件方法

本设计中用到按键较多,采用软件方法去抖动,该按键使用的是产生负脉冲的接法。因此使用钟频为500Hz信号周期为2ms的5级寄存器加一个或门当上升沿到来时,将移位寄存器的低四位和按键的输入赋值给移位寄存器,实现左移功能,经移位寄存器进行按位或运算最终赋值给按键输出来避开抖动。按键常态输出为高,当按下输出低,五位移位寄存器按位与只有五位数据全为低时输出才为低即延时5个时钟周期10ms才判断按键按下。时间调节为了增加设计的实用性,还要加上时间的调节模块实现小时和分钟的调节功能调整小时和分钟的值,在调节分钟的模块中。每按键一次,经过去抖动模块进入调节分模块中。

4 温度模块实现方案

将DS18B20的DQ与FPGA的一个IO连接,并加4.7K的上拉电阻到电源。添加了一个发光二极管以提示温度传感器正常工作。选择3.3V接在实验板JP4的1脚,GND接在JP4的2脚。温度传感器可完成对温度的测量,2位转化用16位符号扩展的二进制补码读数形式提供,温度表达形式为 0.0625℃/LSB ,其中 S 为符号位。存储在 DS18B20 的两个 8 比特的 RAM 中,二进制中的前面 5 位是符号位,当测得的温度大于 0时,5 位符号位为 0,将测到的数值乘于 0.0625 即可得到实际温度。初始化时序包括一个主机发出的复位脉冲以及从机的应答脉冲这一过程,复位脉冲是480~960us的低电平然后释放总线,将总线拉至高电平,时间持续15~60us之后从机开始向总线发出一个应答脉冲60~240us的低电平信号,表示从机已准备好,在初始化过程中主机接收脉冲的时间最少为480us。DSl8B20的访问步骤为:先进行初始化(Ini—tialization),然后发送ROM命令,最后发送Func—tion功能命令。对DSl8B20访问必须通过上述步骤完成。

参考文献

[1]刘靳.刘笃仁.Verilog程序设计与EDA.西安电子科技大学出版社

[2]刘君.常明.秦娟.基于硬件描述语言(VHDL)的数字时钟设计.天津理工大学学报.2007.第23卷第4期.40-41

[3]李晨.数字电路EDA综合实验.南京大学金陵学院.2010

[4]夏宇闻.Verilog数字系统设计教程.北京航空航天大学出版社.2008

猜你喜欢
寄存器个位时钟
牢记方法大量练习
古代的时钟
Lite寄存器模型的设计与实现
个位与十位的故事
个位与十位的故事
二进制翻译中动静结合的寄存器分配优化方法
个位与十位的故事
这个时钟一根针
移位寄存器及算术运算应用
有趣的时钟