FMUSER更輕鬆地傳輸視頻和音頻!
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->荷蘭語
sq.fmuser.org ->阿爾巴尼亞人
ar.fmuser.org ->阿拉伯語
hy.fmuser.org - >亞美尼亞
az.fmuser.org ->阿塞拜疆
eu.fmuser.org ->巴斯克
be.fmuser.org ->白俄羅斯語
bg.fmuser.org - >保加利亞
ca.fmuser.org ->加泰羅尼亞語
zh-CN.fmuser.org ->中文(簡體)
zh-TW.fmuser.org - >中國(繁體)
hr.fmuser.org ->克羅地亞語
cs.fmuser.org ->捷克
da.fmuser.org ->丹麥語
nl.fmuser.org - >荷蘭
et.fmuser.org ->愛沙尼亞語
tl.fmuser.org ->菲律賓
fi.fmuser.org ->芬蘭語
fr.fmuser.org - >法國
gl.fmuser.org ->加利西亞語
ka.fmuser.org ->喬治亞
de.fmuser.org ->德語
el.fmuser.org - >希臘
ht.fmuser.org ->海地克里奧爾語
iw.fmuser.org ->希伯來語
hi.fmuser.org ->印地語
hu.fmuser.org - >匈牙利
is.fmuser.org ->冰島語
id.fmuser.org ->印尼語
ga.fmuser.org ->愛爾蘭
it.fmuser.org - >意大利
ja.fmuser.org ->日語
ko.fmuser.org ->韓文
lv.fmuser.org ->拉脫維亞
lt.fmuser.org - >立陶宛
mk.fmuser.org ->馬其頓語
ms.fmuser.org ->馬來語
mt.fmuser.org ->馬耳他語
no.fmuser.org - >挪威
fa.fmuser.org ->波斯語
pl.fmuser.org ->波蘭語
pt.fmuser.org ->葡萄牙語
ro.fmuser.org - >羅馬尼亞
ru.fmuser.org ->俄語
sr.fmuser.org ->塞爾維亞語
sk.fmuser.org ->斯洛伐克
sl.fmuser.org - >斯洛文尼亞
es.fmuser.org ->西班牙語
sw.fmuser.org ->斯瓦希里語
sv.fmuser.org ->瑞典語
th.fmuser.org - >泰國
tr.fmuser.org ->土耳其語
uk.fmuser.org ->烏克蘭語
ur.fmuser.org ->烏爾都語
vi.fmuser.org - >越南
cy.fmuser.org ->威爾士語
yi.fmuser.org - >意第緒語
51單片機控制的立體聲調頻發射器讓BH1415F
說明:1,控制使用MCS51,用最小應用系統設計,外圍電路非常簡單! 16按鍵設計,可以控制80.0〜109.9MHz頻率範圍;
2,4位共陽極LED顯示頻率;
產品特點:1,可獨立設置百,十,十位,小數點的頻率;
2,發射頻率的預置;
3,單聲道/立體聲控制;帶立體聲發射器的指令;
-------------------------------------------------- -------------------------------------
; ***************************;
;數控調頻控制器;
; ***************************;
;
; 26H-29H小數位顯示,有點,十,百BCD碼數,24H-25H放電頻率控制數據(十六進制)
;
CONBITL EQU 21H;頻率控制字節低8
CONBITH EQU 22H;頻率控制字節的高八位
關鍵字EQU 23H;當存儲鍵值P1端口掃描
;
;
ORG 0000H;程序的起始地址
LJMP START;轉移開始執行
ORG 0003H;
RETI;不中斷程序
ORG 000BH;
RETI;不中斷程序
ORG 0013H;
RETI;不中斷程序
ORG 001BH;
RETI;不中斷程序
ORG 0023H;
RETI;不中斷程序
ORG 002BH;
RETI;不中斷程序
;
;初始化程序
CLEARMEN:MOV R0,#20H; 20H-29H循環中清除
MOV R1,#0AH;
CLEARLOOP:MOV @ R0,#00H;
INC R0;
DJNZ R1,CLEARLOOP;
MOV P0,#0FFH,其中四個端口設置
MOV P1,#0FFH;
MOV P2,#0FFH;
MOV P3,#0FFH;
CLR P3.0; BH1415禁止操作
CLR P3.1;
CLR P3.2;
LCALL KEYFUN15;家庭立體聲傳輸模式,打開立體聲發射器指示燈
CLEAR1:MOV PCON,#00H;控制寄存器清零
MOV 29H,#00H;設置88MHZ的初始值(示為088.0)
MOV 28H,#08H;
MOV 27H,#08H;
MOV 26H,#00H;
LCALL DISPUPDAT;寫道BH1415芯片(修改傳輸頻率)
RET;子程序返回
;
;主
START:LCALL CLEARMEN;電初始化
MAIN:LCALL關鍵字;調查按鍵子程序
LCALL顯示,LED顯示時間
AJMP MAIN;轉移主循環
NOP;電腦錯誤處理
NOP;
AJMP START;重新初始化
;
; 4 * 4矩陣按鍵掃描例行檢查
關鍵字: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;去抖處理
MOV A,P1;
ANL A,#0F0H;
CJNE A,#0F0H,KEYCHE;
KEYOUT:RET;干擾,子程序返回
KEYCHE:MOV A,P1;
MOV關鍵字,A;
CJLOOP:LCALL DISPLAY;
MOV A,P1;
ANL A,#0F0H;
CJNE A,#0F0H,CJLOOP;
MOV R7,#00H;
MOV DPTR,#密鑰表;
CHEKEYLOOP:MOV A,R7;
MOVC A,@ A + DPTR;
XRL A,關鍵字;
JZ KEYOK; 0(等於)轉KEYOK
INC R7,範圍,再加上一些查表的
CJNE R7,#10H,CHEKEYLOOP;
RET;
;
KEYOK:MOV A,R7;
MOV B,A,B為
RL A;左
ADD A,B;增加(由關鍵3字節指令處理JMP 3)
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,跳轉到該程序的15th關鍵功能
RET;批量傳輸錯誤返回
;
;對應P1端口值表中的鍵數(同時按下兩個鍵是無效的操作)
密鑰表:DB 0EEH,0DEH,0BEH,7EH,0EDH,0DDH,0BDH,7DH
DB 0EBH,0DBH,0BBH,7BH,0E7H,0D7H,0B7H,77H,0FFH,0FFH
;
;該計劃的第0關鍵功能
KEYFUN00:INC 29H;
MOV A,29H;
CLR℃;
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;返回
;
;該計劃的1st關鍵功能
KEYFUN01:INC 28H;
MOV A,28H;
CLR℃;
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;返回
;
;該2nd鍵功能程序
KEYFUN02:INC 27H;個位數加1
MOV A,27H;
CLR℃;
CJNE A,#0AH,FUN02;確定比10是否少
FUN02:JC FUN02OUT;小於10變成FUN02OUT
MOV 27H,#00H;大於或等於10被清零0
FUN02OUT:LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
RET;
;
;該計劃的3rd關鍵功能
KEYFUN03:INC 26H;個位數加1
MOV A,26H;
CLR℃;
CJNE A,#0AH,FUN03,判斷是不是小於10
FUN03:JC FUN03OUT;小於10變成FUN03OUT
MOV 26H,#00H;大於或等於10被清零0
FUN03OUT:LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
RET;返回
;
; 04關鍵功能的程序(預設頻率鍵)
KEYFUN04:MOV 29H,#01H;預置109.0MHZ發射頻率
MOV 28H,#00H
MOV 27H,#09H
MOV 26H,#00H
LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
RET
;
; 05關鍵功能的程序(預設頻率鍵)
KEYFUN05:MOV 29H,#01H;預置108.0MHZ發射頻率
MOV 28H,#00H
MOV 27H,#08H
MOV 26H,#00H
LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
RET
;
; 06關鍵功能的程序(預設頻率鍵)
KEYFUN06:MOV 29H,#01H;預置105.0MHZ發射頻率
MOV 28H,#00H
MOV 27H,#05H
MOV 26H,#00H
LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
RET
;
;程序(頻率預置密鑰)的7th關鍵功能
KEYFUN07:MOV 29H,#01H;預置100.0MHZ發射頻率
MOV 28H,#00H
MOV 27H,#00H
MOV 26H,#00H
LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
RET
;
; 08關鍵功能的程序(預設頻率鍵)
KEYFUN08:MOV 29H,#00H;預置傳輸頻率98.0MHZ
MOV 28H,#09H
MOV 27H,#08H
MOV 26H,#00H
LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
RET
;
; 09關鍵功能的程序(預設頻率鍵)
KEYFUN09:MOV 29H,#00H;預置傳輸頻率96.0MHZ
MOV 28H,#09H
MOV 27H,#06H
MOV 26H,#00H
LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
RET
;
;程序(頻率預置密鑰)的10th關鍵功能
KEYFUN10:MOV 29H,#00H;預置傳輸頻率94.0MHZ
MOV 28H,#09H
MOV 27H,#04H
MOV 26H,#00H
LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
RET
;
; 11關鍵功能的程序(預設頻率鍵)
KEYFUN11:MOV 29H,#00H;預置傳輸頻率92.0MHZ
MOV 28H,#09H
MOV 27H,#02H
MOV 26H,#00H
LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
RET
;
;程序(頻率預置密鑰)的12th關鍵功能
KEYFUN12:MOV 29H,#00H;預置傳輸頻率90.0MHZ
MOV 28H,#09H
MOV 27H,#00H
MOV 26H,#00H
LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
RET
;
;程序(頻率預置密鑰)的13th關鍵功能
KEYFUN13:MOV 29H,#00H;預置傳輸頻率88.0MHZ
MOV 28H,#08H
MOV 27H,#08H
MOV 26H,#00H
LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
RET
;
;程序(頻率預置密鑰)的14th關鍵功能;預置傳輸頻率87.0MHZ
KEYFUN14:MOV 29H,#00H
MOV 28H,#08H
MOV 27H,#07H
MOV 26H,#08H
LCALL DISPUPDAT;寫控制芯片(修改傳輸頻率)
RET
;
; 15關鍵功能的程序(立體聲/單聲道設置鍵)
KEYFUN15:CPL 03H;
JNB 03H,單聲道;
CLR P3.3;
LCALL PUTBIT;
RET;返回
MON SETB P3.3;
LCALL PUTBIT;
RET;返回
;
; BCD碼轉換為十六進制,和5個控制代碼的合成操作碼,寫控制芯片
DISPUPDAT:LCALL BCDB;
LCALL CONCOMMAND;
LCALL PUTBIT;發送控制字到BH1415
RET;返回
;
; BCD碼轉換為十六進制的程序
BCDB:MOV CONBITL,#00H;控制字0
MOV CONBITH,#00H;控制字0
MOV CONBITL,26H;小數位控制字到低8
MOV A,27H;個位數由10操作
MOV B,#10;
LCALL MULLOOP;調乘法子程序
MOV A,28H; 100十位數的乘法運算
MOV B,#100;
LCALL MULLOOP;調乘法子程序
MOV A,29H;
JNZ ADD3E8;百位是一個回合ADD3E8(加1000操作)
RET;百位數是0退出
ADD3E8:CLR℃;明確的二進制標誌
MOV A,#0E8H;低8位加法器
ADD A,CONBITL;積累
MOV CONBITL,A;回CONBITL
MOV A,#03H;高八位加法
ADDC A,CONBITH;
MOV CONBITH,A;回CONBITH
RET;返回
;
;乘法和積累的過程(四個小數顯示BCD碼轉換成二進制數)
MULLOOP:MUL AB;乘法
清除進位標誌; CLR的ç
ADD A,CONBITL;情節與CONBITL加入低8
MOV CONBITL,A;回CONBITL
MOV A,CONBITH;
ADDC A,B,融入了高8位累加器與CONBITH
MOV CONBITH,A;回CONBITH
RET;返回
;
;頻率控制數據和5個控制代碼的合成BH1415控制字
CONCOMMAND:ANL CONBITH,#07H;
MOV A,20H;
ORL A,CONBITH;
MOV CONBITH,A;
RET;返回
;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
;;顯示程序;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
;共陽極LED顯示屏,代碼P0端口輸出部分,P2口輸出掃描字
顯示:MOV R1,#26H,顯示的第一個地址
MOV R5,#0FEH;讓掃描字
播放:MOV A,R5;為A
MOV P2,A; P2端口輸出
MOV A,@ R1;讀取顯示數據
MOV DPTR,#TAB;採取的第一個地址段碼表
MOVC A,@ A + DPTR;調查分部
MOV P0,A;從P0輸出
MOV A,R5;讀取掃描的單詞
JB ACC.1,PLAY1;十(LED),不顯示小數點
CLR P0.7;十歲,顯示小數點
PLAY1:LCALL DL1MS,點燃了一毫秒
INC R1;指向下一個顯示數據
JNB ACC.3,ENDOUT;是第四個LED燈,出口
RL A;相反,留下了
MOV R5,A;回R5
SETB P0.7;關十進制
AJMP播放;傳輸播放週期
ENDOUT:MOV P2,#0FFH;展會結束了顯示輸出
MOV P0,#0FFH;
RET;返回
;
沉陽科秒錶0-9
TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH,0FFH
;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
;;發送控制字節子程序;;
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
;
PUTBIT:MOV A,CONBITL;低8位控制字為A
SETB P3.2; BH1415啟用(寫)
LCALL放,送8
MOV A,CONBITH;高八位控制字為A
LCALL放,送8
CLR P3.2; BH1415寫禁止
CLR P3.0;重置
CLR P3.1;重置
RET;返回
;
;字節發送子程序
PUT:MOV R3,#8;發送八個控制
CLR℃;清Ç
PUT1:RRC A;進右(開始低)
MOV P3.0,C,低到P3.0端口
NOP;延緩4微秒
NOP;
NOP;
NOP;
SETB P3.1;鎖存數據(上升沿鎖存數據)
NOP;延緩4微秒
NOP;
NOP;
NOP;
CLR P3.1;
DJNZ R3,PUT1; 8位未完成輪到他PUT1復發
8成品末端; RET
;
; 513微秒級延時子程序
DL513:MOV R3,#0FFH
DL513LOOP:DJNZ R3,DL513LOOP
RET
;
; 1毫秒延時子程序(LED燈用)
DL1MS:MOV R4,#02H
DL1MSLOOP:LCALL DL513
DJNZ R4,DL1MSLOOP
RET
;
; 10毫秒延時子程序(抖動消除通過)
DL10MS:MOV R6,#0AH
DL10MSLOOP:LCALL DL1MS
DJNZ R6,DL10MSLOOP
RET
;
;
結束
我們的其他產品:
|
||
|
輸入電子郵件以獲取驚喜
es.fmuser.org
it.fmuser.org
fr.fmuser.org
de.fmuser.org
af.fmuser.org ->荷蘭語
sq.fmuser.org ->阿爾巴尼亞人
ar.fmuser.org ->阿拉伯語
hy.fmuser.org - >亞美尼亞
az.fmuser.org ->阿塞拜疆
eu.fmuser.org ->巴斯克
be.fmuser.org ->白俄羅斯語
bg.fmuser.org - >保加利亞
ca.fmuser.org ->加泰羅尼亞語
zh-CN.fmuser.org ->中文(簡體)
zh-TW.fmuser.org - >中國(繁體)
hr.fmuser.org ->克羅地亞語
cs.fmuser.org ->捷克
da.fmuser.org ->丹麥語
nl.fmuser.org - >荷蘭
et.fmuser.org ->愛沙尼亞語
tl.fmuser.org ->菲律賓
fi.fmuser.org ->芬蘭語
fr.fmuser.org - >法國
gl.fmuser.org ->加利西亞語
ka.fmuser.org ->喬治亞
de.fmuser.org ->德語
el.fmuser.org - >希臘
ht.fmuser.org ->海地克里奧爾語
iw.fmuser.org ->希伯來語
hi.fmuser.org ->印地語
hu.fmuser.org - >匈牙利
is.fmuser.org ->冰島語
id.fmuser.org ->印尼語
ga.fmuser.org ->愛爾蘭
it.fmuser.org - >意大利
ja.fmuser.org ->日語
ko.fmuser.org ->韓文
lv.fmuser.org ->拉脫維亞
lt.fmuser.org - >立陶宛
mk.fmuser.org ->馬其頓語
ms.fmuser.org ->馬來語
mt.fmuser.org ->馬耳他語
no.fmuser.org - >挪威
fa.fmuser.org ->波斯語
pl.fmuser.org ->波蘭語
pt.fmuser.org ->葡萄牙語
ro.fmuser.org - >羅馬尼亞
ru.fmuser.org ->俄語
sr.fmuser.org ->塞爾維亞語
sk.fmuser.org ->斯洛伐克
sl.fmuser.org - >斯洛文尼亞
es.fmuser.org ->西班牙語
sw.fmuser.org ->斯瓦希里語
sv.fmuser.org ->瑞典語
th.fmuser.org - >泰國
tr.fmuser.org ->土耳其語
uk.fmuser.org ->烏克蘭語
ur.fmuser.org ->烏爾都語
vi.fmuser.org - >越南
cy.fmuser.org ->威爾士語
yi.fmuser.org - >意第緒語
FMUSER更輕鬆地傳輸視頻和音頻!
聯絡我們
分類
電子通訊