用汇编语言实现八段数码管显示
一、实验要求
利用实验仪提供的显示电路,动态显示一行数据.
二、实验目的
1. 了解数码管动态显示的原理。
2. 了解用总线方式控制数码管显示
三、实验线路及连线
四、实验说明
1.本实验仪提供了6 位8段码LED 显示电路,只要按地址输出相应数据,就可以
实现对显示器的控制。显示共有6位,用动态方式显示。8位段码、6位位码是由两片74LS374输出。位码经MC1413或ULN2003倒相驱动后,选择相应显示位。
本实验仪中 8位段码输出地址为0X004H ,位码输出地址为 0X002H 。此处X 是由KEY/LED CS 决定,参见地址译码。做键盘和LED 实验时,需将KEY/LED CS 接到相应的地址译码上。以便用相应的地址来访问。例如,将KEY/LED CS 接到CS0上,则段码地址为08004H ,位码地址为08002H 。
位选通信号 (0x002H)
段码输出 (0x004H)
数据总线
七段数码管的字型代码表如下表:
五、程序框图
程序代码
OUTBIT equ 08002h ; 位控制口
OUTSEG equ 08004h ; 段控制口
LEDBuf equ 60h ; 显示缓冲
Num equ 70h ; 显示的数据
DelayT equ 75h ;
ljmp Start
LEDMAP: ; 八段管显示码
db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h
Delay: ;
mov r7, #0
DelayLoop:
djnz r7, DelayLoop
djnz r6, DelayLoop
ret
DisplayLED:
mov r0, #LEDBuf
mov r1, #6 ;
mov r2, #00100000b ;
Loop:
mov dptr, #OUTBIT
mov a, #0
movx @dptr, a ;
mov a, @r0
mov dptr, #OUTSEG
movx @dptr,a
mov dptr, #OUTBIT
mov a, r2
movx @dptr, a ;
mov r6, #01
call Delay
mov a, r2 ;
rr a
mov r2, a
inc r0
djnz r1, Loop
mov dptr, #OUTBIT
mov a, #0
movx @dptr, a ;
ret
Start:
mov sp, #40h
mov Num, #0
MLoop:
inc Num
mov a, Num
mov b, a
mov r0, #LEDBuf
FillBuf:
mov a, b
anl a, #0fh
mov dptr, #LEDMap
movc a, @a+dptr ;
mov @r0,a ;
inc r0
inc b
cjne r0, #LEDBuf+6, FillBuf
mov DelayT,#0
DispAgain:
call DisplayLED ;
djnz DelayT,DispAgain ljmp MLoop
end
实验十九数码管显示实验 一、实验目的 1、了解数码管的显示原理; 2、掌握数码管显示的编程方法。 二、实验内容 1、编写数码管显示程序,循环显示0-F字符 三、实验设备 1、硬件: JX44B0实验板; PC机; JTAG仿真器; 2、软件: PC机操作系统(WINDOWS 2000); ARM Developer Suite v1.2; Multi-ICE V2.2.5(Build1319); 四、基础知识 1、掌握在ADS集成开发环境中编写和调试程序的基本过程。 2、了解ARM 应用程序的框架结构; 3、了解数码管的显示原理; 五、实验说明 1、LED显示原理 发光二极管数码显示器简称LED显示器。LED显示器具有耗电低、成本低、配置简单灵活、安装方便、耐震动、寿命长等优点,目前广泛应用于各类电子设备之中。 7段LED由7个发光二极管按“日”字排列。所有发光二极管的阳极连接在一起称共阳极接法,阴极连接在一起称为共阴极接法。一般共阴极可以不需要外接电阻。 其中各二极管的排列如上图在共阳极接法中,如果显示数字“5”,需要在a、c、d、f、g端加上高电压,其它加低电压。这样如果按照dp、g、fe、d、c、b、a的顺序排列的话对应的码段是:6DH。其它的字符同理可以得到。
2、数码管显示驱动 数码管的显示一般有动态显示和静态显示两大类,另外按照驱动方式又分串行驱动和并行驱动两种方式。串行驱动主要是提供串-并转换,减少控制线数量;并行驱动对每一个段提供单独的驱动,电路相对简单。这方面参看数字电路相关内容。 下面主要介绍静态显示和动态显示: 1)静态显示: LED数码管采用静态接口时,共阴极或共阳极节点连接在一起地或者接高电平。每个显示位的段选线与一个8位并行口线相连,只要在显示位上的段选位保持段码电平不变,则该位就能保持相应的显示字符。这里的8位并行口可以直接采用并行I/O口,也可以采用串行驱动。相应的电路如下: 很明显采用静态显示方式要求有较多的控制端(并行)或较复杂的电路(串行)。但是在设计中对器件的要求低。
LED八段数码管规格书 型号:八段全彩数码管 【工作电压】:12V/24V(DC,AC),AC110V/220V 【每米功耗】:6W-15W 【工作温度】:-40℃~55℃ 【防护等级】:IP65 【像素密度】:8段
【内控特效】:跳变跑马流水追逐堆砌全彩等多种变化 【外形尺寸】:D50mm*H37*L1000mm 特点: 1、高品质PC灯管,抗老化,混色均匀,透光性好;耐寒耐高温;在低温环境下可以良好的工作。 2、管材颜色有透明,乳白色,D形(配有堵塞、支架); 3、每米规格可装144粒LED灯珠; 4、根据同心圆理论设计,LED发光经圆形灯的多次折射,视角可达250度,可视性强; 5、LED为台湾晶元固体冷光源,环氧树脂封装,无灯丝发热;在高低温环境可以正常工作;额定电压,恒定电流供电,确保LED长期工作,衰减小; 6、高亮度LED光源,色彩鲜丽,色泽纯正无光斑。有红、绿、蓝、黄、白色、双色、七彩渐变、加以控制可实现多色变化; 7、控制形式:可分为管内控制,外置控制器,二种形式。可与DMX512系列控制器驳接,进行IC编程,变幻模式可达数千万种; 8、安装方便,投射角度大。防尘,防漏电耐寒耐高温。 9、工作电压12V、24V可供客户选择。 10、采用电磁兼容设计,不含对环境有害的汞污染,达到绿色环保。 11、采用LED光源,低耗能、寿命长达3-5 万小时(根据外部使用环境)。 应用范围: 该产品广泛应用于舞台、酒吧、酒店、的士高、KTV歌舞厅、桥梁、花园、沟道河岸、各交通立交桥、建筑物轮廓、建筑物的装饰及轮廓勾勒。是取代传统霓虹灯和荧光灯的新一代照明解决案。 注意事项: 1.安装前切断电源,防止触电。 2.初步预算所需护拦管的数量,然后根据数量单根护拦管的额定功率,计算出总功率,并设计配电方案。 3.此灯管应避免安装在热源处及热蒸汽,腐蚀性气体的场所,以免影响寿命。 4.使用电源时,不宜工作在频繁通断电状态下,这样会影响其寿命。
【技术分享】数码管显示常见问题总结 2015—03-30吴鉴鹰(原创) 一、数码管显示原理 我们最常用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其他的基本相同。所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形.数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起,让其接地,这样给任何一个LED的另一端高电平,它便能点亮。而共阳极就是将八个LED的阳极连在一起。其原理图如下。 其中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电源。一个八段数码管称为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管的8段,对应一个字节的8位,a对应最低位,dp对应最高位。所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f;共阳数码管的字符编码为11000000,即0xc0。可以看出两个编码的各位正好相反.如下图。
二、数码管出现暗红现象 现象描述: 单片机穿行口的范式0为同步移位寄存器方式,外接一个串入并出的移位寄存器,可以扩展为一个并行口。但是发现数码管显示数据的时候,出现暗红现象。 电路连接图 原因:数据在串行输出期间,输出允许控制端没有关闭,从而导致串口输出端不稳定产生暗红现象。 三、数码管闪烁 1:动态扫描驱动的时候,时间调整的不对,时间太短,就会闪烁,时间太长,就会出玩不应该亮的位微亮,所以,这是调整延时时间的事?2:有可能是程序要求
信息工程学院实验报告 课程名称:单片机原理及接口 实验项目名称: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 所示:
数码管显示原理 我们最常用的是七段式和八段式LED 数码管,八段比七段多了一个小数点,其他的基本相同。所谓的八段就是指数码管里有八个小LED 发光二极管,通过控制不同的LED 的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED 的阴极连在一起,让其接地,这样给任何一个LED 的另一端高电平,它便能点亮。而共阳极就是将八个LED 的阳极连在一起。其原理图如下。
其中引脚图的两个COM 端连在一起,是公共端,共阴数码管 要 将其接地,共阳数码管将其接正5伏电源。一个八段数码管称为一 位,多个数码管并列在一起可构成多位数码管,它们的段选线(即 a,b,c,d,e,f,g,dp )连在一起,而各自的公共端称为位选线。显示时, 都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点 亮。数码管的8段,对应一个字节的8位,a 对应最低位,dp 对应最 高位。所以如果想让数码管显示数字 0,那么共阴数码管的字符编码 为00111111,即0x3f ;共阳数码管的字符编码为11000000,即0xc0。 可以看出两个编码的各位正好相反。如下图。 MW 引脚图 共阴极 *5V 共阳取 g f vpM a ti e d COM c
共阴扱共阳极 共阳极的数码管0~f的段编码是这样的: unsigned char code table[]={ // 共阳极0~f 数码管编码0xc0,0xf9,0xa4,0xb0,//0~3 0x99,0x92,0x82,0xf8,//4~7 0x80,0x90,0x88,0x83,//8~b 0xc6,0xa1,0x86,0x8e //c~f }; 共阴极的数码管0~f的段编码是这样的: un sig ned char code table[]={// 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71 }; 共阴极0~f数码管编码 //0~3 //4~7 //8~b //c~f Qa
用汇编语言实现八段数码管显示 一、实验要求 利用实验仪提供的显示电路,动态显示一行数据. 二、实验目的 1. 了解数码管动态显示的原理。 2. 了解用总线方式控制数码管显示 三、实验线路及连线 四、实验说明 1.本实验仪提供了6 位8段码LED 显示电路,只要按地址输出相应数据,就可以 实现对显示器的控制。显示共有6位,用动态方式显示。8位段码、6位位码是由两片74LS374输出。位码经MC1413或ULN2003倒相驱动后,选择相应显示位。 本实验仪中 8位段码输出地址为0X004H ,位码输出地址为 0X002H 。此处X 是由KEY/LED CS 决定,参见地址译码。做键盘和LED 实验时,需将KEY/LED CS 接到相应的地址译码上。以便用相应的地址来访问。例如,将KEY/LED CS 接到CS0上,则段码地址为08004H ,位码地址为08002H 。 位选通信号 (0x002H) 段码输出 (0x004H) 数据总线
七段数码管的字型代码表如下表: 五、程序框图
程序代码 OUTBIT equ 08002h ; 位控制口 OUTSEG equ 08004h ; 段控制口 LEDBuf equ 60h ; 显示缓冲 Num equ 70h ; 显示的数据 DelayT equ 75h ; ljmp Start LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; mov r7, #0 DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop ret DisplayLED: mov r0, #LEDBuf mov r1, #6 ; mov r2, #00100000b ; Loop: mov dptr, #OUTBIT mov a, #0 movx @dptr, a ; mov a, @r0 mov dptr, #OUTSEG movx @dptr,a mov dptr, #OUTBIT mov a, r2 movx @dptr, a ; mov r6, #01
单片机实验——数码管显示
数码管显示 一、数码管静态显示 1、电路图 图1 2、电路分析 该电路采用串行口工作方式进行串行显示实验,串行传输数据为8位,只能从RXD端输
入输出,TXD端用于输出同步移位脉冲。当CPU 执行一条写入发送缓冲器SBUF的指令时,产生一个正脉冲,串行口开始将发送缓冲器SBUF 中的8位数据按照从低位到高位依次发送出去,8位数据发送完毕,发送结束标志TI置1,必须由软件对它清0后才能启动发送下一帧数据。 因此,当输完8个脉冲后,再一次来8个脉冲时,第一帧的8位数据就移到了与之相连的第二个74LS164中,其他数据依此类推。 3、流程图
发送数据 二、数码管动态显示 1、电路图
图2 2、电路分析 R1-R7电阻值计算:一个7-seg 数码管内部由8段LED 组成,因此导通电压和电流与LED 灯相同,LED 导通压降大概在 1.5V-2.2V ,电流3mA-30mA ,单片机的工作电压是5V , 所以 一般取Rmin 和Rmax 中间值,330Ω、470Ω、510Ω。 由于P0口内部没有上拉电阻,所以在P0 口接1003025Im min 1325Im max =-===-==mA V V an U R K mA V V in U R
排阻,上拉电压。如果没有排阻的话,接上拉电阻时需要考虑数码管的电流,如果太小的话,是驱动不了数码管的。如图3: 发现电流大于5mA时,数码管才能亮,与前面电流最小3mA不符,因此计算数码管电流时使其在10mA-20mA之间,确保能驱动数码管亮。 两个74HC573实现对六位数码管的段选和位选,控制端为LE(第11脚)。 3、思路分析 先使第一个573输出同步,把数据送入573中,然后锁存,第二个573输出同步,打开第一个数
综合课程设计实验报告 班级: 姓名: 学号:11 指导老师:
实验名称: 拨码开关输入数码管显示实验 实验要求: 1. 掌握数码管显示原理 2. 掌握拨码开关工作原理 3. 通过FPGA用拨码开关控制数码管显示 实验目标: 4位拨码开关分别对应4位数码管,拨动任意1位开关,对应的数码管将显示数字1,否则显示数字0。 实验设计软件 Quartus II 实验原理 1.数码管显示模块 电路原理图:
如图所示,数码管中a,b,c,d,e,f,g,dp分别由一个引脚引出,给对应的引脚高电平,则对应引脚的LED点亮,故我们在程序中可以设定一个8位的二进制数reg【7:0】h,每一位对应一个相应的引脚输出,那么我们就可以通过对x的赋值,控制对应的8个LED亮灭的状态进行数字显示。例如,如果我们显示数字2,则在数码管中,a、b、d、e、g亮,c、f、dp不亮,则显示的是数字2,即h=’b代表显示数字2。 2.拨码开关模块 电路原理图: 拨码开关有8个引脚,每个引脚对应于数码管的一个LED灯,当拨码开关的一个引脚是高电平时,则对应的数码管一个LED灯亮,其他7个LED等不亮。通过此原理来实现数码管的LED灯亮暗情况从而实现数码管的数字显示。例如当第一个拨码接通时,此时输入信号为8'b对应的数码管的输出信号为out=8'b,此时相当于数码管a,b,c,d,e,f,g亮,7段数码管全部显示,显示的数字为8。 程序代码 module bomakaiguan(out,key_in,clk); assign p='b1111; output[7:0] out=8'b; input[7:0] key_in; input clk; reg[7:0] out; always @(posedge clk) begin case(key_in) 8'b: out=8'b;
八段数码管显示 1.实验目的: (1)了解数码管动态显示的原理。 (2)了解74LS164 扩展端口的方法。 2.实验内容: 利用实验仪提供的显示电路,动态显示一行数据。 3.实验线路: PB0 数据输入 PB1 时钟输入 说明:这里只是显示草图,详细原理参见"8155 接口实验" 4.实验器材: (1)QTH2008下载式综合实验仪 1 台(2)QTH2008仿真器 1 台 (3)计算机 1 台 5.实验说明: (1)本实验仪提供了8 段码LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6 位,用动态方式显示。8 段码是由8155 的PB0、PB1 经74LS164“串转并”后输出得到。6 位位码由8155(或8255) 的PA0-5 口输出,经uA2003 反向驱动后,选择相应显示位。 74LS164 是串行输入并行输出转换电路,串行输入的数据位由8155 的PB0 控制,时钟位由8155 的PB1 控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位置到74LS164 中,并且实现移位。向显示位选通地址输出高电平就可以点亮相应的显示位。 本实验仪中数据位输出地址为0e102H,时钟位输出地址为0e102H,位选通输出地址为0e101H。本实验涉及到了8155 I0/RAM 扩展芯片的工作原理以及 74LS164 器件的工作原理。
7.参考程序(SY10.ASM): OUTBIT equ 0e101h ; 位控制口 CLK164 equ 0e102h ; 段控制口(接164 时钟位) DAT164 equ 0e102h ; 段控制口(接164 数据位) IN equ 0e103h ; 键盘读入口 LEDBuf equ 60h ; 显示缓冲 Num equ 70h ; 显示的数据 DelayT equ 75h org 0000h ljmp Start LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序 mov r7, #0 DelayLoop: djnz r7, DelayLoop
八段数码管显示实验报告 一.设计目的 1.掌握数码管动态显示的原理; 2.学会用总线方式控制数码管显示; 3.熟悉利用单片机驱动数码管的电路及编程原理。 二.设计内容 利用实验箱提供的显示电路,设计一个能够动态显示一行数据的系统。实验箱一般提供了6位8段码LED显示电路,只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。能够正常显示数据之后,请改变一下数字的变化速度或者LED显示的方向。 三.实验原理 1.原理:当用总线方式驱动八段显示管时,请将八段的驱动方式选择开关拨到“内驱”位置;当用I/O方式驱动八段显示管时,请将开关拨到“外驱”位置。 本实验仪提供了6 位8段码LED显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8位段码、6位位码是由两片74LS374输出。位码经MC1413或ULN2003倒相驱动后,选择相应显示位。 本实验仪中 8位段码输出地址为0X004H,位码输出地址为 0X002H。此处X 是由KEY/LED CS 决定,参见地址译码。做键盘和LED实验时,需将KEY/LED CS 接到相应的地址译码上。以便用相应的地址来访问。例如,将KEY/LED CS 接到CS0上,则段码地址为08004H,位码地址为08002H。 七段数码管的字型代码表如下表:
2. 3.程序 OUTBIT equ 08002h ; 位控制口
OUTSEG equ 08004h ; 段控制口 IN equ 08001h ; 键盘读入口 LEDBuf equ 60h ; 显示缓冲 Num equ 70h ; 显示的数据 DelayT equ 75h ; ljmp Start LEDMAP: ; 八段管显示码 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h Delay: ; 延时子程序 mov r7, #0 DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop ret DisplayLED: mov r0, #LEDBuf mov r1, #6 ; 共6个八段管 mov r2, #00100000b ; 从左边开始显示 Loop: mov dptr, #OUTBIT mov a, #0 movx @dptr, a ; 关所有八段管 mov a, @r0 mov dptr, #OUTSEG movx @dptr,a
实验一八段数码管显示 1、实验目的: (1)了解数码管动态显示的原理。 (2)了解74LS164扩展端口的方法。 2、实验要求: 利用实验仪提供的显示电路,动态显示一行数据. 3、实验电路图 LED1LED2LED3LED4LED5LED6 4、实验器材: (1)超想-3000TB综合实验仪 1 台 (2)超想3000仿真器 1 台 (3)计算机 1 台
5、实验连线 无 6、实验说明: (1)本实验仪提供了8段码LED 显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。显示共有6位,用动态方式显示。8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。6位位码由8155的PA0口输出,经Ua2003反向驱动后,选择相应显示位。 74LS164是串行输入并行输出转换电路,串行输入的数据位由8155的PB0控制,时钟位由8155的PB1控制输出。写程序时,只要向数据位地址输出数据,然后向时钟位地址输出一高一低两个电平就可以将数据位移到74LS164中,并且实现移位。向显示位选通地址输出高电平就可以点亮相应的显示位。 本实验仪中数据位输出地址为0e102H ,时钟位输出地址为0e102H ,位选通输出地址为 0e101H 。本实验涉及到了8155 I0/RAM 扩展芯片的工作原理以及74LS164器件的工作原理。 (2)七段数码管的字型代码表 显示字形 g f e d c b a 段码 0 0 1 1 1 1 1 1 3fh 1 0 0 0 0 1 1 0 06h 2 1 0 1 1 0 1 1 6bh 3 1 0 0 1 1 1 1 4fh 4 1 1 0 0 1 1 0 66h 5 1 1 0 1 1 0 1 6dh 6 1 1 1 1 1 0 1 7dh 7 0 0 0 0 1 1 1 07h 8 1 1 1 1 1 1 1 7fh 9 1 1 0 1 1 1 1 6fh A 1 1 1 0 1 1 1 77h B 1 1 1 1 1 0 0 7ch C 0 1 1 1 0 0 1 39h D 1 0 1 1 1 1 0 5eh E 1 1 1 1 0 0 1 79h F 1 1 1 1 71h a b c d e f g dp
三、数码管显示实验 一、实验目的及要求 理解8段数码管的基本原理,理解8段数码管的显示和编程方法,理解4连排共阴极8段数码管J3641AS通过DP1668与CPU的接线图。 理解8段数码管原理,运行与理解各子程序,编制一个4连排8段数码管程序,CPU 的P2口接左、右两个DP1668的控制引脚,各DP1668接LED的数据线hgfedcba,在4 连排8段数码管显示编程的日期。 熟悉结构后,自行编程左边四个数码管,显示分钟和秒,当计时达到一个小时,就重新从00:00开始计时。另外,指定计时的开始值。 二、实验原理(图) 8段数码管一般由8个发光二极管(Llight-emitting diode,LED)组成,每一个位段就是一个发光二极管。一个8段数码管分别由a、b、c、d、e、f、g位段,外加上一个小数点的位段h(或记为dp)组成。根据公共端所接电平的高低,可分为共阳极和共阴极两种。 三、实验设备(环境): 1、电脑一台 2、STC-ISP(V6.85I)烧写应用程序 3、Keil应用程序 四、实验内容(算法、程序、步骤和方法): #include
sbit TM1668R_DIO_H = P4^4; //左边数码管宏定义 sbit TM1668R_CLK_H = P2^0; sbit TM1668R_STB_H = P2^1; sbit TM1668L_DIO_H = P2^2; //左边数码管宏定义 sbit TM1668L_CLK_H = P2^3; sbit TM1668L_STB_H = P2^4; sbit LIGHT = P0^1; uchar Today_data[8]; uint temp,kk; const uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; void Send_Data(uchar dat,uchar n); void DIS_data_1668(uchar data1,uchar data2,uchar data3,uchar data4,uchar n); /****************************************************************************** * * 函数名: Send_Data * 函数功能: TM1668发送一字节数据函数 * 输入: 无 * 输出: 无 ******************************************************************************/ void Send_Data(uchar dat,uchar n) { uchar i; for(i = 0;i<8;i++) //1个字节 { if(n==0) TM1668R_CLK_H = 0; else TM1668L_CLK_H = 0; if(dat&(1<数码管完整版
例程18.数码管显示实验 数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示),本实验所使用的是八段数码管。按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阳数码管在应用时应将公共极COM 接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM 接到地线GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,相应字段就不亮。 数码管的每一段是由发光二极管组成,所以在使用时跟发光二极管一样,也要连接限流电阻,否则电流过大会烧毁发光二极管的。本实验用的是共阴极的数码管,共阴数码管在应用时应将公共极接到GND,
当某一字段发光二极管的阳极为低电平时,相应字段就点熄灭。当某一字段的阳极为高电平时,相应字段就点亮。介绍完原理, 我们开始准备实验用元器件。 八段数码管*1 220Ω直插电阻*8 面包板*1 面包板跳线*1 扎 我们参考实物连接图按原理图连接好电路。
数码管共有七段显示数字的段,还有一个显示小数点的段。当让数码管显示数字时,只要将相应的段点亮即可。例如:让数码管显示数字1,则将b、c 段点亮即可。将每个数字写成一个子程序。在主程序中每隔2s 显示一个数字,让数码管循环显示1~8 数字。每一个数字显示的时间由延时时间来决定,时间设置的大些,显示的时间就长些,时间设置的小些,显示的时间就短。 参考程序源代码:
电子信息工程学系实验报告 课程名称:单片微型计算机与接口技术Array 实验项目名称:实验四 I/O显示控制实验实验时间: 班级: **** 姓名:**** 学号:******** 一、实验目的: 1、熟悉keil仿真软件、proteus仿真软件、软件仿真板的使用。 2、了解并熟悉一位数码管与多位LED数码管的电路结构、与单片机的连接方法及其应用原理。 3、学习proteus构建LED数码管显示电路的方法,掌握C51中单片机控制LED数码管动态显示的原理与编程方法。 二、实验环境: 1、Windows XP系统; 2、Keil uVision2、proteus系列仿真调试软件 三、实验原理: 1、LED数码管的结构和原理 LED显示器是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是七段LED,这种显示器有共阴极与共阳极两种。 (a)共阴极LED显示器的发光二极管阴极共地,当某个发光二极管的阳极为高电平时,该发光二极管则点亮; (b)共阳极LED显示器的发光二极管阳极并接。 2、七段显示器与单片机接口:只要将一个8位并行输出口与显示器的发光二极管引脚相连即可。8位并行输出口输出不同的字节数据即可获得不同的数字或字符,如下表所示。通常将控制发光二极管的8位字节数据称为段选码。 八段选码(显示码)的推导(以共阳数码管显示C为例): 要显示C则a、f、e、d四个灯亮2.为是共阳数码管,则a、f、e、d应送0时亮3.dp-a为11000110B 3、多位数码管的显示:电路结构、动态静态两种实现原理: LED显示器有静态显示与动态显示两种方式。 (1) LED静态显示方式 各位LED的位选线连在一起接地或接+5V;每位LED的段选线(a-dp)各与一个八位并行口相连; 在同一时间里每一位显示的字符可以各不相同。
八段数码管的编码 (2011-10-07 16:48:30) 分类:常用芯片引脚说明 标签: it 汇编语言: 共阳极: DB 03H,9FH,25H,0DH,99H,49H,41H,1FH,01H,09H,11H,0C1H,63H,85H,61H,71H DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8E H 共阴极: DB 0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H,0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH, 8EH DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H C语言中可以如下定义数组: 共阳极数码管(由a到h的二进制码): unsigned char number[]= { 0x03,0x9f,0x25,0x0d, 0x99,0x49,0x41,0x1f, 0x01,0x09,0x11,0xc1, 0x63,0x85,0x61,0x71 } 共阳极数码管(由h到a的二进制码):
unsigned char number[]= { 0xc0,0xf9,0xa4,0xb0, 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e } 共阴极数码管(由a到h的二进制码): unsigned char number[]= { 0xfc,0x60,0xda,0xf2, 0x66,0xb6,0xbe,0xe0, 0xfe,0xf6,0xee,0x3e, 0x9c,0x7a,0x9e,0x8e } 共阴极数码管(由h到a的二进制码): unsigned char number[]= { 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71
LED数码管驱动显示实验 实验内容: 1、八字段LED数码管驱动显示工作原理 2、74LS138三—八译码器工作原理及如何控制数码管工作原理 3、数码管动态显示工作原理分析与计算 4、数码管多种显示实验 实验讲义: 一、七字段数码管显示工作原理 共阴级接法 共阳级接法
详情分析可以启动51单片机工具箱软件,选择“数码管字形”生成选项进行字形分析。 二、74LS138三—八译码器工作原理及如何控制数码管工作原理
注:上图是工程样品图。实际修改后的电路板图将接入9012三极管的Y0-Y7顺序改为Y7-Y0 三、数码管驱动方式及动态显示工作原理分析与计算 1、人眼的视觉暂留现象 数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。 ①静态显示驱动:静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S52单片机可用的I/O端口才32个呢:),实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。 ②动态显示驱动:数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的的COM 端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。 2、数码管使用的电流与电压计算 电流:静态时,推荐使用10-15mA;动态时,16/1动态扫描时,平均电流为4-5mA,峰值电流50-60mA。 电压:查引脚排布图,看一下每段的芯片数量是多少?当红色时,使用1.9V乘以每段的芯片串联的个数;当绿色时,使用2.1V乘以每段的芯片串联的个数。 四、数码管显示实验 利用3-8译码器来选择需要显示(亮)哪个数码管,利用P0口来负责显示什么数字或符号 1、让Y0所对应的数码管显示“0”—“9”,间隔1秒 2、让Y0所对应的数码管显示“0”,Y1显示“1”,Y2显示“2”…………以此类推最后Y7显示“7”,间隔1秒
目录 一、设计内容 (2) 1.1实验目的 (2) 1.2实验设备 (2) 二、设计原理 (2) 2.1 八段数码管 (2) 2.2 电路原理 (3) 三、操作步骤 (4) 四、程序代码 (5) 五、心得体会 (12)
ARM数码管显示 一、设计内容 1.1实验目的 掌握LED 的显示控制方法。 巩固对存储区进行访问的方法。 1.2实验设备 硬件:Embest Arm EduKit II实验平台,Embest ARM标准/增强型仿真器套件,PC机。 软件:Embest IDE Pro 2004集成开发环境,Windows 98/2000/NT/XP。 二、设计原理 2.1 八段数码管 嵌入式系统中,经常使用八段数码管来显示数字或符号,由于它具有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。 结构: 八段数码管由八个发光二极管组成,其中七个长条形的发光管排列成“日”字形,右下角一个点形的发光管作为显示小数用,八段数码管能显示所有数字及部份英文字母。见图 类型: 八段数码管有两种不同的形式:一种是八个发光二极管的阳极都连在一起的,称之为共阳极八段数码管;另一种是八个发光二极管的阴极都连在一起的,称之为共阴极八段数码管。
工作原理: 以共阳极八段数码管为例,当控制某段发光二极管的信号为低电平时,对应的发光二极管点亮,当需要显示某字符时,就将该字符对应的所有二极管点亮;共阴极二极管则相反,控制信号为高电平时点亮。 显示方式: 八段数码管的显示方式有两种,分别是静态显示和动态显示。 静态显示是指当八段数码管显示一个字符时,该字符对应段的发光二极管控制信号一直保持有效。 动态显示是指当八段数码管显示一个字符时,该字符对应段的发光二极管是轮流点亮的,即控制信号按一定周期有效,在轮流点亮的过程中,点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余辉效应,数码管的显示依然是非常稳定的。 2.2 电路原理 EMBEST ARM EDUKIT II教学电路中,使用的是共阳极八段数码管,数码管的控制通过芯片ZLG7290控制,各段的控制信号是芯片ZLG7290的SEGA~SEGG引脚控制,需要显示的段码通过IIC总线传送到该芯片,见图。
实验四数码管动态显示实验一 一、实验要求 1.在Proteus软件中画好51单片机最小核心电路,包括复位电路和晶振电路 2.在电路中增加四个7段数码管(共阳/共阴自选),将P1口作数据输出口与7段数码 管数据引脚相连,P2.0~P2.3引脚输出选控制信号 3.在Keil软件中编写程序,采用动态显示法,实现数码管分别显示数字1,2,3,4 二、实验目的 1.巩固Proteus软件和Keil软件的使用方法 2.学习端口输入输出的高级应用 3.掌握7段数码管的连接方式和动态显示法 4.掌握查表程序和延时等子程序的设计 三.实验说明 本实验是将单片机的P1口做为输出口,将四个数码管的七段引脚分别接到P1.0至P1.7。由于电路中采用共阳极的数码管,所以当P1端口相应的引脚为0时,对应的数码管段点亮。程序中预设了数字0-9的段码。由于是让四个数码管显示不同的数值,所以要用扫描的方式来实现。因此定义了scan函数,接到单片机的p2.0至p2.3 在实验中,预设的数字段码表存放在数组TAB中,由于段码表是固定的,因此存储类型可设为code。 在Proteus软件中按照要求画出电路,再利用Keil软件按需要实现的功能编写c程序,生成Hex文件,把Hex文件导到Proteus软件中进行仿真。为了能够更好的验证实验要求,在编写程序时需要延时0.5s,能让人眼更好的分辨;89C51的一个机器周期包含12个时钟脉冲,而我们采用的是12MHz晶振,每一个时钟脉冲的时间是1/12us,所以一个机器周期为1us。在keil程序中,子函数的实现是用void delay_ms(int x),其中x为1时是代表1ms。 四、硬件原理图及程序设计 (一)硬件原理图设计 电路中P1.0到P1.7为数码管七段端口的控制口,排阻RP1阻值为220Ω,p2.0到p2.3为数码管的扫描信号。AT89c51单片机的9脚(RST)为复位引脚,当RST为高电平的时间达到2个机器周期时系统就会被复位;31引脚(EA)为存取外部存储器使能引脚,当EA为高电平是使用单片机内部存储器,当EA为低电平时单片机则使用外部存储器。18、19引脚是接晶振脚。而接地和电源端在软件中已经接好,所以不用在引线。 如下图所示:
数码管显示电路原理 (1)元件需求以及选型 8个八段数码管,8个PNP三极管,8个电阻,数码管内部由8个发光二极管组成,排 成一个8字,可以组成0到9数字以及A-F字符的表示形式,分共阴和共阳两种,共 阴表示8个二极管公共极接的是二极管的负极,共阳表示公共极接的是发光二极管的 正极。我们选的是共阳的数码管,三极管(8550)用来做片选,增加驱动,电阻的作 用在于限流,由于基极电流很大,所以需要一个电阻来限流,防止烧坏单片机IO口。 阻值选择用1K。建议使用1K。 (2)程序原理 数码管要亮,必须满足里面的二极管导通,有两个条件,片选打开,数据口要置低(视硬件而定)。首先要得到0到9十个数据的断码。即按硬件的排布,画出对应的0到9形状,标出对应的二极管控制IO口,得到数值,可以参照我们提供的数据。 片选:片选就是开关,控制数码管亮或不亮的,每个数码管都有自己的片选。 数据口: 数据口就直接接到了IO口上面,低电平有效,灌电流。数码管的显示分为两种:静态显示和动态显示。 静态显示: 只能显示一个数码管或者几个数码管而且只能同时显示同一个数字,静态显示不需要扫描的,就是说打开片选后不需要关闭,只需要跟换数据口出来的数据就可以改变显 示的内容。一般静态显示用的比较少,只用在数码管只有一个的情况下。
动态显示: 动态显示用的很普遍,动态显示可以任意数码管随意显示想要显示的内容。动态显示需要不断的对数码管进行扫描。原理是开一个片选送一个字节显示,延时一些时间(注:延时时间很重要,没有的话就会显示一片红,超过的话数码管就会闪烁,一般 一个数码管延时显示1MS左右就可以了)。然后关闭第一个片选,开启第二个片选, 送另外的一个数据,延时,然后关闭低二个片选,送数值,延时……循环,那么就可 以看到几个数码管显示出不同的数值了。 每个显示数字共用数据线,每个分别有一个使能管脚,显示数据采用隐消的编程方法,即每一位显示一段时间再轮换。 实验内容: 在四位数码管上显示8051