基于8051单片机的简易数字电压表设计基于8051单片机的简易数字电压表设计.doc

基于8051单片机的简易数字电压表设计基于8051单片机的简易数字电压表设计.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于8051单片机的简易数字电压表设计 姓名:吴建亮 班级:电信1202 学号:201203090224 摘要 电压表应用十分广泛,但大部分是模拟电压表,而由于其特性,反应速度慢,读数麻烦并且误差较大,所以为适应不断快速发展的高速信号领域,已经广泛使用数字电压表。本实验设计是基于51单片机开发板ESDM-3A实现的一种数字电压表系统。该设计采用8051单片机作为控制核心,以ADC0为模数转换数据采样,实现被测电压的数据采样,外部采用LCD12864液晶显示电压表的电压值。 1.设计任务和要求 1.1 设计任务 设计制作一个简易直流电压表,该直流电压表能测量直流电压。各硬件模块如图1.1所示。 图1.1硬件框图 1.2 设计要求 ADC0的工作方式设置如下:采用单端输入,模拟输入电压从P2.0输入;选择作为参考电压源;转换时钟频率设置为2MHz;采用写“AD0BUSY”启动A/D转换。 采用定时器中断每隔0.5s启动一次A/D转换;通过ADC0中断服务程序读取转换值。 设计方案 2.1 硬件电路 硬件模块如上图1.1所示。输入电压由开发板上J8接口的第2脚0~5.0V接跳线至单片机扩展接口J7的第4脚P2.0,调节电位器RP3实现不同电压的输入。AD转换器、单片机、液晶屏在开发板已经连接好。 下面简单介绍所用的器件。 C8051F360单片机主要模拟和数字资源包括: 高速8051微控制器内核。 10位逐次逼近型A/D转换器。 10位电流输出D/A转换器。 两个模拟电压比较器CP1和CP0。 片内锁相环PLL。 扩充中断处理系统。 存储器,256字节内部RAM;1024字节XRAML;32字节闪存存储器。 数字资源,多达39个I/O引脚,全部为三态双向口,允许与5V系统接口。 时钟源,2个内部振荡器;80kHz低频低功耗振荡器。 片内调试电路。 液晶屏HG1286412B功能和接口。 1:VSS 接地端 电源正,接+5V 对比度调整, 4:D/I(CS*) 片选,也叫使能,接+5V 数据输入端 时钟输入端 并行数据总线 串并模式选择,串行模式下接地,并行模式下接+5V 空引脚,不需要连接 复位端,低电平有效,一般接+5V 对比度调整 19:BLA 背光正极,接+5V 背光负极,接地 Keil μVision4进行程序的编写和烧录。程序执行时所对应的流程如下图2.1所示。 图2.1 程序执行流程图 下面简单介绍各模块的设计思路。 时钟和定时器:选用内部24MHz振荡器,频率除2作为SYSCLK;定时器选择定时器1工作方式1,TMOD=0X10,采用循环的方法,定时器定时50ms,循环10次得0.5s,装入初值TH1=(65536-50000)/256,TL1=(65536-50000)%256。 (2)ADC0:通过置“AD0BUSY”启动AD转换,采用10位采集通道,电压的最大值为3.3V,通过转换器的到的数值为AD_data=ADC0H×256+ADC0L,得到的实际电压为volt=AD_data×3.3/1023,通过AD0INT位,判断A/D转换是否结束。 液晶屏LCD12864:液晶屏操作分指令操作和数据操作,每次写指令或数据前先确认内部动作是否完成,通过读取忙碌状态进行确认。读、写指令或数据通过读或写4个内部寄存器WCOMADDR,WDATADDR,RCOMADDR和RDA TADDR来完成。 详细代码请见附录。 测试结果分析 组数 电压表显示(V) 单片机显示(V) 误差 1 0.449 0.445 0.89% 2 1.080 1.074 0.56% 3 1.653 1.651 0.12% 4 2.570 2.567 0.12% 5 3.100 3.096 0.13% 表3.1测试结果 根据表3.1的分析看,本次设计的数字电压表的符合要求,误差控制在1%内。 总结 本次的设计和实验采用了Keil μVision4进行C语言的编写和烧录,熟悉了Keil的操作,对8051单片机的定时器、A/D转换器、LCD12864液晶屏等模块有了一定的了解和认识。在程序的编写的过程和实际电路操作时遇到了种种问题,通过查阅大量的资料解决了问题,为以后的学习和实际应用奠定了基础。 附录: 本次设计实验的C语言代码: #include C8051F360.H #define uchar unsigned char #define uint unsigned int #define LEDENCS 0xC004 //LCD模块背光控制片选信号 #define WCOMADDR 0xC00

文档评论(0)

ochengaj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档