电子信息专业论文多路采集液晶数字电压表.doc_第1页
电子信息专业论文多路采集液晶数字电压表.doc_第2页
电子信息专业论文多路采集液晶数字电压表.doc_第3页
电子信息专业论文多路采集液晶数字电压表.doc_第4页
电子信息专业论文多路采集液晶数字电压表.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

学 号: 0965121003 杭州师范大学 钱江学院单片机实训题 目 多路采集数字电压表(软件)分 院钱 江 学 院专 业电 子 信 息班 级电 子 091姓 名 褚 富 华指导教师 孙 亚 萍2012年1 0月0 9日1目 录第一章 引 言1第二章 仿真软件介绍12.1 仿真软件简介1 2.1.1 proteus 6 professional1 2.1.2 keil uvision22第三章 电路原理图、程序流程图23.1主程序设计33.2 a/d转换程序33.3 lcd显示程序设计4第四章 系统的软件实现5第五章 系统调试11第六章 实训总结12参 考 文 献12第一章 引 言数字电压表的基本工作原理是利用a/d转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(a/d)。数字电压表的核心部件就是a/d转换器,由于各种不同的a/d转换原理构成了各种不同类型的dvm。一般说来,a/d转换的方式可分为两类:积分式和逐次逼近式。积分式a/d转换器是先用积分器将输入的模拟电压转换成时间或频率,再将其数字化。根据转化的中间量不同,它又分为u-t(电压-时间)式和u-f(电压-频率)式两种。逐次逼近式a/d转换器分为比较式和斜坡电压式,根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式a/d转换器。本设计以at89c51单片机为核心,以逐次比较型a/d转换器adc0808、液晶显示器lcd1602为主体,构造了一款简易的数字电压表,能够测量1路05v直流电压,最小分辨率0.001v。第二章 仿真软件介绍2.1 仿真软件简介2.1.1 proteus 6 professionalisis 6 professiona软件是它不仅具有其它eda工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力于单片机开发应用的科技工作者的青睐。它从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到pcb设计,真正实现了从概念到产品的完整设计。是目前将电路仿真软件、pcb设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、hc11、pic10/12/16/18/24/30/dspic33、avr、arm、8086和msp430等,2010年即将增加cortex和dsp系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持iar、keil和mplab等多种编译器。isis 6 professiona软件具有的功能:原理布图;pcb自动或人工布线;spice电路仿真。2.1.2 keil uvision2keil提供了包括c编译器、宏汇编、连接器、库管理和一个功能强大仿真调试器等在内的完整开发方案,通过一个集成开发环境(uvision)将这些部分组合在一起。keil c51集成开发环境主要由菜单栏、工具栏、源文件编辑窗口、工程窗口和输出窗口五部分组成。工具栏为一组快捷工具图标,主要包括基本文件工具栏、建造工具栏和调试工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等基本操作。建造工具栏主要包括文件编译、目标文件编译连接、所有目标文件编译连接、目标选项和一个目标选择窗口。调试工具栏位于最后,主要包括一些仿真调试源程序的基本操作,如单步、复位、全速运行等。在工具栏下面,默认有三个窗口。左边的工程窗口包含一个工程的目标(target)、组(group)和项目文件。右边为源文件编辑窗口,编辑窗口实质上就是一个文件编辑器,我们可以在这里对源文件进行编辑、修改、粘贴等。下边的为输出窗口,源文件编译之后的结果显示在输出窗口中,会出现通过或错误(包括错误类型及行号)的提示。第三章 电路原理图、程序流程图根据需要,可将系统软件按照功能划分为4个模块,分别是主程序模块、a/d转换模块、液晶显示模块、中断服务程序模块(改变显示的小数点位置),各模块的功能关系如图3.1所示。编写系统软件时,可首先编写各模块的底层驱动程序,而后是系统联机调试,编写上层主程序。系统主程序液晶管显示a/d转换中断服务.图3.1 系统软件框图3.1主程序设计图3.2 主程序流程图主程序主要负责初始化工作:设置定时器、寄存器的初值,启动a/d转换,读取转换结果,处理量程转换响应,控制液晶实时显示等,其流程图如图3.2所示。3.2 a/d转换程序a/d转换程序的功能是采集数据,在整个系统设计中占有很高的地位。当系统设置好后,单片机扫描转换结束管脚p1.7的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。若输入为低电平,则继续扫描。程序流程图如图3.3所示。图3.3 a/d转换程序流程图 3.3 lcd显示程序设计lcd显示程序的设计一般先要确定lcd的初始化、光标定位、确定显示字符后,显示流程如图3.4显示。图3.4 lcd显示程序流程图3.4 lcd初始化从通电开始延时,先经过判忙后再进行功能设置,过一段时间后可以设制显示状态(如设制行、位或阵列)再经过延时清屏后才可以设置输入方式,具体实现过程如图3.5所示。图3.5 lcd初始化流程图第四章 系统的软件实现lcd1602的驱动程序#include#define uchar unsigned charsbit rs=p20;sbit rw=p21;sbit e=p22;/延时程序void delayms(uchar ms)uchar i;while(ms-)for(i=0;i250;i+);/忙检程序(读状态)uchar busy_check()uchar lcd_status;rs=0; /寄存器选择rw=1; /读状态寄存器e=1; /开始读delayms(1);lcd_status=p0;e=0;return lcd_status;/写lcd命令void write_lcd_command(uchar command)while(busy_check()&0x80)=0x80);/忙等待,等待忙碌标志位bf(d7)=0rs=0; /选择命令寄存器rw=0; /写e=0;p0=command;e=1;delayms(1);e=0;/发送数据(写数据)void write_lcd_data(uchar dat)while(busy_check()&0x80)=0x80);/忙等待,等待忙碌标志位bf(d7)=0rs=1; /选择数据存储器rw=0; /写e=0;p0=dat;e=1;delayms(1);e=0;/lcd初始化void initialize_lcd()write_lcd_command(0x38); /dl=1:8位,n=1:双行显示,f=0:5*7点阵字符delayms(1);write_lcd_command(0x01); /清屏delayms(1);write_lcd_command(0x06); /字符进入模式,屏幕不动,字符后移delayms(1);write_lcd_command(0x0c); /显示屏开,光标不显示不闪烁delayms(1);/显示字符串函数void show_string(uchar x,uchar y,uchar *s)uchar i=0;/设置显示起始位置if(y=0) write_lcd_command(0x80|x);/首行第一个地址0x80,if(y=1) write_lcd_command(0xc0|x);/第二行第一个地址0x80+0x40,即从0xc0开始/输出字符串for(i=0;i16;i+)write_lcd_data(si);主程序/*15和2628(in0in7):8路模拟量输入端。 8、14、15和1721:8位数字量输出端。 22(ale):地址锁存允许信号,输入,高电平有效。 6(start): ad转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动a/d转换)。 7(eoc): ad转换结束信号,输出,当ad转换结束时,此端输出一个高电平(转换期间一直为低电平)。 9(oe):数据输出允许信号,输入,高电平有效。当ad转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 10(clk):时钟脉冲输入端。要求时钟频率不高于640khz。 11(vcc):主电源输入端。 12(vref(+)和16(vref(-):参考电压输入端 13(gnd):地。 2325(add_a,add_b,add_c):3位地址输入线,用于选通8路模拟输入中的一路*/#include#define uchar unsigned char#define uint unsigned intsbit clk=p24;sbit st=p25;sbit eoc=p27;sbit oe=p17;sbit add_a=p10;/ad0808的输入控制引脚sbit add_b=p11;sbit add_c=p12;sbit s0=p13;sbit s1=p14;uchar *display1=wellcome to use!;uchar *display2=author:chufuhua;uchar *display3=current voltage ;uchar *display4= v is 0.000v ;uchar ad_data,zs,x1,x2,x3,x4;uchar t0num=0;bit sim=1;/函数声明void delayms(uchar);void write_lcd_command(uchar);void write_lcd_data(uchar);void initialize_lcd();void show_string(uchar,uchar,uchar);/启动ad转换程序void ad_convert()st=0;clk=0;delayms(1);st=1;clk=1;delayms(1);st=0;clk=0;while(eoc=0)clk=1;delayms(1);clk=0;delayms(1);oe=1;ad_data=p3;oe=0;void change()double value;uint xs;value=ad_data*0.0196078;/电压值zs=(uchar)value;/整数xs=(uint)(value-zs)*1000);/小数x3=xs%10; /小数第3位x2=xs/10%10; /小数第2位x1=xs/100; /小数第1位void write_sfm(uchar add,uchar dat) /转字符串函数write_lcd_command(0x80+0x40+add);write_lcd_data(0x30+dat);void timer0() interrupt 1th0=(65536-50000)/256; /定时50mstl0=(65536-50000)%256;t0num+;if(t0num=20) /50ms*20=1s进行一次转换t0num=0;sim=1;void main()initialize_lcd(); /初始化lcdshow_string(0,0,*display1); /显示wellcome to use!show_string(0,1,*display2); /显示author:chufuhuadelayms(250);delayms(250);delayms(250);show_string(0,0,*display3); /显示current voltage show_string(0,1,*display4); /显示 v is 0.000v delayms(250);delayms(250);delayms(250);tmod=0x01; /定时器0工作方式1th0=(65536-50000)/256; /定时50mstl0=(65536-50000)%256;ea=1; /开总中断et0=1; /开定时器0中断tr0=1; /启动定时器0while(1) if(s0=0&s1=0) /路径选择由开关s0,s1设置 add_a=0; add_b=0; add_c=0; x4=0; else if(s0=0&s1=1) add_a=1; add_b=0; add_c=0;x4=1; else if(s0=1&s1=0) add_a=0; add_b=1; add_c=0; x4=2; else add_a=1; add_b=1; add_c=0;x4=3; write_sfm(9,zs); write_sfm(11,x1); write_sfm(12,x2); write_sfm(13,x3); write_sfm(3,x4); if(sim=1)ad_convert();change();sim=0;第五章 系统调试 当按键s0=1,s0=0是ad0808的in3模拟输入端选通(s0,s1控制ad0808的地址输入线,地址输入线控制ad0808的模拟输入端口1n0in7),当前电压值进入ad0808将模拟信号转换成数字信号经过out端输出,单片机的p3口将数据接收然后转换成lcd1602的显示码,通过lcd1602液晶屏幕进行显示。如图5.1所示。液晶屏幕显示当前流通的电压值

温馨提示

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

评论

0/150

提交评论