自动增益放大器毕业设计论文(8)

2019-08-31 13:35

成都工业学院毕业设计(论文)

ptr[4]=daa; for(i = 1;i < 5;i++)

Disp1Char((2+ i),1,shuzi[ptr[i]]);

} /******************************************* 函数名称:bzxs

函数功能:显示通过键盘设定的标准电压值 返回参数:无

******************************************/ void bzxs(uint Hex_Val) {

unsigned long caltmp; unsigned long daa; unsigned int i; uchar ptr[5]; caltmp = Hex_Val;

daa=((caltmp/1)*805664)/1000000;

ptr[0] = daa / 1000; //Hex->Dec变换 ptr[1] = 10;

ptr[2] = (daa - ptr[0]*1000)/100;

ptr[3] = (daa - ptr[0]*1000-ptr[2]*100)/10;

ptr[4]=daa; //shuzi表中第10位对应符号\ for(i = 0;i < 5;i++)

Disp1Char((11 + i),0,shuzi[ptr[i]]); }

/*******************Reset*********************** 函数名称:Reset

函数功能:对外部显示初始化 返回参数:无

************************************************/ void reset(void) {

DispNChar(0,0,1,U); //显示“u” DispNChar(0,1,3,I); //显示“SR:” DispNChar(8,0,3,BZ); //显示“BZ:” // DispNChar(8,1,3,A); //显示“SI:” Disp1Char(6,0,'V');

30

自动增益控制放大器

Disp1Char(9,1,'V'); // Disp1Char(15,1,'m'); }

/**********************ADCreset*********************** 函数名称:ADCreset

函数功能;对ADC12进行初始化 返回参数:无

******************************************************/ void ADCreset() {

P6SEL |= 0x07; // 使能ADC通道

ADC12CTL0 = ADC12ON+SHT0_8+MSC; // 打开ADC,设置采样时间, ADC12CTL0 |= REF2_5V+REFON; //使用内部参考电压源 2.5V ADC12CTL1 = SHP+CONSEQ_3; // 使用采样定时器,序列通道多次模式 //ADC12MCTL0 = INCH_0+SREF_1; //p6.0口采样,使用内部参考电压 //ADC12MCTL1 = INCH_1+SREF_1; //p6.1口采样,使用内部参考电压 ADC12MCTL0 = INCH_0; ADC12MCTL1 = INCH_1; ADC12MCTL2 = INCH_2+EOS;

ADC12IE = 0x02; // 使能ADC中断 ADC12IFG = 0x02;

ADC12CTL0 |= ENC; // 使能转换 ADC12CTL0 |= ADC12SC; // 开始转换 }

/*******************DACreset************************* 函数名称:DACreset

函数功能:初始化内部DAC12转换器 返回参数:无

**************************************************/ void DACreset(void) {

DAC12Init(0,5); //初始化 DAC12Cal(2); //校准

//ADC12CTL0 = REF2_5V + REFON; //开启内部参考源 2.5v 必须有;以供DA使用 //z=2048;

//DAC12_0DAT=z; //输出放大器倍数对应的电压值 }

31

成都工业学院毕业设计(论文)

/**************************************************************************** * 名 称:ClkInit

* 功 能:时钟系统初始化 MCLK为8MHz,SMCLK为1MHz * 入口参数:无 * 出口参数:无

****************************************************************************/ void ClkInit(void) {

char mi;

BCSCTL1 &= ~XT2OFF; //打开XT2振荡器 IFG1&=~OFIFG; //清除振荡错误标志 while((IFG1&OFIFG)!=0) {

for(mi=0;mi<0xff;mi++);

IFG1&=~OFIFG; //清除振荡错误标志 }

BCSCTL2 |= SELM_2+SELS+DIVS_3; //MCLK为8MHz,SMCLK为1MHz }

/******************DACout********************* 函数名称:DACout

函数功能:计算ADC采集的输入电压与默认值2v的倍数关系 并转化为相应的电压通过DAC模块输出。 返回参数:无

*********************************************/ void DACout(void) {

DAC12_0DAT=z; //输出放大器倍数对应的电压值 }

/******************************************* 函数名称:delay

功 能:用于消抖的延时 参 数:无 返回值 :无

********************************************/ void delay(void) {

32

自动增益控制放大器

uint tmp;

for(tmp = 12000;tmp > 0;tmp--); } Cry1602.c

#include #include \typedef unsigned char uchar; typedef unsigned int uint;

/**************宏定义***************/ #define DataDir P2DIR #define DataPort P2OUT #define Busy 0x80 #define CtrlDir P6DIR

#define CLR_RS P6OUT&=~BIT3; //RS = P6.3 #define SET_RS P6OUT|=BIT3;

#define CLR_RW P6OUT&=~BIT4; //RW = P6.4 #define SET_RW P6OUT|=BIT4; #define CLR_EN P6OUT&=~BIT5; #define SET_EN P6OUT|=BIT5;

/******************************************* 函数名称:DispNchar

功 能:让液晶从某个位置起连续显示N个字符 参 数:x--位置的列坐标 y--位置的行坐标 n--字符个数

ptr--指向字符存放位置的指针 返回值 :无

********************************************/ void DispNChar(uchar x,uchar y, uchar n,uchar *ptr) {

uchar i;

for (i=0;i

Disp1Char(x++,y,ptr[i]); if (x == 0x0f) {

//EN = P6.5

33

成都工业学院毕业设计(论文)

}

/******************************************* 函数名称:LocateXY

功 能:向液晶输入显示字符位置的坐标信息 参 数:x--位置的列坐标 y--位置的行坐标 返回值 :无

********************************************/ void LocateXY(uchar x,uchar y) {

uchar temp; }

/******************************************* 函数名称:Disp1Char

功 能:在某个位置显示一个字符 参 数:x--位置的列坐标 y--位置的行坐标 data--显示的字符数据 返回值 :无

********************************************/ void Disp1Char(uchar x,uchar y,uchar data) { }

/******************************************* 函数名称:LcdReset

功 能:对1602液晶模块进行复位操作

LocateXY( x, y );

LcdWriteData( data ); temp = x&0x0f; y &= 0x01;

if(y) temp |= 0x40; //如果在第2行 temp |= 0x80;

LcdWriteCommand(temp,1); }

x = 0; }

y ^= 1;

34


自动增益放大器毕业设计论文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:作为阿米巴经营的主体,如何使阿米巴经营在本部门切实运行,并请

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: