siuhiong的笔记 https://bbs.21ic.com/?646451 [收藏] [复制] [RSS]

日志

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

已有 541 次阅读2012-12-19 19:37 |系统分类:单片机| 单片机, OSD, M35055

       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


  ------来源:www.dpjzj.com


路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)