贺秧秧简易数字电压表设计.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
贺秧秧简易数字电压表设计.doc

简易数字电压表设计 姓 名 贺秧秧 指导教师 贾立新 课 程 电子系统设计与实践 专业班级 电气1002班 学 院 信息工程学院 提交时间2012年12月23日 设计题目 采用C8051F360 单片机内部的A/D 转换器将模拟电压转换成数字量,并用十进制的形式在LCD 上显示。 A/D 转换的输入模拟信号由实验板PR3 电位器产生的0~3.3V 的直流电压 信号,用一根杜邦实验线将J8 的0~3.3V 输出插针与J7 口的P2.0 插针相连。注意A/D 转换器模拟输入电压的范围取决于其所选择的参考电压,如果A/D 转换器选择内部参考电压源,其模拟电压的范围为0~2.4V,如果选择外部电源作为参考电压,则其模拟输入电压范围为0~3.3V。测试时,A/D转换器的模拟输入信号可通过一个电位器产生。实验示意框图如图3-1所示。 图3-1 简易数字电压表实验示意框图 设计方案 简易数字电压表设计程序流程图如图3-2所示。 简易数字电压表实验板连接图如图3-3所示。此外,还需用一根杜邦实验线将J8 的0~3.3V 输出插针与J7 口的P2.0 插针相连。 图3-2 简易数字电压表设计程序中A/D转换和计时流程图 图3-3 简易数字电压表设计实验板接线图 三、详细设计 (1)简易数字电压表设计相应C8051F360和LCD初始化程序详见附录一。 (2)实验中AD转换选用逐次逼近型 3.039 2.640 2.286 1.975 实际电压(v) 3.2667 3.0465 2.6584 2.2976 1.9848 相对误差(%) 1.264 0.246 0.692 0.466 0.494 显示电压(V) 1.629 1.377 1.012 0.643 0.355 实际电压(v) 1.6360 1.3830 1.0170 0.6510 0.3641 相对误差(%) 0.427 0.433 0.492 1.22 0.270 表4-1 简易数字电压表设计实验数据 (注:其中显示电压指LCD显示值,实际电压指高精度电压表测量值) 五、心得体会 (1)LCD显示模块的CPLD部分由FPGA充当,芯片本身自带程序,因而这个部分不需要再通过QUARTUS 软件进行编程。 (2)单片机的相关初始化程序以及LCD初始化程序可以在书本和课件中找到参考,关于汉字显示程序部分,参考书本P177,在定义hanzi等变量时做相应修改,比如想要显示简易数字电压表就定义hanzi如下:uchar code hanzi[] = 简易数字电压表;另外在参考电压选择过程中发现,单片机实际最大电压并不是2.4v而是3.3v,则在转换中将3.3V替换2.4V即可。 (3)实验一开始发现调节电阻之后,实际电压值改变但是LCD显示电压值并没有发生改变,原因有:①EC6仿真器没有开启②每次KEIL重新开启后,要重新输入相应解码。 附录一: /*简易数字电压表*/ #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[] = 简易数字电压表; uchar code keynum[]=键值; uchar code keyc[]=次数; uint time=0; float volt; uint v[4]; uint AT,voltage; uchar keyn,keycode; void OscInit(); //内部振荡器初始化 void PortIoInit(); //I/O端口初始化 void XramInit(); //外部数据存储器接口初始化 void PcaInit(); //PCA初始化(设置看门狗定时器的工作状态) void InitDevice(); //内部资源初始化 void CheckLcd();

文档评论(0)

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

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

1亿VIP精品文档

相关文档