⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 锁相环bh1415的程序2006.8.20().c

📁 bh1415驱动
💻 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 + -