原创 MB1504调频发射汇编参考程序

2009-1-27 20:58 2820 5 6 分类: MCU/ 嵌入式

;MB1504调频发射汇编参考程序    


;本程序摘自网络,如果作者看见,可以发邮件到y8118@tom.com ,本人将注明出;;;处或作者。
;;;;;;;;;;注:本程序未经本站测试,仅供参考
;;;;;;;;;软件按键去抖,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        


asm程序https://static.assets-stash.eet-china.com/album/old-resources/2009/1/27/e6e7e814-fd35-4c4a-bbe8-518794e8c3f3.rar


C程序https://static.assets-stash.eet-china.com/album/old-resources/2009/1/27/d3d00765-d2b0-4145-a1b0-576e8df97b63.rar


 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

yypengqing_860268000 2009-11-23 10:50

收下了 谢谢
相关推荐阅读
用户389572 2010-12-12 21:02
2010工商管理-资源与营运管理机考答案
2010工商管理-资源与营运管理机考答案...
用户389572 2010-04-27 21:21
千古望江 百世芙蓉
横批:千古望江 百世芙蓉 上联:望江楼,望江流,望江楼上望江流,江楼千古,江流千古。 下联:芙蓉城,芙蓉盛,芙蓉城下扶蓉盛,蓉城百世,蓉盛百世。高人请指正或对下联。...
用户389572 2009-11-27 12:50
川电09秋工商专全部答案
川电09秋工商专全部答案(地域文化外)RAR解压后用金山WPS2009打开。https://static.assets-stash.eet-china.com/album/old-resources/...
用户389572 2009-10-09 01:08
寒热交错型H1N1流感中药方
特别说明:1、本方仅使用于寒热错杂型H1N1流感预防和治疗中药方,其他类型的H1N1不能应用!切记切记,人命关天,不得儿戏!2、鉴于西药的副作用:耐药性、病毒变异、治标不治本等,治病首选中药,西药次之...
用户389572 2009-10-09 00:37
药名四季歌
药名四季歌春春风和煦满常山,芍药天麻及牡丹;远志去寻使君子,当归何必问泽兰。夏端阳半夏五月天,菖蒲制酒乐半年;庭前娇女红娘子,笑与槟榔同采莲。秋秋菊开花遍地黄,一日雨露一回香;牧童去取国公酒,醉到天南...
用户389572 2009-10-09 00:34
中药名歇后语
中药名歇后语我国中草药品种繁多,使用历史悠久,中草药知识在民间传播甚广,不少已为人们用作歇后语,读起来十分形象、生动。如下:  口吃青果——先苦后甜。  花椒大料——两味。  水银泻地——无孔不入。 ...
EE直播间
更多
我要评论
1
5
关闭 站长推荐上一条 /3 下一条