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

📄 bc7281.c

📁 基于F020单片机的简易音频信号分析仪的实现keil程序(C实现)。2007年9月全国大学生电子设计竞赛题目(获得省2等奖)所有要求功能都实现。希望对感兴趣的朋友有帮助!
💻 C
字号:
#define   BC7281_GLOBALS
#include "includes.h"

// BC7281A LED显示和键盘控制 ****************************************************************/
// bc7281a 字节写

//R=3K3,C=20PF,OSC=2.5MHz
//#pragma disable    					//关中断
void Write_7281 ( unsigned char ddata ) {
	unsigned char i;
	unsigned int max=0;
	Data_7281 = 1;	//漏开置1
	Clock_7281 = 0;		//9us
	Clock_7281 = 1;
	do {							// 建立握手信号,发送一系列脉冲
		Clock_7281 = 0;
		Delay(6);
		Clock_7281 = 1;
		Delay(6);
		max++;
	} while ( Data_7281 && (max < 1000));			// 等待bc7281a 发送低电平,表示准备好
	if(max < 1000){
		Clock_7281 = 0;					// 15us内再发送一时钟信号
		Delay(6);
		Clock_7281 = 1;
		Delay(6);
		max = 0;
		while ( (!Data_7281)  && (max < 1000)){max++;};			// Data_7281 回高电平
		if(max < 1000){
		for( i = 0; i < 8; i ++ ) {
		if ( ddata & 0x80 )			// 发送第7——0位
			Data_7281 = 1;
		else
			Data_7281 = 0;
			Delay(10);
		ddata = ddata << 1;			// 发送一时钟信号
		Clock_7281 = 0;	
		Delay(6);
		Clock_7281 = 1;
		Delay ( 6 );				// 延时
		}
	}}
	Data_7281 = 1;					// 回高电平
	Clock_7281 = 1;
	Delay ( 1 );
}

// bc7281a 字节读
//#pragma disable    					//关中断
unsigned char Read_7281 ( void ) {
	unsigned char i;
	unsigned char ddata =0 ;

	Data_7281 = 1;	//漏开置1

	Clock_7281 = 0;					// 发送一单一握手脉冲 25us
	Delay(6);
	Clock_7281 = 1;
	Delay(6);
	i=0;
	while (( Data_7281) && (i<200)){i++;};			// 等待bc7281a 发送低电平,表示准备好
	if(i<200){
	Data_7281 = 1;	//漏开置1
	Clock_7281 = 0;					// 15us内再发送一时钟信号 9us
	Delay(6);
 	Clock_7281 = 1;
 	Delay(6);



	for ( i = 0; i < 8; i ++ ) {
	Delay ( 20 );
		Data_7281 = 1;	//漏开置1
		ddata = ddata << 1;
		if ( Data_7281 )			// 接收第7——0位
			ddata = ddata | 0x01;
		Clock_7281 = 0;				// 15 us内发送一时钟信号
		Delay ( 10 );
		Clock_7281 = 1;
		Delay(10);
	
	}
	}
	Clock_7281 = 0;					// 发送一时钟信号,表示接收完毕
	Delay ( 12 );
	Clock_7281 = 1;
	Delay ( 20 );
	return ddata;
}

void BC7281Init(){
	Write_7281 ( 0x12 );				// 写BC7281A工作模式寄存器
	Write_7281 ( 0x8a );				// 扫描使能,扩展开关,164模式,扩展闪烁模式,输出反向,键盘工作模式为‘ 1 ’
	Write_7281 ( 0x11 );				// 写闪烁速度控制寄存器
	Write_7281 ( 0x80 );				// 闪烁频率 2 HZ
	Write_7281 ( 0x10 );				// 初始化时,不闪烁显示
	Write_7281 ( 0xFF );
	Write_7281 ( 0x19 );
	Write_7281 ( 0xFF );

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -