经典c7数码管显示程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
发光二极管的驱动
+5V
发光二极管正常发光时, 电流约为5~10mA,压 降1V左右。
500
P1.0
限流电阻 R=(5V-1V)/8mA=500 Ω
引脚输出低电平时,发光 二极管导通。
数码管
共阳极数码管的结构是:将8个发光二极管排 列成一个 “8.” 的形状,所有发光二极管阳极 连接在一起做公共端com,阴极作为各个段的 控制端a,b,c,d,e,f,g,dp。 com
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
二、静态显示技术 静态显示数码管相应笔段一直处于 点亮状态,因此功耗大,而且占用硬件资 源多,几乎只能用在显示位数极少的场合。 优点:LED亮度高,可用在室外显示场合。
静态显示电路
图10-6 四位静态显示电路
三、动态显示技术 动态显示是多只数码管共享段码线, 通过位选线逐位逐位进行扫描显示。其优 点是占用硬件资源少,功耗小。 必须注意:扫描周期必须控制在视觉 停顿时间内,一般在20ms以内,否则会出 现闪烁或跳动现象。
5.2 数码显示接口技术
INTT0:
SEG:
MOV MOV MOV MOV MOV MOVC MOV MOV MOV RL MOV INC RETI DB DB END
TL0,#18H ;重为定时器赋初值 TH0,#0FCH P1,#0FFH ;关所有显示 A,@R0 ;取显示数字 DPTR,#SEG A,@A+DPTR ;查字段码表的段选码 P2,A ;输出段选码 A,R2 P1,A ;输出位控制字 A ;为显示下一位做准备 R2,A R0 3FH,06H,5BH,4FH,66H 6DH,7DH,07H,7FH,6FH
第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 第7~14脚:D0~D7为8位双向数据线。 第15~16脚:空脚
1602液晶模块内部的字符发生存储器(CGROM)已经存储了160 个不同的点阵字符图形,如表所示,这些字符有:阿拉伯数字、英 文字母的大小写、常用的符号、和日文假名等,每一个字符都有一 个固定的代码,比如大写的英文字母“A”的代码是01000001B (41H),显示时模块把地址41H中的点阵字符图形显示出来,我们 就能看到字母“A”
LED显示驱动技术
LED的驱动问题其实是一个非常重要的问题,如果驱 动器驱动能力差,显示亮度就降低。而且动态和静态显示方 式对驱动电路要求是不一样的。 如果是静态显示,不需要考虑LED驱动,一般情况下 只要将单片机I/O口与数码管的段代码连接,如图10-6所示 (请确认)电路即可。 但是动态显示就需要考虑LED驱动,因为动态显示是 由段和位选信号共同配合完成的,因此必须同时考虑段和位 的驱动能力,并且段的驱动能力决定位的驱动能力。常用的 驱动电路有两种,采用集成电路芯片如SN7407或采用简单的 三极管放大电路
开始 (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 c
dp
dp g f e d c b a
com
e d
com
b
a g d
a
b 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 1
c 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
六位共阳极数码管模块 相同的段驱动端都并联在 一起。
在第一位上显示5
+5V
P2.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
VCC
U1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 8051
9
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
a f g b
com
1
a
b
c
dp
e
d
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
P1 0
b a g d b c dp a
P2 3
P2 2
P2 1
P2 0
实验板数码管连接示意图
+5V
P2.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.2 数码显示接口技术
程序清单: ORG AJMP ORG AJMP MAIN: MOV MOV MOV MOV SETB AGAIN:MOV MOV NEXT: MOV JB SJMP 0000H MAIN 000BH INTT0 TMOD,#01H ;T0定时1ms中断初始化 TL0,#18H TH0,#0FCH IE,#82H TR0 R0,#30H ;显示缓冲区首地址 R2,#01H ;显示位控制字 A,R2 ACC.3,AGAIN ;4位扫描完又重复 NEXT ;4位未完等待显示下一位
LCD1602指令表
1602液晶模块内部的控制器共有11条控制指 令,如表2所示
HD44780的主要命令格式
HD44780是这种点阵字符型液晶常用驱动芯片。它的读写操作、 屏幕和光标的操作都是通过指令编程来实现的。(说 明:1为高 电平、0为低电平) 指令1:清显示,指令码01H,光标复位到地址00H位置。 指令2:光标复位,光标返回到地址00H 。 指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移, 低电 平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效, 低电 平则无效。 指令4:显示开关控制。 D:控制整体显示的开与关,高电平表 示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示 有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁, 低电平不闪烁 指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电 平时移动光标
动态显示电路
图10-7 四位动态显示的电路
4
5
三极管放大驱动电路
P17
P16
P15
P14
P13
P12
P11
P10
P23 dp
a f e g d b c dp f e
CR4
P20 4 .7 K S Q4 9015 4 .7 K S Q1 9015
g
f
a g d
e
b c dp f e
d
a g d
c
b c dp f e
c dp
com
共阴结构
dp g f e d c b a
共阳结构
5.2 数码显示预备知识
数码管段码的编码:
8段正好是一个字节,通常采用如下 编码方式。(这种编码需单片机数据总线 的D0..D7分别和数码管的a、b、c、…dp 对应相连。如图所示)
dp
g
最高 位
f
e
d
c
b
a
最低位
CPU和数码管的连接
经典C7数码管显示程序 设计
数码显示接口技术
显示方式种类: LED显示( Light Emiting Decode 发
光二极管) LCD显示(Liquid Crystal Display 液晶 显示屏) CRT显示( Cathode Ray Tube,阴极射 线管) VFD显示(真空荧光显示器)
5.2 数码显示接口技术
例子:显示1、2、3、4
首先 扫描
最后 扫描
5.2 数码显示接口技术
显示过程:定时器T0每1ms 产生一次中断,在中 断服务程序中更换一次显示位,4位一个扫描周期, 扫描时间为4 ms。 除了定时中断扫描显示外,也可以程序控制扫 描显示,但采用定时中断扫描显示的扫描周期固 定,特别是当单片机的工作任务重时,定时中断 扫描显示是一种很好的方式。
;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
5.3 液晶显示技术
一、液晶显示器及其特点 液晶显示器以其微功耗、体积小、显示内容丰富、 超薄轻巧的诸多优点,没有电磁辐射、寿命长等优点, 在袖珍式仪表和低功耗应用系统中得到越来越广泛的 应用。
这里介绍的字符型液晶模块是一种用5x7点阵图形来显示字符 的液晶显示器,根据显示的容量可以分为1行16个字、2行16个字、 2行20个字等等,这里以常用的2行16个字的1602液晶模块来介绍
;字段码首地址 ;从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 要造 一些 特殊 的编 码
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定时器应用程 序调试” 介绍的方法)
它的编程方法。
LCD1602管脚定义
LCD1602采用标准的16脚接口,其中: 第1脚:VSS为地电源 第2脚:VDD接5V正电源 第3脚:Vo为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源 时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的 电位器调整对比度 第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄 存器。 第5脚:RW为读写信号线,高电平时进行读操作,低电平时进行写操作。当 RS和RW共同为低电平时可以写入指令或者显示地址,当RS为低电平RW为 高电平时可以读忙信号,当RS为高电平RW为低电平时可以写入数据。