实验二、8段数码管显示实验.ppt
实验二、8段数码管显示实验,采用DTLED_6显示驱动芯片,LED 数码管的结构与显示段码,备注:第一脚的识别很简单,看管脚的底部,有一个方块型的就是第一脚。或者正面(就是显示那面)朝你,左下角第一个为第一脚。,LED数码管编码方式,表9-1 共阴和共阳LED数码管几种八段编码表,静态显示方式及其典型应用电路,动态显示方式,在某一瞬时显示一位,依次循环扫描,轮流显示,由于人的视觉滞留效应,人们看到的是多位同时稳定显示。特点:占用I/O端线少,电路较简单,编程较复杂,CPU要定时扫描刷新显示。一般适用于显示位数较多的场合。,LED数码管显示分类:静态显示方式和动态显示方式。,静态显示方式,每一位字段码分别从I/O控制口输出,保持不变直至CPU刷新。特点:编程较简单,但占用I/O口线多,一般适用于显示位数较少的场合。,LED显示器的扩展(显示方式),LED数码管的显示方式:静态与动态,动态显示特点:有闪烁,用元器件少,占I/O线少,必须扫描,花费CPU时间,编程复杂。(有多个LED时尤为突出),静态显示特点:无闪烁,用元器件多,占I/O线多,无须扫描,节省CPU时间,编程简单。,静态显示:各数码管在显示过程中持续得到送显信号,与各数码管接口的I/O口线是专用的。,动态显示:各数码管在显示过程中轮流得到送显信号,与各数码管接口的I/O口线是共用的。,1、并行扩展静态显示电路,2、串行扩展静态显示电路,动态显示电路连结形式:显示各位的所有相同字段线连在一起,共8段,由一个8位I/O口控制;(段选线)每一位的公共端(共阳或共阴COM)由另一个I/O口控制。(位选线),动态显示方式及其典型应用电路,LED数码管动态显示举例,P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0,7406 OC门 X 3,上拉电阻14,+5V,AT89C51,工作原理:从P0口送段代码,P1口送位选信号。段码虽同时到达 6个LED,但一次仅一个LED被选中(位选)。利用“视觉暂留”,每送一个字符并选中相应位线,延时一会儿,再送/选下一个循环扫描即可。,共阴 数码管,位选线,段代码,P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0,7406 OC门 X 3,+5V,AT89C51,位选线,段代码,要求:此处为共阴数码管,P0口送段代码,P1口送位选信号。通过查表实现动态显示。条件:待显数据(00H09H)已放在:7FH7AH单元中(分别对应十万位个位)说明:由于用了反相驱动器7406,要用共阳译码表。,共阴 数码管,上拉电阻14,7406 OC门 X 3,+5V,(7FH)(7EH)(7DH)(7CH)(7BH)(7AH)十万 万位 千位 百位 十位 个位,数据缓冲区/显示缓冲区,P0口送段代码,P1口送位选信号。待显数据已经放在:7FH7AH单元(分别对应十万位个位)使用共阳译码表。,1、共阴型8位动态显示电路,2、共阳型3位动态显示电路,数码管驱动,动态显示驱动(采用DTLED_6显示驱动芯片)将所有数码管通过分时轮流控制各个数码管的的COM(公共端)端(相当于直连的位选端),就使各个数码管轮流受控显示。数码管分时轮流循环点亮,在同一时刻只有1个数码管点亮,但由于数码管具有余辉特性及人眼具有视觉暂留特性,所以适当地选取循环扫描频率,看上去所有数码管是同时点亮的,察觉不出闪烁现象。扫描频率超过人的眼睛视觉暂留频率24Hz以上就可以达到循环点亮单个数码管,却感觉数码管在同时显示的视觉效果,而且也不闪烁。动态显示方式所接数码管不能太多,否则会因每个数码管所分配的实际导通时间太少,使得数码管的亮度不足。,原理图,DTLED_6显示驱动芯片特点,1.可全功能替代摩托罗拉公司的“MC14499”芯片,功能相同;并在其基础上增加更适用的功能。2.DTLED_6 是六位 BCD 七段十六进制锁存,译码驱动芯片,一片可同时驱动 6 个共阳数码管。3.由于具有BCD 译码器和串行接口,所以它几乎可以与任何单片机接口相连。只需三根线就可全驱动,大大节省了单片机的端口资源。4.内置芯片序号 ID 代码,可将多片 DTLED_6 芯片并联使用,再通过识别 ID 代码的方法来选通。(一片使用时设ID1)5.内置PFD 发生器,P9/P10脚可直接作为蜂鸣器输出控制信号源。产生一队正负脉冲,并可通过设置预分频来改变输出脉冲的频率。(本实验板BZ、BZ P9/P10脚未接蜂鸣器)6.多种封装形式:PDIP24,SOC24 两种。,DTLED_6芯片串行输入时序,DTLED_6芯片一帧串行输入数据格式,dispbuf0-dispbuf1-dispbuf2-dispbuf3-dispbuf4-dispbuf5-dispbuf6-dispbuf7-dispbuf8小数点-数码管1-数码管2-数码管3-数码管4-数码管5-数码管6-ID识别码-BZ识别码00000 xxx-0000 xxxx-0000 xxxx-0000 xxxx-0000 xxxx-0000 xxxx-0000 xxxx-0000 xxxx-0000 xxxx小数点dispbuf0=16,其它为不显示数码管dispbuf1-6=015,ID识别码dispbuf7=015 本实验只用一片DTLED_6芯片驱动 dispbuf7=1BZ识别码dispbuf8=BZ.3为蜂鸣输出控制位,0=关闭,1=打开 未接输出BZ02为蜂鸣频率输出设定为,000=不分频,最高频率输出=4800Hz;001=一次分频,频率输出=4800/2=2400Hz;010=二次分频;.,串行发送DTLED_6显示子程序,void tsled(void)/*串行发送DTLED-6显示子程序*/char ts0,i,j;clk=0;en=0;delay(10);for(j=0;j9;j+)ts0=dispbufj;for(i=0;i4;i+)/*发用BCD码编码的串行数据*/clk=1;ts0=ts01;if(AC=1)/*借助辅助进位位AC把4位BCD码显示字符 dout=1;和控制信息读入*/else dout=0;clk=0;nop;/*注意要在说明部分添加define nop _nop_()*/delay(3);en=1;/*返回主程序*/,程序说明部分管脚定义语句,sbit en=P17;/*DTLED_6显示芯片使能端*/sbit dout=P16;/*DTLED_6显示芯片数据读入端*/sbit clk=P13;/*DTLED_6显示芯片/时钟芯片DS1302时钟输入端*/,头文件,一、访问sfr及sfr_bit地址的头文件REG51.H。REG51.H、REG52.H等文件定义了8051单片机中的SFR寄存器名和相关的位变量名。二、内部函数库INTRINS.H。包含:左右移动函数;extern void _nop_(void);定义了空操作语句,产生一个NOP指令,用于延时一个机器周期。三、头文件在第三方编译器C51的INC文件夹中或汇编程序PLM51中。通过#include引用。四、用户可以自己编写头文件,通过#include“”引用。,