- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
简易数字电压表 实验报告
简易数字电压表设计
实验报告
姓 名 陈秀秀
学 号 201203870404
指导教师 贾立新
专业班级 电气1202
学 院 信息工程学院
实验要求
采用C8051F360单片机最小系统设计一简易数字电压表,实现对0~3.3V直流电压的测量,原理框图如图3-1所示。模拟输入电压通过一只1 kΩ电位器产生,ADC0将模拟电压转换成数字量后换算成电压值,用十进制的形式在LCD上显示。进一步,将单片机最小系统与PC通过RS-232通信电缆连接,将A/D转换的数字量在PC终端显示。
图3-1
实验设计
设计方案:由主程序、T0中断服务程序、ADC0中断服务程序组成。具体流程图如下图3-2所示。
图3-2
具体设计
简易数字电压表设计F360初始化及LCD初始化(详细程序代码见附录)
①内部振荡器初始化:OscInit()
②I/O端口初始化:PortIoInit()
③外部数据存储器接口初始化:XramInit()
④定时器初始化:TimerInit()
⑤中断系统初始化:Int0Init()
⑥ADC0初始化:ADC_Init()
⑦PCA初始化:PcaInit()
2.电压转换方式(将电压转换为十进制)
ADCDAT=ADC0H*256+ADC0L;
VOLT=ADCDAT*2.4/1024=ADCDAT*0.002344;
VOLTOUT=VOLT*1000;
for(i=0;i4;i++)
{
VOLTBCD[i]=VOLTOUT%10;
VOLTOUT=VOLTOUT/10;
}
3.LCD显示程序设计
①检查LCD是否空闲子程序
void CheckLcd()
{
uchar temp=0x00;
uchar xdata *addr;
while(1)
{
addr=RCOMADDR;
temp=*addr;
temp=0x80;
if(temp==0x00)
break;
}
}
②电压值显示
WriteCom(0x9C);
WriteData(VOLTBCD[3]+0x30);
WriteData(0x2E);
WriteData(VOLTBCD[2]+0x30);
WriteData(VOLTBCD[2]+0x30);
WriteData(VOLTBCD[0]+0x30);
WriteData(0x56);
实验中AD转换方式选用逐次逼近型,A/D转换完成后得到10位数据分为高低字节存放在寄存器ADCOH和ADC0L中,此处选择右对齐,转换时针为2MHZ。
选择内部参考电压2.4伏为基准(在实际单片机调试中改为3.311伏),正端接P2.0,负端接地。
实验数据测量
V(测量) 0.000 0.372 0.523 0.724 0.980 1326 1.792 2.220 V(实际) 0.00 0.38 0.53 .073 0.99 1.33 1.79 2.23 结论:校准后,测量数据与实际电压误差小于0.01,符合实验精度要求.
五.代码附录
#include C8051F360.H
#define uchar unsigned char
#define uint unsigned int
#define WCOMADDR 0xC008 //写命令寄存器的地址
#define WDATADDR 0xC009 //写数据寄存器的地址
#define RCOMADDR 0xC00A //读命令寄存器的地址
#define RDATADDR 0xC00B //读数据寄存器的地址
#define KEYCS 0xC00C //读键盘的地址
uchar code hanzi[]= {0xbc,0xf2,0xd2,0xd7,0xca,0xfd,0xd7,0xd6,0xb5,0xe7,0xd1,0xb9,0xb1,0xed};//“简易数字电压表”
uchar code keynum[]=键值;
uchar code keyc[]=次数;
uchar time=0;
文档评论(0)