二、LED数码管编码方式 表9-1共阴和共阳LED数码管几种八段编码表 显示共阴顺序小数点暗 共阴逆序小数点暗共阳顺序共阳顺序 数字 dpgf e d c ba16进制 a bc d e f g dp16进制小数点亮小数点暗 001111113FH11111100FCH 40H COH 0000011006H0110000060H 79H FsH 0123456789 010110115BH11011010DAH24HA4H 010011114FH11110010F2H 30H BOH 0110011066H0110011066H 19H 99H 011011016DH10110110B6H 12H 92H 0111110 7DH10111110BEH 02H 82H 0000011107H11100000EOH78H F8H 011111117FH11111110FEH 00H 80H 011011116FH11110110F6H 10H 90H
二、LED数码管编码方式 表9-1 共阴和共阳LED数码管几种八段编码表 显示 数字 共阴顺序小数点暗 共阴逆序小数点暗 共阳顺序 小数点亮 共阳顺序 Dp g f e d c b a 16进制 a b c d e f g Dp 16进制 小数点暗 0 0 0 1 1 1 1 1 1 3FH 1 1 1 1 1 1 0 0 FCH 40H C0H 1 0 0 0 0 0 1 1 0 06H 0 1 1 0 0 0 0 0 60H 79H F9H 2 0 1 0 1 1 0 1 1 5BH 1 1 0 1 1 0 1 0 DAH 24H A4H 3 0 1 0 0 1 1 1 1 4FH 1 1 1 1 0 0 1 0 F2H 30H B0H 4 0 1 1 0 0 1 1 0 66H 0 1 1 0 0 1 1 0 66H 19H 99H 5 0 1 1 0 1 1 0 1 6DH 1 0 1 1 0 1 1 0 B6H 12H 92H 6 0 1 1 1 1 1 0 1 7DH 1 0 1 1 1 1 1 0 BEH 02H 82H 7 0 0 0 0 0 1 1 1 07H 1 1 1 0 0 0 0 0 E0H 78H F8H 8 0 1 1 1 1 1 1 1 7FH 1 1 1 1 1 1 1 0 FEH 00H 80H 9 0 1 1 0 1 1 1 1 6FH 1 1 1 1 0 1 1 0 F6H 10H 90H
显示数转换为显示字段码的步骤: (1)从显示数中分离出显示的每一位数字 方法是将显示数除以十进制的权 (2)将分离出的显示数字转换为显示字段码 方法是查表 例9-1】已知显示数存在内RAM30H(高位) 3H中,试将其转换为5位共阴字段码(顺序), 存在以30H(高位)为首址的内RAM中
【例9-1】已知显示数存在内RAM 30H(高位)、 31H中,试将其转换为5位共阴字段码(顺序), 存在以30H(高位)为首址的内RAM中。 ⑴ 从显示数中分离出显示的每一位数字 方法是将显示数除以十进制的权 显示数转换为显示字段码的步骤: ⑵ 将分离出的显示数字转换为显示字段码 方法是查表
解:连续调用下列二个子程序即可 (1)分离显示数字子程序 SPRT: Mov RO. #30H 置万位BCD码间址 mov A 30H 置被除数 mov B 31H Mov R6.#27H ;置除数10000=2710H MOV R5 #10H LCALL SUM ;除以1000,0万位商存30H,余数存A、B MOv R6.#03H 置除数1000=03E8H Mov R5. #oE8H INC RO 指向千位商间址(31H LCALL SUM 除以1000千位商存31H余数存A、B MOV R6.#0 ;置除数100 MOvR5,#100 INC RO 指向百位商间址(32H) LCALL SUM 除以100,百位商存32H,余数存A(B=0) MOV B #10 置除数10 DIV AB ;除以10 INC RO ;指向十位商间址(33H MOV @RO. A 位商存33H XCH A B ;读个位数 INC RO ;指向个位间址(34H MOV @RO, A 位存34H RET 说明:SUM是16位除以16位子程序:(A、B÷(R6、R5)=商@R0,余数(A、B)。(参阅例4-9)
SPRT: MOV R0,#30H ;置万位BCD码间址 MOV A,30H ;置被除数 MOV B,31H ; MOV R6,#27H ;置除数10000 = 2710H MOV R5,#10H ; LCALL SUM ;除以10000,万位商存30H,余数存A、B MOV R6,#03H ;置除数1000 = 03E8H MOV R5,#0E8H ; INC R0 ;指向千位商间址(31H) LCALL SUM ;除以1000,千位商存31H,余数存A、B MOV R6,#0 ;置除数100 MOV R5,#100 ; INC R0 ;指向百位商间址(32H) LCALL SUM ;除以100,百位商存32H,余数存A(B=0) MOV B,#10 ;置除数10 DIV AB ;除以10 INC R0 ;指向十位商间址(33H) MOV @R0,A ;十位商存33H XCH A,B ;读个位数 INC R0 ;指向个位间址(34H) MOV @R0,A ;个位存34H RET ; 解:连续调用下列二个子程序即可。 ⑴ 分离显示数字子程序 说明:SUM是16位除以16位子程序:(A、B)÷(R6、R5)=商@R0,余数(A、B)。(参阅例4-9)
(2)转换显示字段码子程序 CHAG mov DPTR #TAB ;置共阴字段码表首址 Mov RO. #30H ;置显示数据区首址 CGLP: MOv A ORO 取显示数字 MOVc A @A+DPTR ;读相应显示字段码 MOV @RO. A ;存显示字段码 INC RO 指向下一显示数字 CJNE R0,#35H,CGLP;判5个显示数字转换完否?未完继续 RET ;转换完毕,结束 TAB:DB3FH,06H,5BH,4FH,66H;共阴字段码表 DB 6DH. 7DH 07H 7FH 6FH
⑵ 转换显示字段码子程序 CHAG: MOV DPTR,#TAB ;置共阴字段码表首址 MOV R0,#30H ;置显示数据区首址 CGLP: MOV A,@R0 ;取显示数字 MOVC A,@A+DPTR ;读相应显示字段码 MOV @R0,A ;存显示字段码 INC R0 ;指向下一显示数字 CJNE R0,#35H,CGLP ;判5个显示数字转换完否?未完继续 RET ;转换完毕,结束 TAB: DB 3FH,06H,5BH,4FH,66H ;共阴字段码表 DB 6DH,7DH,07H,7FH,6FH ;
静态显示方式及其典型应用电路 LED数码管显示分类:静态显示方式和动态显示方式。 (1)静态显示方式,每一位字段码分别从I/0控制口输 出,保持不变直至CPU刷新。 特点:编程较简单,但占用I/0口线多,一般适用 于显示位数较少的场合。 (2)动态显示方式,在某一瞬时显示一位,依次循环 扫描,轮流显示,由于人的视觉滞留效应,人们看 到的是多位同时稳定显示。 特点:占用I/0端线少,电路较简单,编程较复 杂,CPU要定时扫描刷新显示。一般适用于显示位数 较多的场合
三、静态显示方式及其典型应用电路 ⑵ 动态显示方式,在某一瞬时显示一位,依次循环 扫描,轮流显示,由于人的视觉滞留效应,人们看 到的是多位同时稳定显示。 特点:占用I/O端线少,电路较简单,编程较复 杂,CPU要定时扫描刷新显示。一般适用于显示位数 较多的场合。 LED数码管显示分类:静态显示方式和动态显示方式。 ⑴ 静态显示方式,每一位字段码分别从I/O控制口输 出,保持不变直至CPU刷新。 特点:编程较简单,但占用I/O口线多,一般适用 于显示位数较少的场合