版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于单片机数字电压表的设计 基于单片机数字电压表的设计目录一 设计目的3二 设计要求3三 方案比较与论证33.1 单片机介绍33.2 电源方案63.3 显示方案63.4 ad采样方案73.5 键盘部分7四 方案设计84.1 硬件设计84.2 软件设计9五 性能测试105.1 电压测试105.2 电阻值测试115.3 短路测试115.4 高压报警测试115.5 串口功能测试115.6 时间功能测试115.7 交流峰峰、周期测试11结束语11参考文献13附录14摘要本报告介绍了基于at89s52单片机为核心的、以ad0809数模转换芯片采样、以1602液晶屏显示的具有电压测量功能的具有一定精度的数
2、字电压表。在实现基础功能要求之上扩展了串口通讯、时钟功能、高压报警、短路测试、电阻测量、交流电压峰峰值和周期测试等功能,使系统达到了良好的设计效果和要求。关键词:at89s52单片机 模数转换 液晶显示 扩展功能abstract:the report describes the at89s52 based on the microcontroller as the core, ad0809 digital-to-analog converter chip sampling, to 1602 lcd display with voltage measurement function with a
3、 certain precision of digital voltage meter. in achieving functional requirements based upon the expansion of serial communications, high-pressure alarm, short circuit, electrical resistivity measurement, ac voltage and the peak of cycle testing and other functions, allowing the system to achieve go
4、od results and the design requirements.keywords : at89s52 scm analog-to-digital conversion functions lcd expansion 一 设计目的自动化专业的专业实践课程。本课程的任务是使学生通过“简易数字电压表的设计”的设计过程,结合所学课程,掌握目前自动化仪表的一般设计过程,锻炼学生的动手能力和分析,解决问题的能力;积累经验,培养按部就班、一丝不苟的工作和对所学知识的综合应用能力。 二 设计要求 1、 可以测量0-5v的8路输入电压值;2、 可在四位led数码管上轮流显示或单路选择显示或液晶显示
5、;3、 测量最小分辨率为0.019v;4、 测量误差约为+0.02v;5、 带有一定的扩展功能;6、三 方案比较与论证3.1 单片机介绍单片机采用at89s52,它是一个低功耗,高性能cmos 8位单片机,片内含8k bytes isp(in-system programmable)的可反复擦写1000次的flash只读程序存储器,器件采用atmel公司的高密度、非易失性存储技术制造,兼容标准mcs-51指令系统及80c51引脚结构,芯片内集成了通用8位中央处理器和isp flash存储单元,功能强大的微型计算机的at89s52可为许多嵌入式控制应用系统提供高性价比的解决方案。单片机基础电路如
6、下: 图2 单片机基础电路功能特性概述:40个引脚,8k bytes flash片内程序存储器,256 bytes的随机存取数据存储器(ram),32个外部双向输入/输出(i/o)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(wdt)电路,片内时钟振荡器。此外,at89s52设计和配置了振荡频率可为0hz并可通过软件设置省电模式。空闲模式下,cpu暂停工作,而ram定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存ram的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有pdip、tqfp和plcc等三种封装形式,以
7、适应不同产品的需求。引脚功能:·vcc:电源电压·gnd:地·p0口:p0口是一组8位漏极开路型双向i/o口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个ttl逻辑门电路,对断口p0写“1”时,可作为高阻抗输入端使用。在访问外部数据存储器或程序存储器时,这组端口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在flash编程时,p0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。·p1口:p1口是一个带内部上拉电阻的8位双向i/o口,p1的输出缓冲级可驱动(吸收或输出电流)4个ttl逻
8、辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(in)。与at89c51不同之处是,p1.0和p1.1还可分别作为定时/计数器2的外部计数输入(p1.0/t2)和输入(p1.1/t2ex)。第二功能:p1.0:t2(定时/计数器2外部计数脉冲输入),时钟输出p1.1:t2ex(定时/计数2捕获/重新载触发和方向控制)·p2口:p2是一个带内部上拉电阻的8位双向i/o口,p2的输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对端口写“1”,通过内部上拉电阻把端口拉到高电平,
9、此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(iil)。在访问外部程序存储器或16位地址的外部数据存储器(例如执行movxdptr指令)时,p2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行movxri指令)时,p2口输出p2锁存器的内容。·p3口:p3口是一组带有内部上拉电阻的8位双向i/o口。p3口输出缓冲级可驱动(吸收或输出电流)4个ttl逻辑门电路。对p3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的p3口将用上拉电阻输出电流。p3口除了作为一般的i/o口线外,更重要的用途是它的第二功能
10、端口引脚 第二功能:p3.0 rxd(串行输入口)p3.1 txd(串行输出口)p3.2 int0(外中断0)p3.3 int1(外中断1)p3.4 to(定时/计数器0)p3.5 t1(定时/计数器1)p3.6 wr(外部数据存储器写选通)p3.7 rd(外部数据存储器读选通)·rst:复位输入。当振荡器工作时,rst引脚出现两个机器周期以上高电平将使单片机复位。·ale/prog:当访问外部程序存储器或数据存储器时,ale(地址锁存允许)输出脉冲用于锁存地址的低8位字节。一般情况下,ale仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时或用于定
11、时目的。要注意的是:每当访问外部数据存储器时将跳过一个ale脉冲。如有必要,可通过对特殊功能寄存器(sfr)区中的8eh单元的d0位置位,可禁止ale操作。该位置位后,只有一条movx和movc指令才能将ale激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ale禁止位无效。·psen:程序存储允许psen输出是外部程序存储器的读选通信号,当at89c52由外部程序存储器取指令(或数据)时,每个机器周期两次psen有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次psen信号。·ea/vpp:外部访问允许。欲使cpu仅访问外部程序存储器(地址为00
12、00h-ffffh),ea端必须保持低电平(接地)。需注意的是:如果加密位lb1被编程,复位时内部会锁存ea端状态。如ea端为高电平(接vcc端),cpu则执行内部程序存储器中的指令。·xtal1:振荡器反相放大器的内部时钟发生器的输入端。·xtal2:振荡器反相放大器的输出端。3.2 电源方案: 由变压器输入7805的1脚,2脚接地,3脚+5v输出,中间加2个104电容和1000u的电解电容分别为了退耦和稳压。使+5v更稳定地输出。下图是电源接线图。 图3 电源接线图3.3 显示方案 方案一:显示部分(采用共阴4位八段数码管显示。如图4所示:) 图4 数码管电路图显示部分
13、与单片机连接图如下图 图5 显示与单片机连接图 3.4 ad采样方案 方案:采用8位ad转换器adc0809,编程简单方便,价格便宜。采样电路如下图: 图6 adc0809采样电路 3.5 键盘部分通过程序的扫描,判断按键,并切换到不同的功能模式中。实现模式切换后可以实现电压表单路和循环显示所测电压值。 图7 键盘硬件程序四 方案设计4.1 硬件设计 系统整体电路如下: rs232ad采样at89s52程序烧录硬件框图:1602液晶显示高压,短路报警adc0809串口通讯控制键盘 电源电源 电源 图8 系统硬件框图电源部分提供整个系统的电能,单片机部分控制系统,显示部分显示测量结果以及模式状态
14、,模数转换采集电压以及电阻值发送到单片机,如果电压过高超过量程或者测量短路,单片机控制蜂鸣器报警。通过程序烧录模块可以通过烧录线烧入程序。通过串口通讯可以实现上位机与电压表的通讯,通过上位机选择,可以切换电压表模式,从而实现上位机功能选择的功能。4.2 软件设计我们采用c语言编程,通过定时器0计时实现显示时间功能,通过串口中断实现上位机对下位机的模式切换功能。通过键盘扫描和扫描处理函数,实现键盘的模式切换功能。同时我们还设计了浮点数显示处理函数,采样函数,交流采集电压峰峰值函数,显示交流周期和峰峰值函数。这些函数的组合,实现了电压表功能的完善。yynnyn开始系统初始化显示时间有键按下?模式判
15、断改变系统功能显示串口通讯结束主程序流程图:开始定时器开启显示时间交流采样?采样显示是否计时?结束定时中断流程:图: 五 性能测试5.1 电压测试被测量电路图:图10被测电路图1、 r1=200欧 r2=500欧在测量如图9所示1点的电压的时候,电压表值为1.406v理论值为u=(200/(200+500)*5=1.429v2、r1=4.20k欧 r2=4.28k欧在测量如图所示1点的电压的时候,电压表值为2.089v理论值为u=(4.2/(4.2+4.28)*5=2.476v5.2 电阻值测试 1、100欧姆的电阻,电压表实测为101欧姆。2、200欧姆的电阻,电压表实测为199欧姆。3、4
16、.73k的电阻,电压表实测为4.6347k。4、6.73k的电阻,电压值实测为6.6578k。5、10k的电阻,电压表实测为10.1020k。6、12k的电阻,电压表实测为12.0235k。5.3 短路测试 用白色导线接于in7,另一端黑色导线接地。当两导线短接时1602显示为0,同时鸣蜂器报警,没有短接时蜂鸣器不报警。5.4 高压报警测试 把单片机接5.5v,鸣蜂器报警。5.5 串口功能测试 打开串口调试软件,按功能键,观察下位机,按1-8切换到各通道的模式,按9是时间模式,按10-13是特殊功能模式,串口功能正常。5.6 时间功能测试 观察时间的即使与显示功能,然后切换功能模式,再切换到时
17、间模式,观察变化,发现时间照常计时,时间功能正常。5.7 交流峰峰、周期测试 由于没有频率信号发生器,此项扩展功能没有展开测试。结束语通过“简易数字电压表的设计”的设计过程,我结合所学过的课程,了解了简易仪表的发展状况,掌握了目前自动化仪表的一般设计要求,工程设计方法,开发及设计工具使用方法,最重要的是通过这一设计实践过程,锻炼了我的动手能力和分析,解决问题的能力,一丝不苟的工作和对所学知识的综合应用能力,我想这样的实践环节在我的学生生涯是很难得的,也为我以后步入社会开始工作打下了一定的基础,最后我也要感谢同学们,只有在他们团结协作下,本次课程设计才可以顺利进行并实现所有功能,同时我也明白了团
18、结协作的重要性。参考文献1余文俊.8051 c语言实习,中国水利水电出版社,02年10月第2版,p50892万福君,潘松峰.单片微机原理系统设计与应用,中国科学技术大学出版社,01年8月第2版,p281503周责魁.控制仪表与计算机控制装置,化学工业出版社,02年9月第1版,p1174李青.电路与电子技术基础,浙江科学技术出版社,05年2月第1版,p12815陈乐.过程控制与仪表,中国计量学院出版社,07年3月,p1176孙育才.新型at89s52系列单片机及其应用,清华大学出版社,05年5月第1版,p163附录(1)元件清单: at89s52一片;led显示屏一块;adc0809一片;max
19、232电平转换芯片一片;7805稳压管一片;键盘3个;开关1个;蜂鸣器一个;c1815三极管一个;500欧姆电阻10个;10k电阻4个;串口借口一个;程序烧录接口一个;1000u电容两个;104电容6个;25pf电容2个;晶振一个;发光二极管一个;排线插针若干;(2)程序清单:#include <reg52.h>#include <intrins.h>#include <string.h>#define uchar unsigned char #define uint unsigned int #define busy 0x80 / 用于检测lcm状态字中的
20、busy #define lcm_data p0 / 液晶数据口#define lcm_rs p2_7#define lcm_rw p2_6#define lcm_e p2_5#define ale p2_4#define start p3_2#define oe p2_3#define eoc p3_3#define a p2_0#define b p2_1#define c p2_2sbit p3_6=p36;sbit p3_5=p35;sbit p3_4=p34;sbit p3_2=p32;sbit p3_3=p33;sbit p2_5=p25;sbit p2_6=p26;sbit p2
21、_4=p24;sbit p2_0=p20;sbit p2_1=p21;sbit p2_2=p22;sbit p2_3=p23;sbit p2_7=p27;uchar data ad;char ch=0;float volt; uchar data ndig; uchar x,y;bit key1=0,key2=0; uchar code w = " good luck "uchar code hhuc="this is micheal"uchar code tongdao="tongdao : "uchar code danwei=&
22、quot; v "void delayms(uint n);void writedatalcm(uchar wdlcm);void writecommandlcm(uchar wclcm,ubuysc);void checkbusy_lcm(void);void lcminit(void);void displayonechar(uchar x, uchar y, uchar ddata);void displaylistchar(uchar x,uchar y, uchar *ddata);void disp(uchar xx, uchar yy,float canshu);voi
23、d nextp(void);void writedatalcm(uchar wdlcm) checkbusy_lcm(); /检测忙 lcm_rs = 1; lcm_rw = 0; lcm_data = wdlcm; lcm_e = 1; /若晶振速度太高可以在这后加小的延时 _nop_(); _nop_(); _nop_(); lcm_e = 0;void writecommandlcm(uchar wclcm,bit buysc) /buysc为0时忽略忙检测 if (buysc) checkbusy_lcm(); /根据需要检测忙 lcm_rs = 0; lcm_rw = 0; lcm_
24、data = wclcm; lcm_e = 1; /若晶振速度太高可以在这后加小的延时 lcm_e = 1; _nop_(); _nop_(); _nop_(); lcm_e = 0; void checkbusy_lcm(void) lcm_data = 0x0ff; lcm_e = 1; lcm_rs = 0; lcm_rw = 1; _nop_(); _nop_(); _nop_(); while (lcm_data & busy); /检测忙信号 lcm_e = 0;/lcm初始化void lcminit(void) writecommandlcm(0x38,0); /三次显示
25、模式设置,不检测忙信号 delayms(5); writecommandlcm(0x38,0); delayms(5); writecommandlcm(0x38,0); delayms(5); writecommandlcm(0x38,1); /显示模式设置,开始要求每次检测忙信号 delayms(5); writecommandlcm(0x08,1); /关闭显示 delayms(5); writecommandlcm(0x01,1); /显示清屏 delayms(5); writecommandlcm(0x06,1); / 显示光标移动设置 delayms(5); writecomman
26、dlcm(0x0c,1); / 显示开及光标设置 delayms(5); void displayonechar(uchar x, uchar y, uchar ddata) y &= 0x01; x &= 0x0f; /限制x不能大于15,y不能大于1 if (y) x |= 0x40; /当要显示第二行时地址码+0x40; x |= 0x80; /算出地址 writecommandlcm(x, 1); /这里不检测忙信号,发送地址码 writedatalcm(ddata);void displaylistchar(uchar x, uchar y, uchar *ddata
27、) uchar listlength; listlength = 0; y &= 0x01; x &= 0x0f; /限制x不能大于15,y不能大于1 while (x<ndig) /若到达字串尾(32)则退出 displayonechar(x, y, ddatalistlength); /显示单个字符 listlength+; x+; void delayms(uint n) /延时约n.039n.051ms(0<n<=520) for(n=125*n;n;n-);void read_ad(uchar port) switch(port) case 0:a=
28、0;b=0;c=0;break; case 1:a=1;b=0;c=0;break; case 2:a=0;b=1;c=0;break; case 3:a=1;b=1;c=0;break; case 4:a=0;b=0;c=1;break; case 5:a=1;b=0;c=1;break; case 6:a=0;b=1;c=1;break; case 7:a=1;b=1;c=1;break; default:break; oe=0; ale=0; start=0; ale=1; start=1; ale=0; start=0; while(!eoc); oe=1; p0=0x0ff; ad=0xff&p1; oe=0; volt=(ad/255.0)*5;void nextp(void) x+=1;if(x=16) x=0; y+=1; if(y=2) y=0;void disp(uchar xx, uchar yy,float
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026配置管理行业市场供需分析及投资评估规划分析研究报告
- 2026中国垃圾渗滤液处理膜系统运行参数优化实证研究
- 2026智能仓储搬运机器人路径规划算法优化空间分析报告
- 2026莆田石结构传统建筑资源活化利用供需平衡市场化探索评估报告
- 2026金融科技行业监管分析及区块链应用与行业未来趋势探讨报告
- 2026充电桩行业并购重组趋势与典型案例研究
- 2026蛋白质农药作用机理研究与田间试验数据综合分析报告
- 2026冷链物流智能化转型中的技术应用与投资热点追踪
- 2026金融咨询服务行业市场现状供需分析及未来投资策略规划分析研究报告
- 2026中国稀土永磁材料全球竞争格局与技术创新趋势报告
- 2026年广东省广州市辅警人员招聘考试试卷(含答案及解析)
- 2026新版检验检测机构管理评审报告
- 实验室生物安全演练脚本
- 2026年西南电力设计院招聘考试指南及模拟题
- 2026年流感预防知识宣传测试题及答案
- 中英文产品研发项目合同协议
- 《内科学》名词解释
- 人教PEP版三年级英语上册第一单元Unit 1 Making friends 单元试卷(含答案含听力原文)
- 胎盘早剥教学课件
- 农业机械化智能化发展现状下的农业人才培养模式研究报告
- CJ/T 454-2014城镇供水水量计量仪表的配备和管理通则
评论
0/150
提交评论