




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、深圳大学考试答题纸(以论文、报告等形式考核专用)二 一四 二 一五 学年度第 二 学期课程编号1701700001课程名称智能仪器与测控系统主讲教师评分学 号姓名专业年级测控技术与仪器 大三教师评语:题目:可自动换挡的直流数字电压表设计1 系统需求分析 11 考虑的内容v 51单片机使用何种方式将模拟电压转换成数字电压;v 51单片机如何控制进行相应的档位切换;v 51单片机如何显示对应的采集值;v 需要设计合适的单片机软件。 12 涉及的知识Ø 数字电压表的实现原理;Ø 运算放大器LM324的应用原理;Ø A/D芯片AD0809的应用原理;Ø LCD1
2、602液晶显示器的应用原理。 1.3 软件需求l 编程软件 :Keil vUsionl 仿真软件:protues 1.4 硬件需求ü 组成51单片机最小系统的元器件ü 万能板ü AT89C52ü LM324放大器ü AD0809ü LCD1602ü 杜邦线若干ü 电阻器若干2 系统总体设计2.1主要实现内容 运用所学单片机、模拟和数字电路、以及测控系统原理与设计等方面的知识,设计出一台以AT89C52为核心的直流数字电压表,完成电压信号的采集、处理、显示(数码管或者LCD)及键盘接口电路等部分的软、硬件设计,要求采
3、用ADC0809 或PCF8591实现A/D转换,1、测量范围:0-20V直流电压,设置三个量程:0-200mV,200 mV-2V,2V-20V,实现自动换档。l b测量精度:20 mV。l c测量误差允许范围:<=1%。l d显示:用四位七段数码管显示电压读数或用LCD1602显示2.2电压表的总体工作流程初始化单片机系统 判断当前的 待测电压值 切换到0-0.2V量程 切换到0.2-2V量程 切换到2-20V量程 测量电压3 系统的硬件设计31 模块分析 通过对数字电压表的功能分析,我们可以将其分为输入模块、模数转化模块、 单 片机控制模块以及显示模块四部分。输入模块是由两个放大器
4、LM324形成的3个输出接到模数转换模块的ADC0809的IN1、IN2、IN4上,这时候输入的是模拟信号,经过ADC转换器进行采样保持等操作,在ADC0809的8个输出口out0out7输出了相应的数字信号,并从51单片机的P1口传入单片机的内部供单片机进行下一步处理。另外,ADC转换器上的一些控制端口也接到了单片机上,使单片机实现对模数转换的控制操作。从单片机P1口进来的数据,会从单片机的P0口传送到显示模块LCD1602的数据输入口上,通过上拉电阻的驱动,液晶屏显示器上就能显示出相应的电压测量值了。实物图: 显示模块 模数转换模块 输入模块 单片机控制模块完整的硬件连接图:32 关于AT
5、89C52AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用AT89C52有40个 引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。其将通用的微处理器和F
6、lash存储器结合在一起,特别是可反复擦写的 Flash存储器可有效地降低开发成本。AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。 AT89C52为8 位通用微处理器,采用工业标的C51内核,在内部功能以及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。主要管脚有:XTAL1(19 脚)和XTAL2(18 脚)为振荡器输入输出端口,外接12MHz 晶振。RST/Vpd(9 脚)为
7、复位输入端口,外接电阻电容组成的复位电路。VCC(40 脚)和VSS(20 脚)为供电端口,分别接+5V电源的正负端。P0P3 为可编程通用I/O 脚,其功能用途由软件定义,在本设计中,P0 端口(3239 脚)被定义为N1 功能控制端口,分别与N1的相应功能管脚相连接,13 脚定义为IR输入端,10 脚和11脚定义为I2C总线控制端口,分别连接N1的SDAS(18脚)和SCLS(19脚)端口,12 脚、27 脚及28 脚定义为握手信号功能端口,连接主板CPU 的相应功能端,用于当前制式的检测及会聚调整状态进入的控制功能引脚图:3.3关于LCD1602字符型LCD1602通常有14条
8、引脚线或16条引脚线的LCD,多出来的2条线是背光电源线VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,引脚定义如下表所示: HD44780内置了DDRAM、CGROM和CGRAM。DDRAM就是显示数据RAM,用来寄存待显示的字符代码。共80个字节,其地址和屏幕的对应关系如下表: DDRAM地址与显示位置的对应关系 (事实上我们往DDRAM里的00H地址处送一个数据,譬如0x31(数字1的代码)并不能显示1出来。这是一个令初学者很容易出错的地方,原因就是如果 你要想在DDRAM的00H地址处显示数据,则必须将00H加上80H,即80H,若要在DDRA
9、M的01H处显示数据,则必须将01H加上80H即 81H。依次类推。大家看一下控制指令的的8条:DDRAM地址的设定,即可以明白是怎么样的一回事了) 1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如下表所示,这些字符有:阿拉伯数字、英文字母的大小写、常 用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点 阵字符图形显示出来,我们就能看到字母“A” 上表中的字符代码与我们PC中的字符代码是基本一致的。因此我们在向DDRAM写C51字符代
10、码程序时甚至可以直接用P1'A'这样的方法。PC在编译时就把“A”先转为41H代码了。 字符代码0x000x0F为用户自定义的字符图形RAM(对于5X8点阵的字符,可以存放8组,5X10点阵的字符,存放4组),就是CGRAM了。后面我会详细说的。 0x200x7F为标准的ASCII码,0xA00xFF为日文字符和希腊文字符,其余字符码(0x100x1F0x800x9F)没有定义。 那么如何对DDRAM的内容和地址进行具体操作呢,下面先说说HD44780的指令集及其设置说明,请浏览该指令集,并找出对DDRAM的内容和地址进行操作的指令。共11条
11、指令: 1.清屏指令 功能:<1> 清除液晶显示器,即将DDRAM的内容全部填入"空白"的ASCII码20H; <2> 光标归位,即将光标撤回液晶显示屏的左上方; <3> 将地址计数器(AC)的值设为0。 2.光标归位指令 功能:<1> 把光标撤回到显示器的左上方; <2> 把地址计数器(AC)的值设置为0; <3> 保持DDRAM的内容不变 3.进入模式设置指令 功能:设定每次定入1位数据后光标的移位方向,并且设定每次写入的一个字符是否移动。参数设定的情况如下所示:位名
12、0; 设置 I/D 0=写入新数据后光标左移 1=写入新数据后光标右移 S 0=写入新数据后显示屏不移动 1=写入新数据后显示屏整体右移1个字 4.显示开关控制指令 功能:控制显示器开/关、光标显示/关闭以及光标是否闪烁。参数设定的情况如下: 位名
13、; 设置 D 0=显示功能关 1=显示功能开 C 0=
14、无光标 1=有光标 B 0=光标闪烁 1=光标不闪烁 5. 设定显示屏或光标
15、移动方向指令 功能:使光标移位或使整个显示屏幕移位。参数设定的情况如下: S/C R/L 设定情况 0
16、0; 0 光标左移1格,且AC值减1 0 1 光标右移1格,且AC值加1 1
17、 0 显示器上字符全部左移一格,但光标不动 1 1
18、 显示器上字符全部右移一格,但光标不动 6.功能设定指令 功能:设定数据总线位数、显示的行数及字型。参数设定的情况如下: 位名 设置 DL 0=数据总线为4位 1=数据总线为8位 N
19、160; 0=显示1行 1=显示2行 F 0=5×7点阵/每字符 1=5×10点阵/每字符 7.设定CGRAM地址指令 功能:设
20、定下一个要存入数据的CGRAM的地址。 8.设定DDRAM地址指令 功能:设定下一个要存入数据的CGRAM的地址。 (注意这里我们送地址的时候应该是0x80+Address,这也是前面说到写地址命令的时候要加上0x80的原因) 9.读取忙信号或AC地址指令 功能:<1> 读取忙碌信号BF的内容,BF=1表示液晶显示器忙,暂时无法接收单片机送来的数据或指令; 当BF=0时,液晶显示器可以接收单片机送来的数据或指令; <2> 读取地址计数器(AC)的内容。 10.数据写入DDRAM或CGRAM指令一览 功能:<1> 将字符码写入DDRAM
21、,以使液晶显示屏显示出相对应的字符; <2> 将使用者自己设计的图形存入CGRAM。 11.从CGRAM或DDRAM读出数据的指令一览 功能:读取DDRAM或CGRAM中的内容。 基本操作时序: 读状态 输入:RS=L,RW=H,E=H
22、160; 输出:DB0DB7=状态字 写指令 输入:RS=L,RW=L,E=下降沿脉冲,DB0DB7=指令码 输出:无 读数据 输入:RS=H,RW=H,E=H
23、0; 输出:DB0DB7=数据 写数据 输入:RS=H,RW=L,E=下降沿脉冲,DB0DB7=数据 输出:无 3.4关于LM324LM324系列器件带有真差动输入的四运算放大器,具有真正的差分输入。与单电源应用场合的标准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3.0
24、伏或者高到32伏的电源下,静态电流为MC1741的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许多应用场合中采用外部偏置元件的必要性。LM324的组成和引脚说明如下3.5关于ADC0809ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。目前仅在单片机初学应用设计中较为常见。引脚功能说明: IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。
25、ALE:地址锁存允许信号,输入端,产生一个正脉冲以锁存地址。 START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使 0809复位,下降沿启动A/D转换)。 EOC: A/D转换结束信号,输出端,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入端,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHz。 REF(+)、REF(-):基准电压。 Vcc:电源,单一+5V。 GND:地。ADC0809芯片有28条引脚,采用双列直插
26、式封装,如图所示。 4 系统的软件设计41 Protues仿真图设计 仿真图涉及的元器件如下:器件名称库子库说明AT89C52Microprocessor ICs8051 Family51单片机RESResistorsGeneric通用电阻CAPCapacitorsGeneric电容CAP-ELECCapacitorsGeneric极性电容CRYSTALMiscellaneous-晶振器LM016LOptoelectronicsAlphanumeric LCDsLCD1602LM324OperationalPrimitive Sources运算放大器ADC0808Data Converters
27、Amplifiers QuadA/D转换器RESPACK-8ResistorsResistor Packs8位电阻排1)显示器部分2) 模数转换部分3) 电压输入部分4) 单片机控制部分5) 完整的仿真图42 Keil vUsion 程序编写与HEX文件生成步骤1:新建一个工程,选择Atmel里的AT89C52设备作为数据基础。点击ok后会生成51单片机的头文件步骤2:把写好的程序生成.c的文件并添加到Source Group one 里面去,然后就可以进行编译。步骤3:在编译无错误的情况下就可以通过设置输出口,让程序生成.hex的文件。步骤4:设置完之后点击Rebuild taget 就可以
28、生成.hex文件了,可以根据你选择的路径查看是否生成了该文件。5 调试过程及结果分析51 软件调试过程将由Keil生成的.hex文件读取到51单片机里面,仿真图就能运行了。 (1)初始化程序(2)00.2V电压仿真测量(3)0.22V电压仿真测(4)220V电压仿真52 硬件调试过程由于电路焊得不好,实验并未能通过硬件调试!5.3结果分析从仿真的结果来看,实验已经达到设计的要求了的,一方面电路实现了0-20V电压的测量,另一方面也实现了量程的自动转换,并且在测小电压的时候能达到很高的精度。通过修改程序或测量值改变输入口还可以设置更多的量程。 6参考文献1.51单片机应用开发25例:基于Prot
29、ues仿真/张新。陈跃琴编著.-北京:电子工业出版社,2013.102. 王书士.朱宇川 基于AT89C2051的直流数字电压表设计期刊论文-信息通信2013(2)3. 高皑琼 单片机控制的简易直流数字电压表期刊论文-消费电子2012(11)4. 智能仪表原理与设计/凌志浩,王华忠,叶西宁编著.-北京:人民邮电出版社,2013.75. 单片机实用系统设计与仿真经典实例/周润景,刘晓霞编著.-北京:电子工业出版社,2014.16. 基于Protues的单片机课程的基础实验与课程设计/张毅刚主编.-北京:人民邮电出版社,2012.47. PROTUES入门实用教程/周润景,蔡雨恬编著.-2版.-北
30、京:机械工业出版社,2011.107附录及元器件清单附录一程序#include<AT89X52.H>#define LEDDATA P0#define v20_ons3=0;s2=0;s1=1;#define v2_ons3=0;s2=1;s1=0;#define v02_ons3=1;s2=0;s1=0;unsigned char code dispcode=0x3f,0x06,0x5b,0x6d,0x66,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00;unsigned char dispbuf8=0,0,0,0,0,0,0,0;unsigned
31、 char getdata;unsigned long temp;unsigned char i,k,l, m;unsigned char code mytable0="WELCOME TO USE"unsigned char code mytable1="AUTO VOLTMETER!"unsigned char code line0=" Voltmeter " unsigned char code line1="Value: V"sbit lcdrs=P20;sbit lcden=P21;sbit s3=P37
32、;sbit s2=P36;sbit s1=P35;sbit OE=P30;sbit EOC=P31;sbit ST=P32;sbit CLK=P22;void Init_Timer0(void) /定时器0 TMOD=0x10; TH1=(65536-200)/256; TL1=(65536-200)%256; EA=1; ET0=1; TR0=1; CLK=1;void delay (unsigned int z) /延时函数 unsigned int x,y; for(x=z;x>0;x-) for(y=110;y>0;y-);void write_com(unsigned c
33、har c)/lcd写命令函数 lcdrs=0; /输入指令 lcden=0; LEDDATA=c; delay(5); lcden=1;/读取信息 delay(5); lcden=0; /下降沿执行指令void write_data(unsigned char d) /lcd写数据函数 lcdrs=1;/输入数据 LEDDATA=d; delay(5); lcden=1; /读取信息 delay(5); lcden=0; /下降沿执行指令void initialize()/初始化 unsigned char num; lcden=0; write_com(0x38); /8位数据,双列。5*
34、7字型 write_com(0x0c); /开启显示屏, 关闭光标,光标不闪烁 write_com(0x06); /显示地址递增,写入一个数据后右移 write_com(0x01); /清屏 write_com(0x80+0x10); for(num=0;num<17;num+) write_data(mytable0num); /d=mytable0num,调用写入数据函数delay(10); write_com(0x80+0x50); for(num=0;num<15;num+) write_data(mytable1num);delay(10); for(num=0;num&
35、lt;16;num+) write_com(0x1c);delay(300); delay(1000); write_com(0x01);/清屏 write_com(0x80); /第一行 for(num=0;num<14;num+) write_data(line0num);delay(10); write_com(0x80+0x40); /第二行 for(num=0;num<15;num+) write_data(line1num);delay(10); void value(unsigned char add,unsigned char dat)/电压值计算函数 write_
36、com(0x80+0x47+add); if(l=3&&add=2|l!=3&&add=1) write_data(0x2e); else write_data(0x30+dat); main() initialize(); Init_Timer0(); while(1) _20v: v20_on;/100,测0-20v 的电压 ST=0; ST=1; ST=0; while(EOC=0); /EOC P3.1 OE=1; getdata=P1; OE=0; if(getdata<20) /电压值被放大了10倍 goto _2v; l=3; temp=getdata; temp=(temp*100
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030中国丙烯酸氨基烘漆行业风险评估及发展潜力研究报告
- 2025-2030纺织原料行业市场发展分析及投资前景研究报告
- 2025-2030海外投资行业市场深度调研及前景趋势与投资研究报告
- 2025-2030明胶糖果行业市场发展分析及前景趋势与投资研究报告
- 2025-2030年高速专用机行业市场深度调研及发展趋势与投资战略研究报告
- 中级经济师职业发展的路径选择试题及答案
- 2025届梅州市蕉岭县数学三上期末监测模拟试题含解析
- 工程经济与财务管理的联系试题及答案
- 应对市政工程考试的压力应对技巧试题及答案
- 设计色彩与视觉传达
- 形势与政策(贵州财经大学)知到智慧树章节答案
- DL∕T 904-2015 火力发电厂技术经济指标计算方法
- DL-T 1476-2023 电力安全工器具预防性试验规程
- 中国戏曲剧种鉴赏智慧树知到期末考试答案章节答案2024年上海戏剧学院等跨校共建
- 六年级趣味数学思维拓展题50道及答案
- T∕CNTAC 23-2018 医护职业服装
- 芯片生产全过程从沙子到封装课件
- 水泥混凝土路面翻修施工方案完整
- 怡口软水机中央净水机安装调试指南.
- 暖通毕业设计外文翻译
- 小黄瓜种植观察日记(课堂PPT)
评论
0/150
提交评论