网站大量收购独家精品文档,联系QQ:2885784924

单片机控制制作电压表.doc

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

项目五 设计制作电压表 组别 ****** 姓名 ** 学号 **** 班级 ********* 电压表设计与制作作业卡、 项目名称:设计制作电压表 项目要求 1)用keilC51、Proteus、EASY下载软件作开发工具; 2)用AT89C51单片机作控制;AD0809做AD转换; 3)3位数码管作显示;。 4)测量0-5v电压,两位小数显示 2、任务 1)拟定总体设计制作方案; 2)拟定硬件电路; 3)编制软件流程图及设计相应源程序; 4)仿真调试电压表; 5)调试 3、 用单片机做控制、ADC0809作模数转换、一个4位一体数码管做显示。用AT85C51的端口的P1.0~P1.7电压输出显示;P2端口的P2.0~P2.7作数码管的位选控制端口;P0端口的P0.0~P0.7做A/D转换的数据输入端口;P3端口的P3.4、P3.5、P3.6做为通道选择地址信号输入端口;P3.0作为启动控制输出端口;P3.1作为允许输出控制;P3.2作为转换状态输入端;时钟信号由AT89C51的P3.3定时中断产生;ADC0809的IN3端子作电压测试输入端口。 4、程序设计 1.主程序设计思路与主流程图。 ⑴ 程序设计思路 用软件产生时钟信号,用P3.3定时取反输出CLK信号;进行A/D转换之前,ABC=110,选择第三通道,通过START=0,START=1,START=0产生启动转换的正脉冲信号,并启动转换。进行A/D转换时,采用查询EOC的标志位来检测A/D转换是否完毕,若完毕择通过P0端口输入数据。实际显示的电压值与数字量关系为: 电压值=VREF*D/256 电压值经过BCD码转换、译码、再用数码管显示。 电压表流程图 ⑵ 程序设计 #includereg51.h #define uchar unsigned char #define uint unsigned int uchar code dispbitcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar dispbut[4]; uint i,j; uint getdata; uint temp; sbit ST=P3^0; sbit OE=P3^1; sbit EOC=P3^2; sbit CLK=P3^3; sbit P34=P3^4; sbit P35=P3^5; sbit P36=P3^6; sbit P20=P2^0; sbit P21=P2^1; sbit P22=P2^2; sbit P23=P2^3; sbit P17=P1^7; void delay_1ms(uint t) { uint i,j; for(i=t;i0;i--) { for(j=120;j0;j--); } } void TimeInitial() { TMOD=0x10; TH1=(65536-200)/256; TL1=(65536-200)%256; EA=1; ET1=1; TR1=1; } void display() { if(dispbut[3]!=0) { P1=dispbitcode[dispbut[3]]; //shi P20=0; P21=1; P22=1; P23=1; delay_1ms(5); P1=0X00; } P1=dispbitcode[dispbut[2]]; //ge P17=1; P20=1; P21=0; P22=1; P23=1; delay_1ms(5); P1=0X00; P1=dispbitcode[dispbut[1]]; //0.1 P20=1; P21=1; P22=0; P23=1; delay_1ms(5); P1=0X00; P1=dispbitcode[dispbut[0]]; //0.01 P20=1; P21=1; P22=1; P23=0; delay_1ms(5); P1=0X00; } void main() { Ti

文档评论(0)

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

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

1亿VIP精品文档

相关文档