数码管显示原理及实例
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数码管显示电路原理
(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
接线说明:
P0口接八段显示数据低电平有效,P2口低四位接片选低电平有效。
程序清单:
******************************************************************
ORG 0000H
AJMP MAIN
ORG 0030H
MAIN:
MOV P2,#0FFH
MOV P0,#0FFH
TT:
MOV P0,#080H
MOV P2,#0F7H;;;11101111B
LCALL DELAY_1S;;延时显示8
MOV P0,#0C0H;;;;;;;;;;;
MOV P2,#0FBH;;1101,1111B显示0
LCALL DELAY_1S
MOV P0,#092H;;;
MOV P2,#0FDH;;1011,1111B显示5
LCALL DELAY_1S
MOV P0,#0f9H;;;
MOV P2,#0FEH;;0111,1111B显示1
LCALL DELAY_1S
SJMP TT
DELAY_1S:mov r1,#1
delay_1s_lp2:mov r2,#2
delay_1s_lp1:mov r3,#200
djnz r3,$
djnz r2,delay_1s_lp1
djnz r1,delay_1s_lpl2
ret
end
数码管显示3210
ORG 000h
LJMP START
ORG 0100H
START: MOV SP,#30H
MOV A,#03H
MOV DPTR,#7100H
MOVX @DPTR,A
MOV 79H,#00H
MOV 7AH,#01H
MOV 7BH,#02H
MOV 7CH,#03H
MAIN: LCALL DISP
LCALL DELAY
LJMP MAIN
;********** 数码管显示函数********************************** DISP: MOV R1,#79H ;缓冲区首地址
MOV R2,#10H ;用于位选
MOV A,R2
DISP1: MOV DPTR,#7101H ;位选
MOVX @DPTR,A
MOV A,@R1
;MOV A,#0FFH
MOV DPTR,#DBSEG
MOVC A,@A+DPTR ;取段码
MOV DPTR,#7102H
MOVX @DPTR,A ;输出显示
LCALL DELAY ;延时
INC R1
MOV A,R2
JB ACC.7,EXT ;当4个数码管都点亮一遍时,结束
RL A
MOV R2,A
JMP DISP1
EXT: RET
;*************** 延时子程序******************************* DELAY: MOV R6,#10H
DELA1: MOV R5,#20H
DJNZ R5,$
DJNZ R6,DELA1
RET
;************** 段码缓冲区********************************** DBSEG: DB 0fcH,60H,0daH,0f2H,66H,0b6H,0beH,0e0H,0feH,0f6H