成都工业学院毕业设计(论文)
图3-8 单片机控制电路
总电路图见附录A 总电路图。 3.9 本章小结
在各个模块中基于数电和模电以及电路分析进行电路设计,同时查询各种电路和芯片的资料进行分析,同时制作时简单电路用万用板焊接,而较复杂的电路则选用PCB板制作。
10
自动增益控制放大器
第4章 程序设计
在进行系统设计时,除了硬件设计外,大量的工作就是如何根据每个输入信号的实际需要设计应用程序。因此,软件设计自动增益系统设计中占据非常重要。所以系软件设计更为重要。 4.1主程序流程图
该主程序包括了键盘模块和DAC输出子程序,按键通过外置在P1口,DAC输出程序为P6.6口输出,主流程图如图4-1所示
开始 ADC初始化 DAC初始化 判断是否有键按下 Y 键盘程序 N DAC输出子程序 图4-1 主程序流程图
主程序:void main(void) {
WDTCTL = WDTPW+WDTHOLD; //关闭看门狗
11
成都工业学院毕业设计(论文)
/*下面六行程序关闭所有的IO口*/ P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF; P3DIR = 0XFF;P3OUT = 0XFF; P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF; P6DIR = 0XFF;P6OUT = 0XFF; P1DIR = 0XF7; P3OUT = 0X00; P1SEL = 0x08; // P1IES=0XF7;
P6DIR |= BIT2;P6OUT |= BIT2; //关闭电平转换
ClkInit(); //时钟初始化 ,1MHZ,smclk LcdReset(); //复位1602液晶 reset(); //外部显示初始化 ADCreset(); //ADC12初始化 TBCCR0 = 32768 - 1; //设置定时器A的中断时间为1S TBCTL = TBSSEL_1 + MC_1; //计数时钟ACLK, 增计数模式 TBCCTL0 |= CCIE;
TACCTL2=CM_1+SCS+CCIS_0+CAP+CCIE;
_EINT(); //开启总中断 // _BIS_SR(LPM0_bits+GIE); //低功耗模式 LPM0 DACreset();
while (1) {
if(keyin!=0x0f) {
//delay(); switch(keyin) {
case 0x0e:bz_v+=248;break; //P1.0键按下,标准电压步进加0.2v
case 0x0d:bz_v-=248;break; //P1.1键按下,标准电压步进减0.2v case 0x0b:t+=1;if(t==2) t=0;Disp1Char(14,1,t+0x30);break; default:break;
12
自动增益控制放大器
}
while(keyin!=0x0f); if(bz_v>=3723) bz_v=3723; else if(bz_v<=1241) bz_v=1241; }
DACout(); } }
4.2各模块程序流程图 4.2.1键盘程序流程图
键盘程序通过P1口的按键控制,程序流程图如图4-2所示。
键盘子程序按键是否按下?是否增加标准值减小标准值选择模式返回
图4-2 键盘程序
键盘程序: if(keyin!=0x0f) {
//delay(); switch(keyin)
13
成都工业学院毕业设计(论文)
{
case 0x0e:bz_v+=248;break; //P1.0键按下,标准电压步进加0.2v
case 0x0d:bz_v-=248;break; //P1.1键按下,标准电压步进减0.2v
case 0x0b:t+=1;if(t==2) t=0;Disp1Char(14,1,t+0x30);break; default:break; }
while(keyin!=0x0f); 4.2.2噪声采样程序流程图
噪声采样通过麦克风采样模块采集环境声音,再在程序中判断声音来改变输出信号的大小,程序流程图如图4-3所示,程序见附录B:噪声采样程序。
噪声采样子程序AD采样大于噪声值是否大于标准值?相等小于增加D/A输出不改变标准值减小D/A输出改变输出改变输出返回 图4-3 噪声采样程序流程图
14