;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
yypengqing_860268000 2009-11-23 10:50