计算机控制技术课程设计_第1页
计算机控制技术课程设计_第2页
计算机控制技术课程设计_第3页
计算机控制技术课程设计_第4页
计算机控制技术课程设计_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机控制课程设计设计说明书姓名:学号:专业班级:指导教师:成绩:机电与汽车工程学院2015年6月PAGEPAGE24课题内容:模拟数据采集器:利用AD转换芯片采集多路0~5V模拟信号;按键选择显示通道温度值,温度值(T/℃)与电压(U/V)对应关系:T=15.4U;对采集的数据进行一阶惯性数字滤波。摘要:本文用到的集成芯片主要有8051单片机AT89C51、模数转换器ADC0808、以及4511。首先我们用电位器模拟输入电压0-5V,然后进行一阶惯性滤波,然后用ADC0808对八路模拟信号进行选择采集,并将其转化为八位数字信号,再按给定的公式将电压值转换成温度值,并通过显示模块4位显示数码管显示出来。本系统利用单片机为核心,设计一个多路数据采集系统,采用8路模拟量输入设计,工作范围是0-5V。要求对输入的8个通道的模拟量进行巡回采样,并将采集的信号数据按给定的公式将电压值转换成温度值,并在LED显示器上显示出来,并能通过按键切换所选通道的采样数据。目录:数据采集器的主要功能2硬件电路设计及描述……3设计方案的框图…4工作原理…4原理图及连接关系9整体图……15元件清单…………...16八、程序源代码…17九、总结……23.十、参考文献……23一.数据采集器的主要功能该数据采集器采用的主要元件是AT89C51和ADC0808模数转换芯片。其主要功能是模拟采集信号,并对信号进行一阶惯性滤波,最终显示出来采集结果。本次设计的要求是采集温度的信号。通过对电压信号的采集,按公式计算出对应的温度。首先模拟信号采用电位器产生,供给ADC0808,ADC0808有8路数据输入,也就是8路模拟电压信号。在AT89C51的控制下,实现按键转换要求通道的电压值。温度值T(˚C)与电压U(V)对应关系:T=15.4V。通过AT89C51的计算输出结果,显示在4位共阳极数码管上。硬件电路设计及描述1.该方案的模拟信号是由电位器产生的(0-5v),我个人认为用电位器较电压信号更加方便,因为这个具有很强的可操作性,可在后期工作中将电位器集成在电路板上,使模拟信号有良好的可移动性。在控制器和模数转换芯片上,采用独立的显示设备四位数码显示管。可以采用并行动态扫描的方式接入单片机直接读取并行信号。2.在AT89C51的控制下,指定某通道将电位器产生的输入电压信号,然后进行一阶惯性滤波,接下来输入ADC0808转换器,ADC0808将采集的数据输入单片机AT89C51内,在AT89C51的控制下,实现按键转换要求通道的电压值,并按照温度值T(˚C)与电压U(V)对应关系:T=15.4V进行计算,然后AT89C51输出数据。使用四位数码显示管来做独立的显示设备将输出信号显示出来。三.设计方案的框图采集电路ADC0808显示电路单片机AT89C51采集电路ADC0808显示电路单片机AT89C51 完成按键部分一阶惯性数字滤波 按键部分一阶惯性数字滤波 模拟信号模拟信号0-5v四.工作原理模拟信号有电位器产生0-5V的可调电压。上电以后,AT89C51输出启动信号并进行一阶惯性滤波,然后将信号给ADC0808,ADC0808开始转换第一通道的模拟信号,转换完成以后发出完成信号给AT89C51,转换后的并行数据由P1口输入单片机,单片机接收数据后由程序按温度值T(˚C)与电压U(V)对应关系:T=15.4V完成换算,最后由P0口输出显示数据,由四位数码显示管显示。ADC0808内部自带8路数据选择器,由单片机控制片选信号,完成按键选择信号的功能。4.电路中主要芯片的引脚对应的功能4.1主控芯片AT89C51AT89C51AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P2口:P2口上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚备选功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断0)P3.3/INT1(外部中断1)P3.4T0(计时器0外部输入)P3.5T1(计时器1外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的低位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。A/D转换器:ADC0808ADC0808芯片有28条引脚,采用双列直插式封装,如右图所示。各引脚功能如下:1~5和26~28(IN0~IN7):8路模拟量输入端。8、14、15和17~21:8位数字量输出端。22(ALE):地址锁存允许信号,输入,高电平有效。6(START):A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。7(EOC):A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。9(OE):数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。12(VREF(+))和16(VREF(-)):参考电压输入端11(Vcc):主电源输入端。13(GND):地。23~25(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路五.原理图及连接关系5.1数据输入模块本次采集器设计的输入的模拟信号比较简单,采用滑动变阻器,外接+5V电压作为输入模拟信号,标示为RV1,RV2,RV3,RV4,RV5,RV6,RV7,RV8,分别接入模数转换芯片ADC0808的IN0-IN7(26,27,28,1,2,3,4,5号管脚)。完全符合输入模拟信号0-5V的调节范围,有效可靠的模拟电压信号。5.2模数转换模块模拟信号通过输入端IN0~IN7:8路模拟量输入端。ADDA,ADDB,ADDC三个是数据选择控制端输入片选信号与P3.1,P3.2,P3.3连在一起,由A,B,C和IN0-IN7构成3-8数据器,通过AT89C51中的按键程序控制片选信号。START是A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0808复位,下降沿启动A/D转换)。ALE是地址锁存允许信号,输入,高电平有效。将ALE和START连在一起与P3.4相连,在A/D转换完成后正脉冲的处于高电平,即可控制地址锁存器。该脉冲依靠编写的单片机中断程序模拟一个正脉冲控制。OE端口是数据输出允许信号,由单片机输入高电平控制。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。OUT1-OUT8是A/D转换的输出数字端口,与P1口相连。连接方式是OUT1-OUT2和P1.7-P1.0。12和16号管脚是接基准电压分别接VCC和GND。另外10号端口是时钟频率大小不得超过640KHZ。本次设计中采用终端输出脉冲来模拟这个时钟脉冲,但是效果不好,所以采用外接500KHZ的信号。5.3主控电路这是单片机部分的复位电路和时钟脉冲电路。复位电路采用电平复位的方式,晶振的频率为11.0592MHZ。连接方式如图分别连到单片机的19,18,9号脚。这是AT89C51单片机主控部分的接法,其中P3.1到P3.7与A/D转换芯片相连,做控制口。在A/D部分已经详细介绍了连法。P2.0-P2.3是四位数码显示管的控制端。P2.5和P2.6是按键的控制端。P0.0-P0.7是显示的数据输出端与四位数码管的A-G相连。这个是简单的按键部分,P2.4按键选通转换那一路,执行的方式是按一下显示下一路,按0-7路的方式循环。5.4显示模块温度显示部分,我们使用的是四位数码管(共阳极),其中标示的是P0.0-P0.7和A-DP的连接方式,是数据输出端。P2.0-P2.3与1-4相连,做控制端口,控制那一位显示。RP1是排阻,阻值单个是1K。因为PO口是用来做数据端的,必须串上拉电阻。通道标号显示部分,通过4511与P3.1-P3.3连接译码,驱动数码管(共阴极)显示通道标号。六、整体图:七.元件清单本次课程设计所用元件清单如下:元器件名称数量(个)ADC08081AT89C51144511单个数码显示管1一阶惯性滤波器81K排阻11K滑动变阻器810uF电容133P电容2按键开关2510Ω电阻110K电阻112M晶振14位一体数码显示管1八.程序源代码#include<reg51.h>/*C51单片机头文件*/#include<intrins.h>/*C51单片机移位头文件*/#defineucharunsignedchar/*定义uchar为8位无符号字符数据*/#defineuintunsignedint/*定义unit为无符号整数*///#defineinputP1/*定义输入P1口*///#defineTTP0/*

定义TT为P0口*/sbitSTART=P3^4;/*

位定义,定义START为P3.4引脚*/sbitCLK=P3^5;/*

位定义,定义CLK为P3.5引脚*/sbitOE=P3^6;/*

位定义,定义OE为P3.6引脚*/sbitEOC=P3^7;/*位定义,定义EOC为P3.7引脚

*/sbitE=P3^0;/*位定义,定义E为P3.0引脚

*/sbitAA=P3^1;/*

位定义,定义AA为P3.1引脚*/sbitBB=P3^2;/*

位定义,定义BB为P3.2引脚*/sbitCC=P3^3;/*

位定义,定义CC为P3.3引脚*/sbitK1=P2^4;/*

位定义,定义K1为P2.4引脚*/sbitP07=P0^7;/*

位定义,定义P07为P0.7引脚*/uchart1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};/*

定义一个无符号数组t1,在数码管上显示0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F。*/uchara,b;/*

8位无符号字符a,b*///voiddelay1();/*调用延时函数*/voiddisplay(uinttemp1);/*

显示输出函数,返回值为unittemp1*//*******延时1*******/voiddelay1(void){for(a=248;a>0;a--);for(b=248;b>0;b--);}/******延时2*****/voiddelay2(){inti;for(i=5000;i>0;i--);}/********A/D转换程序********/ucharAD(){uchardat;/*

8位无符号字符dat*/if(!EOC){START=1;START=0;}while(!EOC);START=1;START=0;dat=input;returndat;}/********一阶惯性滤波环节********/#define

a

50

char

value;

char

filter()

{

char

new_value;

new_value

=

get_ad();

return

(100‐a)*value

+

a*new_value;

}/********加地址,选择模拟通道*******/voidget_add(ucharadd){CC=add/4;BB=add%4/2;AA=add%2;delay2();/*延时2

*/}/******动态扫描程序******/voiddisplay(uinttemp1)/*

显示输出函数,返回值为unittemp1*/{uintaa,bb,cc,dd;/*定义无符号整数aa,bb,cc,dd

*/aa=temp1%10;/*

aa取temp1的个位*/temp1/=10;bb=temp1%10;/*

bb取temp1的十位*/temp1/=10;cc=temp1%10;/*

cc取temp1的百位*/dd=temp1/10;/*

dd取temp1的千位*/P2=0xf1;/*

P2口第7,6,5,4,0位置一。第3,2,1位置零*/P0=t1[dd];delay1();P2=0xf2;/*

P2口第7,6,5,4,1位置一。第3,2,0位置零*/P0=t1[cc];delay1();P2=0xf4;/*

P2口第7,6,5,4,2位置一。第3,1,0位置零*/P0=t1[bb]&0X7F;/*

t1[bb]第七位置零*/delay1();P2=0xf8;/*

P2口第7,6,5,4,3位置一。第2,1,0位置零*/P0=t1[aa];delay1();}/*****电压显示转温度显示函数*****/voidc_u(intaa){aa=aa*15.4*5*10/2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论