c7数码管显示程序设计 最新

更新时间:2023-05-26 06:04:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实用的程序设计

C7数码管显示程序设计

实用的程序设计

数码显示接口技术

显示方式种类: LED显示( Light Emiting Decode 发

光二极管) LCD显示(Liquid Crystal Display 液晶 显示屏) CRT显示( Cathode Ray Tube,阴极射 线管) VFD显示(真空荧光显示器)

实用的程序设计

发光二极管的驱动+5V

发光二极管正常发光时, 电流约为5~10mA,压 降1V左右。500

P1.0

限流电阻 R=(5V-1V)/8mA=500 Ω

引脚输出低电平时,发光 二极管导通。

实用的程序设计

数码管共阳极数码管的结构是:将8个发光二极管排 列成一个 “8.” 的形状,所有发光二极管阳极 连接在一起做公共端com,阴极作为各个段的 控制端a,b,c,d,e,f,g,dp。 com

a f g b

com

1

a

b

c

dp

ed

c dp

a b c d e f g dp

0 0 0 0 1 1 0 1

共阴数码管

实用的程序设计

数码管的显示代码表

;共阳极7段数码管驱动段码表

;共阴极7段数码管驱动段码表

C0H F9H A4H B0H 99H 92H 82H F8H 80H 90H

pgfedcba 11000000B 11111001B 10100100B 10110000B 10011001B 10010010B 10000010B 11111000B 10000000B 10010000B

;0 ;1 ;2 ;3 ;4 ;5 ;6 ;7 ;8 ;9

; 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 7FH 6FH

pgfedcba DB 00111111B ;0 DB 00000110B ;1 DB 01011011B ;2 DB 01001111B ;3 DB 01100110B ;4 DB 01101101B ;5 DB 01111101B ;6 DB 00000111B ;7 DB 01111111B ;8 DB 01101111B ;9

实用的程序设计

LED显示驱动技术LED的驱动问题其实是一个非常重要的问题,如果驱 动器驱动能力差,显示亮度就降低。而且动态和静态显示方 式对驱动电路要求是不一样的。 如果是静态显示,不需要考虑LED驱动,一般情况下 只要将单片机I/O口与数码管的段代码连接,如图10-6所示 (请确认)电路即可。 但是动态显示就需要考虑LED驱动,因为动态显示是 由段和位选信号共同配合完成的,因此必须同时考虑段和位 的驱动能力,并且段的驱动能力决定位的驱动能力。常用的 驱动电路有两种,采用集成电路芯片如SN7407或采用简单的 三极管放大电路

实用的程序设计

二、静态显示技术 静态显示数码管相应笔段一直处于 点亮状态,因此功耗大,而且占用硬件资 源多,几乎只能用在显示位数极少的场合。 优点:LED亮度高,可用在室外显示场合。

实用的程序设计

静态显示电路

图10-6 四位静态显示电路

实用的程序设计

三、动态显示技术 动态显示是多只数码管共享段码线, 通过位选线逐位逐位进行扫描显示。其优 点是占用硬件资源少,功耗小。 必须注意:扫描周期必须控制在视觉 停顿时间内,一般在20ms以内,否则会出 现闪烁或跳动现象。

实用的程序设计

动态显示电路

图10-7 四位动态显示的电路

实用的程序设计

4

5

三极管放大驱动电路

P17

P16

P15

P14

P13

P12

P11

P10

P23 dpa f e g d b c dp f e

CR4

P20 4 .7 K S Q4 9015 4 .7 K S Q1 9015

g

fa g d

eb c dp f e

da g d

cb c dp f e

ba g d

ab c

CR3

dp

CR4

CR3

CR2

CR1

CR4

CR3

CR2

CR1

P22 4 .7 K S

Q3 9015

P21 4 .7 K S Q2 9015

CR2

CR1

实用的程序设计

非门驱动电路P1 7 P1 6 P1 5 P1 4 P1 3 P1 2 P1 1c a b c dp CR3 CR2 f e g d b c dp CR1 f e dp a f e g d CR4 b c dp f e g f a g d e d

P1 0b a g d b c dp a

P2 3

P2 2

P2 1

P2 0

实用的程序设计

实验板数码管连接示意图+5VP2.7 P2.6 com1 P2.5 com2 P2.4 com3 P2.3 com4 P2.2 com5 com6

位驱动

段驱动P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 a b c d e f g dp

六位共阳极数码管模块 相同的段驱动端都并联在 一起。

实用的程序设计

在第一位上显示5+5VP2.7

0

P2.6 com1

1

P2.5 com2

1

P2.4 com3

1

P2.3 com4

1

P2.2 com5 com6

1

位驱动P2.7输出0 段驱动P0口输出“5”的段 码“10010010B” 0 1 0 0 1 0 0 1

P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7

a

b

c

d

e

f

g

dp

实用的程序设计

编程练习要求:在第一位显示连续变 化的0-9,间隔时间自定。 参考课本P196页例1,在 keil中编程,生产HEX文件。 在proteus中观察运行结果。 (参考“ c6定时器应用程 序调试” 介绍的方法)

开始 (R0)=0 (A)=(R0) 查段码表, 取得段驱动码 段驱动码送P0口 P2.7=0 延时 (R0)+1 (R0)=10? Y (R0)=0 N

实用的程序设计

5.2 数码显示预备知识 八段显示器的原理

g f com a b a f e g d b cdp

dp g f e d c b a

com

e d

com

c dp

com共阴结构

dp g f e d c b a共阳结构

实用的程序设计

5.2 数码显示预备知识 数码管段码的编码:

8段正好是一个字节,通常采用如下 编码方式。(这种编码需单片机数据总线 的D0..D7分别和数码管的a、b、c、…dp 对应相连。如图所示)dpg最高 位

f

e

d

c

b

a最低位

实用的程序设计

CPU和数码管的连接VCCU1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 80519

a b c d e f g dp

a f e g d GND b c dp

U1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 8051

330*8

1 2 3 4 5 6 7 8

VCC a b a c f b d g e e c f d g dp dp

GND

LED

共阴数码管

共阳数码管

9

330*8

LED 1 2 3 4 5 6 7 8

实用的程序设计

5.2 数码显示接口技术

实用的程序设计

5.2 数码显示接口技术

程序清单:ORG 0030H MOV SP,#60h MOV R0,#00h DISP0:MOV DPTR,#SEGTAB DISP1: MOV A,R0 DISP3:MOVC A,@A+DPTR MOV P2,A MOV R3,#100 DISP4:ACALL D10MS DJNZ R3,DISP4 INC R0 CJNE R0,#0ah,DISP1 AJMP DISP1

;字段码首地址 ;从0开始显示 ;查字符段选码 ;从P2口输出显示 ;停留 1s

;又从0开始显示

实用的程序设计

5.2 数码显示接口技术

D10MS:MOV R7,#14H ;10ms延时子程序 DLY: MOV R6,#0F8H DLY1: DJNZ R6,DLY1 DJNZ R7,DLY RET SEGTAB : ;;段码表 DB 3FH,06H,5BH,4FH,66H ;;0\1\2\3\4 DB 6DH,7DH,07H,7FH,6FH ;;5\6\7\8\9 DB 77H,7cH,39H,5eH, 79H ;;a\b\c\d\e DB 71h, 73h,3Eh,6Eh,0ffh,00h ;;f\p\u\y\ 8.\灭 可根 据需 END 要造 一些 特殊 的编 码

本文来源:https://www.bwwdw.com/article/nox4.html

Top