• 微机----------LED显示接口


    LED显示器的工作原理

    LED显示器的主要部分是七段发光管,这七段发光段分别称为a、b、c、d、e、f、g有的产品还附带有一个小数点DP。通过7个发光段的组合,可以显示0 ~ 9 A ~ F共16个字母数字,从而实现十六进制数的显示。

    LED显示器有共阳共阴两种结构。
    在这里插入图片描述
    共阳极结构: 数码显示端输入低电平有效,当某一段得到低电平时,则发光

    例:
    比如a、b、d、e、g为低电平,而其他段为高电平时,显示数字2

    在这里插入图片描述



    共阴极结构: 数码显示端输入高电平有效,当某一段得到高电平时,则发光

    在这里插入图片描述
    CPU通过8255A往LED传输七段代码,8255A的端口本身是8位的,因此,有1位悬空未用

    由于LED的一个段发光时,通过的平均电流为10mA左右,所以采用共阴极LED时,阴极接地,而阳极要加驱动电路。用共阴极LED时,如驱动器输出为1,则对应的段发光。



    采用专用芯片进行LED段译码

    采用专用带驱动器的LED显示器段译码器,可以实现对BCD码的译码,但不能对大于9的二进制数译码。
    连接:
    7447有4位输入7位输出。使用时,只要将7447的输入端主机系统输出端口的某4位相连,而7447的7位输出直接与LED显示器的a~g相接,便可以实现对1位BCD码的显示。
    在这里插入图片描述

    软件译码法

    用共阳极数码管来实现1位数字的LED显示。设要显示数字放在DATA单元中,而LEDADD为代码表首址。

    DISP:
    	 LEA AL,[DATA]
    	 MOV BX,OFFSET LEDADD ;取LEDADD的偏移地址放入BX
    	 XLAT LEDADD          ;换码指令,AL=BX+AL
    	 OUT DX,AL
    LEDADD DB 40H	;0的段码
    	   DB 79H	;1的段码
    	   DB 24H	;2的段码
    	   ...
    	   DB 0EH	;F的段码
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10




    静态显示与动态显示

    静态显示: 就是当显示器显示某一个字符时,相应的发光二极管恒定地导通或截至。

    优点:显示稳定,系统在运行过程中,仅仅在需要更新显示内容时,CPU才执行一次显示更新子程序,这样大大节省了CPU时间,提高CPU的工作效率。

    缺点:每个七段显示器都需要一个8位输出口控制。位数较多时,显示口随之增加。

    ❓动态显示:一位一位的轮流点亮各位显示器,对于每一位显示器来说,每隔一段时间点亮一次。

    若显示器的位数不大于8,则控制显示器公共极的电位只需要一个8位口(扫描口,又称为位口),控制各位显示器所显示的字形也需要一个8位口(称为段口

    通过位、段控制端口的共同作用才能确定哪个数码管显示什么数码
    例如:
    8位共阴极显示器和8255A的连接电路如图所示。这里以8255A的A端口做位口,B端口做段口。
    在这里插入图片描述
    对于图的8位显示器,在内存中开辟8个字节的显示缓冲器单元,分别存放8位显示器的显示数据,8255A的A端口中有一位为高电平,即8位显示器中仅有一位公共阴极为低电平,其他位为高电平,8255A的B端口输出相应位显示数据的段数据,使某一位显示一个字符,其他位为暗,依次地改变端口A输出高电平的位,8位显示器就显示出缓冲器中显示数据所确定的字符。

    下面给出动态显示预存在显示缓冲区中的01234567的程序段。
    设8255A的端口地址为:
                        A端口:00C0H                     B端口:00C2H
                        C端口:00C4H                     D端口:00C6H

    A组B组工作于方式0A、B端口输出C端口未用
    方式控制字为80H

    DISBUF	DB	3FH,06H,5BH,4FH,66H,6DH,7DH,07H
    DISINT:
    		MOV	DX,00C6H	;控制口
    		MOV AL,80H		;控制字,A、B端口工作于方式0,A,B口输出
    		OUT DX,AL
    DIS:
    		MOV BH,80	;位选
    		MOV BL,8
    		MOV SI,OFFSET DISBUF
    DISLOP:
    		MOV AL,BH
    		MOV DX,00C0H
    		OUT DX,AL;向A口送位码
    
    		MOV DX,00C2H
    		MOV AL,[SI]
    		OUT DX,AL;向B口送段码
    
    		SHR BH,1
    		INC SI
    		CALL DL1MS	
    		DEC BL
    	
    		JNZ DISLOP
    		JMP DIS
    DL1MS:
    		MOV CX,022BH
    WAT:
    		LOOP WAT
    		RET
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30











    ①②③④⑤⑥⑦⑧⑨⑩



  • 相关阅读:
    【小型物体测速仪】只有原理,无代码
    使用位运算技巧比较两个数中较大的数
    MySQL高级SQL语句
    Service详解
    自动控制原理 传递函数
    Leetcode169题 | 多数元素(python解法)
    第五章:LockSupport与线程中断
    docker for windonws--Windows 10 家庭中文版安装apache zeppelin 0.10.1版本及安全配置
    【EI会议征稿】第四届材料化学与复合材料国际学术会议(MCCM 2023)
    Windows查看核心与线程数
  • 原文地址:https://blog.csdn.net/CSDN_e_1/article/details/128084801