收藏 分享(赏)

课程设计说明书范文.doc

上传人:kpmy5893 文档编号:7088251 上传时间:2019-05-05 格式:DOC 页数:24 大小:738KB
下载 相关 举报
课程设计说明书范文.doc_第1页
第1页 / 共24页
课程设计说明书范文.doc_第2页
第2页 / 共24页
课程设计说明书范文.doc_第3页
第3页 / 共24页
课程设计说明书范文.doc_第4页
第4页 / 共24页
课程设计说明书范文.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

1、 课程设计( 论文)说明书题 目:数字电压表 院 (系):信息与通信学院 专 业:电子科学与技术 学生姓名:尹建生 学 号:1000230130 指导教师:李海鸥 职 称:教授 2012 年 12 月 14 日桂林电子科技大学课程设计(论文)报告用纸 第 I 页 共 II 页摘 要数字电压表利用模-数转换原理测量电压值,并以数字形式显示测量结果的电压仪表。本设计从经济实用的角度出发,采用美国 Atmel 公司的单片机 AT89S52 作为主控芯片,结合外围的电压信号采集、AD 转换、显示等电路,用 C 语言编写主控芯片的控制程序,设计了一款可以测量电压范围分为 05V 和 510V 的数字电压

2、表。经实验证明,该数字电压表有设计方法合理,简单易行,成本适中,安全实用等特点,适合大学生自己制作与使用。 关键词:数字电压表;单片机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 use

3、s 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

4、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桂林电子科技大学课程设计(论文)报告用纸 第 I 页 共 II 页桂林电子科技大学课程设计(论文)报告用纸 第 II 页 共 II 页目 录引

5、言 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桂林电子科技大学课程设计(论文)报告用纸 第 II 页 共 II 页桂林电子科技大学课程设计(论文)报告用纸 第 1 页 共 17 页引言采用新技术、新

6、工艺,由 LSI 和 VLSI 构成的新型数字仪表及高档智能仪器的大量问世,标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。1 设计方案1.1 数字电表的设计分析数字电压表是数字型测量仪器的基础和典型代表。数字电压表的核心是模拟-数字转换器。模-数转换电路分为积分型与非积分型两类。伺服连续比较型、逐次逼近比较型、斜波型和阶梯波型属非积分型;电压-频率变换型、双斜率电压-时间变换型和脉宽调制型都属积分型。双斜率电压-时间变换器性能较好,其精确度只取决于基准电压和精确度,而积分元件和振荡器只要求频率稳定,而绝对值对变换器精确度并无影响,因而能大大简化生产和调试过程。1.2 设计要求通

7、过电路将需要采集的电压信号分为 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 产品指令和引脚完全兼容。片上 Fla

8、sh 允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的 8 位 CPU 和在系统可编程Flash,使得 AT89S52 为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。2.1.2 AT89S52 主要性能AT89S52 单片机可与 MCS-51 单片机产品兼容、8K 字节在系统可编程 Flash存储器、1000 次擦写周期、全静态操作:0Hz33Hz、三级加密程序存储器、32 个可编程 I/O 口线、三个 16 位定时器/计数器八个中断源、全双工 UART 串行通道、低功耗空闲和掉电模式、掉电后中断可唤醒、看门狗定时器、双数据指针、掉电标识符 【2】 。桂林电子科技大

9、学课程设计(论文)报告用纸 第 2 页 共 17 页图 1 单片机 AT89S52 管脚图图 2.a 最小系统及液晶显示电路模块桂林电子科技大学课程设计(论文)报告用纸 第 3 页 共 17 页图 2.b 电压信号采集电路及 AD 转换电路模块2.2 整体硬件原理图系统硬件电路由 4 部分组成:电压信号采集电路、A/D 转换电路、显示电路和 51 最小系统电路。分为 2 个模块,其中显示电路和 51 最小系统电路为模块一,如图 2.a;电压信号采集电路和 A/D 转换电路为模块二,如图 2.b。2 个模块用杜邦线连接起来。2.3 电压信号采集电路如图 3 电压信号经 SIGNAL 端对地输入。

10、R3、R4 对地输入电路进行分压;TL431 和电阻 R7、R8 产生 2.5V 的基准电压 【3】 ;LM393 构成比较器,当正端输入大于负端输入时将输出高电平(+5V) ,当正端电压小于负端电压时将输出低电平(0V) ;K1 为常闭继电器;8050 组成开关电路,当 LM393 输出高电平时 8050 导通,电流经 R2 和 8050 集成电流向继电器 K1 源绕组从而关闭继电器。通过上述分析我们不难得出:当输入信号小于时,电阻端电压小于 2.5Vlm393 输出低电平,8050 截止,继电器导通,信号直接传递至转换通道;当输入信号大于 5V 而小于 10V 时,电阻 R4 端电压大于

11、2.5V,lm393输出高电平,8050 导通,继电器截止,信号经 R3,R4 分压后,转变成 05V 信号传递至 AD 转换通道.同时单片机引脚 P3.3 和 A/D 转换芯片 0809 引脚 ADD-桂林电子科技大学课程设计(论文)报告用纸 第 4 页 共 17 页A 变为高电平。图 3 电压信号采集电路2.4 液晶显示设计显示部分采用 1602LCD,如图 4 所示。图 4 液晶显示部分桂林电子科技大学课程设计(论文)报告用纸 第 5 页 共 17 页图 5 AD 转换电路2.5 AD 转换电路A/D 转换电路采用 AD0809 完成。AD0809 是一款为逐次逼近型 A/D 转换器。带

12、个模拟量输入通道,内带地址译码器,内带三态锁存器,脉冲启动,转换时间 100us【1】 ,电路如图 5 所示。AD0809 数据接口与单片机 P1 口连接,时钟端通过单片机的定时器 0 软件编程,在 P00 端产生 500KHz 的时钟,参考电压为+5V,0V.ADC0809 的工作过程是:首先输入 3 位地址,并使 ALE=1,将地址存入地址锁存器中。此 地址经译码选通 8 路模拟输入之一到比较器。START 上升沿将逐次逼近寄存器复位。下降沿启动 AD 转换,之后 EOC 输出信号变低,指示转换正在进行。直到 AD 转换完成,EOC 变为高电平,指示 AD 转换结束,结果数据已存入锁存器,

13、这个信号可 用作中断申请。当 OE 输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上,其时序图如图 6 所示。图 6 AD0809 的工作时序图桂林电子科技大学课程设计(论文)报告用纸 第 6 页 共 17 页2.6 51 最小系统设计图 7 51 最小系统原理图3. 程序设计3.1 程序设计内容(1)AD0809 的读写操作;(2)数据处理与计算;(3)LCD 显示电压值。3.2 C 语言源程序程序及流程图见附录。4. 心得体会从开始进行设计数字电压表到完成实现数字电压表功能,我找了很多资料,并应用了 Altium Designer Winter 09 软件进行画图,并运用单

14、片机知识进行编程以完成设计要求的功能。其中在调试的过程中最为困难,特别是在实际调TL431 输出时与理论存在差距,不得不改变 R7 的阻值,最终令 R7 的值为 0 欧,桂林电子科技大学课程设计(论文)报告用纸 第 7 页 共 17 页而比较器 LM393 的外接上拉电阻 R6 也必须大于 1K 以上,LM393 才能正常工作,否则输出端只输出低电平,不会输出高电平。在验证数字电压表的实际效果时,我用万用表做了比较,误差范围大概在 0.04V0.09V,实验误差较小,这可能是在电压采集电路中 R7,R8 本身的分压电路存在少许误差,参考电压+5V,0V的精切度和软件编程时数据换算公式的误差等多

15、种误差造成的结果。而在软件调试的过程中,我把 AD0809 数据接口改成与单片机 P3 口连接,把 ADD-A 改成与 P1.5 口相连,把 AD0809 的数据输出允许端 OE 改成与 P1.7 相连,AD0809 转换结束信号端 EOC 改成与 P1.1 端相连,AD0809 转换启动端 ST 改成与 P1.6 端相连。桂林电子科技大学课程设计(论文)报告用纸 第 8 页 共 17 页谢 辞感谢学院给我们提供这样的实践动手机会,并通过课程设计使我们能够有机会将书本上学到的知识运用到的实际中去。在课设过程中李海鸥老师给了我很多的指导和帮助,并监督我及时完成了本次课程设计,在此特别感谢李海鸥老

16、师和给予我帮助的同学。桂林电子科技大学课程设计(论文)报告用纸 第 9 页 共 17 页参考文献1 李群芳. MCS-51 单片机微型计算机与接口技术(第 3 版).电子工业出版社, 2008.5:190191.2 郭天祥.新概念 51 单片机 C 语言教程.电子工业出版社 ,2009.1:14.3 宋戈 .51 单片机应用开发范例大全.人民邮电出版社 ,2010.2:374375.桂林电子科技大学课程设计(论文)报告用纸 第 10 页 共 17 页附 录附录中主要包括电路模块一和电路模块二的 PCB 图,如图 8,图 9 所示,其中还有本课程设计的 C 语言流程图及源程序,如图 10 所示。

17、图 8 51 最小系统及液晶显示电路的 PCB 图图 9 电压信号采集电路及 AD 转换电路的 PCB 图桂林电子科技大学课程设计(论文)报告用纸 第 11 页 共 17 页C 语言程序流程图:开始启动 AD0809AD0809 输出使能数据转换及处理液晶 1602 显示电压结束图 10 数字电压表测电压流程图C 语言源程序:#include /包含单片机寄存器的头文件#include /包含 _nop_()函数定义的头文件sbit RS=P20; /寄存器选择位,将 RS 位定义为 P2.0 引脚sbit RW=P21; /读写选择位,将 RW 位定义为 P2.1 引脚sbit E=P22;

18、 /使能信号位,将 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桂林电子科技大学课程设计(论文)报告用纸 第 12 页 共 17 页*/void de

19、lay1ms()unsigned char i,j;for(i=0;i0;x-) for(y=1;y0;y-); /*函数功能:判断液晶模块的忙碌状态返回值:result。result=1 ,忙碌;result=0,不忙*/bit BusyTest(void)桂林电子科技大学课程设计(论文)报告用纸 第 13 页 共 17 页bit result;RS=0; /根据规定, RS 为低电平,RW 为高电平时,可以读状态RW=1;E=1; /E=1,才允许读写_nop_(); /空操作_nop_();_nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间result=BF; /将

20、忙碌标志电平赋给 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_

21、();_nop_();_nop_();_nop_(); /空操作四个机器周期,给硬件反应时间E=1; /E 置高电平_nop_();_nop_();桂林电子科技大学课程设计(论文)报告用纸 第 14 页 共 17 页_nop_();_nop_(); /空操作四个机器周期,给硬件反应时间E=0; /当 E 由高电平跳变成低电平时,液晶模块开始执行命令/*函数功能:指定字符显示的实际地址入口参数:x*/void WriteAddress(unsigned char x)Write_com(x|0x80); /显示位置的确定方法规定为“80H+地址码 x“/*函数功能:将数据(字符的标准 ASCII

22、 码)写入液晶模块入口参数: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_(); /空操作四个机器周期,给硬件反

23、应时间E=0; /当 E 由高电平跳变成低电平时,液晶模块开始执行命令桂林电子科技大学课程设计(论文)报告用纸 第 15 页 共 17 页/*函数功能:对 LCD 的显示模式进行初始化设置*/void LcdInt(void)delay(15); /延时 15ms,首次写指令时应给 LCD 一段较长的反应时间Write_com(0x38); /显示模式设置:162 显示,57 点阵,8 位数据接口delay(5); /延时 5ms Write_com(0x38);delay(5);Write_com(0x38); /3 次写 设置模式delay(5);Write_com(0x0F); /显示模

24、式设置:显示开,有光标,光标闪烁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; /启动定时器 T0Lcd

25、Int(); /调用 LCD 初始化函数 桂林电子科技大学课程设计(论文)报告用纸 第 16 页 共 17 页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; /启动 AD0809ST=1;delayAD(9);while(EOC=0);delayAD(1);O

26、E=0; /AD0809 输出数据getdata=P3;OE=1;temp=getdata;temp=temp*100;桂林电子科技大学课程设计(论文)报告用纸 第 17 页 共 17 页if(DA=1)temp=(int)(temp/51);temp=(int)(temp*2);elsetemp=(int)(temp/54);for(i=0;i4;i+)dispbufi=0; i=0;while(temp/10) /数据处理及转换dispbufi=temp%10;temp=temp/10;i+;dispbufi=temp%10;for (i=0;i4;i+)dispbufi=dispbufi

27、+0x30;WriteAddress(0x40); / 设置显示位置为第二行的第 1 个字if (dispbuf3=0)dispbuf3=0x20;WriteData(dispbuf3); / 显示十位数WriteData(dispbuf2); / 显示个位数WriteData(.);桂林电子科技大学课程设计(论文)报告用纸 第 18 页 共 17 页WriteData(dispbuf1); / 显示十分位数WriteData(dispbuf0); / 显示百分位数WriteData(V);delay(500);void Time0(void) interrupt 1 using 0 /“interrupt”声明函数为中断服务函数,使 P0.0 输出 500kHz 的频率/其后的 1 为定时器 T0 的中断编号;0 表示使用第 0 组工作寄存器 CLK=CLK; /按位取反操作,将 P0.0 引脚输出电平取反TH0=(65536-1)/256; /定时器 T0 的高 8 位重新赋初值TL0=(65536-1)%256; /定时器 T0 的高 8 位重新赋初值

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报