位数码管扫描显示电路

位数码管扫描显示电路
位数码管扫描显示电路

实验报告

课程名称EDA技术实用教程

实验名称位数码管扫描显示电路设计

实验类型验证

学院名称电子信息工程学院专业电子信息工程(自动化)年级班别10级电子信息工程3班开出学期12—13上期

学生姓名学号

实验教师成绩

2012年11月9日

实验一:位数码管扫描显示电路设计

一、实验目的实现位数码管扫描显示电路设计

二、实验原理

8位数码扫描显示电路,其中每个数码管的8个段:h, g, f, e, d, c, b, a (h 是小数点)都分别连在一起,8个数码管分别由8个选通信号k1, k2, k3, …… k8来选择。被选通的数码管显示数据,其余关闭。如在某一时刻,k3为高电平,其余选通信号为低电平,这是仅k3对应的数码管显示来自段信号端的数据,其余7个数码管呈现关闭状态。根据这种电路状况,如果希望在8个数码管显示希望的数据,就必须使得8个选通信号k1, k2, k3, …… k8分别被单独选通,并在此同时,在段信号输入口加上希望在该对应数码管上显示的数据,于是随着选通信号的扫变,就能实现扫描显示的目的。

三、实验内容:

设计程序如下:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY SCAN_LED IS

PORT ( CLK : IN STD_LOGIC;

SG : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);--段控制信号输出

BT : OUT STD_LOGIC_VECTOR(2 DOWNTO 0) );--位控制信号输出

END;

ARCHITECTURE one OF SCAN_LED IS

SIGNAL CNT8 : STD_LOGIC_VECTOR(2 DOWNTO 0);

SIGNAL A : INTEGER RANGE 0 TO 15;

BEGIN

PROCESS( CNT8 )

BEGIN

CASE CNT8 IS

WHEN "000" => BT <= "000" ; A <= 0 ;

WHEN "001" => BT <= "001" ; A <= 7 ;

WHEN "010" => BT <= "010" ; A <= 0 ;

WHEN "011" => BT <= "011" ; A <= 1;

WHEN "100" => BT <= "100" ; A <= 4 ;

WHEN "101" => BT <= "101" ; A <= 3 ;

WHEN "110" => BT <= "110" ; A <= 5 ;

WHEN "111" => BT <= "111" ; A <= 7 ;

WHEN OTHERS => NULL ;

END CASE ;

END PROCESS P1;

PROCESS(CLK)

BEGIN

IF CLK'EVENT AND CLK = '1' THEN CNT8 <= CNT8 + 1;

END IF;

END PROCESS P2 ;

PROCESS( A )

BEGIN

CASE A IS

WHEN 0 => SG <= "0111111"; WHEN 1 => SG <= "0000110"; WHEN 2 => SG <= "1011011"; WHEN 3 => SG <= "1001111"; WHEN 4 => SG <= "1100110"; WHEN 5 => SG <= "1101101"; WHEN 6 => SG <= "1111101"; WHEN 7 => SG <= "0000111";

WHEN 8 => SG <= "1111111"; WHEN 9 => SG <= "1101111"; WHEN 10=> SG <= "1110111"; WHEN 11 => SG <= "1111100"; WHEN 12=> SG <= "0111001"; WHEN 13 => SG <= "1011110"; WHEN 14=> SG <= "1111001"; WHEN 15 => SG <= "1110001"; WHEN OTHERS => NULL ;

END CASE ;

END PROCESS P3;

END;

四、仿真结果

五、实验结论

本次实验为设计性实验,旨在锻炼我们的思维能力,需要我们在课后将实验设计好,这不仅需要对书本上的知识有比较详细的了解,还需要对数码管的显示有了解,对于段选和位选的概念有明确的掌握,才能设计出完整的实验程序。在实验过程中,由于对实验箱不是很了解,对建立下载文件的掌握不是很到位,导致花费了大量的时间在做无用功,好在通过自己的努力,还是将实验做好了。

七段数码管显示

七段数码管显示设计报告 目录 一、设计任务 二、题目分析与整体构思 三、硬件电路设计 四、程序设计 五、心得体会

一.设计任务 数码的显示方式一般有三种:第一种是字型重叠式;第二种是分段式;第三种是点阵式。目前以分段式应用最为普遍,主要器件是七段发光二极管(LED)显示器。它可分为两种,一是共阳极显示器(发光二极管的阳极都接在一个公共点上),另一是共阴极显示器(发光二极管的阳极都接在一个公共点上,使用时公共点接地)。 数码管动态扫描显示,是将所用数码管的相同段(a~g 和p)并联在一起,通过选位通 信号分时控制各个数码管的公共端,循环依次点亮各个数码管。当切换速度足够快时,由于人眼的“视觉暂留”现象,视觉效果将是数码管同时显示。 根据七段数码管的显示原理,设计一个带复位的七段数码管循环扫描程序,本程序需要着重实现两部分: 1. 显示数据的设置:程序设定4 位数码管从左至右分别显示1、2、3、4; 2. 动态扫描:实现动态扫描时序。 利用EXCD-1 开发板实现七段数码管的显示设计,使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7 个发光LED 组成,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA相应引脚。四位数码管与FPGA 之间通过8 位拨码开关(JP1)进行连接。 二.题目分析与整体构思 使用EXCD-1 开发板的数码管为四位共阴极数码管,每一位的共阴极7 段数码管由7 个发光LED 组成,呈“”字状,7 个发光LED 的阴极连接在一起,阳极分别连接至FPGA 相应引脚。SEG_SEL1、SEG_SEL2、SEG_SEL3 和SEG_SEL4 为四位7 段数码管的位选择端。当其值为“1”时,相应的7 段数码管被选通。当输入到7 段数码管SEG_A~ SEG_G 和SEG_DP 管脚的数据为高电平时,该管脚对应的段变亮,当输入到7 段数码管 SEG_A~SEG_G 和SEG_DP 管脚的数据为低电平时,该管脚对应的段变灭。该四位数码管与FPGA 之间通过8 位拨码开关(JP1)进行连接,当DIP 开关全部拨到上方时(板上标示为:7SEGLED),FPGA 的相应IO 引脚和四位7 段数码管连接,7 段数码管可以正常工作;当DIP 开关全部拨到下方时(板上标示为:EXPORT5),FPGA 的相应IO引脚与7 段数码管断开,相应的FPGA 引脚用于外部IO 扩展。 注意:无论拨码开关断开与否,FPGA 的相应IO 引脚都是与外部扩展接口连接的,所 以当正常使用数码管时,不允许在该外部扩展接口上安装任何功能模块板。 数码管选通控制信号分别对应4 个数码管的公共端,当某一位选通控制信号为高电平时,其对应的数码管被点亮,因此通过控制选通信号就可以控制数码管循环依次点亮。一个数码管稳定显示要求的切换频率要大于50Hz,那么4 个数码管则需要50×4=200Hz 以上的切换频率才能看到不闪烁并且持续稳定显示的字符。 三.硬件电路设计 设计结构图如下:

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电源

led动态扫描

LED动态扫描实验 一、实验目的: 1、掌握数码LED的动态扫描显示原理 2、学习延时子程序的编写的使用 二、实验原理: 共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。 数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

三、实验内容及过程: 1、流程图

2、实验中碰到的问题 实验中我用了两排插孔来代替数码管的两排引脚焊接在实验板上,东西都焊好之后,把数码管插在插孔里,有的时候就会出现接触不好的状况,我认为,以后还是把数码管焊上去才不会出现接触的问题。 四、实验现象: 在烧入程序后,数码管上的数字呈现从1开始逐个递增的显示 五、程序: ORG 0000H MAIN: MOV 7AH,#00H MOV 7BH,#00H MOV 7CH,#00H MOV 7DH,#00H MOV R1,#7AH MAIN0: MOV A,7AH MAIN1: CJNE A,#0AH,BJW MOV 7FH,R1 JW: MOV @R1,#00H INC R1

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

八位七段数码管动态显示电路的设计 一七段显示器介绍 七段显示器,在许多产品或场合上经常可见。其内部结构是由八个发光二极管所组成,为七个笔画与一个小数点,依顺时针方向为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位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等其他字符,模块应该作怎样的修改?

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

八位七段数码管动态显示电路的设计 一、实验目的 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,拨动四位拨动开关,使其为一个数值,则八个数码管均显示拨动开关所表示的十六进制的值。

LED动态扫描显示实验

51单片机实验报告二 名称:LED动态扫描显示 目的:掌握数码LED的动态扫描显示原理; 学习延时子程序的编写和使用。 原理: 为了节省输出端口数,数码LED显示一般采用动态扫描的方法,将所有数码LED的共阴极接在一个位型输出口上,将所有数码管的相同段接在一起作为字型口,软件控制每个数码LED轮流显示,任一时刻只一个数码亮,但扫描速度足够快时,视觉效果是8个数码LED同时亮。 电路图:

流程图: 汇编程序: ORG 0000H AJMP MAIN ORG 0080H MAIN: CLR P2.0 ;选中第一个数码管MOV P0, #3FH ;显示0 LCALL DELAY ;调用延时 MOV P0, #0FFH ;关显示 SETB P2.0 CLR P2.1 ;选中第二个数码管MOV P0, #06H ;显示1 LCALL DELAY MOV P0, #0FFH SETB P2.1 CLR P2.2 ;选中第三个数码管MOV P0, #5BH ;显示2 LCALL DELAY MOV P0, #0FFH SETB P2.2 CLR P2.3 ;选中第四个数码管MOV P0, #4FH ;显示3 LCALL DELAY

MOV P0, #0FFH SETB P2.3 CLR P2.4 ;选中第五个数码管 MOV P0, #66H ;显示4 LCALL DELAY MOV P0, #0FFH SETB P2.4 CLR P2.5 ;选中第六个数码管 MOV P0, #6DH ;显示5 LCALL DELAY MOV P0, #0FFH SETB P2.5 CLR P2.6 ;选中第七个数码管 MOV P0, #7DH ; 显示6 LCALL DELAY MOV P0, #0FFH SETB P2.6 CLR P2.7 ;选中第八个数码管 MOV P0, #07H ; 显示7 LCALL DELAY SETB P2.7 MOV P0, #0FFH AJMP MAIN ;重新开始 DELAY: ;延时子程序 MOV R7 ,#2 D1: MOV R6, #25 D2: DJNZ R6, D2 DJNZ R7, D1 RET END 现象及结论:8只数码管循环滚动显示单个数字0—7。如此循环。

7段8位数码管电路图

转自: https://www.360docs.net/doc/9818777261.html,/yuphone/archive/2011/04/24/2026318.html 小時不識月 Stupid & Hungry 时常记记,以防忘记!本博客已迁移,新网址 为:https://www.360docs.net/doc/9818777261.html, [原创].七段数码管驱动,Verilog版本 我以前在艾米电子写的驱动。贴在博客之目的:一、时常记记,以防忘记;二、分享给大家。也许是工作比较忙之缘故吧,新近的博文啰嗦的话语少了许多,直接贴上代码,大家有什么不明白的,留言即可。 顶层例化文件 module seg7x8( input CLOCK_50, // 板载50MHz时钟 input Q_KEY, // 板载按键RST output [7:0] SEG7_SEG, // 七段数码管段脚 output [2:0] SEG7_SEL // 七段数码管待译位脚 ); // 显示效果: // ------------------------- // |1 |2.|3 |4 | |B |C |D | // ------------------------- seg7x8_drive u0( .i_clk (CLOCK_50), .i_rst_n (Q_KEY),

.i_turn_off (8'b0000_1000), // 熄灭位[2进制][此处取第3位 .i_dp (8'b0100_0000), // 小数点位[2进制][此处取第6位 .i_data (32'h1234_ABCD), // 欲显数据[16进制] .o_seg(SEG7_SEG), .o_sel(SEG7_SEL) ); endmodule 驱动文件 module seg7x8_drive( input i_clk, input i_rst_n, input [7:0] i_turn_off, // 熄灭位[2进制 input [7:0] i_dp, // 小数点位[2进制 input [31:0] i_data, // 欲显数据[16进制 output [7:0] o_seg, // 段脚 output [2:0] o_sel // 使用74HC138译出位脚 ); //++++++++++++++++++++++++++++++++++++++ // 分频部分开始 //++++++++++++++++++++++++++++++++++++++ reg [16:0] cnt; // 计数子 always @ (posedge i_clk, negedge i_rst_n) if (!i_rst_n) cnt <= 0; else cnt <= cnt + 1'b1; wire seg7_clk = cnt[16]; // (2^17/50M = 2.6114)ms //-------------------------------------- // 分频部分结束 //-------------------------------------- //++++++++++++++++++++++++++++++++++++++ // 动态扫描, 生成seg7_addr 开始 //++++++++++++++++++++++++++++++++++++++ reg [2:0] seg7_addr; // 第几个seg7

7段数码管显示电路

4.4 显示模块 4.4.1 7段数码管的结构与工作原理 7段数码管一般由8个发光二极管组成,其中由7个细长的发光二极管组成 数字显示,另外一个圆形的发光二极管显示小数点。 当发光二极管导通时,相应的一个点或一个笔画发光。控制相应的二极管导通,就能显示出各种字符,尽管显示的字符形状有些失真,能显示的数符数量也有限,但其控制简单,使有也方便。发光二极管的阳极连在一起的称为共阳极数码管,阴极连在一起的称为共阴极数码管,如图4.9所示。 4.4.2 7段数码管驱动方法 发光二极管(LED 是一种由磷化镓(GaP )等半导体材料制成的,能直接将电能转变成光能的发光显示器件。当其内部有一一电流通过时,它就会发光。 7段数码管每段的驱动电流和其他单个LED 发光二极管一样,一般为5~10mA ;正向电压随发光材料不同表现为1.8~2.5V 不等。 7段数码管的显示方法可分为静态显示与动态显示,下面分别介绍。 (1) 静太显示 所谓静态显示,就是当显示某一字符时,相应段的发光二极管恒定地寻能可截止。这种显示方法为每一们都需要有一个8位输出口控制。对于51单片机,可以在并行口上扩展多片锁存74LS573作为静态显示器接口。 静态显示器的优点是显示稳定,在发光二极管导通电注一定的情况下显示器的亮度高,控制系统在运行过程中,仅仅在需要更新显示内容时,CPU 才执行一次显示更新子程序,这样大大节省了CPU 的时间,提高了CPU 的工作效率;缺点是位数较多时,所需I/O 口太多,硬件开销太大,因此常采用另外一种显示方式——动态显示。

(2)动态显示 所谓动态显示就是一位一位地轮流点亮各位显示器(扫描),对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作(点亮),但利用人眼的视觉暂留效应和发光二极管熄 灭时的余辉效应,看到的却是多个字符“同时”显示。显示器亮度既与点亮时的导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参烽,可实现亮度较高较稳定的显示。若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位I/O 口(称为扫描口或字位口),控制各位LED 显示器所显示的字形也需要一个8位口(称为数据口或字形口)。 动态显示器的优点是节省硬件资源,成本较低,但在控制系统运行过程中,要保证显示器正常显示,CPU 必须每隔一段时间执行一次显示子程序,这占用了CPU 的大量时间,降低了CPU 工作效率,同时显示亮度较静态显示器低。 综合以上考虑,由于温度显示为精确到小数点后两位,故只需4个数码管,又考虑到CPU 工作效率与电源效率,本毕业设计采用静态显示。为共阳极显示。 4.4.3 硬件编码 动74LS47是一款BCD 码转揣为7段输出的集成电路芯片,利用它可以直接驱动共阳 极的7段数码管。它的引脚分部和真值表分别下图。

基于单片机的8255动态显示设计

物理与电气工程学院课程设计报告基于单片机的8255动态显示设计 姓名王秋雨 学号 111102042 专业电子信息工程 指导教师李艾华 成绩 日期 2013.06.22

基于单片机的8255动态显示设计 王秋雨 (安阳师范学院物理与电气工程学院河南安阳455002) 摘要:数码管是非常常见的东西,他能显示数字以及字母,应用非常的广泛。本文和大家谈谈如何用单片机来驱动数码管以及用扩展芯片来实现单片机对数码管的管理。本文以显示06:18:52开始。 关键字:单片机AT89S52 ,电子时钟,汇编语言,8255,动态显示 1 引言 随时代的发展,生活节奏的加快,人们的时间观念愈来愈强;随自动化、智能化技术的发展,机电产品的智能度愈来愈高,用到时间提示、定时控制的地方也会愈来愈多,因此,设计开发数字时钟具有良好的应用前景。由于单片机价格的低成本、高性能,在自动控制产品中得到了广泛的应用。本设计利用Atmel公司的AT89S52单片机对电子时钟进行开发,设计了实现所需功能的硬件电路,应用汇编语言进行软件编程,并用实验板进行演示、验证。在介绍本单片机的发展情况基础上,说明了本设计实现的功能,以及实验板硬件情况,并对各功能电路进行了分析。主要工作放在软件编程上,用实验板实现时间、日期、定时及它们的设定功能,详细对软件编程流程以及调试进行了说明,并对计时误差进行了分析及校正,提出了定时音与显示相冲突问题及解决方案。实验证明效果良好,可以投入使用。 动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共COM是各自独立地受I/O线控制。CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就可以自行决定何时显示哪一位了。而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。 2 技术要求 用单片机和8255扩展芯片实现数码管的显示。 3 方案论证 3.1单片机设计 这种方案采用AT89C52单片机作为系统的控制核心。用8255做扩展,显示出六个代显数据。进行加一的运算。而且单片机具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制。液晶显示器具有体积小、外形薄、重量轻、耗能少、工作电压低、无辐射,特别是视域宽、显示信息量大等优点。 3.2LED数码显示模块 方案一:静态显示方式。

实验二 数码管动态扫描显示实验

实验二数码管动态扫描显示实验 一、实验目的 1.学习和理解数码管动态扫描的工作原理。 2.学习和掌握数码管动态扫描的电路接口设计及程序编写。 二、实验设备 1.USB线 2.单片机最小系统教学实验模块 3.动态数码管显示模块 三、实验要求 1. 使8位数码管动态显示“0 1 2 3 4 5 6 7”字样 2. 使8位数码管动态显示时间2013年4月18日,即“2 0 1 3 04 18”字样 3. 用Proteus仿真软件画出实验电路图,将在uVision3 IDE软件中生成*.hex 下载到Proteus仿真电路图中的单片机芯片中,观察实验现象。 四、实验原理 1. 8段数码管显示原理 数码管中的每一段相当于一个发光二极管,8段数码管则具有8个发光二极管。对于“共阳极”的数码管,内部每个发光二极管的阳极被接在一起,成为该各段的公共选通线;发光二极管的阴极则成为段选线。对于“共阴极”数码管,则正 好相反,内部发光二极管的阴极接在一起,阳极成为段选 线。这两种数码管的驱动方式是不同的。当需要点亮“共 阳极”数码管的一段时,公共段需接高电平(即写逻辑1)、 该段的段选线接低电平(即写逻辑0),从而该段被点亮。 当需要点亮“共阴极”数码管的一段时,公共段需接低电平 (即写逻辑0)、该段的段选线接高电平(即写逻辑1), 该段被点亮。 数码管的段位顺序如右图所示: 一般来说在一个字节中按照dpgfedcba的顺序放置字型码,比如在一个“共阴极”数码管上要显示“1”,则b、c段需被点亮,因此在段选线中写入06H。例如使用P0口接段选线,则使用下面的语句即可点亮数码管: P0=0x06; 对应规则: dp----->D7 g----->D6 f----->D5 e----->D4

4位七段数码管循环显示

课程报告 课程新型单片机实践题目 4位7段数码管二级学院 班级 姓名 学号 指导教师 设计时间

常州工学院《新型单片机》设计任务书学院:专业:班级:

绪论 当今世界,电子技术迅猛发展,点阵式显示器件作为现代信息显示的重要媒体,在金融证券、体育、机场、交通、商业、广告宣传、邮电电信、指挥调度、国防军事等许多领域中得到了广泛应用。因此点阵式显示器件的研制、生产也的到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。目前,点阵式显示器件具体包括LED显示模块和LCD显示模块等。现在发展的LCD比较先进,LCD的优点较为明显,他体积小,容易控制,功能强,价格适宜,能够适应显示器的发展方向,因而在通信、家电、大屏幕投影等领域得到了越来越广泛的应用;随着社会经济的迅猛发展,工业生产逐渐实现了自动化,其中,设备的工作状态和生产过程状态的显示与监控起到了非常重要的作用,对于那些需要显示的信息量不是很大,分辨率不是很高,又需要制造成本相对比较低的场合,使用大、小屏幕LED点阵显示器是比较经济适用的,他可以显示字符、数字、汉字和简单图形,可以根据需要使用不同字号、字型,显示亮度较高,并且对环境条件要求比较低。LED显示又可以分为单色显示和双色显示,可以按照需要的大小、形状和颜色进行组合,并用单片机控制实现各种文字或图形的变化,达到宣传和提示的目的。据不完全统计,1991年,全国LED显示屏的产值还不到亿元人民币,而在1993年,仅蓝通公司一家企业的显示屏产值即达1亿多人民币。 由于LED电子显示屏具有所显内容信息量大,外形美观大方,操作使用方便灵活.适用于火车,汽车站,码头,金融证券市场,文化中心,信息中心体育设施等公共场所.该项目广泛涉及了计算机及电子技术中的电源技术,单片机技术,数据通讯技术,显示技术,存储技术,系统软件技术,接口及驱动等技术.我国经济发展迅猛,对信息传播有越来越高的要求.可以相信,LED电子显示屏以其色彩鲜亮夺目,大的显示信息量,寿命长,耗电量小,重量轻,空间尺寸小,稳定性高,易于操作,安装和维护等特点,将在社会经济发展中扮演越来越重要的角色。

数码管的驱动原理

数码管的驱动原理 所谓共阳共阴,是针对数码管的公共脚而言的。一个1位典型的数码管,一般有10个脚,8个段码(7段加1个小数点),剩下两个脚接在一起。各个段码实际上是一个发光二极管,既然是发光二极管,就有正负极。所谓共阳,也就是说公共脚是正极(阳极),所有的段码实际上是负极,当某一个或某几个段码位接低电平,公共脚接高电平时,对应的段码位就能点亮,进而组合形成我们看到的数字或字母。共阴刚好相反,也就是公共脚是负极(阴极),段码位是阳极,当公共脚接地,段码位接高电平时,对应段码位点亮。 1位数码管是这样,更多位的数码管也基本跟这个原理类似。 共阴共阳与电路接线密切相关,决定了驱动电路的接法,因此在电路设计前要考虑好数码管的类型,否则就不能实现显示的效果了。 驱动共阴数码管一般用PNP,共阳的用NPN 图一低电平有效,图二高电平有效

现在让我们用实验板上的两个数码管来做一个循环显示00~99数字的实验,先来完成必要的硬件部分, 数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同,并且相应的0~9的显示代码也正好相反。 首先我们来介绍两位共阳数码管的单片机驱动方法,电路如下图: 网友可以看到:P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过IN4148二极管和驱动三极管给数码管相应的位供电,这时只要P0口送出数字的显示代码,数码管就能正常显示数字。 因为要显示两位不同的数字,所以必须用动态扫描的方法来实现,就是先个位显示1 毫秒,再十位显示1毫秒,不断循环,这样只要扫描时间小于1/50秒,就会因为人眼的视觉残留效应,看到两位不同的数字稳定显示。 下面我们再介绍一种共阴数码管的单片机驱动方法,电路如下图: 网友可以看到:+5V通过1K的排阻直接给数码管的8个段位供电,P2.6和P2.7端口分别控制数码管的十位和个位的供电,当相应的端口变成低电平时,相应的位可以吸入电流。单片机的P0口输出的数据相当于将数码管不要显示的数字段对地短路,这样数码管就会显示需要的数字。

实验3 数码管扫描显示电路(1)

实验三数码管扫描显示电路 一、实验目的 1、掌握数码管动态扫描显示数据的原理; 2、掌握利用EDA软件和VHDL语言设计较复杂时序逻辑电路的方法; 二、实验原理 常用的显示器件有发光二极管、数码管、液晶显示器等,其中最常用的是数码管。数码管显示数据有两种方式:静态显示方式和动态(扫描)显示方式。 所谓静态显示方式,就是将被显示的数据的BCD码过各自的4—7/8段译显示译码器译码后,分别接到显示译码器的显示驱动端a~g/p,而公共端COM则根据数据管的类型(共阴极/共阳极)分别接到GND/VCC。静态显示的优点是控制简单,有几个数码管就用几个译码器,不必修改程序,十分简便。但当系统所需的数码管较多时,这种方法既耗资源,又占用较多的I/O口,N个数码管需要占用7N个引脚(若需要显示小数点,则是8N个引脚)。因此,该接法适合于系统中数码管数量不多的应用场合。 所谓动态显示方式,就是采用分时的方法,使各个数码管逐个轮流受控显示。在轮流点亮扫描过程中,每个数码管的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各个数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。在扫描显示方式中,所有数码管的8个笔划段a-h同名端连在一起,所有数码管接收到相同的字形码,但究竟是那个显示器亮,取决于COM端。扫描显示的优点在于消耗的系统资源少,占用的I/O口少,N个数码管只需(7+N)个引脚((若需要显示小数点,则是8+N个引脚)。其缺点是控制起来不如静态显示方便。 下图3.1 给出了8个数码管动态扫描显示的接口电路图。如果显示器采用共阴极数码管时,则 图5.1 数码管动态扫描显示接口电路图

LED数码管动态扫描显示实验

单片机实验五LED数码管动态扫描显示实验 一.实验目的 掌握LED数码管动态扫描显示的原理和编程实现方法。 二.实验原理 LED数码管动态扫描显示即各数码管循环轮流显示,当循环显示频率较高时,利用人眼的暂留特性,看不出闪烁现象,这种显示需要一个接口完成字形码的输出(段码),另一接口完成各数码管的点亮(位选)。 三.实验内容及要求 1.对于显示的字形码数据此实验采用查表的方法来完成。 2.此实验要求是在八个数码管中显示学生的班级号(如11040601)或日历年月日(如2014 05 20)。 四.实验电路 图中,SEG1为八个封装在一起的共阴数码管,RP1为排阻,其余同实验三,导线以总线形式完成。 五.实验步骤 1.在KEIL4中编写、调试、编译程序。 2.在PRTUSE中设计电路,加载HEX文件运行。 3.(1)将单片机实验箱通过USB口与PC机连接; (2)用杜邦线(8根线)将实验箱上的JP8与J16连接(去掉原J15和J16之间的短路跳线帽),JP10与J12连接。 (3)打开实验箱电源开关POWER;

(4)打开STC自动下载器,将步骤1中创建的*.HEX文件下载到单片机,完成后观测LED数码管显示内容。 六.实验参考程序 (请同学自己编写实验程序) 七.思考题 1.某同学在实验时数码管闪烁,可能的原因是什么? 2.为节省I/O口,可采用7段译码器(比如CD4511,74LS 等)和3-8译码器74LS138,如何连接电路并编程。 LDE数码管动态试验 ORG 0000H AJMP MAIN ORG 0100H MAIN: SP,#60H MOV 30H,#02H MOV 31H,#00H MOV 32H,#01H MOV 33H,#04H MOV 34H,#00H MOV 35H,#05H MOV 36H,#02H MOV 37H,#00H START:MOV R0,#30H MOV R3,#0FEH NEXT: MOV P1,#0FFH MOV A,@R0 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P0,A MOV P1,R3 LCALL DLY2MS INC R0 JNB P1.7,STRAT MOV A,R3 RL A MOV R3,A AJMP NEXT DLY2MS:MOV R6,#2 DL2: MOV R7,#250 DL1:NOP

LS47连接七段数码管设计

数字逻辑与数字系统 课程设计报告书 课题:数码管译码控制器 指导老师: 姓名: 学号: 班级: 完成日期: 2012年4月24日

目录 一、课程设计目的:········错误!未定义书签。 二、课程设计要求·········错误!未定义书签。 三、方案设计与论证········错误!未定义书签。 四、所用元器件属性功能介绍····错误!未定义书签。 五、设计方案总图·········错误!未定义书签。 六、所用元器件的编号列表·····错误!未定义书签。 七、设计结果以及体会·······错误!未定义书签。 八、参考文献···········错误!未定义书签。

一、课程设计目的: 1、了解与课程有关的电子电路以及元器件工程技术规范,能按照课程设计书的技术要求,编写设计说明,能正确反映设计和实验成果,能正确绘制电路图。 2、掌握74LS47译码器的逻辑功能,掌握用74LS47驱动5161BS的连接方法。 二、课程设计要求 任务: 本课程设计主要利用一个共阳极的七段数码管与74LS47芯片构 成一个完整的数码管显示电路 要求: 要求能在数码管上一次显示0~9十个数字。 三、方案设计与论证 1、74ls47七段译码显示电路设计 七段译码器是用74LS47驱动5161BS,用译码器将BCD代码译成数码管所需要的驱动信号,以便使数码管用十进制数显示出BCD代码所表示的值。

四、所用元器件属性功能介绍 1、74LS47译码器功能 74LS47是BCD-7段数码管译码器/驱动器,74LS47的功能用于将BCD码转化成数码块中的数字,通过它来进行解码,可以直接把数字转换为数码管的数字,从而简化了程序,节约了单片机的IO开销。因此是一个非常好的芯片!但是由于目前从节约成本的角度考虑,此类芯片已经少用,大部分情况下都是用动态扫描数码管的形式来实现数码管显示。

VHDL数码管扫描显示驱动电路

静态显示 library ieee; use ieee.std_logic_1164.all; entity bcd_seg is port( a,b,c,d:in std_logic; seg:out std_logic_vector(7 downto 0) ); end entity bcd_seg; architecture one of bcd_seg is signal bcd:std_logic_vector(3 downto 0); begin bcd<=a&b&c&d; process(bcd) begin case bcd is when "0000"=>seg<="00111111"; when "0001"=>seg<="00000110"; when "0010"=>seg<="01011011"; when "0011"=>seg<="01001111"; when "0100"=>seg<="01100110"; when "0101"=>seg<="01101101"; when "0110"=>seg<="01111101"; when "0111"=>seg<="00000111"; when "1000"=>seg<="01111111"; when "1001"=>seg<="01101111"; when others=>null; end case; end process; end architecture one; 动态显示 library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity bcd_seg is port( clk:in std_logic; a,b,c,d:in std_logic; com:out std_logic_vector(2 downto 0); seg:out std_logic_vector(7 downto 0) ); end entity bcd_seg; architecture one of bcd_seg is signal cnt:std_logic_vector(2 downto 0);

EDA课程设计八位数码管扫描显示电路的设计资料

《EDA技术及应用》 课程设计报告 题目:八位数码管扫描显示电路的设计院(系):机电与自动化学院 专业班级:电气自动化技术1001 学生姓名: 学号: 20102822018 指导教师:何为 2012年6月10日至2012年6月23日

《EDA技术及应用》课程设计任务书 一、设计题目 八位数码管扫描显示电路的设计 二、设计主要内容 本课题要求掌握使用Quartus II设计数字系统的设计思路和设计方法。学习VHDL基本逻辑电路的综合设计应用。掌握VHDL语言的语法规范,掌握时序电路描述方法。掌握多个数码管动态扫描显示的原理及设计方法。 设计一个八位数码管共阴极动态扫描显示控制电路,要求显示学生自己的学号。利用实验室设备完成系统设计并进行运行调试。 1、具体设计内容如下: (1)静止显示学号; (2)动态循环显示学号。 2、提供设计报告,报告要求包括以下内容:设计思路、设计输入文件、设计与调试过程、模拟仿真结果和设计结论。 三、原始资料 1、LED显示模块原理 LED有段码和位码之分,所谓段码就是让LED显示出“8.”的八位数据,一般情况下要通过一个译码电路,将输入的4位2进制数转换为与LED显示对应的8位段码。位码也就是LED的显示使能端,对于共阳级的LED而言,高电平使能。要让8个LED同时工作,显示数据,就是要不停的循环扫描每一个LED,并在使能每一个LED的同时,输入所需显示的数据对应的8位段码。虽然8个LED是依次显示,但是受视觉分辨率的影响,看到的现象是8个LED同时工作。 多个数码管动态扫描显示,是将所有数码管的相同段并联在一起,通过选通信号分时控制各个数码管的公共端,循环点亮多个数码管,并利用人眼的视觉暂留现象,只要扫描的频率大于50Hz,将看不到闪烁现象。 2、系统结构图信号名与芯片引脚对照表

LED数码管结构及工作原理

L E D数码管结构及工作原理-标准化文件发布号:(9556-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

LED数码管的结构及工作原理 沈红卫 LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等....,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。LED数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。下面将介绍常用LED数码管内部引脚图。 图1 这是一个7段两位带小数点 10引脚的LED数码管 图2 引脚定义 每一笔划都是对应一个字母表示 DP是小数点. 数码管分为共阳极的LED数码管、共阴极的LED数码管两种。下图例举的是共阳极的LED数码管,共阳就是7段的显示字码共用一个电源的正。led 数码管原理图示意:

图3 引脚示意图 从上图可以看出,要是数码管显示数字,有两个条件:1、是要在VT端(3/8脚)加正电源;2、要使(a,b,c,d,e,f,g,dp)端接低电平或“0”电平。这样才能显示的。 共阳极LED数码管的内部结构原理图图4: 图4 共阳极LED数码管的内部结构原理图共阴极LED数码管的内部结构原理图: 图5 共阴极LED数码管的内部结构原理图

相关文档
最新文档