八路模拟数据采集系统proteus课程设计.docx

上传人:b****5 文档编号:4164739 上传时间:2022-11-28 格式:DOCX 页数:10 大小:207.10KB
下载 相关 举报
八路模拟数据采集系统proteus课程设计.docx_第1页
第1页 / 共10页
八路模拟数据采集系统proteus课程设计.docx_第2页
第2页 / 共10页
八路模拟数据采集系统proteus课程设计.docx_第3页
第3页 / 共10页
八路模拟数据采集系统proteus课程设计.docx_第4页
第4页 / 共10页
八路模拟数据采集系统proteus课程设计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

八路模拟数据采集系统proteus课程设计.docx

《八路模拟数据采集系统proteus课程设计.docx》由会员分享,可在线阅读,更多相关《八路模拟数据采集系统proteus课程设计.docx(10页珍藏版)》请在冰豆网上搜索。

八路模拟数据采集系统proteus课程设计.docx

八路模拟数据采集系统proteus课程设计

一、任务说明

本次的任务是设计一个8路模拟信号,8路开关信号的数据采集系统。

用数码管显示采集通道和结果,通过按键来选择通道;用发光二极管显示开关量输入。

用Proteus绘制其电路原理图;此任务用到了三种芯片,分别是AT89C51、模数转换器ADC0808、锁存器74LS373,还用到了数码管、单刀双掷开关、发光二级管以及一些电阻。

分析题意可知,数码管显示八路模拟信号,发光二级管显示开关量输入信号。

这次任务中采用C语言编写程序,在编译过程中设置成自动产生HEX文件,将此文件导入AT89C51中,即可实现相应的功能。

二、原理图绘制说明

此次是用proteus绘制原理图,其具体的使用步骤如下:

1.运行该软件后,新建一个设计文件,设置图纸大小,由于本次设计元件较多,为便于操作,选择A3。

选择界面如图1所示。

图1选择图纸大小界面

2.接下来开始查找任务中所用到的元器件,查找界面如图2所示。

图2元器件查找界面

3.将查找的元器件放置到界面中,并进行相应的引脚连线,本次是采用标注的方式进行引脚连接,标注符号相同的表示引脚相连接,具体操作是先将引脚引出一小段导线,右击导线选择放置网络标号,标注标号界面如图3所示。

图3标注标号界面

4.按照题目设计要求连接好各元件,完成后的原理图如附录Ⅰ所示。

三、流程图绘制

1.主程序流程图

2.中断程序流程图

四、原理图仿真步骤及过程结果说明

1.在完成原理图的连接之后,要进行仿真,AT89C51还需要导入编写的程序文件,这次任务我是用C语言编写的程序,用的是KEIL编程软件,用它产生HEX文件,将此文件导入到AT89C51中,然后就可以进行仿真了。

导入HEX文件如图4所示。

图4HEX文件导入界面

2.八个模拟信号采集的仿真由数码管显示,通过调节滑头可以改变模拟量的输入,八个模拟量如图5所示。

图5八个模拟量

3.采集到的模拟量经AD转换后由数码管显示,在程序中将结果量化为一个百位数,第一个数码管显示通道,第二、三、四个分别显示百位、十位、个位,第二个数码管加上小数点来更近似的表示模拟量。

采集四通道的结果显示窗口如图6所示。

图6数码管显示窗口

4.模拟量的采集通道由三个单刀双掷开关来控制,通过改变开关的状态可以改变模拟量的采集通道,控制开关如图7所示

图7采集通道控制开关

5.八路开关信号的数据采集结果由八个发光二级管显示,当开关信号为时结果如图8所示。

图8开关信号显示

6.开关信号由八个单刀双掷开关控制,其控制开关如图9所示。

图9开关信号控制开关

五、总结

我们的图书馆可真是个大宝库。

本次课设虽然只有短暂的一周,但是在这一周内学到了很多用的东西,以前学到的知识也得到了一定的巩固。

此次课设又学了一种新软件——Proteus,通过参考图书馆借的相关书籍,网上查阅相关资料,查看相关教学视频,对Proteus有了一定的了解,虽然用的不是熟练,但是其基本功能还是能掌握,包括元器件的查找、元器件引脚的连接、以及完成之后的仿真,还对一些芯片的使用也有所熟悉,例如AD转换器AD0808、锁存器74LS373、AT89C51。

通过这次的课程设计,我充分认识到理论与实际相结合的重要性,理论知识再丰富,没有实际的操作经验再多的理论知识也没用,理论知识最终还是要用在实践上,只有这样才能锻炼我们的实际动手操作能力和独立思考能力。

本次课设还得感谢老师同学们的细心帮助和指导,让我学会了很多新知识。

六、参考文献

1.张毅刚.单片机原理及应用.[M]哈尔滨:

哈尔滨工业大学出版社,2004.

2.杨打生,宋伟.单片机C51技术应用.[M]北京:

北京理工大学出版社,2011

3.赵亮.单片机从入门到精通系列讲座——数码管驱动方法:

[M]电子制作,2008.4

4.彭伟.单片机C语言程序设计实训100例.[M]北京:

电子工业出版社,2011.

5.张义和,王敏男.例说51单片机.第3版,[M]北京:

人民邮电出版社社,2010.

6.郭天祥.51单片机C语言教程.[M]北京:

电子工业出版社,2009.

7.周坚.单片机C语言轻松入门.第2版,[M]北京:

北京航空航天大学出版社,2011.

 

附录Ⅰ仿真电路图

附录Ⅱ程序清单

#include

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

sbitSTART=P2^6;//位声明

sbitOE=P2^5;

sbitEOC=P2^4;

sbitNOT=P2^3;

sbitNOT1=P2^7;

sbitNOT2=P3^7;

sbitwela1=P2^0;

sbitwela2=P2^1;

sbitwela3=P2^2;

sbitwela4=P3^6;

sbitclk=P3^4;

uintRdata;

uintRdianya;

uinttongdao;

ucharcodeled[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f};

ucharcodeleddp[]={0xbf,0x86,0xdb,0xcf,0xe6,

0xed,0xfd,0x87,0xff,0xef};

/*********延时子程序**********/

voiddelay()

{uinti;

for(i=0;i<300;i++);

}

/**********显示子程序*********/

voidxianshi(uintDIANYA)

{

wela1=wela2=wela3=wela4=1;//模拟量输入时数码管显示

P0=led[DIANYA%10];//量化为百位数(500/255*模拟量)

wela1=0;

delay();

wela1=wela2=wela3=wela4=1;

P0=led[DIANYA/10%10];

wela2=0;

delay();

wela1=wela2=wela3=wela4=1;

tongdao=P3&0x07;

P0=led[tongdao];

wela4=0;

delay();

wela1=wela2=wela3=wela4=1;

P0=leddp[DIANYA/100];

wela3=0;

delay();

wela1=wela2=wela3=wela4=1;//开关量输入时二极管显示

NOT=0;

Rdata=P1;

NOT=1;

P0=Rdata;

NOT1=1;

NOT2=0;//U4有效,读取D状态

delay();

NOT1=0;//锁存D状态

}

/**********模拟量扫描子程序***********/

voidscan()

{

START=0;

START=1;

START=0;

while(EOC==0);//转换过程为低电平,其余为高

OE=1;

Rdata=P1;

OE=0;

}

/**************主程序***************/

voidmain()

{

floatc=0;

P3=0x00;

wela1=wela2=wela3=wela4=1;

NOT=1;

NOT1=0;

NOT2=1;

TMOD=0x01;//定时器T0的初始化

TH0=(65536-100)/256;

TL0=(65536-100)%256;

EA=1;

ET0=1;

TR0=1;

while

(1)

{

scan();

c=Rdata*1.96;//(500/255*模拟量)

Rdianya=c;

xianshi(Rdianya);

delay();

}

}

/**********中断子程序*************/

voidT0_time()interrupt1

{

TH0=(65536-100)/256;

TL0=(65536-100)%256;

clk=~clk;

}

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

当前位置:首页 > 小学教育 > 数学

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

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