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

📄 broad_band_amplifier.c

📁 这是我参加大学生电子设计竞赛时的程序
💻 C
📖 第 1 页 / 共 2 页
字号:
/**********************第六届全国大学生电子设计竞赛************************/
/**************************宽带放大器程序**********************************/

/*时间: 2003.9.15*/
/*键盘分布:
1 2 3 4   5  6   7     8 
9 0       +  -  清除  确定*/
#include <AT89X52.H>
#include <absacc.h>
static unsigned char xdata jianpan _at_ 0xa100;
static unsigned char gain;
static unsigned char gain_buf[2];
static unsigned char buf;
unsigned int xdata c64 _at_ 0x8000;
//static unsigned char xdata channel0 _at_ 0x7ff8;
static unsigned char xdata dac0832 _at_ 0xa400;
static unsigned char xdata tlc0820 _at_ 0xc800;
 
#define uchar  unsigned char
#define uint   unsigned int
#define DELAY 5
#define SCM  XBYTE[0xa300]
#define SDA  XBYTE[0xa301]
#define MCM  XBYTE[0xa200]
#define MDA  XBYTE[0xa201]

/***************************************************/
/*调用方式:void OutMI(uchar i)
/*函数说明:发指令i到主窗口
/*程序内函数,私有
/***************************************************/
void OutMI(uchar i)
{      
	uchar d;
	d=DELAY;
	while(d)d--; 
	MCM=i;
}
/***************************************************/
/*调用方式:void OutMD(uchar i)
/*函数说明:发数据i到主窗口
/*程序内函数,私有
/***************************************************/
void OutMD(uchar i)
{
  	uchar d=DELAY;
	while(d)d--;	
    MDA=i;
}
/***************************************************/
/*调用方式:void OutSI(uchar i)
/*函数说明:发指令i到从窗口
/*程序内函数,私有
/***************************************************/
void OutSI(uchar i)
{
	uchar d=DELAY;
	while(d)d--;
    SCM=i;
}

/***************************************************/
/*调用方式:void OutSD(uchar i)
/*函数说明:发数据i到从窗口。(内函数,私有,用户不直接调用)
/***************************************************/
void OutSD(uchar i)
{
	uchar d=DELAY;
	while(d)d--;
	SDA=i;
}

/***************************************************/
/*调用方式:void LcdIni(void)
/*函数说明:12232点阵液晶初始化,开机后仅调用一次。
/***************************************************/
void LcdIni(void)
{
	OutMI(0XE2);OutSI(0XE2);//复位
	OutMI(0XAE);OutSI(0XAE);//POWER SAVE
	OutMI(0XA4);OutSI(0XA4);//动态驱动
	OutMI(0XA9);OutSI(0XA9);//1/32占空比
	OutMI(0XA0);OutSI(0XA0);//时钟线输出
	OutMI(0XEE);OutSI(0XEE);//写模式

	OutMI(0X00);OutMI(0XC0);
	OutSI(0X00);OutSI(0XC0);

	OutMI(0XAF);OutSI(0XAF);
} 

/***************************************************/
/*调用方式:void SetPage(uchar page0,uchar page1)
/*函数说明:同时设置主从显示页为0-3页。(内函数,私有,用户不直接调用)
/***************************************************/
void SetPage(uchar page0,uchar page1)
{
	OutMI(0xB8|page1);OutSI(0xB8|page0);
}

/***************************************************/
/*调用方式:void SetAddress(uchar address0,uchar address1)
/*函数说明:同时设置主从列地址为0-121。(内函数,私有,用户不直接调用)
/***************************************************/
void SetAddress(uchar address0,uchar address1)
{
	OutMI(address1&0x7F);OutSI(address0&0x7F);
}

/***************************************************/
/*调用方式:void PutCharS(uchar ch)
/*函数说明:在左页当前地址画一个字节8个点。(内函数,私有,用户不直接调用)
/***************************************************/
void PutCharS(uchar ch)
{
	OutSD(ch);
}

/***************************************************/
/*调用方式:void PutCharM(uchar ch)
/*函数说明:在右页当前地址画一个字节8个点。(内函数,私有,用户不直接调用)
/***************************************************/
void PutCharM(uchar ch)
{
	OutMD(ch);
} 

/***************************************************/
/*uchar Inva(uchar)   1000 -> 0001
/*二进制数倒置
/***************************************************/
uchar Inva(uchar b)
{
	uchar v1=0,v2=0;
	uchar j1=0x80,j2=0x01;
	char i;
	for(i=7;i>=1;i=i-2)
	{
   	v1=((b<<i)&j1)|v1;
		v2=((b>>i)&j2)|v2;
		j1=j1>>1;
		j2=j2<<1;
	}
	return(v1|v2);
}
/***************************************************/
/*void DrawDw(char Xl,uchar width,uchar *bmp)
/***************************************************/
void DrawDw(char Xl,uchar width,uchar *bmp)
{
	uchar addr,i=0;
	bit window=0;
	char x;
	for(x=Xl;x>Xl-width;x--)
	{
		if (x<0) {window=1;addr=61+x;}
		else addr=x;

		SetPage(1,1);
		SetAddress(addr,addr);
		if (window) PutCharM(bmp[i]);
   		else PutCharS(bmp[i]);//画上层   
         i++;
		SetPage(0,0);
		SetAddress(addr,addr);
		if (window) PutCharM(bmp[i]);
         else PutCharS(bmp[i]);//画下层
    	i++;
	}
}
/***************************************************/
/*void DrawUp(char Xl,uchar width,uchar *bmp)
/***************************************************/
void DrawUp(char Xl,uchar width,uchar *bmp)
{
	uchar addr,i=0;
	char x;
	bit window=0;
	for(x=Xl;x>Xl-width;x--)
	{
		if (x<0) {window=1;addr=61+x;}
		else addr=x;

		SetPage(2,2);
		SetAddress(addr,addr);
		if (window) PutCharM(Inva(bmp[i]));
   		else PutCharS(Inva(bmp[i]));//画上层
         i++;
		SetPage(3,3);
		SetAddress(addr,addr);
		if (window) PutCharM(Inva(bmp[i]));
         else PutCharS(Inva(bmp[i]));//画下层
    	i++;
	}
}      
/***************************************************/
/*调用方式:void clrscr(void)
/*函数说明:清屏
/***************************************************/
void clrscr(void)
{
	uchar i;
	uchar page;

	for (page=0;page<4;page++)
	{
		SetPage(page,page);
		SetAddress(0,0);
		for (i=0;i<61;i++){PutCharS(0);PutCharM(0);}
	}
} 

/***************************************************/
/*              void OutCmd(uint addr,uchar m)
/*
/***************************************************/
//void OutCmd(uint addr,uchar m)
//{
//	uchar i=DELAY;
//	while(i--);
//	XBYTE[addr]=m;
//}
/*************************************************/
/*                                               */
/*                                               */
/*	              字模区			          */
/*                                               */
/*************************************************/
uchar code up_start1[]={
/*国   CB9FA */
0x00,0x00,0x7F,0xFF,0x40,0x02,0x50,0x0A,
0x51,0x0A,0x51,0x0A,0x51,0x0A,0x5F,0xFA,
0x51,0x0A,0x53,0x4A,0x71,0x2A,0x50,0x0A,
0x40,0x02,0xFF,0xFF,0x40,0x00,0x00,0x00,

/*防   CB7C0 */
0x00,0x00,0x7F,0xFF,0x40,0x10,0x44,0x08,
0x5B,0x10,0x68,0xE1,0x08,0x02,0x08,0x0C,
0x8F,0xF0,0x69,0x02,0x09,0x01,0x09,0x02,
0x0B,0xFC,0x19,0x00,0x08,0x00,0x00,0x00,

/*科   CBFC6 */
0x24,0x08,0x24,0x10,0x24,0x60,0x25,0x80,
0x7F,0xFF,0xC5,0x00,0x44,0x80,0x00,0x40,
0x24,0x40,0x12,0x40,0x00,0x40,0xFF,0xFF,
0x00,0x80,0x01,0x80,0x00,0x80,0x00,0x00,

/*技   CBCBC */
0x08,0x20,0x08,0x22,0x08,0x41,0xFF,0xFE,
0x08,0x80,0x08,0x01,0x11,0x81,0x11,0x62,
0x11,0x14,0xFF,0x08,0x11,0x14,0x11,0x64,
0x31,0x82,0x10,0x03,0x00,0x02,0x00,0x00,

/*大   CB4F3 */
0x04,0x00,0x04,0x02,0x04,0x02,0x04,0x04,
0x04,0x08,0x04,0x30,0x05,0xC0,0xFE,0x00,
0x05,0x80,0x04,0x60,0x04,0x10,0x04,0x08,
0x04,0x04,0x0C,0x06,0x04,0x04,0x00,0x00,

/*学   CD1A7 */
0x02,0x20,0x0C,0x20,0x88,0x20,0x69,0x20,
0x09,0x20,0x09,0x22,0x89,0x21,0x69,0x7E,
0x09,0x60,0x09,0xA0,0x19,0x20,0x28,0x20,
0xC8,0x20,0x0A,0x60,0x0C,0x20,0x00,0x00
};


uchar code up_start2[]={
/*作   CD7F7 */
0x01,0x00,0x02,0x00,0x04,0x00,0x1F,0xFF,
0xE1,0x00,0x02,0x00,0x0C,0x00,0xF0,0x00,
0x1F,0xFF,0x11,0x10,0x11,0x10,0x13,0x10,
0x11,0x30,0x30,0x10,0x10,0x00,0x00,0x00,

/*者   CD5DF */
0x04,0x08,0x04,0x10,0x24,0x20,0x24,0x40,
0x24,0xFF,0x25,0x92,0xFE,0x92,0x24,0x92,
0x2C,0x92,0x34,0x92,0x24,0x92,0x45,0xFF,
0x04,0x80,0x0C,0x00,0x04,0x00,0x00,0x00,

/*:    */
0x00,0x00,0x03,0x0C,0x03,0x08,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


/*吴   CCEE2 */
0x00,0x20,0x00,0x21,0x01,0x21,0x79,0x22,
0x49,0x22,0x49,0x24,0x49,0x38,0x49,0xE0,
0x49,0x30,0x49,0x28,0x49,0x24,0xFB,0x22,
0x41,0x23,0x00,0x62,0x00,0x20,0x00,0x00,

/*帅   CCBA7 */
0x00,0x00,0x3F,0xE1,0x00,0x02,0x00,0x0C,
0xFF,0xF0,0x00,0x00,0x00,0x00,0x1F,0xFC,
0x10,0x00,0x10,0x00,0xFF,0xFF,0x10,0x08,
0x10,0x04,0x3F,0xF8,0x10,0x00,0x00,0x00
};

uchar code down_start1[]={
/*李   CC0EE */
0x01,0x00,0x21,0x10,0x22,0x10,0x22,0x10,
0x24,0x90,0x28,0x92,0x20,0x91,0xFF,0xBE,
0x20,0xB0,0x28,0xD0,0x24,0x90,0x24,0x10,
0x62,0x30,0x23,0x10,0x02,0x00,0x00,0x00,

/*彩   CB2CA */
0x21,0x04,0x31,0x08,0x2D,0x10,0x21,0x60,
0x5B,0xFF,0x41,0x40,0x49,0x20,0xB1,0x30,
0x04,0x01,0x08,0x42,0x10,0x84,0x21,0x08,
0x62,0x10,0x06,0x30,0x00,0x00,0x00,0x00,

/*华   CBBAA */
0x00,0x20,0x02,0x20,0x04,0x20,0x08,0x20,
0x3F,0xA0,0xC0,0x20,0x02,0x20,0x04,0xFF,
0x08,0x20,0xFF,0x20,0x10,0xA0,0x20,0xA0,
0x60,0xA0,0x03,0xA0,0x00,0x20,0x00,0x00,

/*           */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,


/*刘   CC1F5 */
0x10,0x02,0x14,0x04,0x92,0x08,0x51,0x90,
0x70,0x60,0x11,0x90,0x1E,0x0C,0x30,0x06,
0x10,0x00,0x00,0x00,0x3F,0xF0,0x00,0x02,
0x00,0x01,0xFF,0xFE,0x00,0x00,0x00,0x00,

/*凯   CBFAD */
0x02,0x00,0x7A,0x7E,0x0A,0x42,0x0A,0x44,
0xFA,0x44,0x0A,0x48,0x0F,0xE9,0x7A,0x02,
0x00,0x0C,0x7F,0xF0,0x40,0x00,0x40,0x00,
0xFF,0xFC,0x40,0x02,0x00,0x0E,0x00,0x00
};


uchar code up_start3[]={
/*宽   CBFED */
0x08,0x00,0x34,0x01,0x24,0x01,0x25,0xF9,
0x25,0x02,0x3F,0x04,0xA5,0x08,0x65,0x70,
0x25,0x1E,0x3F,0x01,0x25,0x01,0x27,0xF9,
0x25,0x01,0x2C,0x01,0x30,0x07,0x00,0x00,

/*带   CB4F8 */
0x01,0x00,0x26,0x00,0x24,0x00,0x24,0xFE,
0xFC,0x80,0x24,0x80,0x24,0x80,0xFF,0xFF,
0x24,0x80,0x24,0x84,0xFC,0x82,0x24,0xFC,
0x64,0x00,0x25,0x00,0x06,0x00,0x00,0x00,

/*放   CB7C5 */
0x08,0x02,0x08,0x0C,0x8F,0xF0,0x69,0x04,
0x09,0x02,0x0B,0xFC,0x09,0x01,0x08,0x02,
0x1B,0x04,0xE8,0xD8,0x08,0x20,0x08,0xD8,
0x0F,0x06,0x18,0x03,0x08,0x02,0x00,0x00,

/*大   CB4F3 */
0x04,0x00,0x04,0x02,0x04,0x02,0x04,0x04,
0x04,0x08,0x04,0x30,0x05,0xC0,0xFE,0x00,
0x05,0x80,0x04,0x60,0x04,0x10,0x04,0x08,
0x04,0x04,0x0C,0x06,0x04,0x04,0x00,0x00,

/*器   CC6F7 */
0x01,0x10,0x01,0x10,0xF9,0x3F,0x89,0x31,
0x89,0x51,0x89,0x51,0xF9,0x9F,0x07,0x00,
0xF9,0x9F,0x89,0x51,0x8D,0x51,0x8B,0x31,
0xF9,0x3F,0x03,0x10,0x01,0x10,0x00,0x00
};

uchar code up[]={
/*增   CD4F6 */
0x04,0x10,0x04,0x18,0xFF,0xF0,0x04,0x20,
0x04,0x20,0x0F,0x80,0x88,0xBF,0x4A,0xAA,
0x28,0xAA,0x0F,0xAA,0x28,0xAA,0x4A,0xAA,
0x88,0xFF,0x1F,0xA0,0x08,0x00,0x00,0x00,

/*益   CD2E6 */
0x00,0x02,0x10,0x02,0x10,0x7E,0x11,0x42,
0x92,0x42,0x54,0x7E,0x10,0x42,0x10,0x42,
0x10,0x42,0x54,0x7E,0x92,0x42,0x13,0x42,
0x30,0x7E,0x10,0x02,0x00,0x02,0x00,0x00,

/*(    */
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x07,0xE0,0x18,0x18,0x20,0x04,0x00,0x02,

/*d    */
0x00,0x00,0x01,0xF8,0x02,0x08,0x02,0x04,
0x12,0x04,0x1F,0xF8,0x00,0x08,0x00,0x00,

/*b    */
0x00,0x00,0x10,0x00,0x1F,0xF8,0x02,0x04,
0x02,0x04,0x03,0x08,0x01,0xF0,0x00,0x00,

/*)    */
0x00,0x02,0x20,0x04,0x18,0x18,0x07,0xE0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

/*:    */
0x00,0x00,0x03,0x0C,0x03,0x08,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

uchar code down[]={
/*有   CD3D0 */
0x20,0x20,0x20,0x40,0x20,0x80,0x21,0x00,

⌨️ 快捷键说明

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