专业技能实训报告交直流信号的测量.docx_第1页
专业技能实训报告交直流信号的测量.docx_第2页
专业技能实训报告交直流信号的测量.docx_第3页
专业技能实训报告交直流信号的测量.docx_第4页
专业技能实训报告交直流信号的测量.docx_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

济南大学毕业设计专业技能实训报告题 目 (宋体三号,居中) 学 院 (全称,宋体三号,居中) 专 业 (全称,宋体三号,居中) 班 级 (宋体三号,居中) 学 生 (宋体三号,居中) 学 号 (宋体三号,居中) 指导教师 (宋体三号,居中) 二一 年 月 日(宋体三号,居中)- 2 -济南大学实训报告- - 19 - -摘要实验内容及要求21.1实验内容21.2、实验要求3二、主要元器件简介32.2、继电器的工作原理和特性.42.3、继电器主要产品技术参数4三、测量原理及电路设计53.1、数字式直流电压测量原理53.2、直流大电压信号的测量63.3、直流小电压信号的测量63.5、译码部分的调试73.6、单片机与译码部分整体调试83.7、整机调试8四 、交流信号单片机软件设计五、实验心得体会9参考文献:10附录一11摘要日常生活及学习中,我们一般需要之间测量交流信号,测量交流信号的方法有很多,而在应用单片机的测量中,我们常常用来测量直流电压,现在将介绍一种基于msp430单片机实现的交流电压和直流电压的测量方法。系统的构成主要分硬件设计和软件设计两块来介绍。一、实验的内容、要求1.1实验内容交流信号:.1v-10v ,频率范围:-,直流信号:-,测量精度:;1.2、实验要求 (1)设计方案中能用软件实现的尽量用软件实现,这样可以减少成本,也减少了硬件的一些干扰。 (2)本实验采用stc12c5a32ad单片机,由实验室提供了该单片机的最小系统,线路板,在该线路板上扩展了部分功能,多余的i/o口也扩展出来。二、主要元器件简介2.1、stc12c5a32ad芯片简介 这是宏晶的mcs-51兼容单片机,最大频率可以达到35hmz,最大速度可以达到35mips。这种单片机有32kb flash,其中部分可以作为eeprom使用;有1280bytes ram,其中256bytes 是基本ram,其他是扩展ram,需要采用外部ram方式访问;有2路10位adc,可以简化外部硬件;多组pwm输出,可以免除外部dac;有上电复位电路和看门狗,可以大大降低最简系统成本和体积;有多种封装,可以便于选用。最大的优势是,stc采用mcs-51构架,拥有极大的软件优势和极多的用户群,使得这个产品的出货量很大,能够保证供货和较低成本。 三、测量原理及电路设计3.1、数字式直流电压测量原理 数字式直流电压表的组成结构图如下图所示: 图二、数字直流电压表结构图 直流电压经过输入电路变换为合适的电压后,用a/d转换器将模拟电压变换成数字量,再由电子计数器对数字计数得到测量结果,逻辑控制电路控制电路的协调工作,在时钟的作用下顺序完成整个测量过程。这次设计采用多的是stc12c5a32ad系列带a/d转换的单片机,电压输入型a/d,可做温度检测,电池电压检测,按键扫描,频谱检测等。10位a/d转换结果计算公式如下:(adc_data7:0,adc_low1:0=1024*vin/vcc. 图三、电压测量原理框图3.2、直流大电压信号的测量 在ad采样前面加一级分压电路即分压器,可以扩展直流电压测量的量程。如下图所示:u0位电压表的量程,r位其内阻,r1,r2位分压电阻u0为扩展后的量程。3.3、直流小电压信号的测量图四、直流小信号放大电路 对于直流小信号( 20mv-200mv )的测量,需要设计信号放大电路将信号适当的放大再进行ad采样。3.4、多量程分压器原理 采用这种分压电路虽然可以扩展电压表的量程,但在小量程档明显降低了电压表的输入阻抗,着在实际使用中是所部希望的,所以,实际数字万用表的直流电压档为下图所示:他能在不降低输入阻抗的情况下达到相同的分压效果。 3.5、译码部分的调试图7,74hc595结构图图7,74hc595结构图 译码部分主要是检验74hc595片选和译码是否正常。我们选用了检测数码管以及74hc595是否完好的程序进行下载并检测,这样不仅可以检测这两部分是否完好,而且还可以检测电路板及单片机是否完好。我们通过给单片机下载检测程序,结果在数码管上显示的数字与我们预期的结果又很大的出入,经过我们一番检查也没找出原因之所在,最后我们问王老师才知道原来是我们的74hc595芯片给焊接错了,由于我焊接时出心大导致把74hc595的两根管脚短焊了,这才没有达到预期的效果,经过后来的一番改进,终于实现了检测功能。3.6、单片机与译码部分整体调试 上面是对译码部分单独进行了调试,而74hc595和数码管的工作是要在单片机的控制下工作的,所以我们做了这样一步测试。我为单片机编写了在数码管上动态点亮数码管并让四个数码管依次显示“0,1,2,3,到9”的程序,烧录并将单片机接入电路后发现数码管上显示的为“0000,1111,.9999.说明一切工作正常。3.7、整机调试 在进行电路的分局部调试之后,我们又进行了系统整机调试。首先为lm358接上5v的电压,为其他芯片接上2v的工作电压。另外还要输入待测的模拟电压,该电压从200mv以下的电压开始输起,依次增大。直到达到供端电压的上限5v为止,在这过程中,记录测量数据如下表所示。由于前面的分局部调试进行得还比较顺利,因此整机调试较为顺利。四 软件设计:对于交流采集,需要在1个工频周期内采集40个点,即时间间隔为500us,时间间隔采用定时器实现。整个程序主要包括初始化程序和采集程序。初始化程序主要是设置a/d采集通道和定时器a,采集程序主要是通过定时器来实现每间隔500us采集1次。采集程序使用定时器中断服务程序实现,在定时器中断里读出数据,当采集完40个点的数据后,设置一个标志通知主程序已经采集完40个点的数据,主程序通过全局的数据缓冲区与定时器中断服务程序实现数据的交互。单片机程序设计:(根据ti公司所给软件的例程改编得到)#include char nadc_flag;int nadc_count;int adc_buf40;void init_clk(void);void init_adc(void);void init_timera(void);void init_adc(void)/设置p6.0为模拟输入通道 p6sel = 0x01; /设置enc为0,从而修改adc12寄存器的值 adc12ctl0 &= (enc); /设置参考电压分别为avss和avcc,输入通道为a0 adc12mctl0 = inch_0 + eos; /转换的起始地址为:adcmem0 adc12ctl1 = 0x00; adc12ctl1 += cstartadd_0;/采样脉冲由采用定时器产生 adc12ctl1 += shp;/转换模式为:多通道、多次转换 adc12ctl1 += conseq_1;/内部时钟源 adc12ctl1 += adc12ssel_0;/时钟分频为1 adc12ctl1 += adc12div_0; adc12ctl0 += 8 * 0x100; adc12ctl0 += msc; adc12ctl0 += adc12on; adc12ie = 0;/关闭各个通道的转换中断 adc12ie |= 0x00; /使能adc转换 adc12ctl0 |= enc; return;void init_timera(void)/ 选择smclk,清除tar tactl = tassel1 + taclr; / 1/8 smclk tactl += id1; tactl += id0; / ccr0 中断允许 cctl0 = ccie;/ 时间间隔为 500us ccr0 = 500;/ 增记数模式 tactl |= mc0; return;void init_clk(void) unsigned int i; bcsctl1 = 0x00;/将寄存器的内容清零/xt2震荡器开启/lftx1工作在低频模式/aclk的分频因子为1 do ifg1 &= ofifg; / 清除oscfault标志for (i = 0x20; i 0; i-); while (ifg1 & ofifg) = ofifg); / 如果oscfault =1 bcsctl2 = 0x00;/将寄存器的内容清零 bcsctl2 += selm1;/mclk的时钟源为tx2clk,分频因子为1 bcsctl2 += sels;/smclk的时钟源为tx2clk,分频因子为1interrupt timera0_vector void timera_isr(void) int results;/ 关闭转换 adc12ctl0 &= enc; / 读出转换结果 results = adc12mem0; adc_bufnadc_count = results; / 计数器加1 nadc_count += 1;/ 采集完40个点 if(nadc_count = 40) / 设置标志 nadc_flag = 1;/ 计数器清0 nadc_count = 0; / 开启转换 adc12ctl0 |= enc + adc12sc;void main(void)int adc_buf_temp40;int i;/ 关闭看门狗wdtctl = wdtpw + wdthold; / 关闭中断 _dint(); / 初始化 init_clk(); init_adc(); init_timera();/ 打开中断_eint(); / 循环处理for(;)if(nadc_flag = 1)nadc_flag = 0;for(i = 0;i 40;i+)adc_buf_tempi = adc_bufi;小结:本设计想法采用msp430单片机实现交流电压得采集测量。主要通过介绍交流电压的极性转换电路、输入处理电路以及采用定时器中断服务程序进行交流电压数据的采集。由于本人水平有限,此方法比较简单,不过具有一定的实用性。参考文献:1msp430系列16位超低功耗单片机原理与应用 利尔达 策划 清华大学出版社2现代检测技术周杏鹏 仇国富 王寿荣 操家顺 编著 高等教育出版社3msp430 单片机技术白皮书ti公司4交流电压测试方法介绍 利尔达公司5msp430单片机c语言应用程序设计秦龙 编著 电子工业出版社 6、杨将新,李华军,刘东骏.2006.单片机程序设计及应用从基础到实践.北京:电子工业出版社 7柴钰,单片机原理及应用,西安电子科技大学出版社,20098、唐晨光,唐旭伟,覃媛.2010.单片机原理与应用.北京:清华大学出版社.9、刘文涛,单片机语言c51典型应用及设计,人民邮电出版社,200510、门刚.2005.精通protel dxp模块范例篇.北京:中国青年电子出版社附录一:摘要日常生活及学习中,我们一般需要之间测量交流信号,测量交流信号的方法有很多,而在应用单片机的测量中,我们常常用来测量直流电压,现在将介绍一种基于msp430单片机实现的交流电压的测量方法。系统的构成主要分硬件设计和软件设计两块来介绍。硬件设计:单片机电路如下图所示:整个电路如下图:软件设计:对于交流采集,需要在1个工频周期内采集40个点,即时间间隔为500us,时间间隔采用定时器实现。整个程序主要包括初始化程序和采集程序。初始化程序主要是设置a/d采集通道和定时器a,采集程序主要是通过定时器来实现每间隔500us采集1次。采集程序使用定时器中断服务程序实现,在定时器中断里读出数据,当采集完40个点的数据后,设置一个标志通知主程序已经采集完40个点的数据,主程序通过全局的数据缓冲区与定时器中断服务程序实现数据的交互。单片机程序设计:(根据ti公司所给软件的例程改编得到)#include char nadc_flag;int nadc_count;int adc_buf40;void init_clk(void);void init_adc(void);void init_timera(void);void init_adc(void)/设置p6.0为模拟输入通道 p6sel = 0x01; /设置enc为0,从而修改adc12寄存器的值 adc12ctl0 &= (enc); /设置参考电压分别为avss和avcc,输入通道为a0 adc12mctl0 = inch_0 + eos; /转换的起始地址为:adcmem0 adc12ctl1 = 0x00; adc12ctl1 += cstartadd_0;/采样脉冲由采用定时器产生 adc12ctl1 += shp;/转换模式为:多通道、多次转换 adc12ctl1 += conseq_1;/内部时钟源 adc12ctl1 += adc12ssel_0;/时钟分频为1 adc12ctl1 += adc12div_0; adc12ctl0 += 8 * 0x100; adc12ctl0 += msc; adc12ctl0 += adc12on; adc12ie = 0;/关闭各个通道的转换中断 adc12ie |= 0x00; /使能adc转换 adc12ctl0 |= enc; return;void init_timera(void)/ 选择smclk,清除tar tactl = tassel1 + taclr; / 1/8 smclk tactl += id1; tactl += id0; / ccr0 中断允许 cctl0 = ccie;/ 时间间隔为 500us ccr0 = 500;/ 增记数模式 tactl |= mc0; return;void init_clk(void) unsigned int i; bcsctl1 = 0x00;/将寄存器的内容清零/xt2震荡器开启/lftx1工作在低频模式/aclk的分频因子为1 do ifg1 &= ofifg; / 清除oscfault标志for (i = 0x20; i 0; i-); while (ifg1 & ofifg) = ofifg); / 如果oscfault =1 bcsctl2 = 0x00;/将寄存器的内容清零 bcsctl2 += selm1;/mclk的时钟源为tx2clk,分频因子为1 bcsctl2 += sels;/smclk的时钟源为tx2clk,分频因子为1interrupt timera0_vector void timera_isr(void) int results;/ 关闭转换 adc12ctl0 &= enc; / 读出转换结果 r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论