六位数码管动态扫描显示电路设计与实现

六位数码管动态扫描显示电路设计与实现
六位数码管动态扫描显示电路设计与实现

可编程逻辑器件技术项目设计报告

课题名称:六位数码管动态扫描显示电路设计与实现班级:13电子(2)班

姓名:许宋如

指导老师:龚兰芳

一、设计要求

1)用VHDL语言设计一个可以实现以下功能的程序:六个数码管可以同时工作,显示不同的数字。

2)编写完程序之后并在开发系统上进行硬件测试。

二、任务分析

串行连接,即每个数码管对应的引脚都要连接在一起(如每个数码管的a引脚都要接到一起,然后再接到CPLD/FPGA上的一个引脚上),通过控制公共端(图5中的K端)控制相对应的数码管亮、灭(共阴极数码管的公共端为高电平时,LED不亮;共阳极的公共端为低电平时,LED不亮)。

串行法的优点在于消耗的系统资源少,占用的I/O口少,N个数码管只需要(7+N)个引脚(如果需要小数点,则是(8+N)个引脚)。其缺点是控制起来不如并行法容易。

三、设计原理

四、硬件要求

主芯片EPM240T100C5,六个共阴极七段数码管。

五、源程序

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity dt is

port(

clock:in std_logic;

numa,numb: in integer range 0 to 9;

en:out std_logic_vector(0 to 5);

display:out std_logic_vector(0 to 6)--(a~g) );

end;

architecture decoder of dt is

signal counter:integer range 0 to 9;

signal clk_1:std_logic;

signal numc,numd,nume,numf:integer range 0 to 9; begin

numc<=0;

numd<=0;

nume<=0;

numf<=0;

process(clock)

variable cnt1: integer range 0 to 1000;

variable cnt2: integer range 0 to 50;

-------------------------------------------------------

-----------1000Hz

begin

if rising_edge(clock) then

if cnt1=1000 then

cnt1:=0;

If cnt2=50 then

cnt2:=0;

clk_1<=not clk_1;

else

cnt2:=cnt2+1;

end if;

else

cnt1:=cnt1+1;

end if;

end if;

end process;

-------------------------------------------------------

----------------

process(clk_1)

variable num:integer range 0 to 9; begin

if rising_edge(clk_1) then

if counter=5 then

counter<=0;

else

counter<=counter+1;

end if;

case counter is

when 0=>en<="011111";

num:=numa;

when 1=>en<="101111";

num:=numb;

when 2=>en<="110111";

num:=numc;

when 3=>en<="111011";

num:=numd;

when 4=>en<="111101";

num:=nume;

when 5=>en<="111110";

num:=numf;

when others=>en<="000000";

num:=0;

end case;

case num is

when 0=>display<="1111110";

when 1=>display<="0110000";

when 2=>display<="1101101";

when 3=>display<="1111001";

when 4=>display<="0110011";

when 5=>display<="1011011";

when 6=>display<="0011111";

when 7=>display<="1110000";

when 8=>display<="1111111";

when 9=>display<="1111011";

when others=>display<="0000000"; end case;

end if;

end process;

end;

六、接线图

七、现象描述

以上程序在硬件上的现象是从左往右数,前四个显示字形为0,后两个数码管由八个拨码开关控制显示字形。拨码开关打到相应位置的二进制数,对应在七段数码管上显示相应字形,形如七段数码管显示译码器的硬件现象测试。

八、总结

通过这次动态扫描设计实验,明显加强了对译码器程序的编写。对比七段数码管显示译码器的实验,更加熟练的运用各程序模块。对于本次实验,个人觉得也还有可以改进,结合十进制的程序,改动本程序,利用分频等让七段数码管按照一定时间改变

字形。再有也可以让六个数码管做成电子钟。

数字时钟显示电路图

数字时钟显示电路图 发布: | 作者: | 来源: liuxianping | 查看:3663次 | 用户关注: 数字时钟以时、分、秒显示时刻,共用六个数码管,本例采用共阳极数码管,用三极管控制电源的通断。工作原理:6个数码管的字型段输入端(a、b、c、d、e、f,g)全部并接到译码器相应的输出端。电源控制开关管分别接到3~6译码器的六个输出端。时钟六个计数器输出端均采用四位,分别为xl【、xt£、 m x?X2n x2z、x2h x2‘,?,x 、x x 、x 相应的每一位都接到4个6选1的选择器上,选择器输出共4位接到 数字时钟以时、分、秒显示时刻,共用六个数码管,本例采用共阳极数码管,用三极管控制电源的通断。 工作原理:6个数码管的字型段输入端(a、b、c、d、e、f,g)全部并接到译码器相应的输出端。 电源控制开关管分别接到3~6译码器的六个输出端。时钟六个计数器输出端均采用四位,分 别为xl【、xt£、 m x? X2n x2z、x2h x2‘,?,x 、x x 、x 相应的每一位都接到 4个6选1的选择器上,选择器输出共4位接到译码器的输入端(y 、y 、y 、Y )上。数码管及与之对应要显示的计数器,由Q]、、的编码(BCD码)进行循环选择例如,当Q 、 1

、均为?0 时,则3~6译码器的输出端1为高电平,第一个数码管加上电源,与此同 时,六选一选择器对应的输出分别为Y y— y Xs—x X —x 。这时译码器的输 出a,b,??,g虽然接到所有数码管上,但由于只有第一个数码管加上电源,故只有该管点 亮,显示第一个计数器的状态(x 、x 。、xX )。同理,当Q 、Q Q 为001”时,第二 个数码管点亮,显示第二个计数器的状态。依此类推,到第六个数码管断电后,接着第一个又开始点亮。如此循环显示,循环周期为6ms,给人的感觉,就相当所有数码管都一直在同时 加电,实际上每次只有一个,消耗的功率只有静态显示的六分之一。由于数码管电流很大,一 般小型管各段全亮时,大约要150mA~200mA 采用静电显示,此例中就要大于1A的 电流。这对长期工作的时钟很不经济,对于大型数码管会更加严重。此外,采用动态显示,数 码管的寿命与静态相比也相应延长Ⅳ 倍(本例为6倍)。

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

用6位数码管显示时间

#include #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; sbit key1=P3^4; sbit key2=P3^5; sbit key3=P3^6; sbit key4=P3^7; sbit fm=P2^3; uchar num,num1,num2,num3,temp; void init(); void keyscan(); //void jianpan(); void delay(uint a) { uint x,z; for(x=a;x>0;x--) for(z=10;z>0;z--); } uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71, }; unsigned char code table1[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd, 0x87,0xff,0xef}; void display1(uchar numdi) //秒钟显示函数 { uchar fen,miao; fen=numdi/10; miao=numdi%10; dula=1; P0=table[fen]; dula=0; P0=0xff; wela=1; P0=0xfb; wela=0; delay(20); dula=1;

P0=table1[miao]; dula=0; P0=0xff; wela=1; P0=0xf7; wela=0; delay(20); } void display(uchar numdis)//分钟显示函数{ uchar shi,ge; shi=numdis/10; ge=numdis%10; dula=1; P0=table[shi]; dula=0; P0=0xff; wela=1; P0=0xef; wela=0; delay(20); dula=1; P0=table[ge]; dula=0; P0=0xff; wela=1; P0=0xdf; wela=0; delay(20); } void display2(uchar numd2)//小时显示函数{ uchar xshi,xfen; xshi=numd2/10; xfen=numd2%10; dula=1; P0=table[xshi]; dula=0; P0=0xff; wela=1; P0=0xfe;

基于DS1302的数码管显示数字钟

单片机原理课程设计 课题名称:基于DS1302的数码管显示数字钟 专业班级:电子信息工程 学生学号: 学生姓名: 指导教师: 设计时间:2010年6月21日--2010年6月25日

目录 摘要........................................................................................................................................................................ 1 设计任务和要求............................................................................................................................................ 2 方案论证........................................................................................................................................................ 3 系统硬件设计................................................................................................................................................ 3.1 系统总原理图 ................................................................................................................................ 3.2 元器件清单...................................................................................................................................... 3.3 PCB板图....................................................................................................................................... 3.4 Proteus仿真图 ............................................................................................................................... 3.5 分电路图及原理说明................................................................................................................... 3.5.1 主控部分(单片机MCS-51).............................................................................. 3.5.2 计时部分(实时时钟芯片DS1302).................................................................. 3.5.3 显示部分(共阳极数码管)................................................................................ 3.5.4 调时部分(按键)................................................................................................ 4系统软件设计................................................................................................................................................ 4.1 程序流程图..................................................................................................................................... 4.2 程序源代码........................................................................................................................................ 5心得体会........................................................................................................................................................ 6参考文献........................................................................................................................................................ 7结束语............................................................................................................................................................

数字显示电路设计说明

物理与电子工程学院 《数字电路》课程设计报告书 设计题目:数字显示电路设计 专业:自动化 班级: 10级1班 学生:想 学号: 2110341106 指导教师:胡林 年月日

物理与电子工程学院课程设计任务书 专业:自动化班级: 10级2班

摘要 采用动态扫描的方式实现设计要求。动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此在同一时刻如果各位数码管的位选线都处于选通状态的话,6位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。 MAX+PLUS II 是一个完全集成化的可编程逻辑环境,能满足用户各种各样的设计需要。它支持Altera公司不同结构的器件,可在多平台上运行。MAX+PLUS II 具有突出的灵活性和高效性,为设计者提供了多种可自由选择的设计方法和工具。 丰富的图形界面,可随时访问的在线帮助文档,使用户能够快速轻松地掌握和使用MAX+PLUSII软件。 MAX+PLUSII 具有的强大功能极大地减轻了设计者的负担,使设计者可以快速完成所需的设计,使用该软件,用户从开始设计逻辑电路到完成器件下载编程一般只需要数小时时间,其中设计的编译时间往往仅需数分钟。用于可在一个工作日完成实现设计项目的多次修改,直至最终设计定型。 MAX+PLUS II 开发系统众多突出的特点,使它深受广大用户的青睐。 关键词:数字显示电路;动态扫描;段码

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。如此循环。

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 -

51单片机数码管时钟电路的设计_AT89C51

广东石油化工学院 《51单片机原理与实践》课程设计报告 学院计算机与电子信息学院 专业 班级 学号 姓名 指导教师 课程成绩 完成日期 2010年12月27日

数码管时钟电路的设计 一、设计目的: 通过这次课程设计掌握单片机系统的基本设计步骤及设计思路,掌握汇编语言的用法及各种指令的含义,比较熟练的运用指令进行单片机系统的设计的,熟悉用KEIL软件进行汇编语言的汇编,以及把代码写入实验板中,观测代码结合实际的运行结果后进行调整,体会到编程的分析问题、确定算法、画程序流程图、编写程序、程序功能模块化的优点的各各步骤。 二、设计要求: LED数码管时钟电路采用24h计时方式,时、分、秒用六位数码管显示。该电路采用AT89C2051单片机,使用3V电池供电,只使用一个按键开关即可进入调时、省电(不显示LED数码管)和正常显示三种状态。 三、设计实验内容: 1. 硬件的设计 其采用AT89C51单片机应用设计,LED显示采用动态扫描方式实现,P0口输出段码数据,P2口输出位码数据,P1.1、P1.2接按钮开关。为了提供LED数码管的驱动电流,采用6MHz晶振。 2. 系统总体分析 系统主要包含四大模块:显示模块、时间计时模块、模式切换模块和模式设置模块。 显示模块:主要由主循环负责。内存中开辟了一段8字节的内存空间,

用作数据显示的字符缓冲区。主循环不断将缓冲区中的字符呈现至数码管。 ● 时间计时模块:电子钟的核心模块,记录了时间的时、分、秒信息。 ● 模式切换模块(MODE ):切换电子钟的设置模式,包括时设置、分设置、秒设置、闹铃开关设置、闹铃时设置和闹铃分设置。相关数据被设置时将闪烁显示。 ● 模式设置模块(CONFIG ):通过判断设置模式(MODE ),执行相应的设置。如时、分、秒的增1以及闹铃开关的变换。 另外,主循环还负责扫描键盘,检测相应键是否被按下,若MODE 键被按下则在特定单元中登记该功能,并启动定时器1,然后返回继续执行显示功能。在定时器1中断时,被登记的功能正式执行。期间用时约10ms ,用以消除机械抖动。 主循环流程图大致如下: 图(一)主循环流程图 定时器1中断服务程序流程图如下: 开始 键被按下 登记相应功能 数码管显示 是 否

基于单片机的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

用数码管显示实时日历时钟的应用设计

(用数码管显示实时日历时钟的应用设计)

摘要 本课题通过MCS-51单片机来设计电子时钟,采用汇编语言进行编程,可以实现以下一些功能:小时,分,秒和年,月,日的显示。本次设计的电子时钟系统由时钟电路,LED显示电路三部分组成。51单片机通过软件编程,在LED数码管上实现小时,分,秒和年,月,日的显示;利用时钟芯片DS1302来实现计时。本文详细介绍了DS1302 芯片的基本工作原理及其软件设计过程,运用PROTEUS软件进行电路连接和仿真,同时还介绍了74LS164,通过它来实现I|O口的扩展。 关键词:时钟芯片,仿真软件,74LS164 目录 前言 0.1设计思路 (8) 0.2研究意义 (8)

一、时钟芯片 1.1 了解时钟芯片……………………………………………….8-9 1.2 掌握时钟芯片的工作原理………………………………….10-11二、74LS164 2.1 了解74LS164........................................................11-12 2.2 掌握的74LS164工作原理. (12) 三、数码管 3.1 熟悉常用的LED数码管...........................................12-13 3.2 了解动态显示与静态显示. (13) 四、程序设计 4.0 程序流程图 (14) 4.1 DS1392的驱动.......................................................15-16 4.2 PROTUES实现电路连接. (17) 4.3 数码管的显示:小时;分;秒 (18) 4.4 数码管显示:年;月;日 (19) 五、总结…………………………………………………………………..20-21 六、附页程序………………………………………………………………22-31前言

数字显示电路设计讲课教案

数字显示电路设计

物理与电子工程学院 《数字电路》课程设计报告书 设计题目:数字显示电路设计 专业:自动化 班级: 10级1班 学生姓名:李想 学号: 2110341106 指导教师:胡林 年月日

物理与电子工程学院课程设计任务书 专业:自动化班级: 10级2班

摘要 采用动态扫描的方式实现设计要求。动态扫描显示需要由两组信号来控制:一组是字段输出口输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此在同一时刻如果各位数码管的位选线都处于选通状态的话,6位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。同时,段线上输出相应位要显示字符的字型码。这样在同一时刻,只有选通的那一位显示出字符,而其它各位则是熄灭的,如此循环下去,就可以使各位数码管显示出将要显示的字符。 MAX+PLUS II 是一个完全集成化的可编程逻辑环境,能满足用户各种各样的设计需要。它支持Altera公司不同结构的器件,可在多平台上运行。MAX+PLUS II 具有突出的灵活性和高效性,为设计者提供了多种可自由选择的设计方法和工具。 丰富的图形界面,可随时访问的在线帮助文档,使用户能够快速轻松地掌握和使用MAX+PLUSII软件。 MAX+PLUSII 具有的强大功能极大地减轻了设计者的负担,使设计者可以快速完成所需的设计,使用该软件,用户从开始设计逻辑电路到完成器件下载编程一般只需要数小时时间,其中设计的编译时间往往仅需数分钟。用于可在一个工作日内完成实现设计项目的多次修改,直至最终设计定型。MAX+PLUS II 开发系统众多突出的特点,使它深受广大用户的青睐。 关键词:数字显示电路;动态扫描;段码

实验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

数字日历电路的设计

课程设计报告 课程名称:数字日历电路的设计 专业/班级:通信工程 姓名:王平 学号:0930******** 指导教师:栾华东

目的与要求 (1)设计基准脉冲电路产生的信号; (2)能进行年、月、日的计时以及独立的时间显示电路; (3)能进行星期的显示; (4)快速校时; (5)充分结合和利用所学的内容来完成; (6)选作内容 ○1可以进行某年某月某日的备忘预设置,到达备忘日期后,该日期可以以4Hz的频率闪动; ○2可以进行某年某月某日的备忘预设置,到达备忘日期后,报警灯闪动。 原理及方案 (1)多谐振荡器电路:这里利用了555定时器和RC组成的多谐振荡器,产生1kHz的信号。 (2)分频器电路:利用三片74LS90集成芯片构成分频器将1kHz信号分频得到1Hz的秒脉冲信号,同时再利用一片74LS90芯片得到2Hz的校时信号。 (3)校时电路:利用一个开关和或门逻辑元器件组合而成。可以分别对时间和年、月、日等进行校时。 (4)译码显示器:采用了共阴极的七段数字显示器,和译码器74LS48集成芯片组合成。 (5)时、分、秒计数电路:分别用两片74LS90集成芯片组成24进制、60进制、60进制作为时间的计数,均从0开始计数。

(6)星期计数电路:由74LS161构成的,从1开始计数到6,然后跳到8(星期日),完成一个星期的计数。 (7)年、月、日计数电路:年份的计数用4片74LS90构成104进制计数,月份由两片74LS90构成12进制并从1开始计数,而日也用74ls90构成经过数据选择器74LS151根据月份进行大月31进制、小月30进制、二月29进制的计数。 (8)备忘录预设置电路:由计数器、译码器和显示器构成可以对某日某月的设置。 (9)报警灯闪动系统:通过比较器74LS85对预设置和当前日期比较,相等时输出信号使灯闪动。 原理方框图如下:

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、系统结构图信号名与芯片引脚对照表

8位数码管显示时钟

本人依据AT89C51和8位数码管为素材,以最少的见实现最多的功能! 本程序开机流动显示学号可实现时钟,日历,定时闹钟,秒表等功能! C程序: #include unsigned char led[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40,0x00}; //用一维数组定义-9、横杠、全灭 unsigned char num[12]={2,0,0,9,3,5,0,7,0,1,2,0} ; unsigned char a[8]; unsigned char second=0,minute=0,hour=0,year=0,mon=1,day=1,day1,hsec,sec_m,min_m,N,temp1; unsigned char minute1=0,hour1=0; unsigned char b[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; //扫描 unsigned char k=0; unsigned int temp; // 记录毫秒为秒的变量 unsigned char M,S_flag; //M是模式,更新时间的种模式加上正常模式 S_flag闪烁标志 sbit K0=P3^7; //K0是闹钟起停标志位 sbit K1=P3^0; sbit K2=P3^1; sbit K3=P3^2; sbit BEEP=P3^3; void delay(unsigned n) //0.2毫秒 { int x,y; for(x=0;x

相关文档
最新文档