数码管显示原理及实例(共4页).doc
精选优质文档-倾情为你奉上数码管显示电路原理(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 0000HAJMP MAINORG 0030HMAIN:MOV P2,#0FFHMOV P0,#0FFHTT:MOV P0,#080HMOV P2,#0F7H;BLCALL DELAY_1S;延时显示8MOV P0,#0C0H;MOV P2,#0FBH;1101,1111B显示0LCALL DELAY_1SMOV P0,#092H;MOV P2,#0FDH;1011,1111B显示5LCALL DELAY_1SMOV P0,#0f9H;MOV P2,#0FEH;0111,1111B显示1LCALL DELAY_1SSJMP TTDELAY_1S:mov r1,#1delay_1s_lp2:mov r2,#2delay_1s_lp1:mov r3,#200djnz r3,$djnz r2,delay_1s_lp1djnz r1,delay_1s_lpl2retend数码管显示3210ORG 000hLJMP STARTORG 0100HSTART: MOV SP,#30HMOV A,#03HMOV DPTR,#7100HMOVX DPTR,AMOV 79H,#00HMOV 7AH,#01HMOV 7BH,#02HMOV 7CH,#03HMAIN:LCALL DISPLCALL DELAY LJMP MAIN;* 数码管显示函数* DISP: MOV R1,#79H ;缓冲区首地址 MOV R2,#10H ;用于位选MOV A,R2DISP1: MOV DPTR,#7101H ;位选MOVX DPTR,AMOV A,R1;MOV A,#0FFHMOV DPTR,#DBSEGMOVC A,A+DPTR ;取段码MOV DPTR,#7102HMOVX DPTR,A ;输出显示LCALL DELAY ;延时INC R1MOV A,R2JB ACC.7,EXT ;当4个数码管都点亮一遍时,结束RL AMOV R2,AJMP DISP1EXT: RET;* 延时子程序 *DELAY: MOV R6,#10HDELA1:MOV R5,#20H DJNZ R5,$DJNZ R6,DELA1RET;* 段码缓冲区 *DBSEG: DB 0fcH,60H,0daH,0f2H,66H,0b6H,0beH,0e0H,0feH,0f6H专心-专注-专业