简易数字电压表 实验报告.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

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

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

1亿VIP精品文档

相关文档