📄 锁相环bh1415的程序2006.8.20().c
字号:
//***************************************************************
// 锁相环BH1415的调频程序
//作者:Ryudo
//日期:2006.8.20
//说明:四个按键分别控制:频率步进,步退,立体声开关,音频静音
// 复位默认:频率是 98MHZ ,立体声, 正常模式。
// 频率调节范围 :88MHZ--108MHZ
//硬件连接:
// MUTE ------- P1^0
// DI ------- P1^1
// CLK ------- P1^2
// CE ------- P1^3
// 按键 静音控制 ------- P1^4
// 按键 频率步进 ------- P1^5
// 按键 频率步退 ------- P1^6
// 按键 立体声控制 ------- P1^7
//
//***************************************************************
#include<AT89X51.h>
#define uchar unsigned char
#define uint unsigned int
sbit MUTE = P1^0;
sbit DI = P1^1;
sbit CLK = P1^2;
sbit CE = P1^3;
sbit KEY_1= P1^4;
sbit KEY_2= P1^5;
sbit KEY_3= P1^6;
sbit KEY_4= P1^7;
void Send_16(uint ui_Date, uchar uc_MONO ,uchar uc_PD); //发送数据函数
void Key_Scan_1(void); //控制静音
void Key_Scan_2(void); //频率步进 精度0.1MHZ
void Key_Scan_3(void); //频率步退 精度0.1MHZ
void Key_Scan_4(void); //立体声控制
void Delay(void);
uchar uc_Count_1;
uchar uc_Count_2;
uchar uc_Count_3;
uchar uc_Count_4;
uint ui_TEMP_1; //保存频率数据
uint ui_TEMP_2; //保存立体声数据
void main(void)
{
Send_16(0x3d4,0x01,0x00);
while(1)
{
Key_Scan_1();
Key_Scan_2();
Key_Scan_3();
Key_Scan_4();
}
}
void Delay()
{
uchar i,j;
for(i=100;i;--i)
for(j=200;j;--j);
}
void Key_Scan_1(void) //控制静音
{
if(KEY_1==0)
{
Delay();
if(KEY_1==0)
{
MUTE=(uc_Count_1++)%2;
while(KEY_1==0);
}
}
}
void Key_Scan_2(void) //频率步进
{
if(KEY_2==0)
{
Delay();
if(KEY_2==0)
{
uc_Count_2++;
if(uc_Count_2==100)
{
uc_Count_2=0;
Send_16(0x3d4,ui_TEMP_2,0x00);
}
Send_16(ui_TEMP_1+1,ui_TEMP_2,0x00);
while(KEY_2==0);
}
}
}
void Key_Scan_3(void) //频率步退
{
if(KEY_3==0)
{
Delay();
if(KEY_3==0)
{
uc_Count_3++;
if(uc_Count_3==100)
{
uc_Count_3=0;
Send_16(0x3d4,ui_TEMP_2,0x00);
}
Send_16(ui_TEMP_1-1,ui_TEMP_2,0x00);
while(KEY_3==0);
}
}
}
void Key_Scan_4(void) //立体声控制
{
if(KEY_4==0)
{
Delay();
if(KEY_4==0)
{
//uc_Count_4++;
if(ui_TEMP_2=uc_Count_4++%2)
Send_16(ui_TEMP_1,0x01,0x00);
else
Send_16(ui_TEMP_1,0x00,0x00);
while(KEY_4==0);
}
}
}
void Send_16(uint ui_Date,uchar uc_MONO ,uchar uc_PD)
{
uchar i;
ui_TEMP_1=ui_Date;
CLK=0;
CE=0;
CE=1;
for(i=11;i;--i)
{
DI=ui_Date&0x01;
ui_Date>>=1;
CLK=1;
CLK=0;
}
DI=uc_MONO&0x01;
CLK=1;
CLK=0;
DI=uc_PD&0x20;
CLK=1;
CLK=0;
uc_PD<<=1;
DI=uc_PD&0x20;
CLK=1;
CLK=0;
DI=1;
CLK=1;
CLK=0;
DI=0;
CLK=1;
CLK=0;
CE=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -