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更轻松地传输视频和音频!
联系我们
分类目录
订阅电子邮件