?? 鎖相環(huán)bh1415的程序2006.8.20().c
字號:
//***************************************************************
// 鎖相環(huán)BH1415的調(diào)頻程序
//作者:Ryudo
//日期:2006.8.20
//說明:四個按鍵分別控制:頻率步進,步退,立體聲開關(guān),音頻靜音
// 復(fù)位默認:頻率是 98MHZ ,立體聲, 正常模式。
// 頻率調(diào)節(jié)范圍 :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); //發(fā)送數(shù)據(jù)函數(shù)
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; //保存頻率數(shù)據(jù)
uint ui_TEMP_2; //保存立體聲數(shù)據(jù)
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;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -