八位七段数码管动态显示电路设计
更新时间:2024-03-12 00:01:01 阅读量: 综合文库 文档下载
八位七段数码管动态显示电路的设计
一 七段显示器介绍
七段显示器,在许多产品或场合上经常可见。其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为A、B、C、D、E、F、G与DP等八组发光二极管之排列,可用以显示0~9数字及英文数A、b、C、d、E、F。目前常用的七段显示器通常附有小数点,如此使其得以显示阿拉伯数之小数点部份。七段显示器的脚位和线路图如下图4.1所示( 其第一支接脚位于俯视图之左上角 )。
图4.1、七段显示器俯视图
由于发光二极管只有在顺向偏压的时候才会发光。因此,七段显示器依其结构不同的应用需求,区分为低电位动作与高电位动作的两种型态的组件,另一种常见的说法则是共阳极( 低电位动作 )与共阴极( 高电位动作 )七段显示器,如下图4.2所示。
( 共阳极 ) ( 共阴极 )
图4.2、共阳极(低电位动作)与共阴极(高电位动作)
1
要如何使七段显示器发光呢?对于共阴极规格的七段显示器来说,必须使用“ Sink Current ”方式,亦即是共同接脚COM为VCC,并由Cyclone II FPGA使接脚成为高电位,进而使外部电源将流经七段显示器,再流入Cyclone II FPGA的一种方式
本实验平台之七段显示器模块接线图如下图4.5所示。此平台配置了八组共阳极之七段显示器,亦即是每一组七段显示器之COM接脚,均接连至VCC电源。而每一段发光二极管,其脚位亦均与Cyclone II FPGA接连。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。
图4.5、七段显示器模块接线图
七段显示器之常见应用如下
? 可作为与数值显示相关之设计。
? 电子时钟应用显示 ? 倒数定时器 ? 秒表
? 计数器、定时器
? 算数运算之数值显示器
2
二 七段显示器显示原理
七段显示器可用来显示单一的十进制或十六进制的数字,它是由八个发光二极管所构成的( 每一个二极管依位置不同而赋予不同的名称,请参见图4.1 ) 。我们可以简单的说,要产生数字,便是点亮特定数据的发光二极管。例如要产生数字「0」,须只点亮A、B、C、D、E、F等节段的发光二极管;要产生数字「5」,则须点亮A、C、D、F、G等节段发光二极管,以此类推,参见图4.6。因此,以共阳极七段显示器而言,要产生数字「0」,必须控制Cyclone II FPGA芯片接连至A、B、C、D、E、F 等接脚呈现“低电位”,使电路形成通路状态。表4.1则为共阳极七段显示器显示之数字编码。
图4.6、七段显示器显示阿拉伯数字
表4.1、共阳极七段显示器显示数字编码
资料 0 1 2 3 4 5 6 7 8
本实验要求完成的任务是在时钟信号的作用下,通过输入的键值在数码管上显示相应的键值。在实验中时,数字时钟选择1KHZ作为扫描时钟,用四个拨动开关做为输入,当四个拨动开关置为一个二进制数时,在数码管上显示其十六进制的值。实验箱中的拨动开关与FPGA的接口电路,以及拨动开关FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。
DP 1 1 1 1 1 1 1 1 1 G 1 1 0 0 0 0 0 1 0 F 0 1 1 1 0 0 0 1 0 E 0 1 0 1 1 1 0 1 0 D 0 1 0 0 1 0 0 1 0 C 0 0 1 0 0 0 0 0 0 B 0 0 0 0 0 1 1 0 0 A 0 1 0 0 1 0 0 0 0 16进制 C0 F9 A4 B0 99 92 82 F8 80 3
数码管显示模块的电路原理如图4-2所示,
图4-2 数字时钟信号模块电路原理
三 实验步骤
(本实验用VHDL文本语言实现八位七段数码管动态显示,当然也可用Quartus的图形输入法实现八位七段数码管动态显示)
1. 下面我们建立一个八位七段数码管动态显示的VHDL工程
1)选择 开始 > 程序 > Altera > QuartusII5.1,运行QUARTUSII软件。或者双击桌面上的QUARTUSII的图标运行QUARTUSII软件,出现如图1-3所示。
图1-3 QUARTUSII软件运行界面
4
2)选择软件中的菜单File > New Project Wizard,新建一个工程。如图1-4所示。
图1-4 新建工程对话框
3)点击图1-4中的NEXT进入工作目录,工程名的设定对话框如图1-5所示。第一个输入框为工程目录输入框,用户可以输入如e:/eda等工作路径来设定工程的目录,设定好后,所有的生成文件将放入这个工作目录。第二个输入框为工程名称输入框,第三个输入框为顶层实体名称输入框。用户可以设定如EXP1,一般情况下工程名称与实体名称相同。使用者也可以根据自已的实际情况来设定工程名和顶层文件名。注:本处的顶层文件名必须和程序的实体名一致,否则编译会出错。
图1-5 指定工程名称及工作目录
5
4)点击NEXT,进入下一个设定对话框,按默认选项直接点击NEXT进行器件选择对话框。如图1-6所示。这里我们以选用CycloneII系列芯片EP2C35F672C8为例进行介绍。用户可以根据使用的不同芯片来进行设定。
图1-6 器件选择界面
首先在对话框的左上方的Family下拉菜单中选取CycloneII,在中间右边的Speed grade下拉菜单中选取8,在左下方的Available devices框中选取EP2C35F672C8,点击NEXT完成器件的选取,进入EDA TOOL设定界面如图1-7所示。
图1-7 EDA TOOL对话框
6
5)按默认选项,点击Next出现新建工程以前所有的设定信息,如图1-8所示,点击Finish完成新建工程的建立。
图1-8 新建工程信息
2、建立VHDL设计文件
1)在创建好设计工程后,选择File > NEW…菜单,出现图1-9所示的新建设计文件类型选择窗口。这里我们以建立VHDL设计文件为例进行说明。
7
图1-9 新建设计文件选择窗口
2)在New对话框(图1-9)中选择Device Design Files页下的VHDL File,点击OK按钮,打开图形编辑器对话框,如图1-10所示。图中标明了常用的每个按钮的功能
3) 在文本编辑器中输入如下VHDL程序: --下面是引用库 ------------------------------------- library ieee; --库函数 use ieee.std_logic_1164.all;--定义了std_logic数据类型及相应运算 use ieee.std_logic_arith.all;--定义了signed和unsigned数据类型、相应运算和相关类型转换函数 use ieee.std_logic_unsigned.all;--定义了一些函数,可以使std_logic_vector类 --型被当作符号数或无符号数一样进行运算 -------------------------------------------------------------------- --下面是构造实体 entity exp4 is --exp4为实体名 port( clk : in std_logic; --定义动态扫描时钟信号 key : in std_logic_vector(3 downto 0); --定义四位输入信号 8
ledag : out std_logic_vector(6 downto 0); --定义七位输出信号
del : out std_logic_vector(2 downto 0) --定义八位数码管位置显示信号
); end exp4; --结束实体
-------------------------------------------------------------------- architecture whbkrc of exp4 is --whbkrc为结构体名 begin --以begin为标志开始结构体的描述 process(clk) --进程,clk变化时启动进程
variable dount : std_logic_vector(2 downto 0); --变量,计数 begin
if clk'event and clk='1' then--检测时钟上升沿 dount:=dount+1;--计数器dount累加 end if;
del<=dount; --片选信号 end process;--结束进程
process(key) --进程,key变化时启动进程 begin case key is
when \七段数码管显示 0 when \ when \ when \ when \ when \ when \ when \ when \ when \ when \
9
when \ when \ when \ when \ when \ when others => null; end case;
end process; --结束进程 end whbkrc; --结束结构体
关于VHDL,我们以上面八位七段数码管显示程序为例来解释VHDL的语法构成,以使大家对VHDL有个整体的把握。
一个VHDL程序有三部分构成,其为 : 1.库和包 library(设计资源); 2. 实体 entity(外部端口) 3. 结构体 architecture(内部结构) ① 库和包 library(设计资源)的介绍 本程序中用到3个库函数包:如下 :
1.1 use ieee.std_logic_1164.all;--定义了std_logic数据类型及相应运算
1.2 use ieee.std_logic_arith.all;--定义了signed和unsigned数据类型、相应运算
--和相关类型转换函数
1.3 use ieee.std_logic_unsigned.all;--定义了一些函数,可以使std_logic_vector
--类型被当作符号数或无符号数一样进行运算 补充:当使用库时,需要说明使用的库名称,同时需要说明库中包集合的名称及范围;每个实体都应独立进行库的说明;库的说明应该在实体之前;经过说明后,实体和结构体就可以自动调用库中的资源; ② 实体 entity(外部端口)
entity exp4 is --exp4为实体名
port( clk : in std_logic; --定义动态扫描时钟信号
10
正在阅读:
八位七段数码管动态显示电路设计03-12
话务员述职报告模板【三篇】04-19
大学语文第一至三讲作业 参考答案(1)10-06
气体扩散模型01-28
XX市印刷大市场项目可行性研究报告docP80页优秀可研报 - 图文10-30
2021届新高考地理第四次模拟考试含答案05-08
描写环境污染的作文(9)03-12
集中学习02-11
好习惯成就完美人生04-21
- 《江苏省环境水质(地表水)自动监测预警系统运行管理办法(试行)》
- 安乐死合法化辩论赛立论稿(浙大新生赛)
- 公共科目模拟试卷公务员考试资料
- 我国固定资产投资FAI对GDP的影响
- 大学生创新创业训练计划项目申请书大创项目申报表
- 完美版—单片机控制步进电机
- 2013资阳中考化学试题
- 18.两位数减一位数退位(397道)
- 工程量计算规则
- 二年级操行评语(下)
- 第3章 流程控制语句
- 浅基桥墩加固技术
- 课题研究的主要方法
- 5100软件说明书 - 图文
- 车间技术员年终总结
- 关于印发《中铁建工集团开展项目管理实验室活动方案》的通知
- 经典诵读结题报告
- 地下水动力学习题答案
- 2018年全国各地高考数学模拟试题平面解析几何试题汇编(含答案解
- 街道办事处主任2018年度述职述廉报告
- 数码管
- 电路设计
- 动态
- 显示
- 中小学校如何开展科学教育促进科技创新
- 科普文章阅读
- 银行支行行长述职报告范本
- 公告书之360游戏开服公告
- 行测答题技巧:言语理解题之感情色彩法
- 2017重庆法检考试面试:面试中如何应对表达障碍 - 图文
- 2015年二级建造师考试真题下载
- 人事委托管理协议
- 八年级地理中考模拟试题(一)
- 高等教育学考试试题及答案
- 国家2020年注册二级建造师《建设工程法规及相关知识》模拟真题B
- 马克思、恩格斯女性解放思想及其当代启示
- 基床底层改良土填料路拌法填筑施工工艺
- 部编版一年级上《秋天》教案
- 文科专业求职简历范文
- 长春版小学语文六下《8.1蛇肚子里的象》word教案(1)
- 2018年二级建造师《建设工程法规及相关知识》模拟试题B卷(附解
- 国华电厂简介
- 电子政务考试试题及答案
- 辽宁省广播电视有线网络整合方案