100 likes | 272 Views
1. LED 数码管简介(以下简称数码管) ( 1 )数码管结构与工作原理 数码管是 LED 显示块的一种。是由发光二极管作为显示字段的数码型显示器件。图 3-8 表示了数码管的外形和引脚图。其中七只发光二极管分别对应 a 、 b 、 c 、 d 、 e 、 f 、 g 笔段构成“ 8” 字形,另一只发光二极管 dp 作为小数点。控制某几段发光,就能显示出某个数码或字符。如要显示数字“ 1” ,则只要使 b 、 c 两段二极管点亮即可。 数码管的结构有共阳极、共阴极两种。. 项目三 制作 LED 数码计数牌.
E N D
1. LED数码管简介(以下简称数码管)(1)数码管结构与工作原理 数码管是LED显示块的一种。是由发光二极管作为显示字段的数码型显示器件。图 3-8 表示了数码管的外形和引脚图。其中七只发光二极管分别对应a、b、c、d、e、f、g笔段构成“8”字形,另一只发光二极管dp作为小数点。控制某几段发光,就能显示出某个数码或字符。如要显示数字“1”,则只要使b、c两段二极管点亮即可。 数码管的结构有共阳极、共阴极两种。 项目三 制作LED数码计数牌 数码管的使用与发光二极管相同,根据其材料不同正向压降一般为1.5~2V,额定电流一般为10mA,最大电流一般为40mA。静态显示时取10mA为宜。动态扫描显示时,可加大脉冲电流,但一般不要超过40mA。
显示字符 共阴极字段码 共阳极字段码 显示字符 共阴极字段码 共阳极字段码 0 3FH C0H A 77H 88H 1 06H F9H B 7CH 83H 2 5BH A4H C 39H C6H 3 4FH B0H D 5EH A1H 4 66H 99H E 79H 86H 5 6DH 92H F 71H 8EH 6 7DH 82H P 73H 8CH 7 07H F8H 熄灭 00H FFH 8 7FH 80H 9 6FH 90H (2)LED数码管的编码方式 数码管与单片机的接口方法一般是a,b,c,d,e,f,g,dp各段依次(有的要通过驱动元件)与单片机某一并行口PX.0~PX.7顺序相连接,a段对应PX.0端……dp对应PX.7端。如在数码管上要显示数字8,那么a,b,c,d,e,f,g都要点亮(小数点不亮),则送入并行口的段码为7FH(共阴)或80H(共阳)。表3-4是不亮小数点的数码管的七段码。 表3-4 LED数码管的七段码
图3-9 七段数码管静态显示原理图 字形码的控制输出可采用硬件译码方式,如采用BCD 7段译码/驱动器74LS48、74LS49、CD4511(共阴极)或74LS46、74LS47、CD4513 (其阳极)也可用软件查表方式输出。 (3)LED数码管的显示方式 LED数码管一般静态显示和动态(扫描)显示两种方式。 静态接口为固定显示方式,无闪烁,其电路可采用一个并行口接一个数据管,数码管的公共端按共阴或共阳分别接地或Vcc。这种接法占用接口多,如果PO口和P2口要用作数据线和地址线,仅用单片机的并行口就只能接二个数码管。也可以用串行接口的方法接多个数码管, 使之静态显示。 动态接口采用各数码管循环轮流显示的方法,当循环显示频率较高时,利用人眼的暂留特性 ,看不出闪烁显示现象,这种显示需要一个接口(常用P0)完成字形码的输出(字形选择),另一接口(常用P2)完成各数码管的轮流点亮(数位选择)。
一、实训的任务和步骤 实训目的 1.掌握数码管的使用方法。 2.掌握数码管动态扫描显示程序的编写和。 3.能进行程序的调试与烧写。 实训内容 任务要求:单片机的I/O接三个LED数码管,其中P1口接字段线,P2口接位选线,编程实现在LED数码管上显示每1s加一计数值。 制作LED数码计数牌
三、 参考程序 SEC EQU 43H ;计数值 SEC_1 EQU 40H ;计数值BCD码个位 SEC_2 EQU 41H ;计数值BCD码十位 SEC_3 EQU 42H ;计数值 BCD 码百位 ORG 0000H LJMP START ;到主程序 ORG 000BH LJMP CT0S ;到定时器0的中断服务程序 ORG 0030H START: MOV R3,#20 ;初始化R3(20次50ms的中断) MOV TMOD,#01H ;T0工作方式1,定时50ms MOV TH0,#04BH MOV TL0,#0FFH SETB EA ;开总中断 SETB ET0 ;开定时器0中断 MOV SEC,#00H ;置计数初值0 SETB TR0 ;启动定时器 MAIN: LCALL BCD8421 LCALL DISPLAY ;调显示子程序 LJMP MAIN
;********************** DELAY: MOV R7,#255 ;延时子程序 D1: DJNZ R7,D1 RET ;************************ CT0S: PUSH A ;1s 的中断服务程序 MOV TH0,#04BH MOV TL0,#0FFH DJNZ R3,EE ;不到1s,中断返回 MOV R3,#10 MOV A,SEC INC A ;计数加1 MOV SEC,A ;保存计数值 EE:POP A RETI ;********************** BCD8421:MOV A,SEC MOV B,#64H DIV AB MOV SEC_3,A ;计算计数值的百位 MOV A,B MOV B,#0AH DIV AB MOV SEC_1,B ;计算计数值的十位 MOV SEC_2,A ;计算计数值的个位 RET
;******************** DISPLAY: MOV P2,#00H ;显示子程序 MOV A,SEC_3 ;显示计数值的百位 MOV DPTR,#CHAR MOVC A,@A+DPTR MOV P1,A MOV P2,#01H LCALL DELAY MOV A,SEC_2 ;显示计数值的十位 MOV DPTR,#CHAR MOVC A,@A+DPTR MOV P1,A MOV P2,#02H LCALL DELAY MOV A,SEC_1 ;显示计数值的个位 MOVC A,@A+DPTR MOV P1,A MOV P2,#04H LCALL DELAY RET CHAR:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共阳型字型码表 END
4、 仿真调试 1)打开Protues仿真软件,绘制仿真电路图; 2)建立本实验的项目文件,接着添加相应源程序,进行编译,直到编译无误; 3)进行仿真运行,观察运行现象,进行设计的修改调试,直到达到要求。 实训考核标准表
二、思考内容 3-1.利用80C51单片机汇编语言进行程序设计的步骤如何? 3-2.常用的程序结构有哪几种?特点如何? 3-3.设被加数存放在内部RAM的20H、21H单元,加数存放在22H、23H单元,若要求和存放在24H、25H中,试编写出16位无符号数相加的程序(采用大端模式存储)。 3-4.编写程序,把外部RAM中1000H~101FH的内容传送到内部RAM的30H~4FH中。 3-5.若80C51的晶振频率为6MHz,试计算延时子程序的延时时间。 DELAY:MOV R7,#0F6H LP: MOV R6,#0FAH DJNZ R6,$ DJNZ R7,LP RET 3-6.要求定时/计数器的运行控制完全由TR1、TR0确定和完全由、高低电平控制时,其初始化编程应作何处理? 3-7.要求从P1.1引脚输出1000Hz方波,晶振频率为12MHz。试设计程序。