智能终端定制开发 ad
MTK/瑞芯微/高通-Android,智能模块/智能终端方案商

深度定制各类智能终端和智能硬件产品,提供硬件选型咨询、参考设计、元器件推荐、驱动开发、行业模块集成、操作系统定制与算法集成等软硬件定制服务。
contact.aspx

Android核心板产品覆盖2G、3G、4G通讯,双核、四核、八核CPU,可选的平台有MTK6580、MTK6737、MTK6750等,Android版本有5.1 6.0 7.0等。
contact.aspx

可广泛应用于低端智能POS、安防监控、车载设备、低端智能机器人、智能家居、智能硬件、工业智能手持设备、低端智能对讲设备、低端警务或执法设备、智能穿戴、贩卖机、物流柜、智能门禁系统等行业和设备。
contact.aspx

可提供以太网转串口透传,WIFI转串口透传,蓝牙转串口透传,CAN总线模拟量控制输出模块等。
contact.aspx

带3G或4G通讯功能,运行android系统,有多个串口,可以外挂各种模块:条码扫描、RFID、指纹识别、身份证识别、磁条卡、ID卡、GPS/北斗模块等。
contact.aspx

具有4G通讯功能,多个RS232或RS485接口,以太网接口,USB接口,CAN接口,多个AD输入。基于Android系统智能平台,方便APP应用开发。器件严格选型,运行稳定,质量可靠。
contact.aspx

LED屏幕 字符移动显示原理及软件设计
[LED显示屏] 2008-06-16

3. 字符移动显示原理及软件设计
图1给出了扩展电路与单片机连接的一个方案。根据这种联接形式,介绍在LED点阵板上实现字符移动显示的原理。该方案是在点阵板CD-2057上显示自下向上漂移的字母或图案。由于只有7×5=35只发光三极管,像素太少,不宜显示汉字,因为显示效果不好看,但工作原理相同。若将点阵板增至4块,显示的汉字就很美观了。
1. 程序框图
 
图3 主程序及字扫描子程序
在主程序中,使用DPTR地址寄存器作为地址指针,开始时指向数据表首地址。第一次循环时,DPTR指向第一列,在循环体中DPTR加1,第二次循环时,地址指针后移一列。帧扫描子程序每次扫描LED点阵板7行数据。数据串行送至74HC164输出端连接的5根列线。行线作控制开关使用,由74HC595输出端提供控制信号。第一次送出第一个字符最上一行5位列数据时,行扫描开关除了置第一行为低外,其余行置高,即打开第一行,关闭其余行。第二次送出第一个字符第二行5位列数据,行扫描开关置第二行为低,其余行置高,打开第二行,关闭其余行,以后类推。用这样方式完成一帧扫描。
数据表按显示要求编码。每一个字节为LED点阵板一行中5位相应的显示数据。由于只发送5次,所以有效数据只在一个字节的低5位。当列线为0时与行线相交点的发光二极管关,列线为1时开。数据表中一行7列的7个字节数据为一个字符的编码信息。
DPTR在帧扫描子程序外置数据表地址的基值,R1作地址偏移量,以两者之和对数据寻址。R1的初值为0,当DPTR为表首地址时,在子程序的循环中R1从0增加到6,取出第一个显示字符的全部7个字节并与行开关配合依次逐行显示,完成一帧扫描操作。
DPTR在每次循环后加1,使得它所指向的数据表地址后移。此后调用帧扫描子程序时,每帧显示的字符地址将向后移。例如第二次调用帧扫描子程序,DPTR的值为表首地址加1,此时当R1再从0增加到6时,取出的是第一个显示字符后6个字节和第二个显示字符的第一个字节,并与行开关配合依次逐行显示,完成一帧扫描操作。此时看到的显示效果为第一个显示字符向上移动了一行,原第一行从上端移出了屏幕,而第二个显示字符的第一行从下端进入了屏幕。随着DPTR在每次循环后加一次次地加1,每帧显示都将当前显示字符的一行从上端移出,将后续显示字符的一行从下端移入,形成了所有设置字符的流水显示。
DPTR能增加的最大数是循环计数器R3的初值,因此R3的初值应比数据表中数据总数少7,否则DPTR与R1相加后将指到表外。为了保证最后一个字也能移动显示,DPTR又要能指向最后一个显示字符的最后一个编码字节。因此将数据表最后一行用了全0数据,结果以黑屏显示效果结束全部字符一场移动显示。
每帧反复循环扫描的次数,决定显示移动速度。在主程序中,移动速度由帧扫描次数计数器R2中的初值决定。该值要根据不同晶振的频率和个人的喜好决定。
 
图4 行、列数据发送子程序
在图3所示的列数据发送子程序中,CPU通过P1.5端口的5次串行移位操作,将数据送到74HC164的输出端及LED点阵板CD-2057的5根列线。
LED点阵板CD-2057按重合法方式显示,可将数据同时送到5条列线,然后开启这5列数据应出现的行线,关闭其它行。由于只有7根行线与74HC595的第0到6位连接,第一次调用字扫描子程序,CPU通过P1.2端口的8次串行移位操作,将控制字#10111111B送到74HC595的输出端及LED点阵板CD-2057的7根列线。控制字#10111111B中的数据0处于输出端第6位,点亮LED点阵板CD-2057顶端第一行,其余行关闭。以后控制字循环经过循环移位后发送至74HC595输出端,依次点亮第二行、第三行等等,实现了帧扫描操作。由于LED点阵板只有7位,所以有一次操作将0移出LED点阵板,此时屏幕全关。

 

; Define I/O for lattice
P_ROW_DATA BIT P1.2 ;行数据发送端口
P_ROW_CLK BIT P1.0 ;行时钟输出端口
P_ROW_CS   BIT P1.1 ;行数据输出控制端口
P_COL_DATA BIT P1.5 ;列数据发送端口至74HC164
P_COL_CLR  BIT P1.4 ;列线清口,现直接接Vcc
P_COL_CLK  BIT P1.3 ;列时钟输出端口

ORG 0000H

START:


    MOV   DPTR, #POINT_TAB    ;置表首地址
    MOV   R3, #35             ;比要显示的总字节数少7。

P_WORD_MOVE:

    MOV   R2, #20             ;每个字符循环扫描的次数,决定显示移动速度。
P_SCAN_DEGREE:


    ACALL P_WORD_SCAN         ;调帧扫描程序
    DJNZ  R2, P_SCAN_DEGREE   ;反复扫描同一帧
    INC   DPTR                ;帧数据地址前移一行
    DJNZ  R3, P_WORD_MOVE     ;扫描一场的全部字符
    AJMP  START

; Scan function
P_WORD_SCAN: MOV R1, #00H  ;置表地址偏移指针初值
    MOV R5, #10111111B     ;置行扫描字
    MOV R4, #07            ;置行扫描次数
P_NEXT_BIT:


    MOV   A, R1
    MOVC  A, @A+DPTR       ;取一个列数据
    ACALL P_COL_SEND       ;发送列数据
    MOV   A,R5               ;取行扫描字
    ACALL P_ROW_SEND       ;显示一行
    ACALL DELAY            ;维持点亮一行
    MOV   A, R5
    RR    A                ;扫描字指向下一行
    MOV   R5, A
    INC   R1               ;指向下一行的列数据
    DJNZ  R4, P_NEXT_BIT   ;一帧7行数据扫描完否?未完再扫
    RET

; Send data for col display.
P_COL_SEND:


    MOV  R0,#05H            ;置列计数值
P_COL_NEXTBIT:


    CLR  P_COL_CLK          ;列时钟线置低
    RRC  A                  ;带进位循环移出数据最低位至进位位
    MOV  P_COL_DATA,C       ;送一位数据至列发送端口
    SETB P_COL_CLK          ;列时钟线置高,串行发送一位列数据
    DJNZ R0,P_COL_NEXTBIT   ;一列数据发完否?未完再发
    RET

; Send data for Row select
P_ROW_SEND:


    CLR  P_ROW_CS             ;关闭74HC595输出寄存器
    MOV  R0,#08H              ;置行计数值
P_ROW_NEXTBIT:


    CLR  P_ROW_CLK            ;行时钟线置低
    RRC  A                    ;带进位循环移出控制字最低位至进位位
    MOV  P_ROW_DATA,C         ;送一位数据至行发送端口
    SETB P_ROW_CLK            ;行时钟线置高,串行发送一位行数据
    DJNZ R0,P_ROW_NEXTBIT     ;一行数据发完否?未完再发
    SETB P_ROW_CS             ;开启74HC595输出寄存器
    RET

DELAY:


    MOV  R7,#30
DELAY_LOOP:

    MOV  R6,#30
    DJNZ R6,$
    DJNZ R7,DELAY_LOOP
    RET

; Word model table
POINT_TAB:


    DB 00H,00H,00H,00H,00H,00H,00H
    DB 00H,0AH,0AH,0EH,0AH,0AH,00H ;H
    DB 00H,0EH,08H,0EH,08H,0EH,00H ;E
    DB 00H,08H,08H,08H,08H,0EH,00H ;L
    DB 00H,08H,08H,08H,08H,0EH,00H ;L
    DB 00H,0AH,15H,11H,0AH,04H,00H ;O
    DB 00H,00H,00H,00H,00H,00H,00H

END


 

 

[LED显示屏添加评论 | 评论/阅读(0/996)
评论
昵称
主页
内容
递交


Copyright @ 我的开发笔记     2008 - 2017         粤ICP备19155526号-1