网站首页  |  法律法规  |   调频入门  |   调频发射  |   调频接收  |   天线技术  |   电视电台  |   音响技术  |   单 片 机  |   下载中心  |   广播资讯  |   名站推介  |   本站留言  |  淘宝店铺
  用户名: 密码: 验证码:       
今天是:

共有 34950 位读者读过此文 【选择字体颜色】: 【字体:放大 正常 缩小】     【双击自动滚屏】【图片滚轮变焦】

MB1504调频发射汇编参考程序

发表日期:2007年10月3日   出处:网络收录 作者:FM007 【编辑录入:飞奔

;;;;;;;;;注:本程序未经本站测试,仅供参考
;;;;;;;;;软件按键去抖,LCD数据串行驱动,24c02保存关机频率
;;;;;;;;;MB1504+LCD+SST89E58RD+24C04
;;;;;;;;;Designed by FM007(zuowenping)
;;;;;;;;;Date:OCT,18th,2006

    CLK164  EQU P2.0
    DAT164  EQU P2.1
    E       EQU P2.2
    R_W     EQU P2.3
    RS      EQU P2.4
    CLK     EQU P2.5
    DAT     EQU P2.6
    LE1504  EQU P2.7
    SDA     EQU P1.3
    SCL     EQU P1.2


    ORG 0000H
    AJMP    START
    ORG 0030H
START:  CLR DAT
    CLR LE1504
    CLR CLK
    CLR CLK164
    CLR DAT164
    MOV R1,#99H  ;;;;;;;;;;;;;;;;;;;MB1504 PRE SET START
    MOV R2,#01H
    MOV A,R1
    ACALL   RS1504
    MOV A,R2
    ACALL   RS1504
    NOP
    NOP
    SETB    LE1504
    NOP
    NOP
    NOP
    CLR LE1504
    NOP
    NOP
    NOP     ;;;;;;;;;;;;;;;;;;;MB1504 PRE SET END
    MOV SP,#70H ;;;;;;;;;;;;;;;;;;;LCD PRE SET BEGAIN
    ACALL   INS
    ACALL   CLS
    MOV A,#80H
    ACALL   WRITE_COM
    MOV DPTR,#LINE1
    ACALL   DISPLAY
    MOV A,#0C0H
    ACALL   WRITE_COM
    MOV DPTR,#LINE2
    ACALL   DISPLAY ;;;;;;;;;;;;;;;;;;LCD PRE SET END
    MOV 20H,#00H
    MOV 21H,#04H
    MOV 22H,#05H
    MOV 23H,#07H
    MOV DPTR,#457
    ACALL   READ
    MOV     DPL,24H
    MOV     DPH,25H
    ACALL   DIS
    ACALL   SETFRE  ;;;;;;;;;;;;;;;;;;FRE PRE SET END

 

MAIN:   ACALL   KEY  ;;;MAIN  FUNCTION 
    AJMP    MAIN
   

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;INSTALL  LCD
INS:    MOV A,#38H
    ACALL   WRITE_COM
    MOV A,#0CH
    ACALL   WRITE_COM
    MOV A,#06H
    ACALL   WRITE_COM
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CHECK BUSY
BUSY:   PUSH    ACC
BUSYLOOP:   CLR E
    SETB    R_W
    CLR RS
    SETB    E
    MOV A,P0
    JB  ACC.7,BUSYLOOP
    POP ACC
    ACALL   DEL
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WRITE COM 
WRITE_COM:ACALL BUSY
    CLR E
    CLR RS
    CLR R_W
    SETB    E
;   MOV DB0_DB7,A
    ACALL   RS1602
    CLR E
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;WRITE DATA
WRITE_DATA:ACALL BUSY
    CLR E
    SETB    RS
    CLR R_W
    SETB    E
;   MOV DB0_DB7,A
    ACALL   RS1602
    CLR E
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DELAY
DEL:    MOV R5,#5
L1: MOV R6,#248
    DJNZ    R6,$
    DJNZ    R5,L1
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;164DAT SEND
RS1602: MOV R0,#08H
RSS:    RLC A
    MOV DAT164,C
    SETB    CLK164
    NOP
    NOP
    NOP
    CLR CLK164
    DJNZ    R0,RSS
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MB1504  3BIT SEND
SEND3BIT:   MOV R0,#03H
    RLC A
    RLC A
    RLC A
    RLC A
    RLC A
    AJMP    RCC
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MB1504  8BIT SEND
RS1504: MOV R0,#08H
RCC:    RLC A
    MOV DAT,C
    NOP
    NOP
    NOP
    NOP
    NOP
    SETB    CLK
    CLR CLK
    DJNZ    R0,RCC
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;DISPLAY
DISPLAY:    PUSH    ACC
DIS_LOOP:   CLR A
    MOVC    A,@A+DPTR
    JZ  END_DIS
    ACALL   WRITE_DATA
    INC DPTR
    SJMP    DIS_LOOP
END_DIS:POP ACC
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SET FREQ
SETFRE:ACALL WRITE
    MOV A,DPH
    ACALL   SEND3BIT
    MOV A,DPL
    ACALL   RS1504
    MOV A,#00H
    ACALL   RS1504
    NOP
    NOP
    SETB    LE1504
    NOP
    NOP
    NOP
    CLR LE1504
    NOP
    NOP
    NOP
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;FRE DIS
DIS:    PUSH    ACC
    MOV 40H,DPH
    MOV 50H,DPL
    MOV A,#0CAH
    ACALL   WRITE_COM
    MOV A,20H
    CJNE    A,#00H,FFFF
    MOV A,#0AH
FFFF:   MOV DPTR,#TAB
    MOVC    A,@A+DPTR
    ACALL   WRITE_DATA;;;;;;;;QIANWEI

    MOV A,#0CBH
    ACALL   WRITE_COM
    MOV A,21H
    MOV DPTR,#TAB
    MOVC    A,@A+DPTR
    ACALL   WRITE_DATA;;;;;;;;;BAIWEI

    MOV A,#0CCH
    ACALL   WRITE_COM
    MOV A,22H
    MOV DPTR,#TAB
    MOVC    A,@A+DPTR
    ACALL   WRITE_DATA;;;;;;;;;SHIWEI
   
    MOV A,#0CEH
    ACALL   WRITE_COM
    MOV A,23H
    MOV DPTR,#TAB
    MOVC    A,@A+DPTR
    ACALL   WRITE_DATA;;;;;;;GEWEI
    POP ACC
    MOV DPH,40H
    MOV DPL,50H
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ANJIAN DELAY
DELANJIAN:MOV   R5,#01H
DL11:   MOV R6,#051H   
DL22:   DJNZ    R6,DL22
    DJNZ    R5,DL11
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DEL111:
    MOV R2,#04H
LMS1:   MOV R0,#0A0H
LMS2:   ACALL   DELANJIAN
    DJNZ    R0,LMS2
    DJNZ    R2,LMS1
    RET

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
KEY:    SETB    P1.0
    SETB    P1.1   
    JNB P1.0,GO1
    JNB P1.1,GO2
    AJMP    RETURN
GO1:    LCALL   DELANJIAN
    JNB P1.0,DOWN1
    AJMP    RETURN
GO2:    LCALL   DELANJIAN
    JNB P1.1,UP1
    AJMP    RETURN
DOWN1:  ACALL   DOWN
    AJMP    RETURN
UP1:    ACALL   UP
    AJMP    RETURN
RETURN: ACALL   DEL111
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;   
UP: MOV A,DPL
    INC A
    MOV DPL,A
    CJNE    A,#00H,PANDUAN
    INC DPH
PANDUAN:    INC 23H
    MOV A,23H
    CJNE    A,#10,RETURNUP
    MOV 23H,#00H
    INC 22H
    MOV A,22H
    CJNE    A,#10,RETURNUP
    MOV 22H,#00H
    INC 21H
    MOV A,21H
    CJNE    A,#10,RETURNUP
    MOV 21H,#00H
    INC 20H
RETURNUP:   ACALL   DIS
    ACALL   SETFRE
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;
DOWN:   MOV A,DPL
    DEC A
    MOV DPL,A
    CJNE    A,#0FFH,PANDUAN1
    DEC DPH

PANDUAN1:   DEC 23H
    MOV A,23H
    CJNE    A,#0FFH,RETURN1
    MOV 23H,#09H
    DEC 22H
    MOV A,22H
    CJNE    A,#0FFH,RETURN1
    MOV 22H,#09H
    DEC 21H
    MOV A,21H
    CJNE    A,#0FFH,RETURN1
    MOV 21H,#09H
    DEC 20H
    MOV A,20H
    CJNE    A,#0FFH,RETURN1
    MOV 20H,#00H
RETURN1:ACALL   DIS
    ACALL   SETFRE
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CLS清屏
CLS:    MOV A,#01H
    ACALL   WRITE_COM
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24C04读写  STORE & READ FUNCTION(24C02/04 IIC)
WRITE:
    ACALL   C02START
    MOV A,#0A0H
    ACALL   C02SEND
    ACALL   CACK
    JB  F0,WRITE
    MOV A,#08H
    ACALL   C02SEND
    ACALL   CACK
    JB  F0,WRITE
    MOV 24H,DPL
    MOV 25H,DPH
    MOV R0,#20H
    MOV R1,#06H
GHOST:  MOV A,@R0
    ACALL   C02SEND
    ACALL   CACK
    JB  F0,WRITE
    INC R0
    DJNZ    R1,GHOST
        ACALL   C02STOP
    SETB    SCL
    SETB    SDA
    RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;       READ
READ:   ACALL   C02START
    MOV A,#0A0H
    ACALL   C02SEND
    ACALL   CACK
    JB  F0,READ
    MOV A,#08H
    ACALL   C02SEND
    ACALL   CACK
    JB  F0,READ
    ACALL   C02START
    MOV A,#0A0H
    SETB    ACC.0
    ACALL   C02SEND
    ACALL   CACK
    JB  F0,READ
    MOV R0,#06H  ;;;;;;;;;;;;;      RECEIVE CONTROL
    MOV R1,#20H
GO_ON:  ACALL   RDB
    MOV @R1,A
    DJNZ    R0,ACK1
    ACALL   MNACK
    ACALL   C02STOP
    SETB    SCL
    SETB    SDA
    RET
ACK1:   ACALL   MACK
    JB  F0,GO_ON
    INC R1
    AJMP    GO_ON
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;     RECEIVE BYTE
RDB:    MOV R7,#8
RLP:    SETB    SDA
    SETB    SCL
    MOV C,SDA
    MOV A,R6
    RLC A
    MOV R6,A
    CLR SCL
    DJNZ    R7,RLP
    RET

C02START:SETB   SDA      ;;;;;;;;;      24C02 START
    SETB    SCL
    NOP
    NOP
    NOP
    NOP
    NOP
    CLR SDA
    NOP
    NOP
    NOP
    NOP
    NOP
    CLR SCL
    RET
C02STOP:CLR SDA     ;;;;;;;;;;      24C02  STOP
    SETB    SCL
    NOP
    NOP
    NOP
    NOP
    NOP
    SETB    SDA
    NOP
    NOP
    NOP
    NOP
    NOP
    CLR SCL
    RET

C02SEND:MOV R7,#08H  ;;;;;;;;;;;        24C02 CONTROL BIT SEND
REGO:   RLC A
    JNC SHIFT
    AJMP    QQQQ
SHIFT:  CLR SDA
    AJMP    SAME
QQQQ:   SETB    SDA
SAME:   SETB    SCL
    NOP
    NOP
    NOP
    NOP
    NOP
    CLR SCL
    DJNZ    R7,REGO
    RET

MNACK:  SETB    SDA        ;;;;;;;;;;;;;;;;;    NACK SEND
    SETB    SCL
    NOP
    NOP
    NOP
    NOP
    NOP
    CLR SCL
    CLR SDA
    RET

MACK:   CLR SDA        ;;;;;;;;;;;;;;;;;;;  ACK SEND
    SETB    SCL
    NOP
    NOP
    NOP
    NOP
    NOP
    CLR SCL
    SETB    SDA
    NOP
    NOP
    RET

CACK:   SETB    SDA ;;;;;;;;;;;;;;;     ACK CHECK
    SETB    SCL
    NOP
    NOP
    NOP
    NOP
    NOP
    MOV C,SDA
    MOV F0,C
    CLR SCL
    NOP
    NOP
    NOP
    NOP
    NOP
    RET

LINE1:  DB "304RADIO STATION",00H
LINE2:  DB "LOCAL FRE:   . M",00H
LINE3:  DB "                   ",00H
TAB:    DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,' '
END        

程序打包点击以下地址下载

请点击图标下载浏览:

附件
1
  • 上一篇:MCS-51单片机指令表
  • 下一篇:MB1504控制参考C程序
  • 相关专题:

  • 专题1信息无
  • 专题2信息无
  • 相关评论:(评论内容只代表网友观点,与本站立场无关!)[相关评论无]

    发表、查看更多关于该信息的评论 将本信息发给好友 打印本页

    | 关于我们 | 网站地图 | 联系我们 | 帮助中心 | 图片新闻 |淘宝店铺 |
    Copyright © 2003-2017 www.fmdiy.com All Rights Reserved
    电话:020-86048309   手机:13512700536
    Powered By:ForecastNews v1.5(B1)
    点击这里给我发消息 xml聚合新闻rss2.0 firefox全面支持 Creative Commons License
    页面执行时间:31.250毫秒