课程设计说明书范文.doc_第1页
课程设计说明书范文.doc_第2页
课程设计说明书范文.doc_第3页
课程设计说明书范文.doc_第4页
课程设计说明书范文.doc_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

课程设计(论文)说明书题 目:数字电压表 院 (系):信息与通信学院 专 业:电子科学与技术 学生姓名:尹建生 学 号:1000230130 指导教师:李海鸥 职 称:教授 2012年 12月 14 日桂林电子科技大学课程设计(论文)报告用纸 第 I 页 共 II 页摘 要数字电压表利用模-数转换原理测量电压值,并以数字形式显示测量结果的电压仪表。本设计从经济实用的角度出发,采用美国Atmel公司的单片机AT89S52作为主控芯片,结合外围的电压信号采集、AD转换、显示等电路,用C语言编写主控芯片的控制程序,设计了一款可以测量电压范围分为05V和510V的数字电压表。经实验证明,该数字电压表有设计方法合理,简单易行,成本适中,安全实用等特点,适合大学生自己制作与使用。 关键词:数字电压表;单片机Abstract:The digital voltmeter uses of analog-to-digital conversion principle to measure the voltage, and voltage meter measurement result is displayed in digital form. from the point of view of economic and practical, this design uses of American Atmels microcontroller AT89S52 as the master chip, and is combined with the peripheral circuit voltage such as signal acquisition, AD converter, display. The master chip control program uses the C language. The voltage range which the digital voltmeter can measure is divided into 0 5V and 5 10V . The experiment proved that the digital voltmeter has a reasonable design, simple, low cost, safe and practical features, it is suitable for college students to produce their own and use.Key words:digital voltmeter; SCM桂林电子科技大学课程设计(论文)报告用纸 第 II 页 共 II 页目 录引言 11 设计方案 11.1 数字电压表的设计分析11.2 设计要求12 硬件电路设计12.1 单片机AT89S52简介 12.1.1AT89S52 12.1.2AT89S52主要特性12.2 整体硬件原理图 32.3 电压信号采集电路设计 32.4液晶显示设计 42.5 AD准换电路设计 52.6 51最小系统设计 63 程序设计 63.1 程序设计内容 63.2 C语言源程序 64 心得体会 6谢辞 8参考文献 9附录 10桂林电子科技大学课程设计(论文)报告用纸 第 18 页 共 17页引言采用新技术、新工艺,由LSI和VLSI构成的新型数字仪表及高档智能仪器的大量问世,标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。1 设计方案1.1 数字电表的设计分析数字电压表是数字型测量仪器的基础和典型代表。数字电压表的核心是模拟-数字转换器。模-数转换电路分为积分型与非积分型两类。伺服连续比较型、逐次逼近比较型、斜波型和阶梯波型属非积分型;电压-频率变换型、双斜率电压-时间变换型和脉宽调制型都属积分型。双斜率电压-时间变换器性能较好,其精确度只取决于基准电压和精确度,而积分元件和振荡器只要求频率稳定,而绝对值对变换器精确度并无影响,因而能大大简化生产和调试过程。1.2 设计要求通过电路将需要采集的电压信号分为05V和510V两个档,05V直接进入A/D转换进行测量,510V信号通过分压网络进行分压,使其范围落在05V,然后进入A/D转换进行测量,单片机采集A/D转换的结果,通过算法计算得到所测得的实际电压值,然后将此电压值往显示电路显示。2 硬件电路设计 2.1单片机AT89S52简介2.1.1 AT89S52如图1所示,AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。2.1.2 AT89S52主要性能AT89S52单片机可与MCS-51单片机产品兼容、8K字节在系统可编程Flash存储器、1000次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32个可编程I/O口线、三个16位定时器/计数器八个中断源、全双工UART串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符【2】。 图1 单片机AT89S52管脚图图2.a 最小系统及液晶显示电路模块图2.b 电压信号采集电路及AD转换电路模块2.2 整体硬件原理图系统硬件电路由4部分组成:电压信号采集电路、A/D转换电路、显示电路和51最小系统电路。分为2个模块,其中显示电路和51最小系统电路为模块一,如图2.a;电压信号采集电路和A/D转换电路为模块二,如图2.b。2个模块用杜邦线连接起来。2.3电压信号采集电路如图3电压信号经SIGNAL端对地输入。R3、R4对地输入电路进行分压;TL431和电阻R7、R8产生2.5V的基准电压【3】;LM393构成比较器,当正端输入大于负端输入时将输出高电平(+5V),当正端电压小于负端电压时将输出低电平(0V);K1为常闭继电器;8050组成开关电路,当LM393输出高电平时8050导通,电流经R2和8050集成电流向继电器K1源绕组从而关闭继电器。通过上述分析我们不难得出:当输入信号小于时,电阻端电压小于2.5Vlm393输出低电平,8050截止,继电器导通,信号直接传递至转换通道;当输入信号大于5V而小于10V时,电阻R4端电压大于2.5V,lm393输出高电平,8050导通,继电器截止,信号经R3,R4分压后,转变成05V信号传递至AD转换通道.同时单片机引脚P3.3和A/D转换芯片0809引脚ADD-A变为高电平。 图3电压信号采集电路2.4液晶显示设计显示部分采用1602LCD,如图4所示。图4 液晶显示部分 图5 AD转换电路2.5 AD转换电路A/D转换电路采用AD0809完成。AD0809是一款为逐次逼近型A/D转换器。带个模拟量输入通道,内带地址译码器,内带三态锁存器,脉冲启动,转换时间100us【1】,电路如图5所示。AD0809数据接口与单片机P1口连接,时钟端通过单片机的定时器0软件编程,在P00端产生500KHz的时钟,参考电压为+5V,0V.ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此 地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可 用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上,其时序图如图6所示。图6 AD0809的工作时序图2.6 51最小系统设计图7 51最小系统原理图3. 程序设计3.1程序设计内容(1)AD0809的读写操作;(2)数据处理与计算;(3)LCD显示电压值。3.2 C语言源程序程序及流程图见附录。4. 心得体会从开始进行设计数字电压表到完成实现数字电压表功能,我找了很多资料,并应用了Altium Designer Winter 09软件进行画图,并运用单片机知识进行编程以完成设计要求的功能。其中在调试的过程中最为困难,特别是在实际调TL431输出时与理论存在差距,不得不改变R7的阻值,最终令R7的值为0欧,而比较器LM393的外接上拉电阻R6也必须大于1K以上,LM393才能正常工作,否则输出端只输出低电平,不会输出高电平。在验证数字电压表的实际效果时,我用万用表做了比较,误差范围大概在0.04V0.09V,实验误差较小,这可能是在电压采集电路中R7,R8本身的分压电路存在少许误差,参考电压+5V,0V的精切度和软件编程时数据换算公式的误差等多种误差造成的结果。而在软件调试的过程中,我把AD0809数据接口改成与单片机P3口连接,把ADD-A改成与P1.5口相连,把AD0809的数据输出允许端OE改成与P1.7相连,AD0809转换结束信号端EOC改成与P1.1端相连,AD0809转换启动端ST改成与P1.6端相连。谢 辞感谢学院给我们提供这样的实践动手机会,并通过课程设计使我们能够有机会将书本上学到的知识运用到的实际中去。在课设过程中李海鸥老师给了我很多的指导和帮助,并监督我及时完成了本次课程设计,在此特别感谢李海鸥老师和给予我帮助的同学。参考文献1 李群芳. MCS-51单片机微型计算机与接口技术(第3版).电子工业出版社, 2008.5:190191.2 郭天祥.新概念51单片机C语言教程.电子工业出版社 ,2009.1:14.3 宋戈 .51单片机应用开发范例大全.人民邮电出版社 ,2010.2:374375.附 录附录中主要包括电路模块一和电路模块二的PCB图,如图8,图9所示,其中还有本课程设计的C语言流程图及源程序,如图10所示。图8 51最小系统及液晶显示电路的PCB图图9 电压信号采集电路及AD转换电路的PCB图C语言程序流程图:开始启动AD0809AD0809输出使能数据转换及处理液晶1602显示电压结束图10 数字电压表测电压流程图C语言源程序:#include /包含单片机寄存器的头文件#include /包含_nop_()函数定义的头文件sbit RS=P20; /寄存器选择位,将RS位定义为P2.0引脚sbit RW=P21; /读写选择位,将RW位定义为P2.1引脚sbit E=P22; /使能信号位,将E位定义为P2.2引脚sbit BF=P07; /忙碌标志位,将BF位定义为P0.7引脚unsigned char code string = Digitalvoltmeter; unsigned char dispbuf4=0,0,0,0;unsigned char getdata;unsigned int temp;sbit ST=P16;sbit OE=P17;sbit EOC=P11;sbit DA=P15;sbit CLK=P10;/*函数功能:延时1ms*/void delay1ms() unsigned char i,j; for(i=0;i10;i+) for(j=0;j33;j+) ; /*函数功能:延时若干毫秒入口参数:n*/ void delay(unsigned int n) unsigned int i;for(i=0;i0;x-) for(y=1;y0;y-); /*函数功能:判断液晶模块的忙碌状态返回值:result。result=1,忙碌;result=0,不忙*/ bit BusyTest(void) bit result;RS=0; /根据规定,RS为低电平,RW为高电平时,可以读状态 RW=1; E=1; /E=1,才允许读写 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 result=BF; /将忙碌标志电平赋给resultE=0; return result; /*函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate*/void Write_com (unsigned char dictate) while(BusyTest()=1); /如果忙就等待 RS=0; /根据规定,RS和R/W同时为低电平时,可以写入指令 RW=0; E=0; /E置低电平(写指令时, / 就是让E从0到1发生正跳变,所以应先置0 _nop_(); _nop_(); /空操作两个机器周期,给硬件反应时间 P0=dictate; /将数据送入P0口,即写入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=0; /当E由高电平跳变成低电平时,液晶模块开始执行命令 /*函数功能:指定字符显示的实际地址入口参数:x*/ void WriteAddress(unsigned char x) Write_com(x|0x80); /显示位置的确定方法规定为80H+地址码x /*函数功能:将数据(字符的标准ASCII码)写入液晶模块入口参数:y(为字符常量)*/ void WriteData(unsigned char y) while(BusyTest()=1); RS=1; /RS为高电平,RW为低电平时,可以写入数据 RW=0; E=0; /E置低电平(写指令时, / 就是让E从0到1发生正跳变,所以应先置0 P0=y; /将数据送入P0口,即将数据写入液晶模块 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 E=0; /当E由高电平跳变成低电平时,液晶模块开始执行命令 /*函数功能:对LCD的显示模式进行初始化设置*/void LcdInt(void) delay(15); /延时15ms,首次写指令时应给LCD一段较长的反应时间 Write_com(0x38); /显示模式设置:162显示,57点阵,8位数据接口delay(5); /延时5msWrite_com(0x38);delay(5);Write_com(0x38); /3次写 设置模式delay(5);Write_com(0x0F); /显示模式设置:显示开,有光标,光标闪烁delay(5);Write_com(0x06); /显示模式设置:光标右移,字符不移delay(5); Write_com(0x01); /清屏幕指令,将以前的显示内容清除delay(5); void main(void) /主函数 unsigned char i,j,k; EA=1; /开总中断ET0=1; /定时器T0中断允许 TMOD=0x01; /使用定时器T0的模式1TH0=(65536-1)/256; /定时器T0的高8位赋初值TL0=(65536-1)%256; /定时器T0的高8位赋初值TR0=1; /启动定时器T0 LcdInt(); /调用LCD初始化函数 delay(10); while(1) LcdInt(); /调用LCD初始化函数 Write_com(0x01);/清显示:清屏幕指令 WriteAddress(0x00); / 设置显示位置为第一行的第1个字 i = 0;while(stringi != 0) /0是数组结束标志 / 显示字符WriteData(stringi);i+;delay(1); ST=1; ST=0; /启动AD0809 ST=1; delayAD(9); while

温馨提示

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

评论

0/150

提交评论