八位七段数码管动态显示电路设计

八位七段数码管动态显示电路设计
八位七段数码管动态显示电路设计

八位七段数码管动态显示电路的设计

一七段显示器介绍

七段显示器,在许多产品或场合上经常可见。其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为A、B、C、D、E、F、G与DP等八组发光二极管之排列,可用以显示0~9数字及英文数A、b、C、d、E、F。目前常用的七段显示器通常附有小数点,如此使其得以显示阿拉伯数之小数点部份。七段显示器的脚位和线路图如下图4.1所示( 其第一支接脚位于俯视图之左上角)。

图4.1、七段显示器俯视图

由于发光二极管只有在顺向偏压的时候才会发光。因此,七段显示器依其结构不同的应用需求,区分为低电位动作与高电位动作的两种型态的组件,另一种常见的说法则是共阳极( 低电位动作)与共阴极( 高电位动作)七段显示器,如下图4.2所示。

( 共阳极) ( 共阴极)

图4.2、共阳极(低电位动作)与共阴极(高电位动作)

要如何使七段显示器发光呢?对于共阴极规格的七段显示器来说,必须使用“ 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、七段显示器模块接线图

七段显示器之常见应用如下

?可作为与数值显示相关之设计。

?电子时钟应用显示

?倒数定时器

?秒表

?计数器、定时器

?算数运算之数值显示器

二七段显示器显示原理

七段显示器可用来显示单一的十进制或十六进制的数字,它是由八个发光二极管所构成的( 每一个二极管依位置不同而赋予不同的名称,请参见图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、共阳极七段显示器显示数字编码

资料DP G F E D C B A 16进制

0 1 1 0 0 0 0 0 0 C0

1 1 1 1 1 1 0 0 1 F9

2 1 0 1 0 0 1 0 0 A4

3 1 0 1 1 0 0 0 0 B0

4 1 0 0 1 1 0 0 1 99

5 1 0 0 1 0 0 1 0 92

6 1 0 0 0 0 0 1 0 82

7 1 1 1 1 1 0 0 0 F8

8 1 0 0 0 0 0 0 0 80

本实验要求完成的任务是在时钟信号的作用下,通过输入的键值在数码管上显示相应的键值。在实验中时,数字时钟选择1KHZ作为扫描时钟,用四个拨动开关做为输入,当四个拨动开关置为一个二进制数时,在数码管上显示其十六进制的值。实验箱中的拨动开关与FPGA的接口电路,以及拨动开关FPGA的管脚连接在实验一中都做了详细说明,这里不在赘述。

数码管显示模块的电路原理如图4-2所示,

图4-2 数字时钟信号模块电路原理

三实验步骤

(本实验用VHDL文本语言实现八位七段数码管动态显示,当然也可用Quartus的图形输入法实现八位七段数码管动态显示)

1. 下面我们建立一个八位七段数码管动态显示的VHDL工程

1)选择开始> 程序> Altera > QuartusII5.1,运行QUARTUSII软件。或者双击桌面上的QUARTUSII的图标运行QUARTUSII软件,出现如图1-3所示。

图1-3 QUARTUSII软件运行界面

2)选择软件中的菜单File > New Project Wizard,新建一个工程。如图1-4所示。

图1-4 新建工程对话框

3)点击图1-4中的NEXT进入工作目录,工程名的设定对话框如图1-5所示。第一个输入框为工程目录输入框,用户可以输入如e:/eda等工作路径来设定工程的目录,设定好后,所有的生成文件将放入这个工作目录。第二个输入框为工程名称输入框,第三个输入框为顶层实体名称输入框。用户可以设定如EXP1,一般情况下工程名称与实体名称相同。使用者也可以根据自已的实际情况来设定工程名和顶层文件名。注:本处的顶层文件名必须和程序的实体名一致,否则编译会出错。

图1-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对话框

5)按默认选项,点击Next出现新建工程以前所有的设定信息,如图1-8所示,点击Finish完成新建工程的建立。

图1-8 新建工程信息

2、建立VHDL设计文件

1)在创建好设计工程后,选择File > NEW…菜单,出现图1-9所示的新建设计文件类型选择窗口。这里我们以建立VHDL设计文件为例进行说明。

图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); --定义四位输入信号

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 "0000" => ledag <="0111111";--七段数码管显示 0

when "0001" => ledag <="0000110";--1

when "0010" => ledag <="1011011";--2

when "0011" => ledag <="1001111";--3

when "0100" => ledag <="1100110";--4

when "0101" => ledag <="1101101";--5

when "0110" => ledag <="1111101";--6

when "0111" => ledag <="0000111";--7

when "1000" => ledag <="1111111";--8

when "1001" => ledag <="1101111";--9

when "1010" => ledag <="1110111";-- R

when "1011" => ledag <="1111100";--b

when "1100" => ledag <="0111001";--C

when "1101" => ledag <="1011110";--d

when "1110" => ledag <="1111001";--E

when "1111" => ledag <="1110001";--F

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; --定义动态扫描时钟信号

key : in std_logic_vector(3 downto 0); --定义四位输入信号

ledag : out std_logic_vector(6 downto 0); --定义七位输出信号

del : out std_logic_vector(2 downto 0) --定义八位数码管位置显示信

);

end exp4; --结束实体

实体说明主要描述对象的外貌,即对象的输入和输出(I/O)的端口信息,它并不描述器件的具体功能。在电路原理图上实体相当于元件符号。

…0)

Key(3..0)…0)

图4-9

实体exp4中描述如上图4-9输入和输出(I/O)的端口信息

③结构体 architecture(内部结构)

结构体具体指明了该设计实体的行为,定义了该设计实体的功能,规定了该设计实体的数据流程,指派了实体中内部元件的连接关系。

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 "0000" => ledag <="0111111";--七段数码管显示 0 when "0001" => ledag <="0000110";--1

when "0010" => ledag <="1011011";--2

when "0011" => ledag <="1001111";--3

when "0100" => ledag <="1100110";--4

when "0101" => ledag <="1101101";--5

when "0110" => ledag <="1111101";--6

when "0111" => ledag <="0000111";--7

when "1000" => ledag <="1111111";--8

when "1001" => ledag <="1101111";--9

when "1010" => ledag <="1110111";-- R

when "1011" => ledag <="1111100";--b

when "1100" => ledag <="0111001";--C

when "1101" => ledag <="1011110";--d

when "1110" => ledag <="1111001";--E

when "1111" => ledag <="1110001";--F

when others => null;

end case;

end process; --结束进程

end whbkrc; --结束结构体

4)点击保存按钮,弹出如下选项,将其名命名为exp1,如下图

5)对设计文件进行编译

QUARTUSII编译器窗口包含了对设计文件处理的全过程。在QUARTUSII软件中选择processin>start compilation菜单项,就会自动编译,出现QUARTUSII的编译器窗口,如下图所示

如果文件有错,在软件的下方则会提示错误的原因和位置,以便于使用者进行修改直到设计文件无错。整个编译完成,软件会提示编译成功,

3 管脚分配

在前面选择好一个合适的目标器件(在这个实验中选择为EP2C35F672C8),完成设计的分析综合过程,得到工程的数据文件以后,需要对设计中的输入、输出引脚指定到具体的器件管脚号码,指定管脚号码称为管脚分配或管脚锁定。这里介绍两种方法进行管脚锁定。

1)点击Assignments菜单下面的Assignment Editor,进入到引脚分配窗口。如图1-15所示。

图1-15 进入引脚分配界面

首先将要分配管脚的信号放置在To下方。双击To下方的《New》,如图1-15所示则会出现如图1-16所示界面。

图1-16 信号选择对话框

选择Node Finder…进入如图1-17所示的Node Finder对话框界面。按图1-17中样例设置参数。在Filter窗口选择Pins:all,在Named窗口中输入“*”,点击List在Nodes Found

窗口出现所有信号的名称,点击中间的按钮则Selected Nodes窗口下方出现被选择的端口名称。双击OK按钮,完成设置。进入管脚分配窗口,如图1-18所示。

图1-17 Node Finder对话框

图1-18 管脚分配

在图1-18中以锁定端口key[0]的管脚为例,其它端口的管脚锁定与其基本一致。选择端口key[0]的对应Assignment Name 待其变为蓝色,双击之,出现下拉菜单选取如图1-18

所示的Location(Accepts wildcards/groups)选项。选择端口key[0]的对应Value栏,待其变为蓝色,依照表1-2所示的硬件与FPGA的管脚连接表(或附录),输入对应的管脚名AC22,按回车键,软件将自动将其改为PIN_ AC22,同时蓝色选择条会自动跳转到Value栏的下一行,这表明软件已经将输入端口key[0]分配到FPGA的AC22引脚上,如图1-19所示。

图1-19 给key[0]端口进行管脚分配

用同样的方法,依照表4-2和所示的硬件与FPGA的管脚连接表(或附录),对其它端口进行管脚分配,如图1-20所示。

图1-20所有引脚全部分配结束后的软件窗口

表4-2端口管脚分配表

值得注意的是,当管脚分配完之后一定要进行再进行一次全编译,以使分配的管脚有效。

4、对设计文件进行仿真

1)创建一个仿真波形文件,选择QUARTUSII 软件File>New ,进行新建文件对话框。如图1-24所示。选取对话框的Other File 标签页,从中选取Vector Waveform File ,点击OK 按钮,则打开了一个空的波形编辑器窗口,如图1-25所示。

图1-24 新建文件对话框 图1-25 波形编辑器

端口名 使用模块信号 对应FPGA 管脚

说 明 CLK

数字信号源 N2 时钟为1KHZ

KEY0 拨动开关K1 AC22 二进制数据输入

KEY1 拨动开关K2 AD23 KEY2 拨动开关K3 AB8 KEY3 拨动开关K4 AA9 LEDAG0 数码管A 段 V17 十六进制数据 输出显示

LEDAG1 数码管B 段 W16 LEDAG2 数码管C 段 W15 LEDAG3 数码管D 段 L10 LEDAG4 数码管E 段 V14 LEDAG5 数码管F 段 V13 LEDAG6 数码管G 段 W12 DEL0 位选DEL0 U12 DEL1 位选DEL1 V20 DEL2

位选DEL2

V21

2)设置仿真结束时间,波形编辑器默认的仿真结束时间为1μS,根据仿真需要,可以自由设置仿真的结束时间。选择QUARTUSII软件的Edit>End Time命令,弹出线路束时间对话框,在Time框办输入仿真结束时间,点击OK按钮完成设置。

3)加入输入、输出端口,在波形编辑器窗口左边的端口名列表区点击鼠标右键,在弹出的右键菜单中选择Insert Node or Bus…命令,在弹出的Insert Node or Bus对话框如图1-26所示界面中点击Node Finder…按钮。

图1-26 Insert Node or Bus对话框

在出现的Node Finder界面中,如图1-27所示,在Filter列表中选择Pins:all,在Named 窗口中输入“*”,点击List在Nodes Found窗口出现所有信号的名称,点击中间的按钮则Selected Nodes窗口下方出现被选择的端口名称。双击OK按钮,完成设置,回到图1-26所示的Insert Node or Bus对话框,双击OK按钮,所有的输入、输出端口将会在端口名列表区内显示出来,如图1-28所示。

图1-27 Node Finder对话框

图1-28 在波形编辑器中加入端口

4)编辑输入端口波形,即指定输入端口的逻辑电平变化,在如图1-28所示的波形编辑窗口中,选择要输入波形的输入端口如clk端口,在端口名显示区左边的波形编辑器工具栏中有要输入的各种波形,其按钮说明如图1-29所示。根据仿真的需要输入波形。以添加输入端口波形clk为例来讲解如何操作:在添加完输入,输出端口后,在每个端口的左边会出现I 或者O字样,分别代表输入,输出,我们只需要添加输入端口波形,首先单击Edit-- Edn Time 左边第一行输入10 ,第二行输入us ,完毕后单击OK,完成了整个仿真时间的设置。然后用波形编辑工具选中Clk的0到40ns后,然后单击高电平,该段波形高电平1,用同样的方法编辑其他时段的波形和其他输入端口的波形,参照图1-30 编辑输入端口波形。

注:输入波形的时间不能过小,最好能达到每段波形最小间隔40ns,否则很可能由于延时造成结果的不如意。

完成后如图1-30所示。最后选择软件的File>Save进行保存。

图1-29 波形编辑器工具栏

\

图1-30 编辑输入端口波形

5)指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,在这里介绍功能仿真。在QUARTUSII软件中选择Tool>Simulator Tool命令,打开仿真器工具窗口,如图1-31所示。

图1-31 仿真器工具窗口

图1-31

按图1-31上的提示,首先产生功能仿真网表文件,点击产生功能仿真网表的按钮Generate Functional Simulation Netlist,产生功能仿真网表,然后点击开始仿真的START按钮开始进行仿真,直到仿真进度条为100%完成仿真。点击仿真报告窗口按钮Report,观察仿真波形。如图1-32所示。

图1-32 仿真波形

八位七段数码管动态显示电路设计

八位七段数码管动态显示电路的设计 一七段显示器介绍 七段显示器,在许多产品或场合上经常可见。其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为A、B、C、D、E、F、G与DP等八组发光二极管之排列,可用以显示0~9数字及英文数A、b、C、d、E、F。目前常用的七段显示器通常附有小数点,如此使其得以显示阿拉伯数之小数点部份。七段显示器的脚位和线路图如下图4.1所示( 其第一支接脚位于俯视图之左上角)。 图4.1、七段显示器俯视图 由于发光二极管只有在顺向偏压的时候才会发光。因此,七段显示器依其结构不同的应用需求,区分为低电位动作与高电位动作的两种型态的组件,另一种常见的说法则是共阳极( 低电位动作)与共阴极( 高电位动作)七段显示器,如下图4.2所示。 ( 共阳极) ( 共阴极) 图4.2、共阳极(低电位动作)与共阴极(高电位动作)

要如何使七段显示器发光呢?对于共阴极规格的七段显示器来说,必须使用“ 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、七段显示器模块接线图 七段显示器之常见应用如下 ?可作为与数值显示相关之设计。 ?电子时钟应用显示 ?倒数定时器 ?秒表 ?计数器、定时器 ?算数运算之数值显示器

LED数码管显示实验

信息工程学院实验报告 课程名称:单片机原理及接口 实验项目名称:LED 数码管显示实验 实验时间:2016年3月11日 班级:通信141 姓名: 学号: 一、实 验 目 的: 熟悉keil 仿真软件、proteus 仿真软件、软件仿真板的使用。了解并熟悉一位数码管与 多位LED 数码管的电路结构、与单片机的连接方法及其应用原理。学习proteus 构建LED 数 码管显示电路的方法,掌握C51中单片机控制LED 数码管动态显示的原理与编程方法。 二、实 验 设 备 与 器 件 硬件:微机、单片机仿真器、单片机实验板、连线若干 软件:KEIL C51单片机仿真调试软件,proteus 系列仿真调试软件 三、实 验 原 理 LED 显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七 段LED ,这种显示器有共阴极与共阳极两种。 共阴极LED 显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发 光二极管则点亮;共阳极LED 显示器的发光二极管阳极并接。 七段LED 数码管与单片机连接时,只要将一个8位并行输出口与显示器的发光二极管引 脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,通常将控制 成 绩: 指导老师(签名): a f b e g c d dp 1 2 3 4 5 10 9 8 7 6 g f a b e d c dp (a) 共阴极 (b) 共阳极 (c) 管脚配置

发光二极管的8位字节数据称为段选码。 多位七段LED数码管与单片机连接时将所有LED的段选线并联在一起,由一个八位I/O 口控制,而位选线分别由相应的I/O口线控制。如:8位LED动态显示电路只需要两个八位I/O口。其中一个控制段选码,另一个控制位选。 由于所有位的段选码皆由一个I/O控制,因此,在每个瞬间,多位LED只可能显示相同的字符。要想每位显示不同的字符,必须采用动态扫描显示方式。即在每一瞬间只使某一位显示相应字符。在此瞬间,位选控制I/O口在该显示位送入选通电平(共阴极送低电平、共阳极送高电平)以保证该位显示相应字符,段选控制I/O口输出相应字符段选码。如此轮流,使每位显示该位应显示字符,并保持延时一段时间,以造成视觉暂留效果。 不断循环送出相应的段选码、位选码,就可以获得视觉稳定的显示状态。由人眼的视觉特性,每一位LED在一秒钟内点亮不少于30次,其效果和一直点亮相差不多。 四、实验内容与步骤 1、电路图的设计。 (1)打开proteus软件,单击P,打开搜索元器件窗口,如图 1-1 所示: 图1-1 搜索元器件 (2)添加元器件AT89C51、CAP、BUTTON、LED-BLUE、RES、CRYSTAL、7SEG-MPXI1CC,修改元器件的参数,绘制电路图,如图1-2 所示:

8位数码管动态显示电路设计

电子课程设计 — 8位数码管动态显示电路设计 学院:电子信息工程学院 专业、班级: 姓名: 学号: 指导老师: 2014年12月

目录 一、设计任务与要求 (3) 二、总体框图 (3) 三、选择器件 (3) 四、功能模块 (9) 五、总体设计电路图 (10) 六、心得体会 (12)

8位数码管动态显示电路设计 一、设计任务与要求 1. 设计个8位数码管动态显示电路,动态显示1、2、3、4、5、6、7、8。 2. 要求在某一时刻,仅有一个LED 数码管发光。 3. 该数码管发光一段时间后,下一个LED 发光,这样8只数码管循环发光。 4. 当循环扫描速度足够快时,由于视觉暂留的原因,就会感觉8只数码管是在持续发光。 5、研究循环地址码发生器的时钟频率和显示闪烁的关系。 二、总体框图 设计的总体框图如图2-1所示。 图2-1总体框图 三、选择器件 1、数码管 数码管是一种由发光二极管组成的断码型显示器件,如图1所示。 U13 DCD_HEX 图1 数码管 数码管里有八个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出 不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个 74LS161计数器 74LS138译码 器 数码管

LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。 2、非门 非门又称为反相器,是实现逻辑非运算的逻辑电路。非门有输入和输出两个端,电路符号如图2所示,其输出端的圆圈代表反相的意思,当其输入端为高电平时输出端为低电平,当其输入端为低电平时输出端为高电平。也就是说,输入端和输出端的电平状态总是反相的。其真值表如表1所示。 图2 非门 表1 真值表 输入输出 A Y 0 1 1 0 3、5V电源 5V VCC电源如图3所示。 图3 5V电源

6位7段LED数码管显示

目录 1. 设计目的与要求..................................................... - 1 - 1.1 设计目的...................................................... - 1 - 1.2 设计环境...................................................... - 1 - 1.3 设计要求...................................................... - 1 - 2. 设计的方案与基本原理............................................... - 2 - 2.1 6 位 8 段数码管工作原理....................................... - 2 - 2.2 实验箱上 SPCE061A控制 6 位 8 段数码管的显示................... - 3 - 2.3 动态显示原理.................................................. - 4 - 2.4 unSP IDE2.0.0 简介............................................ - 6 - 2.5 系统硬件连接.................................................. - 7 - 3. 程序设计........................................................... - 8 - 3.1主程序......................................................... - 8 - 3.2 中断服务程序.................................................. - 9 - 4.调试............................................................... - 12 - 4.1 实验步骤..................................................... - 12 - 4.2 调试结果..................................................... - 12 - 5.总结............................................................... - 14 - 6.参考资料........................................................... - 15 - 附录设计程序汇总.................................................... - 16 -

6位7段LED数码管显示实验

6位7段LED数码管显示实验 【实验要求】1)初始化时,使6位LED均显示8,显示时间为1s。2)从第一个LED开始,从0显示到9,0.5s刷新一次。直到最后一个LED。【实验目的】1)熟悉并进一步掌握定时器中断的使用和时基信号的使用。2)进一步巩固I/O口的使用方法。3)了解6位7段LED数码管的使用。【实验设备】1)装有u’nsp IDE仿真环境的PC机一台。2)μ’nSP?十六位单片机实验箱一个。【实验原理】通过对I/O口的控制,初始化时点亮所有的数码管,即6位LED数码管均显示8。1s 后,从第一位数码管开始从0显示到9,刷新时间为0.5s。直到最后一个数码管。1s的时间使用定时器A (FIQ);0.5s的时间使用2HZ的时基信号(IRQ5)。【硬件连接图】A0—A6 接A---G A8—A13 接CS1—CS6 B0—B7 接KEY 【实验步骤】⑴按硬件电路原理图进行连接。⑵画程序流程图。⑶编写程序。⑷调试程序。⑸结合硬件调试,实现最终功能。【主程序流程图】 广告灯设计(利用取表方式) 桂林电子工业学院孙安青 https://www.360docs.net/doc/db6815758.html, 1.实验任务 利用取表的方法,使端口P1做单一灯的变化:左移2次,右移2次,闪烁2次(延时的时间0.2秒)。 2.电路原理图 3.系统板上硬件连线 把“单片机系统”区域中的P1.0-P1.7用8芯排线连接到“八路发光二极管指示模块”区域中的L 1-L8端口上,要求:P1.0对应着L1,P1.1对应着L2,……,P1.7对应着L8。 4.程序设计内容 在用表格进行程序设计的时候,要用以下的指令来完成 (1).利用MOV DPTR,#DATA16的指令来使数据指针寄存器指到表的开头。 (2).利用MOVC A,@A+DPTR的指令,根据累加器的值再加上DPTR的值,就可以使程序计数器PC指到表格内所要取出的数据。 因此,只要把控制码建成一个表,而利用MOVC工,@A+DPTR做取码的操作,就可方便地处理一些复杂的控制动作,取表过程如下图所示:

多位数码管动态扫描protues仿真

实验题目:多位数码管动态扫描电路设计与调试 一、实验要求与目的 1、设计要求 8位数码管显示“8.8.8.8.8.8.8.8.”,即点亮显示器所有段,持续约500ms 之后,数码管持续约1s ;最后显示“HELLO —10”,保持。 2、实验目的 1、掌握数码管动态扫描显示原理及实现方法。 2、掌握动态扫描显示电路驱动程序的编写方法。 二、设计思路 1、在Proteus 中设计仿真电路原理图。 2、在Keil C51软件中编译并调试程序,程序后缀必须是.c 。调试时生成hex 文件,确认 无误后将生成的hex 文件添加到原理图的单片机中进行仿真。 3、观察电路仿真结果对程序进行更改直至达到预期结果 三、实验原理 p2[0..3] p0[0..7]p 00p 00p 07p 06p 0605p 02p 05p 04p 04p 03p 03p 02p 02p 01p 01p 07p 23p 22p 21p 20A 15B 14C 13D 12 01122334455667798109 11 U2 7445 A 02 B 018A 13B 117A 24B 216A 35B 315A 46B 414A 57B 513A 68B 612A 7 9 B 7 11 C E 19A B /B A 1 U3 74HC245 234567891 RP1 RESPACK-8 XTAL2 18 XTAL119 RST 9 P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD 17 P3.6/WR 16P3.5/T115AD[0..7]A[8..15] ALE 30EA 31PSEN 29 P1.0/T21 P1.1/T2EX 2P1.23P1.34P1.45P1.56P1.67P1.78 U4 AT89C52 图1 原理图

7段数码管的使用(个人总结)

七段数码管引脚图 图1 共阳1位数码管引脚图图2 段号实际位置 数码管使用条件: A)段、小数点上加限流电阻 B)使用电压:段_根据发光颜色决定小数点_根据发光颜色决定 C)使用电流: 静态:总电流 80mA(每段 10mA) 动态:平均电流 4-5mA 峰值电流: 100mA 数码管使用注意事项说明: A)数码管表面不要用手触摸,不要用手去弄引角; B)焊接温度:260度焊接时间:5S C)表面有保护膜的产品,可以在使用前撕下来。

实际使用说明: A)7段数码管可以分为共阳极与共阴极两种,共阳极就是把所有LED的阳极连接到共同接点com,而每个LED的阴极分别为a、b、c、d、e、f、g及dp(小数点);共阴极则是把所有LED的阴极连接到共同接点com,而每个LED的阳极分别为a、b、c、d、e、f、g及dp(小数点),如下图所示。图中的8个LED分别与上面那个图中的A~DP各段相对应,通过控制各个LED的亮灭来显示数字。 B)对于单个数码管,从它的正面看进去,左下角那个脚为1脚,以逆时针方向依次为1~10脚。注意,3脚和8脚是连通的,这两个都是公共脚。 C)对于四位数码管,内部的4个数码管共用a~dp这8根数据线,有4公共端,共有12个引脚。引脚排列从正面看进去,依然是从左下角的那个脚(1脚)开始,以逆时针方向依次为1~12脚(反面标有1脚和12脚,从1脚顺时针数到12脚,便是1~12脚)。 图3 4位共阳数码管引脚图

D)4位管典型用法 (1)SM接VCC (2)实际接线时,找准com端,Data端怎么方便怎么连接 (3)驱动com1,逐个驱动D0~D7口,观察对应亮起的段号,做一一对应 (4)根据实际数字、字母的段组成,编写8位Data端的2位16进制编码

实验四八位七段数码管动态显示电路的设计

八位七段数码管动态显示电路的设计 一、实验目的 1、了解数码管的工作原理。 2、学习七段数码管显示译码器的设计。 3、学习VHDL的CASE语句及多层次设计方法。 二、实验原理 七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。其单个静态数码管如下图4-4-1所示。 图4-1 静态七段数码管 由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相么。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。 三、实验内容 本实验要求完成的任务是在时钟信号的作用下,通过输入的键值在数码管上显示相应的键值。在实验中时,数字时钟选择1024HZ作为扫描时钟,用四个拨动开关做为输入,当四个拨动开关置为一个二进制数时,在数码管上显示其十六进制的值。 四、实验步骤 1、打开QUARTUSII软件,新建一个工程。 2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。 3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光 盘中提供的示例程序。 4、编写完VHDL程序后,保存起来。方法同实验一。

5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。 6、编译仿真无误后,根据用户自己的要求进行管脚分配。分配完成后,再进行全编译 一次,以使管脚分配生效。 7、根据实验内容用实验导线将上面管脚分配的FPGA管脚与对应的模块连接起来。 如果是调用的本书提供的VHDL代码,则实验连线如下: CLK:FPGA时钟信号,接数字时钟CLOCK3,并将这组时钟设为1024HZ。 KEY[3..0]:数码管显示输入信号,分别接拨动开关的S4,S3,S2,S1。 LEDAG[6..0]:数码管显示信号,接数码管的G、F、E、D、C、B、A。 SEL[2..0]:数码管的位选信号,接数码管的SEL2、SEL1、SEL0。 8、用下载电缆通过JTAG口将对应的sof文件加载到FPGA中。观察实验结果是否与 自己的编程思想一致。 五、实验现象与结果 以设计的参考示例为例,当设计文件加载到目标器件后,将数字信号源模块的时钟选择为1464HZ,拨动四位拨动开关,使其为一个数值,则八个数码管均显示拨动开关所表示的十六进制的值。

EDA课程设计八位数码管扫描显示电路的设计 2解读

EDA技术应用期末论文题目:八位数码管动态显示 姓名: 班级: 学号:

1.系统总体方案设计 (1) 2. LED的工作原理 (2) 2.1 LED工作原理 (3) 2.2 LED动态扫描显示原理 (3) 3.系统设计 (4) 3.1硬件电路设计 (9) 3.2 VHDL代码设计 (9) 4.运行调试......................................................,,7 4.1时序仿真. (7) 5 总结..............................................,,,,,,,,,,,,,,,9 6.参考文献 (10)

1.系统总体方案设计设计流程图如下:

首先,我们要对所要设计的八位数码管静态扫描显示电路充分理解,同时在了解了所给的硬件器材的基础上需进行“源程序的编辑和编译”——用一定的逻辑表达手段将设计表达出来;其次要进行“逻辑综合”——将用一定的逻辑表达手段表达出来的设计,经过一系列的操作,分解成一系列的基本逻辑电路及对应关系;然后要进行“目标器件的布线∕适配”——在选定的目标器件中建立这些基本逻辑电路及对应关系;最后,目标器件的编程下载——将前面的软件设计经过编程变成具体的设计系统,同时在设计过程中要进行有关“仿真”——模拟有关设计结果,看是否与设计构想相符。 系统结构框图如下: 2. LED的工作原理 2.1 LED工作原理 LED为分段式半导体显示器,通常称为七段发光二极管显示器。下图为七段发光二极管显示器共阴极和共阳极的电路图。对共阴极显示器的公共端应接地,给a-g输入相应高电平,对应字段的发光二极管显示十进制数;对共阳极的公共端应接+5V电源,给a-g输入端相应低电平,对应字段的发光二极管也显示十进制数。

8位8段led数码管动态扫描显示 (1)

项目名称:8位8段LED数码管动态扫描显示班级:09电二姓名:解健学号:09020313 一.实验目的 1.掌握数码管动态扫描显示原理及实现方法。 2.掌握动态扫描显示电路驱动程序的编写方法。 二.实验电路 三.元器件 元器件编号元器件名称说明 U2 7445 集电极开路的BCD十进制译码器/驱动器U3 74HC245 8位总线驱动器 U1 AT89C52 AT89C52单片机 RP1 RESPACK8 具有公共端的排电阻 7SEG-MPX8-CC-BLUE 共阴极8位7段LED蓝色显示器四.实验步骤 第一步:先在Proteus软件中设计仿真电路原理图。 第二步:再在Keil C51软件中编写且编译程序,程序后缀必须是.c。然后在打开的“Option for Target‘Target 1’”选项卡,“Target”标签下频率设置为“11.0592”,“Output”标签下,将“Creat HEX File”项打勾选中,设置生成一个.hex文件。 第三步:接着将.hex文件导入原理图中U1芯片。双击U1,打开Edit Component对话框,选择生成的hex文件。 第四步:最后观察设计的电路图是否能得到预想的效果,若不能,进行检查,找到毛病且纠正。

流程图 实验现象: 显示器点亮所有段,持续约1s ,然后灭显示器,持续2s,最后显示“hello-93”,保持。 附:程序 #include #include #define TRUE 1 #define dataPort P0 #define ledConPort P2 unsigned char code ch[8]={0x76,0x79,0x38,0x38,0x3f,0x40,0x6f,0x4f}; void time(unsigned int ucMs); void main(void) N N N N Y Y Y Y 开始 选择段 点亮所有位 Counter=0 I=0 I++ I<30 灭显示器 延时 选择段 按数值点亮位 Counter=0 延时 Counter<8 停止 结束 Counter++ Counter<8 Counter++ 延时

8位7段数码管字符

显示0,#01000000B 40H 显示1,#01111001B 79H 显示2,#00100100B 24H 显示3,#00110000B 30H 显示4,#00011001B 19H 显示5,#00010010B 12H 显示6,#00000010B 02H 显示7,#01011000B 58H 显示8,#00000000B 00H 显示9,#00010000B 10H 显示A,#00001000B 08H 显示B,#00000011B 03H 显示C,#01000110B 46H 显示D,#00100001B 21H 显示E,#00000110B 06H 显示F,#00001110B 0EH 数字0-9: 40H,79H,24H,30H,19H,12H,02H,58H,00H,10H 字母A-F: 08H,03H,46H,21H,06H,0EH (小数点不亮) 显示0,#11000000B 0C0H 显示1,#11111001B 0F9H 显示2,#10100100B 0A4H 显示3,#10110000B 0B0H 显示4,#10011001B 99H 显示5,#10010010B 92H 显示6,#10000010B 82H 显示7,#11011000B 0D8H 显示8,#10000000B 80H 显示9,#10010000B 90H 显示A,#10001000B 88H 显示B,#10000011B 83H 显示C,#11000110B 0C6H 显示D,#10100001B 0A1H 显示E,#10000110B 86H 显示F,#10001110B 8EH 数字0-9: 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0D8H,80H,90H

七段数码管显示实验

单片机实验报告

实验九七段数码管显示实验 一、实验目的 1.学习七段数码管的工作原理; 2.学习数码管与8051单片机的接口方法; 3.掌握动态扫描显示技术。 二、实验原理 如图4.9-1所示,LED数码管由7个发光二极管组成,此外,还有一个圆点型发光二极管(在图中以dp表示),用于显示小数点。通过七段发光二极管亮 共阴极接法共阳极接法 图4.9-1 暗的不同组合,可以显示多种数字、字母以及其它符号。LED数码管中的发光二极管共有两种连接方法: 1)共阴极接法:把发光二极管的阴极连在一起构成公共阴极。使用时公共阴极接地,这样阳极端输入高电平的段发光二极管就导通点亮,而输入低电平的则不点亮。实验中使用的LED显示器为共阴极接法 2)共阳极接法:把发光二极管的阳极连在一起构成公共阳极。使用时公共阳极接+5V。这样阴极端输入低电平的段发光二极管就导通点亮,而输入高电平的则不点亮。 为了显示数字或符号,要为LED显示器提供代码,因为这些代码是为显示字形的,因此称之为字形代码。七段发光二极管,再加上一个小数点位,共计八段。因此提供给LED显示器的字形代码正好一个字节。若a、b、c、d、e、f、g、dp 8个显示段依次对应一个字节的低位到高位,即D0、D1、D2、D3、D4、D5、D6、D7,则用共阴极LED数码管显示十六进制数时所需的字形代码如表4.9-1所示。

表4.9-1 共阴极LED 数码管字形代码 字型 共阴极字形代码 字型 共阴极字形代码 字型 共阴极字形 代码 0 3FH 6 7DH C 39H 1 06H 7 07H d 5EH 2 5BH 8 7FH E 79H 3 4FH 9 6FH F 71H 4 66H A 77H 灭 00H 5 6DH b 7CH *实际上试验中使用的是共阳极数码管,这里就不一一列出。 2、动态显示 按图4.9-2(b )连接线路,通过交替选中LED1和LED0循环显示两位十进制数。七段数码管段码连接不变,位码驱动输入端S1、S0接8255A C 口的PC1、PC0,通过C 口的这两位交替输出1和0,以便交替选中LED1和LED0,从而实现两位十进制数的交替显示。请编程实现在两个LED 数码管上循环显示00 99,程序流程图如图4.9-3(b)所示。 (a) 静态显示程序流程图 (b) 动态显示程序流程图 图4.9-3 十位数的段码至A 口 个位数的段码至A 口 开始 开始 返回DOS 返回DOS 延时并修改要显示的数字

4位7段数码管驱动电路设计要求

4位7段数码管驱动电路 图1 开发板电路原理图 信号说明

1. iRST_N(异步复位) 当iRST_N信号为低时,Seg7_Driver模块中的所有寄存器异步复位为初值。 2. iCLK 模块的输入时钟40MHz。 3. iSeg_Val[15:0] 7段数码管输入二进制值,0x0~0xF iSeg_Val[15:12],左侧第一位7段数码管的值。 iSeg_Val[11: 8],左侧第两位7段数码管的值。 iSeg_Val[ 7: 4],左侧第三位7段数码管的值。 iSeg_Val[ 3: 0],左侧第四位7段数码管的值。 4. iDot_Val[3:0] 各位7段数码管小数点的显示,值为1表示显示小数点,0表示不显示小数点。 iDot_Val[3],左侧第一位7段数码管的小数点。 iDot_Val[2],左侧第两位7段数码管的小数点。 iDot_Val[1],左侧第三位7段数码管的小数点。 iDot_Val[0],左侧第四位7段数码管的小数点。 5. oDisplay[7:0] 7段数码管的数据信号。4位7段数码管共用数据信号。7段数码管为共阳极连接,各段数据线为0时,对应段发光。 6. oDis_En[3:0] 各位7段数码管的使能信号,低有效。

oDis_En[3],左侧第一位7段数码管的使能信号。 oDis_En[2],左侧第两位7段数码管的使能信号。 oDis_En[1],左侧第三位7段数码管的使能信号。 oDis_En[0],左侧第四位7段数码管的使能信号。 建议的分块: 将整个驱动电路分成Seg7_Ctrl模块与Seg7_Hex2seg模块 Seg7_Ctrl模块负责产生数码管动态显示的控制信号oDis_En的时序 Seg7_Hex2Seg模块负责将二进制值转换成数据码管显示的数据值,包括小数点的值。 注意点: 1. 动态显示过程是利用人眼的视觉残留现象来实现的,应选择适当的数码管扫描频率。可先 选择数码管的扫描显示的刷新率为125Hz(8ms),即每位数码管用2ms。 2. 完成基本功能后,可实验改变刷新率,观察数码管显示的效果,并思考原因。 3. 如果要使得数码管能够显示,A,b,C,n,o等其他字符,模块应该作怎样的修改?

七段数码管循环显示

(封面) 天津理工大学中环信息学院 电子技术课程设计 设计题目:七段数码管循环显示控制电路设计 姓名:诸钦峰学号:11160014 系别:电子信息工程系专业班级:物联网1班 开始日期: 2013年6月24日完成日期2013 年07月01日 指导教师:彭利标成绩评定等级

天津理工大学中环信息学院 课程设计任务书 系别:电子信息工程系班级:物联网1班姓名:诸钦峰学号:11160014 本表附在课程设计说明书的目录之后。

天津理工大学中环信息学院 课程设计成绩评定表 系别:电子信息工程系班级:物联网1班姓名:诸钦峰学号:11160014 本表附在课程设计任务书之后。

目录 一、设计意义 (4) 二、主要任务 (5) 2.设计方案比较 (5) 三、电路组成框图 (8) 1.数列循环电路的设计 (8) 2.序列显示电路的设计 (8) 2.1十进制自然数序列的显示电路 (8) 2.2奇数序列显示电路 (9) 2.3偶数序列显示电路 (9) 2.4音乐序列显示电路 (10) 3.脉冲产生电路的设计 (11) 4.二分频电路的设计 (11) 四、电路原理图 (12) 五、各电路的仿真测试 (14) 1.脉冲产生电路的仿真 (15) 2.二频分电路的仿真 (16) 六、元件清单 (16) 七、总结 (16)

一、设计意义 这次的课程设计主要是用计数器来实现的,这个七段数码管循环显示控制电路设计的实质就是要产生一系列有规律的数列, 然后通过一个七段数码管显示出来。这里使用的只要就是计数器, 计数器在时序电路中应用的很广泛,它不仅可以用于对脉冲进行计数,还可用于分频,定时,产生节拍脉冲以及其他时序信号。运用计数器的不同的功能和不同的接发就可以实现不同的序列输出了。 而这次的内容还包括分电路图的整合,使这个七段数码管能够按照要求那个依次输出自然序列,奇数序列,偶数序列还有音乐序列。为了实现这个循环输出的功能,在设计的时候还用到了一个以为寄存器,可以利用它的输出端来控制四个计数器的工作情况, 可以让四个计数器依次工作,就可以达到要求的依次循环输出数列。 最后还有一个部分就是脉冲的产生基于多谐振荡器可以产生方波,就可以利用它来产生脉冲信号了。而这个多谐振荡器采用的是 555 定时器来完成的。这个设计基本上就是由以上三个部分连接在一起组成的。 1、基本方案框图 计数器输出信号,将信号给译码器和脉冲信号再由脉冲信号和译码器分别编成自然序列,奇数序列,偶数序列和音乐序列,最后由数码管显示出来。 图1 七段数码管显示的基本方框图

7段数码管实验报告

EDA 实验报告 实验名称: 7段数码管控制接口学院:信息工程学院 专业: 11级电子信息工程2班年级、班: 2009级2班 学生姓名:王璐 指导教师:郭华 2014 年 6 月24 日

7段数码管控制接口 一、实验要求。 用设计一个共阴7 段数码管控制接口,要求:在时钟信号的控制下,使 6 位数码管动态刷新显示0—F,其中位选信号为8-3 编码器编码输出。 二、实验内容。 在实验仪器中,8 位7 段数码显示的驱动电路已经做好,并且其位选信(SEL[7..0])为一3-8 译码器的输出,所以我们在设计7 段数码管控制接口时,其位选信号输出必须经8-3编码。 显示控制器的引脚图如图40-1: 图1 图中CP 为时钟输入端,SEGOUT[7..0]为段驱动输出;SELOUT[2..0]为位选信号输出;NUMOUT[3..0]为当前显示的数据输出。 图40-2 7段显示控制器仿真波形图 从图40-2可以看出,6位数码管是轮流点亮的,我们以NUMOUT=1 这段波形为参考:当SELOUT为000时,点亮第一位显示器,显示的数字为1,同时,NUMOUT 输出的数据也为“0001”。同理,当SELOUT 为001 时,点亮第二位显示器,显示数字为1,直到 6 位显示器全都显示完毕,等待进入下一个数字的显示。 同时,还有一个问题不可忽视,位扫描信号的频率至少需要多少以上,才能使显示器不闪烁?简单的说,只要扫描频率超过眼睛的视觉暂留频率24HZ以上就可以达到点亮单个显示,却能享有6个同时显示的视觉效果,而且显示也不闪烁。当我们输入频率为5MHZ时,我们通过加法计数器来产生一个约300HZ 的信号,并且由它来产生位选信号,请参考下面程序段:

数码管动态显示教案

电子综合设计实训 题目数码管动态显示 _ 姓名 专业 学号 指导教师 郑州科技学院电气工程学院

目录 摘要.................................................................................................. I 1背景. (1) 1.1介绍 (1) 1.2设计步骤 (2) 2 设计思路 (3) 2.1方案对比 (3) 3元件的选择 (6) 3.1单片机 (6) 3.2 显示元器件的选择 (6) 4 设计原理及功能说明 (8) 4.1 各部分功能说明 (8) 5 装配与调试 (14) 5.1装配 (14) 5.2调试 (14) 6 总结 (15) 附录 (17) 附录一:元件清单 (17) 附录二:电路源程序 (17)

数码管动态显示的设计 摘要 本文介绍了一种基于AT89C51单片机的8个数码管滚动显示单个数字的设计,让八位数码管滚动显示0、1、2、3、4、5、6、7,我们以液晶显示技术的发展为背景,选择了比较常用的液晶数码管显示模块,利用了单片机控制数码管模块的显示机理。研究学习AT89C51单片机其功能,对学习过的单片机,C语言课程进行巩固,设计一款在8只数码管上流动显示单个数字的程序,并用PROTEUS进行电路设计和实时仿真。该电路有两部分组成:AT89C51单片机和显示模块组成。AT89C51单片机具有超低功耗和CPU外围的高度整合性;显示模块数码管是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极,方便易用。实际应用中不需要外部任何元器件即可实现,具有接口电路简单、可靠,易于编程的特点,抗干扰性好等特点。 单片机技术使我们可以利用软硬件实现数码管准确显示各种数码。而且这种技术相对简单,性价比较高,在我们生活中应用很广泛,具有一定的发展前景。 关键词:AT89C51单片机;数码管;滚动显示

七段LED数码管显示电路设计(精)

实验七七段LED数码管显示电路设计 一、实验目的 1.学习EDA软件的基本操作 2.学习使用原理图进行设计输入 3.初步掌握软件输入、编译、仿真和编程的过程 4.学习实验开发系统的使用方法 二、实验说明 本实验通过七段LED数码管显示电路的设计,初步掌握EDA 设计方法中的设计输入、编译、综合、仿真和编程的基本过程。七段LED数码管显示电路有四个数据输入端(D0-D3),七个数据输出端(A-G。 三、实验要求 1、完成七段LED数码管显示电路的原理图输入并进行编译 2、对设计的电路经行仿真验证 3、编程下载并在实验开发系统上验证设计结果 四、实验步骤 1、新建工程 2、新建Verilog HDL文件 3、在文本输入窗口键入代码 4、保存HDL文件

5、编译文件直至没有错误 6、新建波形文件 7、添加观察信号 8、添加输入激励,保存波形文件 9、功能仿真 七段LED数码管显示电路真值表: 输入D3D2D1D0G F E D C B A 000000111111 100010000110 200101011011 300111001111 401001100110 501011101101 601101111101 701110001111 810001111111

910011101111 A10101110111 B10111111100 C11001111001 D110111011110 E11101111001 F11111110001五、电路原理图 啊Verilog代码描述: module qiduan(data_in,data_out; input [3:0]data_in; output [6:0]data_out; reg [6:0]data_out; always @(data_in begin casex(data_in 4'b0000:data_out<=7'b0111111;

数码管动态扫描显示01234567

实验5 数码管动态扫描显示01234567 原理图:8个数码管它的数据线并联接到JP5, 位控制由8个PNP型三级管驱动后由JP8引出。 相关原理: 数码管是怎样来显示1,2,3,4呢?数码管实际上是由7个发光管组成8字形构成的,加上小数点就是8个。我们分别把他命名为 A,B,C,D,E,F,G,H。

搞懂了这个原理, 我们如果要显示一个数字2, 那么 A,B,G,E,D这5个段的发光管亮就可以了。也就是把B,E,H(小数点)不亮,其余全亮。根据硬件的接法我们编出以下程序。当然在此之前,还必须指定哪一个数码管亮,这里我们就指定最后一个P2.7。 LOOP: CLR P2.7 ;选中最后的数码管 SETB P0.7 ;B段不亮 SETB P0.5 ;小数点不亮 SETB P0.1 ;C段不亮 CLR P0.2 ;其他都亮 CLR P0.3 CLR P0.4 CLR P0.6 CLR P0.0 JMP LOOP ;跳转到开始重新进行

END 把这个程序编译后写入单片机,可以看到数码管的最后一位显示了一个数字2。 也许你会说:显示1个2字就要10多行程序,太麻烦了。 显示数字2则是C,F,H(小数点)不亮,同时由于接法为共阳接法,那么为0(低电平)是亮 为1(高电平)是灭。从高往低排列,(p0.7_p0.0)写成二进制为01111110, 把他转化为16进制则为A2H。我们可以根据硬件的接线把数码管显示数字编制成一个表格, 以后直接调用就行了。 有了这个表格上面显示一个2的程序则可简化为: LOOP: CLR P2.7 ;选中左边的数码管 MOV P0,#0A2H ;送数字2的代码到P0口 JMP LOOP ;跳转到开始重新进行 END

实验四八位七段数码管动态显示电路的设计

实验四八位七段数码管 动态显示电路的设计 Document serial number【KK89K-LLS98YT-SS8CB-SSUT-SST108】

八位七段数码管动态显示电路的设计 一、实验目的 1、了解数码管的工作原理。 2、学习七段数码管显示译码器的设计。 3、学习VHDL的CASE语句及多层次设计方法。 二、实验原理 七段数码管是电子开发过程中常用的输出显示设备。在实验系统中使用的是两个四位一体、共阴极型七段数码管。其单个静态数码管如下图4-4-1所示。 图4-1 静态七段数码管 由于七段数码管公共端连接到GND(共阴极型),当数码管的中的那一个段被输入高电平,则相应的这一段被点亮。反之则不亮。共阳极性的数码管与之相么。四位一体的七段数码管在单个静态数码管的基础上加入了用于选择哪一位数码管的位选信号端口。八个数码管的a、b、c、d、e、f、g、h、dp都连在了一起,8个数码管分别由各自的位选信号来控制,被选通的数码管显示数据,其余关闭。 三、实验内容 本实验要求完成的任务是在时钟信号的作用下,通过输入的键值在数码管上显示相应的键值。在实验中时,数字时钟选择1024HZ作为扫描时钟,用四个拨动开关做为输入,当四个拨动开关置为一个二进制数时,在数码管上显示其十六进制的值。 四、实验步骤 1、打开QUARTUSII软件,新建一个工程。 2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。 3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序,用户可参照光盘中 提供的示例程序。 4、编写完VHDL程序后,保存起来。方法同实验一。 5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。 6、编译仿真无误后,根据用户自己的要求进行管脚分配。分配完成后,再进行全编译 一次,以使管脚分配生效。 7、根据实验内容用实验导线将上面管脚分配的FPGA管脚与对应的模块连接起来。 如果是调用的本书提供的VHDL代码,则实验连线如下: CLK:FPGA时钟信号,接数字时钟CLOCK3,并将这组时钟设为1024HZ。

嵌入式ARM键盘接口和七段数码管的控制实验

实验三键盘接口和七段数码管的控制实验 一、实验目的 1. 学习4X4键盘的与CPU的接口原理 2. 掌握键盘芯片HD7279的使用,及8位数码管的显示方法; 二、实验内容 1. 通过4X4按键完成在数码管上的各种显示功能,以及LCD上显示。 三、实验设备 1.EL-ARM-830+教学实验箱,PentiumII以上的PC机,仿真调试电缆。 2. PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发环境, 仿真调试驱动程序。 四、实验原理 键盘和7段数码管的控制实验,是通过键盘的控制芯片HD7279A来完成的。它的信号线及控制线连接到S3C2410上,驱动线直接连到8位共阴的7段数码管上。由于其芯片的接口电压是5V的,而S3C2410的接口电压是3.3V,所以,HD7279A的信号、控制线经过CPLD 把电压转换到3.3V,然后送入CPU中。 HD7279是一片具有串行接口的可同时驱动8位共阴式数码管或独立的LED的智能显示驱动芯片。该芯片同时还可连接多达64键的键盘矩阵,单片即可完成显示键盘接口的全部功能。内部含有译码器可直接接受BCD码或16进制码并同时具有两种译码方式。此外还具有多种控制指令如消隐、闪烁、左移、右移、段寻址等,具有片选信号可方便地实现多于8位的显示或多于64键的键盘接口。 HD7279在与S3C2410接口中,它使用了4根接口线。片选信号#CS(低电平有效),时钟信号CLK,数据收发信号DATA,中断信号#KEY(低电平送出),EL-ARM-830+实验箱与其的接口中,使用了三个通用I/O接口,和一个外部中断,实现了与HD7279A的连接,S3C2410的外部中断接HD7279的中断#KEY,三个I/O口分别与HD7279A的其他控制、数据信号线相连。HD7279的其他管脚分别接4X4按键和8位数码管。 当程序运行时,按下按键,平时为高电平的HD7279A的#KEY就会产生一个低电平,送给S3C2410的外部中断5请求脚,在CPU中断请求位打开的状态下,CPU会立即响应外部中断5的请求,PC指针就跳入中断异常向量地址处,进而跳入中断服务子程序中,由于外部中断4/5/6/7使用同一个中断控制器,所以,还必须判断一个状态寄存器,判断是否是外部中断5的中断请求,当判断出是外部中断5的中断请求,则程序继续执行,CPU 这时,通过发送#CS片选信号选中HD7279A,再发送时钟CLK信号和通过DATA线发送控制指令信号给HD7279A,HD7279A得到CPU发送的命令后,识别出该命令,然后,扫描按键,

相关文档
最新文档