单片机原理及应11 LED数码管显示

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

• • • • • • • • • • • • • • •
1.静态显示
• 2位数码管静态显示,只需将两个8位I/O口与数码管连接, 分别驱动十位与个位。 • 例3-11:如图3-14,在两位数码管上显示100以内的计数 值。
1.静态显示
• • • • • • • • • • • • • • • • • • • • • • 1)汇编语言程序 SS: MOV R2,#0 ;显示初值 JY : MOV A,R2 ;R2中的数送A,作为被除数 MOV B,#10 ;设置B寄存器中的数作除数 DIV AB ;除法运算,用于分开数据的十位和个位 MOV DPTR,#TAB MOVC A,@A+DPTR ;除法运算的结果商在A中,为十位数,查表 MOV P3,A ;字型代码由P3输出 MOV A,B ;除法运算的结果余数由B送A, MOVC A,@A+DPTR ;查表 MOV P2,A ;个位数显示 LCALL DEL ;延时 INC R2 ;调整要显示的数 CJNE R2,#100,JY ;显示完否,未完转到JY语句 LJMP SS ;循环 DEL: MOV R7,#0FFH ;延时子程序 LL: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,LL RET TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END
• LED数码显示器是1种由LED发光二极管组合显示字符的 显示器件。它使用了8个LED发光二极管,其中7个用于显 示字符,1个用于显示小数点,故通常称之为7段(也有称 作8段)发光二极管数码显示器。其内部结构如图3-12所示。 • LED数码显示器有两种连接方法: • 1.共阳极接法 • 把发光二极管的阳极连在一起构成公共阳极,使用时公共 阳极接电源正端,每个发光二极管的阴极通过电阻与输入 端相连。 • 2.共阴极接法 • 把发光二极管的阴极连在一起构成公共阴极,使用时公共 阴极接地。每个发光二极管的阳极通过电阻与输入端相连。
ຫໍສະໝຸດ BaiduU1
19 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 18
二、 LED数码显示器的显示段码
• 为了显示字符,要为LED显示器提供显示段码(或称字形 代码),组成一个“8”字形字符的7段,再加上1个小数点 位,共计8段,因此提供给LED显示器的显示段码为1个字 节。各段码位的对应关系如下:
二、 LED数码显示器的显示段码
• 十六进制数的显示段码
三、 LED数码显示器的显示方法
• LED数码显示器的显示方法有静态显示和动态显 示两种。
• 1.静态显示 • 所谓静态显示,就是在同一时刻只显示1种字符, 或者说被显示的字符在同一时刻是稳定不变的。 其显示方法比较简单,一般由一个8位口连接一位 显示的字型控制端,只要将显示段码送至段码口, 并把位控固定连接即可。
1.静态显示
• 例3-9:使用共阴极结构的数码管与单片机的P2口连接, 如图3-13。 • 执行 MOV P1,#3FH这一语句可在数码管上显示数字1。 (对应的C语言语句是P1=0x3F;),3F是1的共阴极显 示代码,同样方法可使其显示其他数字或字符。
XTAL2
静态显示优点: 稳定、亮度高、直 缺点:占用口线多、 不适用于多位显示
9
RST
29 30 31
PSEN ALE EA
R1 R2 R3 10 R4 120 R5 120 R6 120 R7 120
120 120
1 2 3 4 5 6 7 8
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51 PROGRAM=GG.hex
1.静态显示
• • • • • • • • • • • • • • • • • • • 例3-10:1位数码管显示。 1)在上图中的显示器上轮流显示数字0~F。汇编语言程序如下: DDD:MOV R1,#00H ;第一个数字值 MOV R2,#10H ;显示数字的个数设置 HH: MOV A,R1 ;取要显示的数字 MOV DPTR,#TAB ;字型表格首地址送DPTR MOVC A,@A+DPTR ;查表,得到与A中数对应的字型代码 MOV P2,A ;送I/O口,静态显示 LCALL DEL ;延时 INC R1 ;调整下一个要显示的数 DJNZ R2,HH ;显示计数器值减1,未减完时进行下一个数 LJMP DDD ;程序循环 TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;0~F的字型代码表 DEL: MOV R7,#0FFH ;延时程序 WW: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,WW RET END
学习任务3 LED数码管显示接口及编程方法学习
●学习内容 ◆LED数码显示器的结构 ◆LED数码显示器的显示编码原理 ◆单片机与LED数码显示器接口和编程 ●学习目标 ◆了解LED数码显示器的结构 ◆掌握LED数码显示器的显示编码原理 ◆学会单片机与LED数码显示器接口和编程方法
一、 LED数码显示器的结构
1.静态显示
• • • • • • • • • • 2)C语言程序: /**************************声明区***********************/ #include<reg51.h> #define LED P2 void delayms(int); char TAB[16]={ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71}; /**************************主程序***********************/ main() { int i; while(1) //无限循环 { for(i=0;i<16;i++) //个数设置 { LED=TAB[i]; //字型代码由LED代表的P2输出 delayms(100); //延时 } } } /**************************延时函数***********************/ void delayms(int x) { int i,j; for(i=0;i<x;i++) for(j=1;j<=600;j++); }
相关文档
最新文档