- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 培养“四种能力” 提高作文水平培养“四种能力” 提高作文水平.doc
- 城际新苑环球村二期施工组织设计城际新苑环球村二期施工组织设计.doc
- 培养低年级学生写字兴趣与能力的研究培养低年级学生写字兴趣与能力的研究.doc
- 培养低段学生良好的数学学习习惯培养低段学生良好的数学学习习惯.doc
- 培养写作兴趣 提高写作水平培养写作兴趣 提高写作水平.doc
- 培养初中学生学习语文的良好习1培养初中学生学习语文的良好习1.doc
- 培养外来务工人员子女小学语文课外阅读习惯的研究课题申请.评审书培养外来务工人员子女小学语文课外阅读习惯的研究课题申请.评审书.doc
- 培养学生作文兴趣n种方法培养学生作文兴趣n种方法.doc
- 培养和提高学生语文素养培养和提高学生语文素养.doc
- 培养学生倾听能力的策略培养学生倾听能力的策略.doc
文档评论(0)