《单片机系统设计》实验报告_第1页
《单片机系统设计》实验报告_第2页
《单片机系统设计》实验报告_第3页
《单片机系统设计》实验报告_第4页
《单片机系统设计》实验报告_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、 短学期实验报告(单片机系统设计)题 目: 专 业: 指导教师: 学生姓名: 学 号: 完成时间: 成 绩: 基于单片机的交流电压表设计目 录1 系统的设计要求22 系统的硬件要求22.1 真有效值转换电路的分析22.2 放大电路的设计32.3 A/D转换电路的设计32.4 单片机电路的分析42.5 显示电路43 软件设计53.1 软件的总流程图 53.2 初始化定义与定时器初始化流程 图53.3 A/D转换流程图 63.4 数据处理流程图 63.5 数据显示流程图 74 调试 74.1 调试准备 74.2 关键点调试 74.3 测试结果 84.4 误差分析 85结束语85.1 总结 95.2

2、 展望 9附录1 总原理图10附录2 程序10附录3 实物图14基于单片机的交流电压表设计*学院 *专业 姓名指导老师:*1 设计要求(1)运用单片机实现真有效值的检测和显示。(2)数据采集使用中断方式,显示内容为有效值与峰值交替进行。2 硬件设计本系统是完成一个真有效值的测量和显示,利用AD737将交流电转换成交流电压的有效值,用ADC0804实现模数转换,再通过单片机用数码管来显示。系统原理框图如图2-1所示。系统框图由真有效值转换电路、放大电路、A/D 转换电路、单片机电路、数码管显示电路五部分。A/D转换单片机电路显示电路转换电路交流信号放大电路图2-1 原理框图2.1 真有效值转换电

3、路真有效值转换电路主要是利用AD737芯片来实现真有效值直流变换的,即将输入的交流信号转换成直流信号的有效值,其原理图如图2-2所示。图2-2 真有效值转换电路 由于AD737最大输入电压为200mV, 所以需要接两个二极管来限制输入电压,起到限幅的作用。如图中D1、D2,由IN4148构成,电容C6是耦合电容,电阻R1是限流电阻。2.2 放大电路设计 放大电路主要是利用运放uA741来进行放大,电路原理图如图2-3所示。图2-3 放大电路原理图由于AD737可接受的信号有效值为0200mV。而ADC0804、单片机的电源电压都需要05V,因此需要一个放大电路,将AD737输出的200mV的电

4、压提升至5V,所以放大电路的放大倍数最低需要25倍。该放大电路采用集成芯片uA741,连接成一个同相比例运放,输入电阻采用3.3K,反馈电阻用100K的滑动变阻器,当滑动变阻器处于最大值时,放大倍数处于最大,为AVf=(1+R3/R2)31.3。放大倍数可以根据滑动变阻器的滑动而改变。2.3 A/D转换电路 A/D转换电路采用ADC0804实现,其原理图如图2-4所示。图2-4 A/D转换电路原理图此电路考虑到做单片机系统时,需数据采集,而数据采集能通过I/O口扩展接口电路得到,但51单片机大多不带A/D转换器,所以模拟量的采集必须靠A/D实现。所谓A/D转换就是将输入的模拟信号转换成数字信号

5、输出。改该电路采用ADC0804芯片,其最快转换时间为100us,时钟频率f=1/(C5*R9),可对05V之间的电压进行转换;输入基准电压为实际基准电压的1/2;若输入基准电压为2.56V,其输入模拟电压为(DATA/256)*2,DATA为转换数字量。转换结束信号输出到单片机外中断1,如图2-4所示。/RD为外部读取转换结果的控制输出信号。/RD为HI时,DB0DB7为高阻抗;/RD为LO时,数据才输出。/WR用来启动转换控制输入,相当于ADC转换开始(/CS=0时),当/WR由HI变为LO时,转换器被清除;当/WR为HI时开始转换。CLK IN,CLK R:接振荡电路,振荡频率为1/(1

6、.1RC),如图中R9、C6,ADC0804的最大输入电压为5V,输出转换值为0255,R5、R11组成分压电路,为VREF提供基准电压。根据ADC0804原理图,将输入模拟值转换成数字值后由P0口输出。 2.4 单片机电路单片机电路主要是单片机的最小系统,其原理图如图2-5所示。图2-5 单片机电路原理图 该部分电路主要由89S51、晶振和复位电路组成其原理图如2-6所示。采用12M的晶振,机器周期为0.1us;上电复位;信号输入到外中断0,在中断中启动AD转换; AD转换结束标志作为外中断1的中断源,在中断1中读取数据并保存;P1口为数码管提供断码;P0.0P0.7分别为AD的启动信号、A

7、D的读取信号和数码管的扫描信号。2.5 显示电路 显示电路采用数码管来显示。如图2-6所示。图2-6 显示电路原理图该部分电路采用3位数码管来交替显示所测电压的有效值和峰值,同时数码管采用动态显示,每1ms刷新一位,用3个8550的PNP型三极管来片选。图中smg0smg7与单片机P0口相连接,三极管的集电极分别与共阳数码管9脚相连接,基极分别与单片机的P2.1P2.3相连接。3 软件设计3.1 总软件流程总软件流程图如图3-1所示:程序初始化定时AD采样初始化中断更新AD标志位1S定时AD有效值更新显示图3-1 总软件流程图3.2 初始化程序 初始化程序主要是定义主程序中要用的变量和定时器的

8、初始化。变量定义如下:unchar dat; /AD采样数据变量unchar tab3; /显示数据各个位存储数组定时器初始化流程图如图3-2所示:图3-2 定时器初始化流程图3.3 AD采样程序 AD采样主要是根据ADC0804的时序进行对外部数据的采用读取。其中包括AD初始化时序和AD数据读取程序。AD时序图3-3所示:图3-3 AD时序图 根据3-3图所示时序,写出AD程序流程图,如图3-4所示图3-4 AD程序流程图3.4 数据处理程序对AD采样的数据必须进行处理才能正常地显示。首先的要把十六进制数的AD值转换成十进制数,然后进行值处理,求出有效值,峰值,接着分别求出数据中的各个位上的

9、数字,以便显示。其程序流程图如图3-7所示。图3-7 数据处理程序流程图3.5 数据显示程序数据显示主要是用数码管动态扫描的方法。其程序流程图如土3-8所示图3-8 数据显示程序流程图4 调试4.1 调试准备调试所用到的仪器有万用表、直流稳压电源、示波器、信号发生器。运用万用表来测量电阻、电压,直流稳压电源接正负Vs和地,信号发生器产生信号,示波器显示输出波形和峰值。4.2 关键点调试(1)、放大电路调试前要先进行调零,即将运放的2个输入端(同相输入端和反向输入端)对地短路,用万用表测输出电压,调节滑动变阻器R1,使输出电压为0,如果不进行调零,则会导致输出电压有偏差。(2)、注意输入A/D的

10、基准电压为1/2vef,同时最合适的基准电压为2.56V,以便计算时方便。4.2.1 放大波形(1)、理论波形 (2)、实际波形4.2.2 显示电路4.3 测试结果输入 Vpp输入信号有效值测量值(有效值)1.04344.680.3031.0621.4131.630.301.051.401.661.22.302.8140.5201.141.362.090.5241.161.352.121.0422.524.680.280.5630.771.330.270.5600.561.354.4 误差分析 (1)放大电路的放大倍数会因输入电阻,反馈电阻与理论值有偏差而存在一定的误差,放大倍数过大会波形互失

11、真;(2)当ADC0804的基准电压为2.56V时,其最小分辨率为20mv,因此测量值会有20mv的偏差;(3)输入信号存在干扰和波动;(4)偏置电压引起的误差。5 结束语5.1 总结通过本次短学期的实验,使我对很多芯片有了一定的了解和巩固,对它们的功能有了一定的熟悉和掌握。如AD737,该芯片可以用来将交流电转换成真有效值的直流电,如ADC0804芯片可实现数模转换,同时对真有效值的转换、放大等电路的设计有了进一步的理解和掌握。在电路设计中必须注意电路中各元件值的选择会影响电路最终的结果。当在设计放大电路时,输入电阻、反馈电阻的不同就会使放大倍数有所不同,根据题目要求和芯片的资料,必须保证最

12、低放大倍数25,因此如放大倍数太小则不能满足要求,而太大则会导致输出波形的失真。因此,要合理选择各元件的值。在电路调试时,应该分模块进行调试,及时发现问题解决问题,等所有模块都调试成功再进行总体的调试。 最后要根据自己所测的结果,进行分析,尤其对测试出的结果与理论结果进行比较,是否有误差,并分析形成误差的原因,如何减少误差。5.2 展望虽然该电路已经基本能实现对真有效值的测量和显示,但测量结果还存在着较大的误差,电路设计还有待于进一步的完善,各部分电路的稳定性也有待于进一步的提高,希望通过更进一步的研究和学习,实现用更少的元件,设计出更加合理、更高效的电路。附录:1 总原理图2 程序清单主程序

13、模块#include#include#includeadc0804.h#includesmgdis.h#define unchar unsigned char#define unint unsigned intunchar count=0;unchar ID=0; /任务ID,时间片分配ID#define a 0.5static unchar y;static time_init() TMOD=0x01;/*定时器T0方式1(16位计数器)*/*公式为:x=65536-fosc/12*t 65536-50000=15536 其中x为定时初值,fosc为晶振频率,t为定时时间*/TH0=1553

14、6/256; /*定时器高位*/ TL0=15536%256; /*定时器低位,定时时间为50ms ,20次为1s */ ET0=1;/*允许定时器T0中断*/TR0=1;/*开定时器T0*/EA=1;/*开总中断*/void main() unchar dat;unchar tab3;time_init();while(1) dat=get_adc_value();value_done(dat,tab,ID); led_display(tab0,tab1,tab2);void timer0() interrupt 1TR0=0;TH0=15536/256; TL0=15536%256; /*

15、重装初值*/count+; /*计数,累加中断次数*/if(count=20) /*判断是否到10次,即0.5s*/ count=0;ID+; /*转换下一个显示*/ if(ID=3) ID=0;TR0=1;A/D转换模块:(头文件)#ifndef_ADC0804_H_#define _ADC0804_H_#ifndef unchar#define unchar unsigned char#endif#ifndef unint#define unint unsigned int#endif#define adc_databus P1 /the databus of ADCsbit cs_adc

16、=P20;/to choose the chip ADC0804sbit wr=P36;/wr# signalsbit rd=P37;/rd# signalvoid value_done(unint tvdata,unchar led,unchar ID) unint temp;/temp=(unint)(tvdata*1.0/255*500);temp=(unint)(tvdata*2);switch(ID)case 0: /有效值break; case 1: /峰值temp*=sqrt(2);break;default: /其他情况 break; led0=(temp/100)%10;/最

17、高位led1=(temp/10)%10;led2=temp%10; /最低位if(led010|led010|led110|led20) led0=11; unchar get_adc_value(void) unchar k;unint tvdata;/-adc0804 start-/ cs_adc=0;k=k; /nopwr=0;k=k;wr=1; k=k;cs_adc=1;k=k;k=k;k=k;/-read value of adc0804-/adc_databus=0xff;cs_adc=0;k=k; rd=0;k=k; tvdata=adc_databus; rd=1;k=k;cs

18、_adc=1;k=k;return tvdata; #endif显示模块(头文件)#ifndef_SMGDIS_H_#define _SMGDIS_H_#ifndef unchar#define unchar unsigned char#endif#ifndef unint#define unint unsigned int#endif/*全局变量定义*/#define DataBus P0/数据口定义sbit c0=P21; /数码管0控制脚sbit c1=P22; /数码管1控制脚sbit c2=P23; /数码管2控制脚void delay(void)unchar i;unchar t=1;while(t-)for(i=0;i125;i+);void led_display(unchar a,unchar b,unchar c) /*共阳数码管数字码09+全暗码*/Unchar code tab01

温馨提示

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

评论

0/150

提交评论