FMUSER Wirless Transmit Video And Audio More Easier !
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->Afrikaans
sq.fmuser.org ->Albanian
ar.fmuser.org ->Arabic
hy.fmuser.org ->Armenian
az.fmuser.org ->Azerbaijani
eu.fmuser.org ->Basque
be.fmuser.org ->Belarusian
bg.fmuser.org ->Bulgarian
ca.fmuser.org ->Catalan
zh-CN.fmuser.org ->Chinese (Simplified)
zh-TW.fmuser.org ->Chinese (Traditional)
hr.fmuser.org ->Croatian
cs.fmuser.org ->Czech
da.fmuser.org ->Danish
nl.fmuser.org ->Dutch
et.fmuser.org ->Estonian
tl.fmuser.org ->Filipino
fi.fmuser.org ->Finnish
fr.fmuser.org ->French
gl.fmuser.org ->Galician
ka.fmuser.org ->Georgian
de.fmuser.org ->German
el.fmuser.org ->Greek
ht.fmuser.org ->Haitian Creole
iw.fmuser.org ->Hebrew
hi.fmuser.org ->Hindi
hu.fmuser.org ->Hungarian
is.fmuser.org ->Icelandic
id.fmuser.org ->Indonesian
ga.fmuser.org ->Irish
it.fmuser.org ->Italian
ja.fmuser.org ->Japanese
ko.fmuser.org ->Korean
lv.fmuser.org ->Latvian
lt.fmuser.org ->Lithuanian
mk.fmuser.org ->Macedonian
ms.fmuser.org ->Malay
mt.fmuser.org ->Maltese
no.fmuser.org ->Norwegian
fa.fmuser.org ->Persian
pl.fmuser.org ->Polish
pt.fmuser.org ->Portuguese
ro.fmuser.org ->Romanian
ru.fmuser.org ->Russian
sr.fmuser.org ->Serbian
sk.fmuser.org ->Slovak
sl.fmuser.org ->Slovenian
es.fmuser.org ->Spanish
sw.fmuser.org ->Swahili
sv.fmuser.org ->Swedish
th.fmuser.org ->Thai
tr.fmuser.org ->Turkish
uk.fmuser.org ->Ukrainian
ur.fmuser.org ->Urdu
vi.fmuser.org ->Vietnamese
cy.fmuser.org ->Welsh
yi.fmuser.org ->Yiddish
51 MCU control stereo FM transmitter making BH1415F
Description: 1, control using MCS51, using the smallest application system design, the external circuit is very simple ! 16 button design , you can control 80.0 ~ 109.9MHz frequency range ;
2,4 digit common anode LED display frequency ;
Features: 1 , can be set independently one hundred , ten , a bit , the frequency of the decimal point ;
2, the transmitting frequency presets ;
3 , mono / stereo controls ; band stereo transmitter instructions ;
-------------------------------------------------- -------------------------------------
; *************************** ;
; CNC FM controller ;
; *************************** ;
;
; 26H-29H decimal place display , a bit , ten , one hundred BCD code number , 24H-25H discharge frequency control data (hexadecimal )
;
CONBITL EQU 21H; frequency control byte low 8
CONBITH EQU 22H; frequency control byte high eight
KEYWORD EQU 23H; When storing key value P1 port scanning
;
;
ORG 0000H; program start address
LJMP START; transfer START execution
ORG 0003H;
RETI; do not interrupt program
ORG 000BH;
RETI; do not interrupt program
ORG 0013H;
RETI; do not interrupt program
ORG 001BH;
RETI; do not interrupt program
ORG 0023H;
RETI; do not interrupt program
ORG 002BH;
RETI; do not interrupt program
;
; Initialization procedure
CLEARMEN: MOV R0, # 20H; 20H-29H circulation cleared
MOV R1, # 0AH;
CLEARLOOP: MOV @ R0, # 00H;
INC R0;
DJNZ R1, CLEARLOOP;
MOV P0, # 0FFH; four ports set
MOV P1, # 0FFH;
MOV P2, # 0FFH;
MOV P3, # 0FFH;
CLR P3.0; BH1415 prohibited actions
CLR P3.1;
CLR P3.2;
LCALL KEYFUN15; home stereo transmission mode , open stereo transmitter indicator
CLEAR1: MOV PCON, # 00H; control register is cleared
MOV 29H, # 00H; set the initial value of 88MHZ ( shown as 088.0 )
MOV 28H, # 08H;
MOV 27H, # 08H;
MOV 26H, # 00H;
LCALL DISPUPDAT; writes BH1415 chip ( modified transmission frequencies )
RET; subroutine returns
;
; Main
START: LCALL CLEARMEN; power on initialization
MAIN: LCALL KEYWORK; investigate key subroutine
LCALL DISPLAY; LED display time
AJMP MAIN; transfer MAIN cycle
NOP; PC error handling
NOP;
AJMP START; re-initialize
;
; 4 * 4 matrix key scanning routine check
KEYWORK: MOV P1, # 0FFH;
CLR P1.0;
MOV A, P1;
ANL A, # 0F0H;
CJNE A, # 0F0H, KEYCON;
SETB P1.0;
CLR P1.1;
MOV A, P1;
ANL A, # 0F0H;
CJNE A, # 0F0H, KEYCON;
SETB P1.1;
CLR P1.2;
MOV A, P1;
ANL A, # 0F0H;
CJNE A, # 0F0H, KEYCON;
SETB P1.2;
CLR P1.3;
MOV A, P1;
ANL A, # 0F0H;
CJNE A, # 0F0H, KEYCON;
SETB P1.3;
RET;
KEYCON: LCALL DL10MS; debounce processing
MOV A, P1;
ANL A, # 0F0H;
CJNE A, # 0F0H, KEYCHE;
KEYOUT: RET; interference, the subroutine returns
KEYCHE: MOV A, P1;
MOV KEYWORD, A;
CJLOOP: LCALL DISPLAY;
MOV A, P1;
ANL A, # 0F0H;
CJNE A, # 0F0H, CJLOOP;
MOV R7, # 00H;
MOV DPTR, # KEYTAB;
CHEKEYLOOP: MOV A, R7;
MOVC A, @ A + DPTR;
XRL A, KEYWORD;
JZ KEYOK; 0 ( equal ) turn KEYOK
INC R7; range, plus a number of look-up table
CJNE R7, # 10H, CHEKEYLOOP;
RET;
;
KEYOK: MOV A, R7;
MOV B, A; B into
RL A; left
ADD A, B; adding ( key to deal with JMP 3 by 3 -byte instruction )
MOV DPTR, # KEYFUNTAB;
JMP @ A + DPTR;
KEYFUNTAB: LJMP KEYFUN00;
LJMP KEYFUN01;
LJMP KEYFUN02;
LJMP KEYFUN03
LJMP KEYFUN04
LJMP KEYFUN05
LJMP KEYFUN06
LJMP KEYFUN07
LJMP KEYFUN08
LJMP KEYFUN09
LJMP KEYFUN10
LJMP KEYFUN11
LJMP KEYFUN12
LJMP KEYFUN13
LJMP KEYFUN14
LJMP KEYFUN15; jump to the 15th key functionality of the program
RET; bulk transfer error return
;
; The key number corresponding to the P1 port value table ( while pressing two keys are invalid operation )
KEYTAB: DB 0EEH, 0DEH, 0BEH, 7EH, 0EDH, 0DDH, 0BDH, 7DH
DB 0EBH, 0DBH, 0BBH, 7BH, 0E7H, 0D7H, 0B7H, 77H, 0FFH, 0FFH
;
; No. 0 key functionality of the program
KEYFUN00: INC 29H;
MOV A, 29H;
CLR C;
CJNE A, # 02H, FUN00;
FUN00: JC FUN00OUT;
MOV 29H, # 00H;
FUN00OUT: MOV A, 29H;
XRL A, # 01H;
JNZ F00OUT1;
MOV 28H, # 00H;
AJMP F00OUT;
F00OUT1: MOV 28H, # 08H;
F00OUT: LCALL DISPUPDAT;
RET; Returns
;
; The 1st key functionality of the program
KEYFUN01: INC 28H;
MOV A, 28H;
CLR C;
CJNE A, # 0AH, FUN01;
FUN01: JC FUN01OUT;
MOV 28H, # 00H;
FUN01OUT: MOV A, 29H;
XRL A, # 01H;
JNZ F01OUT;
MOV 28H, # 00H;
AJMP F001OUT;
F01OUT: MOV A, 28H;
XRL A, # 08H;
JZ F001OUT;
MOV A, 28H;
XRL A, # 09H;
JZ F001OUT;
MOV 28H, # 08H;
F001OUT: LCALL DISPUPDAT;
RET; Returns
;
; The 2nd key function program
KEYFUN02: INC 27H; single digits plus 1
MOV A, 27H;
CLR C;
CJNE A, # 0AH, FUN02; determine whether less than 10
FUN02: JC FUN02OUT; less than 10 turns FUN02OUT
MOV 27H, # 00H; greater than or equal to 10 is cleared to 0
FUN02OUT: LCALL DISPUPDAT; writing control chip ( modified transmission frequency )
RET;
;
; The 3rd key functionality of the program
KEYFUN03: INC 26H; single digits plus 1
MOV A, 26H;
CLR C;
CJNE A, # 0AH, FUN03; judgment is not less than 10
FUN03: JC FUN03OUT; less than 10 turns FUN03OUT
MOV 26H, # 00H; greater than or equal to 10 is cleared to 0
FUN03OUT: LCALL DISPUPDAT; writing control chip ( modified transmission frequency )
RET; Returns
;
; 04 key functional programs ( frequency preset keys )
KEYFUN04: MOV 29H, # 01H; preset 109.0MHZ transmitting frequency
MOV 28H, # 00H
MOV 27H, # 09H
MOV 26H, # 00H
LCALL DISPUPDAT; writing control chip ( modified transmission frequency )
RET
;
; 05 key functional programs ( frequency preset keys )
KEYFUN05: MOV 29H, # 01H; preset 108.0MHZ transmitting frequency
MOV 28H, # 00H
MOV 27H, # 08H
MOV 26H, # 00H
LCALL DISPUPDAT; writing control chip ( modified transmission frequency )
RET
;
; 06 key functional programs ( frequency preset keys )
KEYFUN06: MOV 29H, # 01H; preset 105.0MHZ transmitting frequency
MOV 28H, # 00H
MOV 27H, # 05H
MOV 26H, # 00H
LCALL DISPUPDAT; writing control chip ( modified transmission frequency )
RET
;
; The 7th key functionality of the program ( frequency preset keys )
KEYFUN07: MOV 29H, # 01H; preset 100.0MHZ transmitting frequency
MOV 28H, # 00H
MOV 27H, # 00H
MOV 26H, # 00H
LCALL DISPUPDAT; writing control chip ( modified transmission frequency )
RET
;
; 08 key functional programs ( frequency preset keys )
KEYFUN08: MOV 29H, # 00H; preset transmission frequency 98.0MHZ
MOV 28H, # 09H
MOV 27H, # 08H
MOV 26H, # 00H
LCALL DISPUPDAT; writing control chip ( modified transmission frequency )
RET
;
; 09 key functional programs ( frequency preset keys )
KEYFUN09: MOV 29H, # 00H; preset transmission frequency 96.0MHZ
MOV 28H, # 09H
MOV 27H, # 06H
MOV 26H, # 00H
LCALL DISPUPDAT; writing control chip ( modified transmission frequency )
RET
;
; The 10th key functionality of the program ( frequency preset keys )
KEYFUN10: MOV 29H, # 00H; preset transmission frequency 94.0MHZ
MOV 28H, # 09H
MOV 27H, # 04H
MOV 26H, # 00H
LCALL DISPUPDAT; writing control chip ( modified transmission frequency )
RET
;
; 11 key functional programs ( frequency preset keys )
KEYFUN11: MOV 29H, # 00H; preset transmission frequency 92.0MHZ
MOV 28H, # 09H
MOV 27H, # 02H
MOV 26H, # 00H
LCALL DISPUPDAT; writing control chip ( modified transmission frequency )
RET
;
; The 12th key functionality of the program ( frequency preset keys )
KEYFUN12: MOV 29H, # 00H; preset transmission frequency 90.0MHZ
MOV 28H, # 09H
MOV 27H, # 00H
MOV 26H, # 00H
LCALL DISPUPDAT; writing control chip ( modified transmission frequency )
RET
;
; The 13th key functionality of the program ( frequency preset keys )
KEYFUN13: MOV 29H, # 00H; preset transmission frequency 88.0MHZ
MOV 28H, # 08H
MOV 27H, # 08H
MOV 26H, # 00H
LCALL DISPUPDAT; writing control chip ( modified transmission frequency )
RET
;
; The 14th key functionality of the program ( frequency preset keys ) ; preset transmission frequency 87.0MHZ
KEYFUN14: MOV 29H, # 00H
MOV 28H, # 08H
MOV 27H, # 07H
MOV 26H, # 08H
LCALL DISPUPDAT; writing control chip ( modified transmission frequency )
RET
;
; 15 key functional programs ( stereo / mono setting key )
KEYFUN15: CPL 03H;
JNB 03H, MONO;
CLR P3.3;
LCALL PUTBIT;
RET; Returns
MON SETB P3.3;
LCALL PUTBIT;
RET; Returns
;
; The BCD to hexadecimal , and five control code synthesis opcode, write control chip
DISPUPDAT: LCALL BCDB;
LCALL CONCOMMAND;
LCALL PUTBIT; send control words to BH1415
RET; Returns
;
; The BCD to hexadecimal program
BCDB: MOV CONBITL, # 00H; control word to 0
MOV CONBITH, # 00H; control word to 0
MOV CONBITL, 26H; decimal places control word into the low 8
MOV A, 27H; single digits by 10 operations
MOV B, # 10;
LCALL MULLOOP; tune multiplication subroutine
MOV A, 28H; 100 ten-digit multiplication operation
MOV B, # 100;
LCALL MULLOOP; tune multiplication subroutine
MOV A, 29H;
JNZ ADD3E8; hundreds digit is a turn ADD3E8 ( plus 1000 operations )
RET; hundreds digit is 0 exit
ADD3E8: CLR C; clear binary flag
MOV A, # 0E8H; low 8-bit adder
ADD A, CONBITL; accumulate
MOV CONBITL, A; back CONBITL
MOV A, # 03H; high eight Addition
ADDC A, CONBITH;
MOV CONBITH, A; back CONBITH
RET; Returns
;
; Multiplication and accumulation process ( to four decimal display BCD code into a binary number )
MULLOOP: MUL AB; multiplication
Clear carry flag ; CLR C
ADD A, CONBITL; plot with CONBITL adding low 8
MOV CONBITL, A; back CONBITL
MOV A, CONBITH;
ADDC A, B; integrated into the high 8 -bit accumulator with CONBITH
MOV CONBITH, A; back CONBITH
RET; Returns
;
; Frequency control data and five control code synthesis BH1415 control word
CONCOMMAND: ANL CONBITH, # 07H;
MOV A, 20H;
ORL A, CONBITH;
MOV CONBITH, A;
RET; Returns
;
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
; ; Display program ; ;
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
; Common anode LED display , P0 port output section of code , P2 port output scanning word
DISPLAY: MOV R1, # 26H; displays the first address
MOV R5, # 0FEH; Let scanning word
PLAY: MOV A, R5; into A
MOV P2, A; P2 port output
MOV A, @ R1; fetch display data
MOV DPTR, # TAB; take the first address segment code table
MOVC A, @ A + DPTR; investigation Segment
MOV P0, A; from P0 output
MOV A, R5; reads the scanned word
JB ACC.1, PLAY1; than ten (LED), the decimal point is not displayed
CLR P0.7; was ten , display decimal point
PLAY1: LCALL DL1MS; lit a millisecond
INC R1; pointing to the next display data
JNB ACC.3, ENDOUT; was the fourth LED, exit
RL A; instead , left a
MOV R5, A; back R5
SETB P0.7; Off decimal
AJMP PLAY; transfer PLAY cycle
ENDOUT: MOV P2, # 0FFH; Show ends off display output
MOV P0, # 0FFH;
RET; Returns
;
; 0-9 of Shenyang Section stopwatch
TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H, 80H, 90H, 0FFH, 0FFH
;
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
; ; Send control byte subroutine ; ;
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;
;
PUTBIT: MOV A, CONBITL; lower 8 -bit control word into A
SETB P3.2; BH1415 Enable (write )
LCALL PUT; send eight
MOV A, CONBITH; high eight control word into A
LCALL PUT; send eight
CLR P3.2; BH1415 write disabled
CLR P3.0; reset
CLR P3.1; reset
RET; Returns
;
; Byte transmit subroutine
PUT: MOV R3, # 8; send eight control
CLR C; Qing C
PUT1: RRC A; Carry right ( starting low )
MOV P3.0, C; low to the P3.0 port
NOP; delay 4 microseconds
NOP;
NOP;
NOP;
SETB P3.1; latch data ( rising edge latch data )
NOP; delay 4 microseconds
NOP;
NOP;
NOP;
CLR P3.1;
DJNZ R3, PUT1; 8 bits are not finished his turn PUT1 recurrence
8 finished end ; RET
;
; 513 microsecond delay subroutine
DL513: MOV R3, # 0FFH
DL513LOOP: DJNZ R3, DL513LOOP
RET
;
; 1 millisecond delay subroutine (LED lights used )
DL1MS: MOV R4, # 02H
DL1MSLOOP: LCALL DL513
DJNZ R4, DL1MSLOOP
RET
;
; 10 ms delay subroutine ( jitter elimination by )
DL10MS: MOV R6, # 0AH
DL10MSLOOP: LCALL DL1MS
DJNZ R6, DL10MSLOOP
RET
;
;
END
Our other product:
Enter email to get a surprise
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->Afrikaans
sq.fmuser.org ->Albanian
ar.fmuser.org ->Arabic
hy.fmuser.org ->Armenian
az.fmuser.org ->Azerbaijani
eu.fmuser.org ->Basque
be.fmuser.org ->Belarusian
bg.fmuser.org ->Bulgarian
ca.fmuser.org ->Catalan
zh-CN.fmuser.org ->Chinese (Simplified)
zh-TW.fmuser.org ->Chinese (Traditional)
hr.fmuser.org ->Croatian
cs.fmuser.org ->Czech
da.fmuser.org ->Danish
nl.fmuser.org ->Dutch
et.fmuser.org ->Estonian
tl.fmuser.org ->Filipino
fi.fmuser.org ->Finnish
fr.fmuser.org ->French
gl.fmuser.org ->Galician
ka.fmuser.org ->Georgian
de.fmuser.org ->German
el.fmuser.org ->Greek
ht.fmuser.org ->Haitian Creole
iw.fmuser.org ->Hebrew
hi.fmuser.org ->Hindi
hu.fmuser.org ->Hungarian
is.fmuser.org ->Icelandic
id.fmuser.org ->Indonesian
ga.fmuser.org ->Irish
it.fmuser.org ->Italian
ja.fmuser.org ->Japanese
ko.fmuser.org ->Korean
lv.fmuser.org ->Latvian
lt.fmuser.org ->Lithuanian
mk.fmuser.org ->Macedonian
ms.fmuser.org ->Malay
mt.fmuser.org ->Maltese
no.fmuser.org ->Norwegian
fa.fmuser.org ->Persian
pl.fmuser.org ->Polish
pt.fmuser.org ->Portuguese
ro.fmuser.org ->Romanian
ru.fmuser.org ->Russian
sr.fmuser.org ->Serbian
sk.fmuser.org ->Slovak
sl.fmuser.org ->Slovenian
es.fmuser.org ->Spanish
sw.fmuser.org ->Swahili
sv.fmuser.org ->Swedish
th.fmuser.org ->Thai
tr.fmuser.org ->Turkish
uk.fmuser.org ->Ukrainian
ur.fmuser.org ->Urdu
vi.fmuser.org ->Vietnamese
cy.fmuser.org ->Welsh
yi.fmuser.org ->Yiddish
FMUSER Wirless Transmit Video And Audio More Easier !
Contact
Address:
No.305 Room HuiLan Building No.273 Huanpu Road Guangzhou China 510620
Categories
Newsletter