摘要:数码管是一类显示屏通过对其不同的管脚输入相对的电流,会使其发亮,从而显示出数字能够显示时间、日期、温度等所有可用数字表示的参数。由于它的价格便宜,使用简单,在电器特别是家电领域应用极为广泛,空调、热水器、冰箱等。绝大多数热水器用的都是数码管,其他家电也用液晶屏与荧光屏。
然而在信息时代的今天,单片机技术应用越来越广泛,涉及各行各业,也渗透到人们的日常生活之中,如洗衣机、空调、冰箱等的控制系统,就可以用单片机实现。为了让人们很直观的了解相关设备当前的工作状态,很多时候需要将当前的时间、温度、工作程序等状态通过数码管显示出来,这就涉及到单片机的数码管显示技术。动态显示是一种最常见的多位显示方法,应用非常广泛。
关键词:数码管,动态显示
Abstract:The digital tube is a kind of display. It can brighten the lightsthrough the input of the relative current to the different pins, so that thenumber can display all the available parameters expressed by time, date,temperature and so on. Because of its cheap price and simple use, it is widelyused in electrical appliances, especially household appliances, airconditioners, hot water heaters, refrigerators and so on. Most of the waterheaters are used in the digital tube, and the other appliances also use the LCDscreen and the fluorescent screen.
However, in today's informationage, the application of single chip microcomputer technology is more and moreextensive. It involves all walks of life and penetrates into people's dailylife. For example, the control system of washing machines, air conditioners,fridges and so on can be realized by single chip microcomputer. In order tomake people understand the current working state of related devicesintuitively, many times, we need to display the current time, temperature,working procedures and other status through digital tube, which involves thetechnology of digital tube display of single chip microcomputer. Dynamicdisplay is one of the most common multi - digit display methods, which iswidely used.
Keywords: Digital tube, dynamic display
目 录
1 前言(绪论). 1
2 总体方案设计. 2
2.1 方案比较. 2
2.2 方案论证. 2
2.3 方案选择. 3
3单元模块设计. 4
3.1显示电路. 4
3.2时钟电路. 5
3.3电源电路. 5
3.4配置电路. 6
3.5FPGA器件介绍. 7
3.6CPLD器件介绍. 7
3.7最小系统原理图. 8
4Verilog HDL设计. 9
4.1顶层文件. 9
4.2地址扫描模块. 9
4.3译码器模块. 10
4.4内部结构. 11
4.5 Verilog HDL设计工具. 11
5系统仿真与调试. 12
5.1系统软件编译. 12
5.2时序仿真. 12
5.3引脚锁定. 14
5.3调试. 15
6结论. 16
7总结与体会. 17
8致谢. 18
9参考文献. 19
附录1:设计原理图. 20
附录2:设计源程序. 21
1前言(绪论)
电子设计自动化(Electronic Design Automation,EDA)技术是现代电子工程领域的一门新技术,它提供了基于计算机和信息技术的电路系统设计方法,主要能辅助进行IC、电子电路和PCB等的设计。EDA技术的发展极大地推动了电子行业的发展。目前,硬件描述语言Verilog HDL(HDL:HardwareDescription Language),已成为许多EDA工具普遍采用的标准化硬件描述语言,具有设计效率高、可靠性好、易读易懂等诸多优点。
数码显示已在整个工农业生产、航空业、交通运输、医疗卫生、仪器仪表以及军民融合技术产业中有了广泛的用途,给人们的视觉带来了不可置疑的效果,是现代社会发展过程中不可或缺的部分。本文通过Quartus II 9.0的Verilog HDL文本设计输入方式,设计了一个基于Verilog HDL的八位数码扫描显示电路,将8个数码管的7个段都分别连在一起,但8个数码管分别由8个选通信号来选择,被选通的数码管将显示希望的数据。于是,随着选通信号的扫变,就能实现8个数码管的扫描显示。
2总体方案设计
2.1方案比较
方案一:基于单片机实现8位数码扫描显示电路设计
图2-1 方案一框图
如图2-1所示,方案一利用AT89C51的内部定时器来对外部输入信号进行计数,从而达到测频的目的,这种方案,结构简单容易掌握,各部分电路实现起来比较容易。
方案二:基于FPGA技术实现8位数码扫描显
图2-2 方案二框图
图2-2所示,采用FPGA(现场可编程门阵列)作为系统的控制器。FPGA可以实现各种复杂的逻辑功能,规模大,密度高,它将所有器件集中在一块芯片上,减小了体积,提高了稳定性,并且可以应用EDA软件仿真、调试,易于进行功能扩展。FPGA采用并行的输入输出方式,提高了系统的处理速度,适合作为大规模实时系统的控制核心。
2.2方案论证
通过方案一二的比较,可以看出方案一的设计使用分立元件电路较为多,因此会增加电路调试难度,且电路的不稳定性也会随之增加,而采用FPGA芯片实现的电路,由于在整体性上较好,在信号的处理和整个系统的控制中,FPGA的方案能大大缩减电路的体积,提高电路的稳定性。此外其先进的开发工具使整个系统的设计调试周期大大缩短,一般来讲,同样的逻辑,基于FPGA要比基于单片机要快很多,因为它们工作的原理是完全不同的。单片机是基于指令工作的,同样的激励到达单片机后,单片机首先要判断,然后读取相应的指令,最后作出相应,这每一步都是需要在单片机的时钟驱动下一步步的进行。而基于FPGA则是把相应的逻辑“暂时”固化为硬件电路了,它对激励作出的响应速度就是电信号从FPGA的一个管脚传播另一个管脚的传播速度,当然这指的是异步逻辑,同时电信号也要在芯片内进行一些栅电容的充放电动作,但这些动作都是非常非常快的。
2.3方案选择
结合现代测量技术的要求和精确,对其各个部件的性能提出了更高的要求,精确度是高于一切的,也是衡量一个器件的标准。在器件的合理使用和再度利用的考虑下,可编程的逻辑器件是占优势的,而且更方便,低功耗,体积小,结合本设计的要求及综合以上比较的情况,我们选择了基于FPGA的8位数码扫描显示电路设计的方案,选择方案二。
3单元模块设计
本设计由现场可编程门阵列(FPGA)作为控制芯片,通过VerilogHDL硬件描述语言设计,运用自顶而下的设计思想,按功能逐层分割实现层次化的设计。下面介绍主要模块的功能及作用。
3.1显示电路
8位数码扫描显示的电路图3-1所示。输入信号:时钟信号CLK。输出控制信号:段控制信号seg[7:0];地址选通控制信号scan[7:0]。其中每个数码管的8个段h、g、f、e、d、c、b、a(h是小数点)都分别连接在一起,8个数码管分别由8个选通信号k1~k8来选择。被选通的数码管显示数据,其余关闭。如在某一时刻,k3为高电平,其余选通信号为低电平,这时仅为k3对应的数码管显示来自段信号端的数据,而其他7个数码管呈现关闭状态。根据这种电路状况,如果希望在8个数码管显示希望的数据,就必须使得8个选通信号k1~k8分别被选通,与此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。
实验参考扫描显示程序中CLK是扫描时钟;seg为7段控制信号,由高到低为分别接g、f、e、d、c、b、a7个段;scan是为地址选通信号,接图3-1中的8个位选通信号:k1、k2、…k8。
图3-1 七段数码管电路原理图
3.2时钟电路
晶振是为电路提供频率基准的元器件,通常分成有源晶振和无源晶振两个大类,无源晶振需要芯片内部有振荡器,并且晶振的信号电压根据起振电路而定,允许不同的电压,但无源晶振通常信号质量和精度较差,需要精确匹配外围电路(电感、电容、电阻等),如需更换晶振时要同时更换外围的电路。有源晶振不需要芯片的内部振荡器,可以提供高精度的频率基准,信号质量也较无源晶振要好。本FPGA芯片采用50MHZ的有源贴片晶振作为芯片工作的时钟输入,如图3-2所示:
图3-2 晶振电路原理图设计
3.3电源电路
在直流电源回路中,负载的变化会引起电源噪声。例如在数字电路中,当电路从一个状态转换为另一种状态时,就会在电源线上产生一个很大的尖峰电流,形成瞬变的噪声电压。配置去耦合电容可以抑制因负载变化而产生的噪声,是印制电路板的可靠性设计的一种常规做法.。一般在电源部分都采用大电容与小电容并联接在电源两端的,这样对高频和低频都有一定抑制作用。如图3-3所示:
图3-3 供电电源去耦合电路原理图设计
本课题研究的是Altera公司制作的FLEX10K10可编程逻辑芯片,芯片整体都是由5V电源供电,所以在电源这块我们省去了更多地考虑电源设计的复杂问题,而是使用了我们最常见的USB口来供电,不需要额外的开关电源供电,并增加电源控制开关,使用方便。这样一来既省去制作电源的费用和精力,同时又为芯片的可靠又高质量的供电有了很好的保证。如图3-4所示:
图3-4 USB接口供电电路原理图设计
3.4配置电路
我们的最小系统使用的FPGA是Altera公司制作的FLEX10K10芯片,因此我们配置的PROM选用的型号为EPC2LC20N,其中上拉电阻R4是1K,其余上拉电阻则都是5K,TDI、TCK、TMS和TDO分别和JTAG标准接口相连接,完成了配置电路的设计,如图3-5所示:
图3-5 JTAG模式配置电路原理图设计
3.5FPGA器件介绍
FPGA(Field-Programmable Gate Array)可以达到比PLD更高的集成度,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展起来的,具有更复杂的布线结构和逻辑实现。PLD器件和FPGA的主要区别在于PLD是通过修改具有固定内连电路得逻辑功能来进行编程,而FPGA是通过修改一根或多根分割宏单元的基本功能块的内连线的布线来进行编程。它一般由可嵌入式阵列块(EAB)、逻辑阵列块(LAB)、快速互联通道(Fast Track)、IO单元(IOE)组成。
Altera Cyclone II 采用全铜层、低K值、1.2伏SRAM工艺设计,裸片尺寸被尽可能最小的优化。采用300毫米晶圆,以TSMC成功的90nm工艺技术为基础,Cyclone II 器件提供了4,608到68,416个逻辑单元(LE),并具有一整套最佳的功能,包括嵌入式18比特x18比特乘法器、专用外部存储器接口电路、4kbit嵌入式存储器块、锁相环(PLL)和高速差分I/O能力。Cyclone II 器件扩展了FPGA在成本敏感性、大批量应用领域的影响力,延续了第一代Cyclone器件系列的成功。
由于FPGA是基于查找表(LUT)结构的器件,且每个LAB由10个LE组成,一个LE由LUT和寄存器组成,适合于时序逻辑电路的设计。
3.6CPLD器件介绍
CPLD是ComplexProgrammable Logic Device的缩写,它是有最早的PLD器件发展形成的高密度可编程逻辑器件,它具有编程灵活、集成度高、设计开发周期短、适用范围宽、开发工具先进、设计制造成本低、对设计者的硬件经验要求低、标准产品无需测试、保密性强、价格大众化等特点。CPLD是一种用户根据各自需要而自行构造逻辑功能的数字集成电路。其基本设计方法是借助集成开发软件平台,用原理图、硬件描述语言等方法,生成相应的目标文件,通过下载电缆(“在系统”编程)将代码传送到目标芯片中,实现设计的数字系统。
许多公司都开发出了CPLD可编程逻辑器件。比较典型的就是Altera、Lattice、Xilinx世界三大权威公司的产品。如Altera公司的MAXII器件,就是其极具代表性的一类CPLD器件,是有史以来功耗最低、成本最低的CPLD。MAX II CPLD基于突破性的体系结构,在所有CPLD系列中,其单位I/O引脚的功耗和成本都是最低的。
Altera公司的MAX7000A系列器件是高密度、高性能的EPLD,它是基于第二代MAX结构,采用CMOS EPROM工艺制造的。该系列的器件具有一定得典型性,其他结构都与此结构非常的类似。它包括逻辑阵列块、宏单元、扩展乘积项、可编程连线阵列和IO控制部分。由于大多数CPLD是基于乘积项的“与或”结构,故适合设计组合逻辑电路。
3.7最小系统原理图
整个设计用到的模块组成的最小系统原理图如图3-6所示:
图3-6 最小系统原理图
4VerilogHDL设计
4.1顶层文件
module scan_led(seg,scan,clk);
input clk;
output[7:0]seg,scan;
reg[7:0]seg,scan;
reg[2:0]cnt8;
reg[3:0]data;
4.2地址扫描模块
地址扫描模块电路如图4-1所示
图4-1 地址扫描电路图
程序:
always@(posedge clk)
begin
cnt8<=cnt8+1;
end
always
begin
case(cnt8[2:0])
3'b000:begin scan<=8'b10000000;data[3:0]<=4'b0001;end
3'b001:begin scan<=8'b01000000;data[3:0]<=4'b0010;end
3'b010:begin scan<=8'b00100000;data[3:0]<=4'b0100;end
3'b011:begin scan<=8'b00010000;data[3:0]<=4'b0101;end
3'b100:begin scan<=8'b00001000;data[3:0]<=4'b0111;end
3'b101:begin scan<=8'b00000100;data[3:0]<=4'b1001;end
3'b111:begin scan<=8'b00000010;data[3:0]<=4'b1101;end
3'b111:begin scan<=8'b00000001;data[3:0]<=4'b1111;end
default:begin scan<='bx;data[3:0]<='bx;end
endcase
4.3译码器模块
译码器电路图如图4-2所示。
图4-2 译码器电路图
程序:
case(data[3:0])
4'b0000:seg[7:0]<=8'b11111100;//0
4'b0001:seg[7:0]<=8'b01100000;//1
4'b0010:seg[7:0]<=8'b11011010;//2
4'b0011:seg[7:0]<=8'b11110010;//3
4'b0100:seg[7:0]<=8'b01100110;//4
4'b0101:seg[7:0]<=8'b10110110;//5
4'b0110:seg[7:0]<=8'b10111110;//6
4'b0111:seg[7:0]<=8'b11100000;//7
4'b1000:seg[7:0]<=8'b11111110;//8
4'b1001:seg[7:0]<=8'b11110110;//9
4'b1010:seg[7:0]<=8'b11101110;//a
4'b1011:seg[7:0]<=8'b00111110;//b
4'b1100:seg[7:0]<=8'b10011100;//c
4'b1101:seg[7:0]<=8'b01111010;//d
4'b1110:seg[7:0]<=8'b10011110;//e
4'b1111:seg[7:0]<=8'b10001110;//f
default:seg[7:0]<='bx;
endcase
4.4内部结构
内部结构如下图4-3所示:
图4-3 内部结构原理图
4.5Verilog HDL设计工具
简介:Quartus II 是Altera公司的综合性PLD/FPGA开发软件,原理图、VHDL、Verilog HDL以及AHDL(AlteraHardware 支持Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD/FPGA设计流程。
功能:Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑。
|