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

上传人:b****5 文档编号:5044708 上传时间:2022-12-12 格式:DOCX 页数:13 大小:148.31KB
下载 相关 举报
单片机控制制作电压表.docx_第1页
第1页 / 共13页
单片机控制制作电压表.docx_第2页
第2页 / 共13页
单片机控制制作电压表.docx_第3页
第3页 / 共13页
单片机控制制作电压表.docx_第4页
第4页 / 共13页
单片机控制制作电压表.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

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

《单片机控制制作电压表.docx》由会员分享,可在线阅读,更多相关《单片机控制制作电压表.docx(13页珍藏版)》请在冰豆网上搜索。

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

单片机控制制作电压表

项目五设计制作电压表

组别******

姓名**

学号****

班级*********

电压表设计与制作作业卡

1、电压表的功能与任务

1、电压表功能指标要求及任务

1、功能指标要求

项目名称

项目名称:

设计制作电压表

项目要求

1)用keilC51、Proteus、EASY下载软件作开发工具;

2)用AT89C51单片机作控制;AD0809做AD转换;

3)3位数码管作显示;。

4)测量0-5v电压,两位小数显示

2、任务

1)拟定总体设计制作方案;

2)拟定硬件电路;

3)编制软件流程图及设计相应源程序;

4)仿真调试电压表;

5)调试功能指标;

6)完成项目评估。

2、总体设计思路

实现思路与框图设计

用单片机作控制,时钟为12MHz,选用ADC0809的一个通道输入待测直流电压,A/D转换后,经标定、BCD码转换、高位消隐等处理,用数码管显示。

 

 

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码转换、译码、再用数码管显示。

电压表流程图

⑵程序设计

#include

#defineucharunsignedchar

#defineuintunsignedint

ucharcodedispbitcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

uchardispbut[4];

uinti,j;

uintgetdata;

uinttemp;

sbitST=P3^0;

sbitOE=P3^1;

sbitEOC=P3^2;

sbitCLK=P3^3;

sbitP34=P3^4;

sbitP35=P3^5;

sbitP36=P3^6;

sbitP20=P2^0;

sbitP21=P2^1;

sbitP22=P2^2;

sbitP23=P2^3;

sbitP17=P1^7;

voiddelay_1ms(uintt)

{

uinti,j;

for(i=t;i>0;i--)

{

for(j=120;j>0;j--);

}

}

voidTimeInitial()

{

TMOD=0x10;

TH1=(65536-200)/256;

TL1=(65536-200)%256;

EA=1;

ET1=1;

TR1=1;

}

voiddisplay()

{

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;

}

voidmain()

{

TimeInitial();

while

(1)

{

P34=1;

P35=1;

P36=0;

OE=0;

ST=0;

ST=1;

ST=0;

while(EOC==0);

OE=1;

getdata=P0;

OE=0;

temp=getdata*1.0/255*5*100;

dispbut[0]=temp%10;

dispbut[1]=temp/10%10;

dispbut[2]=temp/100%10;

dispbut[3]=temp/1000;

display();

}

}

voidt1(void)interrupt3

{

TH1=(65536-200)/256;

TL1=(65536-200)%256;

CLK=~CLK;

}

2、程序清单

5、仿真

电压表仿真模型与结果(含实物照片)

⑴仿真图

⑵项目测试:

1.测试环境:

普通。

2.测试仪器:

Proteus7.5SP3仿真软件。

3.测试记录:

滑动可调

电阻

测量次数

实值

5

4.95

4.9

2.15

2.19

0

1

 

测量值

5

4.94

4.9

2.15

2.19

0

2

5

4.94

4.9

2.15

2.19

0

3

5

4.94

4.9

2.15

2.19

0

总结

软件本身精确度有一定误差,程序本身也有一定误差。

评价表(自评)

时间:

2012-5-20班级:

电子1001组别:

任务

项目五设计制作电压表

姓名

学号

成绩

89

任务完成情况

分值

得分

任务完成情况

分值

得分

总体设计思路

10

仿真

10

原理图设计

10

安装

10

程序流程图

10

调试

10

程序

10

检查评估

10

文明(纪律)

20

总分

评价记录

签字:

评价表(互评)

时间:

2012-5-20班级:

电子1001组别:

任务

项目五设计制作电压表

姓名

学号

成绩

任务完成情况

分值

得分

任务完成情况

分值

得分

总体设计思路

10

仿真

10

原理图设计

10

安装

10

程序流程图

10

调试

10

程序

10

检查评估

10

文明(纪律)

20

总分

评价记录

签字:

评价表(师评)

时间:

2012-5-20班级:

电子1001组别:

第十三组

任务

项目五设计制作电压表

姓名

学号

成绩

任务完成情况

分值

得分

任务完成情况

分值

得分

总体设计思路

10

仿真

10

原理图设计

10

安装

10

程序流程图

10

调试

10

程序

10

检查评估

10

文明(纪律)

20

总分

评价记录

签字:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1