多路采集液晶数字电压表_第1页
多路采集液晶数字电压表_第2页
多路采集液晶数字电压表_第3页
多路采集液晶数字电压表_第4页
多路采集液晶数字电压表_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、杭州师范大学钱江学院单片机实训题目多路米集数字电压走(软件)分院钱江学院专业电子信息班级电子091姓名褚富华指导教师孙亚萍2012年1 0 月0 9 日第一章 引 言 1第二章仿真软件介绍 12.1 仿真软件简介 12.1.1 proteus 6 professional 12.1.2 keil uvision2 2第三章 电路原理图、程序流程图 23.1 主程序设计 33.2 a/d 转换程序 33.3 lcd显示程序设计 4第四章系统的软件实现 5第五章系统调试 11第六章实训总结 12参考文献 12第一章 引 言数字电压表的基本工作原理是利用 a/d转换电路将待测的模拟信号转换成 数字信

2、号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便 等优点。电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字 量,完成这种转换的电路叫模数转换器1 (a/d)。数字电压表的核心部件就是a/d转换器,由于各种不同的 a/d转换原理构成了各种不同类型的 dvm 一般说 来,a/d转换的方式可分为两类:积分式和逐次逼近式。积分式a/d转换器是先用积分器将输入的模拟电压转换成时间或频率, 再将 其数字化。根据转化的中间量不同,它又分为 u-t (电压-时间)式和u-f (电压 -频率)式两种。逐次逼近式

3、a/d转换器分为比较式和斜坡电压式,根据不同的工作原理,比 较式又分为逐次比较式及零平衡式等。斜坡电压式又分为线性斜坡式和阶梯斜坡 式两种。在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式 a/d 转换器。本设计以at89c51单片机为核心,以逐次比较型 a/d转换器adc0808 液晶显示器lcd160劝主体,构造了一款简易的数字电压表,能够测量 1路0 5v直流电压,最小分辨率 0.001v。第二章仿真软件介绍2.1 仿真软件简介2.1.1 proteus 6 professionalisis 6 professiona软件是它不仅具有其它 eda工具软件的仿真2功能,还能仿

4、真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。虽 然目前国内推广刚起步,但已受到单片机爱好者、从事单片机教学的教师、致力 于单片机开发应用的科技工作者的青睐。它从原理图布图、代码调试到单片机与 外围电路协同仿真,一键切换到pcbs计,真正实现了从概念到产品的完整设计。是目前将电路仿真软件、pcbs计软件和虚拟模型仿真软件三合一的设计平台, 其处理器模型支持 8051、hc11 pic10/12/16/18/24/30/dspic33 、avr arm 8086和msp43爵,2010年即将增加cortex和dsps歹处理器,并持续增加其 他系列处理器模型。在编译方面,它也支持

5、iar、keil和mpla爵多种编译器。isis 6 professiona 软件具有的功能:原理布图;pcb自动或人工布线;spice 电路仿真。2.1.2 keil uvision2keil提供了包括c编译器、宏汇编3、连接器、库管理和一个功能强大仿 真调试器等在内的完整开发方案,通过一个集成开发环境( uvision )将这些部 分组合在一起。keil c51集成开发环境主要由菜单栏、工具栏、源文件编辑窗口、工程窗口和 输出窗口五部分组成。工具栏为一组快捷工具图标,主要包括基本文件工具栏、 建造工具栏和调试工具栏,基本文件工具栏包括新建、打开、拷贝、粘贴等基本 操作。建造工具栏主要包括文

6、件编译、目标文件编译连接、所有目标文件编译连 接、目标选项和一个目标选择窗口。 调试工具栏位于最后,主要包括一些仿真调 试源程序的基本操作,如单步、复位、全速运行等。在工具栏下面,默认有三个 窗口。左边的工程窗口包含一个工程的目标 (target )、组(group)和项目文件。 右边为源文件编辑窗口,编辑窗口实质上就是一个文件编辑器,我们可以在这里对源文件进行编辑、修改、粘贴等。下边的为输出窗口,源文件编译之后的结果 显示在输出窗口中,会出现通过或错误(包括错误类型及行号)的提示。第三章电路原理图、程序流程图根据需要,可将系统软件按照功能划分为4个模块,分别是主程序模块、a/d转换模块、液晶

7、显示模块、中断服务程序模块 (改变显示的小数点位置),各 模块的功能关系如图3.1所示。编写系统软件时,可首先编写各模块的底层驱动 程序,而后是系统联机调试,编写上层主程序。12系统主程序中断服务d - ea/转换液晶管显示图3.1 系统软件框图3.1 主程序设计图3.2 主程序流程图转换,3.2所主程序主要负责初始化工作:设置定时器、寄存器的初值,启动 a/d 读取转换结果,处理量程转换响应,控制液晶实时显示等,其流程图如图 示。3.2 a/d转换程序在整个系统设计中占有很高的地位。当系a/d转换程序的功能是采集数据, 统设置好后,单片机扫描转换结束管脚p1.7的输入电平状态,当输入为高电平

8、则转换完成,将转换的数值转换并显示输出。若输入为低电平,则继续扫描。程 序流程图如图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 unsigne

9、d char sbit rs=p2a0;sbit rw=p2a1; sbit e=p2a2;/延时程序 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_che

10、ck()&0x80)=0x80);rs=0;/选择命令寄存器rw=0;/ 写e=0;p0=command;e=1;delayms(1);e=0;忙等待,等待忙碌标志位bf(d7)=0/发送数据(写数据)void write_lcd_data(uchar dat) 一 一while(busy_check()&0x80)=0x80);rs=1;7/选择数据存储器rw=0;/ 写e=0;p0=dat;e=1;delayms(1);e=0;忙等待,等待忙碌标志位bf(d7)=0/lcd初始化void initialize_lcd().write_lcd_command(0x38);字符 _delaym

11、s(1);write_lcd_command(0x01);delayms(1);write_lcd_command(0x06);delayms(1);write_lcd_command(0x0c);delayms(1);dl=1:8/清屏位,n=1:双行显示,f=0:5*7点阵字符进入模式,屏幕不动,字符后移显示屏开,光标不显示不闪烁/显示字符串函数void show_string(uchar x,uchar y,uchar *s).uchar i=0;/设置显示起始位置/首行第一个地址0x80,/第二行第一个地址if(y=0) write_lcd_command(0x80|x);if(y=1

12、) 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 (al6:地址锁存允许信号,输入,高电平有效。6 (start: a/d转换启动脉冲输入端,输入一个正脉冲(至少 100ns宽)使 其启动(脉冲上升沿使0809复位,下降沿启动a/d转换)。7 (eoc: a/d转换结束信号,输出,当a/d转换结束时,此端输出一个高电 平(转换期间一直为低电平)。9

13、(ob:数据输出允许信号,输入,高电平有效。当a/d转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。10 (clk:时钟脉冲输入端。要求时钟频率不高于 640khz11 (vcc):主电源输入端。12 (vref(+)和16 (vref(-):参考电压输入端13 (gnd:地。2325 (add_a,add_b,add_c3位地址输入线,用于选通 8路模拟输入中的一 路*/#include#define uchar unsigned char#define uint unsigned intsbit clk=p2a4;sbit st=p2a5;sbit eoc=p2a7;sbi

14、t oe=p1a7;sbit add_a=p1a0;/ad0808 的输入控制引脚sbit add_b=pw1;sbit add_c=p1a2;sbit s0=p1a3;sbit s1=p1a4;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(uc

15、har);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;电压值整

16、数/小数小数第3位uint xs;value=ad_data*0.0196078;/zs=(uchar)value;/xs=(uint)(value-zs)*1000);x3=xs%10;/x2=xs/10%10;/小数第 2 位x1=xs/100;/小数第 1 位void write_sfm(uchar add,uchar dat) / 转字符串函数.whte_lcd_command(0x80+0x40+add);write_lcd_data(0x30+dat); 一 一void timer0() interrupt 1 th0=(65536-50000)/256;/ 定时 50mstl0=

17、(65536-50000)%256;t0num+;if(t0num=20)/50ms*20=1s进行一次转换t0num=0;sim=1; void main()initialize_lcd();show_string(0,0,*display1);show_string(0,1,*display2);delayms(250);delayms(250);delayms(250);show_string(0,0,*display3);show_string(0,1,*display4);delayms(250);delayms(250);delayms(250);tmod=0x01;th0=(65

18、536-50000)/256;tl0=(65536-50000)%256;ea=1;et0=1;tr0=1;while(1)/初始化lcd/显示wellcome to use!/显示author:chufuhua/显示current voltage/显示v is 0.000v /定时器0工作方式1/定时50ms/开总中断/开定时器0中断/启动定时器0if(s0=0&s1=0)/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=

19、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);路径选择由开关s0,s1设置if(sim=1) ad_convert(); change(); sim=0;第五章系统调试当按键s0=1, s0=0是ad0808的in3模拟输入端选通(s0, s1控制ad0808的地址输入线,地址输入线控制 ad0808的模拟输入端口 1n0in7),当前电压值 进入ad0808将模拟信号

20、转换成数字信号经过 ou础输出,单片机的p3 将数据 接收然后转换成lcd1602的显示码,通过lcd1602夜晶屏幕进行显示。如图5.1所示。液晶屏幕显示当前流通的电压值。图5.2所示是选通的in0时的当前电压current voltageis 1.941ua uihoe7-3wl5pl:itsuksfctktal2ro.owdfl po.tfadi fa.2/ad2po用依加i fosiwd 口 po.nio fci.7zad7p2.6w pz.ifaflf2-zta1df2.4*i2 p2.wai f2jci/a1* f2.7/a15.p3j0urxdp3.1hxd; r -: / vt修旃诃电力嘲pb.cjt1p3 affffiat69c51f 白j 97p2amp2.1/w p2sm10 pz.5zft11 p2.4w12 p2.sw13 p2*a14p2ztt1 百current uolta9eu0 is 2.549uatagm51l2ij*tasrtf_q 券:羯*暮x r f a -e fppfppff,52lzr3?4unclk 1仃ec mt 4 ul atsoc-51pjwp国&psaj晒 fs.sxirmpa.flnu f3jwt1f3.0,!wrp3 7/rf皿 |e 口c 7bclock startino iniim4

温馨提示

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

最新文档

评论

0/150

提交评论