这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 51单片机驱动OSD芯片M35055示例程序

共1条 1/1 1 跳转至

51单片机驱动OSD芯片M35055示例程序

工程师
2014-10-04 19:09:09     打赏
    M35055是日本三菱公司推出的OSD芯片,它可以显示24*10或32*7个字符,字库中包含了常用的大部分字符。这只芯片的外围电路比较简单,但需要外部振荡电路。51单片机驱动M35055的程序如下:
;------------------------------------------------
;在电视屏幕上显示"0123456789"
;------------------------------------------------
    M35055_CS             EQU           P1.0
    M35055_SCK            EQU           P1.1
    M35055_SIN            EQU           P1.2
    M35055_NUM           EQU           44H
    M35055_DATA         EQU           45H 



    ORG 0000H
    AJMP START
START:
    LCALL M35055
    SJMP $
M35055:
    LCALL M35055_INIT
    CLR M35055_CS
    MOV M35055_DATA,#0F8H                ;先清屏
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00H
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00H
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00H
    LCALL SEND_DATA_M35055
    SETB M35055_CS




    CLR M35055_CS
    MOV M35055_DATA,#20H                 ;0
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000010B
    LCALL SEND_DATA_M35055




    MOV M35055_DATA,#21H                 ;1
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000010B
    LCALL SEND_DATA_M35055




    MOV M35055_DATA,#22H                 ;2
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000010B
    LCALL SEND_DATA_M35055
 
    MOV M35055_DATA,#23H                 ;3
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000010B
    LCALL SEND_DATA_M35055




    MOV M35055_DATA,#24H                 ;4
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000010B
    LCALL SEND_DATA_M35055




    MOV M35055_DATA,#25H                 ;5
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000010B
    LCALL SEND_DATA_M35055




    MOV M35055_DATA,#26H                 ;6
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000010B
    LCALL SEND_DATA_M35055




    MOV M35055_DATA,#27H                 ;7
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000010B
    LCALL SEND_DATA_M35055




    MOV M35055_DATA,#28H                 ;8
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000010B
    LCALL SEND_DATA_M35055




    MOV M35055_DATA,#29H                 ;9
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000010B
    LCALL SEND_DATA_M35055
    SETB M35055_CS




    CLR M35055_CS
    MOV M35055_DATA,#0F0H
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00H
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#10001010B                       ;F0
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000100B
    LCALL SEND_DATA_M35055
    SETB M35055_CS
    
    CLR M35055_CS
    MOV M35055_DATA,#0F1H                           ;F1   水平区域设置
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00H
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#01011111B                       
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00011111B
    LCALL SEND_DATA_M35055
    SETB M35055_CS




    CLR M35055_CS
    MOV M35055_DATA,#0F2H                           ;F2   垂直区域设置
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00H
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00100011B                       
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00011111B
    LCALL SEND_DATA_M35055
    SETB M35055_CS
 
    CLR M35055_CS
    MOV M35055_DATA,#0F3H                            ;F3  设置字符大小
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00H
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000000B                       
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000000B
    LCALL SEND_DATA_M35055
    SETB M35055_CS
  
    CLR M35055_CS
    MOV M35055_DATA,#0F4H                          ;F4  各行显示模式设置
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00H
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#11110111B                      
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000011B
    LCALL SEND_DATA_M35055
    SETB M35055_CS
  
    CLR M35055_CS
    MOV M35055_DATA,#0F5H                          ;F5  制式设置
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00H
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#01110000B                       
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00000000B
    LCALL SEND_DATA_M35055
    SETB M35055_CS




    CLR M35055_CS
    MOV M35055_DATA,#0F6H                               ;F6  颜色设置
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00H
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#10101100B                       
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00100000B
    LCALL SEND_DATA_M35055
    SETB M35055_CS




    CLR M35055_CS
    MOV M35055_DATA,#0F7H                              ;F7  光标设置
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00H
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#11110000B                     
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00101000B
    LCALL SEND_DATA_M35055
    SETB M35055_CS




    CLR M35055_CS
    MOV M35055_DATA,#0F8H                               ;F8  显示模式设置
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00H
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#01001111B                       
    LCALL SEND_DATA_M35055
    MOV M35055_DATA,#00111111B
    LCALL SEND_DATA_M35055
    SETB M35055_CS
    SETB M35055_SIN
    SETB M35055_SCK
    RET
;----------------------------
;M35055初始化
;----------------------------
M35055_INIT:
    SETB M35055_CS
    SETB M35055_SIN
    SETB M35055_SCK


    RET
;-----------------------------
;发送数据给M35055
;-----------------------------
SEND_DATA_M35055:
    MOV A,M35055_DATA
    MOV M35055_NUM,#8
    CLR C
SEND_DATA_LOOP:
    RRC A
    MOV M35055_SIN,C
    NOP
    NOP
    CLR M35055_SCK
    NOP
    NOP
    SETB M35055_SCK
    NOP
    DJNZ M35055_NUM,SEND_DATA_LOOP
    RET
    END



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]