基于51的控制的ADC0809仿真.docx_第1页
基于51的控制的ADC0809仿真.docx_第2页
基于51的控制的ADC0809仿真.docx_第3页
基于51的控制的ADC0809仿真.docx_第4页
基于51的控制的ADC0809仿真.docx_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

摘要现今大多数的数据都是以电压形式进行采集,并数字化然后进行处理,如何进行多路的电压采集并数字化就显的有实际意义。以8052单片机作为控制器,用8255进行并行口扩展,实现对ADC0809和LCD1602进行控制,从而实现多路电压的采集和显示。将8路开关组成选择电路,来选择用以采集和显示的通道。该设计能简单快速的实现8路电压的低精度的采集和显示。具有很好的操作性。proteus作为一款优秀的数字仿真软件,不但可以传统的数字仿真,还可以数模混合仿真,从而能在验证好设计在进行系统搭建,减少开发时间。关键词 51;单片机;8255;电压采集;ADC0809 ;LCD1602绪论随着信息技术的普及,越来越来越多的信号都是以数字的形式进行采集和处理。因为数字相对模拟信号具有很多优点。数字信号具有保密性好,抗干扰能力强的有点,同时由于数字信号处理技术的发展,数字信号的处理变得更加快速和高效。而由于现实世界由传感器采集到的数据多为模拟的电压信号,因此,模拟的数字化转换就很有意义。51单片机作为最成功的8位单片机,具有指令丰富,速度快,价格低,片上资源丰富等特点,能轻易胜任一般的数据采集的控制器。ADC0809是一款具有8个模拟输入通到的8位逐次逼近型AD转换器,可以满足多路数据的低精度采集。LCD1602是16*2的字符型工业液晶。可以轻易满足显示要求的不高的场所。由于LCD1602加上ADC0809和8路开关,所需要的I/O明显多于51单片机所能提供的数量。所以采用了8255并行扩展芯片对I/O口扩展,以达到需要。由于现今数字IC设计的复杂性,如果没在进行设计验证下时进行系统搭建,会在后期调试上的浪费时间。Proteus能对大部分数字电路或则数模混合电路进行仿真。从而减少后期调试的时间硬件实现该设计所需要的主要器件有8051单片机,8055并行扩展芯片,ADC0809,LCD1602,开关。设计总体如图。左边第一个U1为8051,由于软件允许,省去了复位,时钟,电源电路。U1上方八个按键开关接地,构成低电平有效选择电路,并与U48输入与门构成中断电路,接外部中断0。当任意按键按下,产生一次中断。U2为8255,由于8255数据口为集电极开路,需要RP1排阻构成上拉电阻。LCD1602与ADC0809接到8255的IO。ADC的EOC反相后接8051的外部中断1。 软件实现软件流程图如下。主程序 外部中断0服务程序 外部中断1服务程序 中断采用边沿触罚方式、 仿真结果对八个通道分别设置为0.5 , 1.0 , 1.5 , 2.0 , 2.5 , 3.0 , 3.5 , 4.0,信号设置如图运行程序,系统上电复位,提示选择通道选择通道7选择通道6选择通道5选择通道4选择通道3选择通道2选择通道1选择通道0结论该设计成功实现了8路电压的采集和显示附录C语言源程序/-#include #include #include #include /-#define PortA XBYTE 0x8000#define PortB XBYTE 0xa000#define PortC XBYTE 0xc000#define Contral XBYTE 0xd000/-#define RS 0x01#define RW 0x02#define EN 0x04#define ALE 0x10#define OE 0x08typedef unsigned char uchar;typedef unsigned int uint;/-void Initial8052();void WriteCommand_LCD(uchar command);void WriteData_LCD(uchar dat);void InitialLCD();void DisplayChar_LCD(uchar x,uchar y,uchar chara) reentrant;void Delay(uint cnt);void DisplayString_LCD(uchar row,uchar *p) reentrant;void InitialInt();void StratADC();void SetCh(uchar ch);/-void main()P1=0xff;Initial8052();InitialLCD();InitialInt();DisplayString_LCD(1,Please select Ch);EA=1;while(1);void Initial8052()Contral=0x82; /port a is output,port b is input,port c is output/-/LCD/-void WriteCommand_LCD(uchar command) PortC=PortC | EN; PortC=PortC & RW; PortC=PortC & RS;PortA=command ; PortC=PortC & EN; Delay(50);void WriteData_LCD(uchar dat) PortC=PortC | EN; PortC=PortC & RW;PortC=PortC | RS;PortA=dat; PortC=PortC & EN; Delay(50);void InitialLCD()WriteCommand_LCD(0x38);WriteCommand_LCD(0x0c);WriteCommand_LCD(0x06);WriteCommand_LCD(0x01);void DisplayChar_LCD(uchar x,uchar y,uchar chara) reentrant uchar address; if (y=1) address=0x80+x; if (y=2) address=0xc0+x; /DDRAM WriteCommand_LCD(address); / WriteData_LCD(chara); void DisplayString_LCD(uchar row,uchar *p) reentrant/rowp data uchar str16; data uchar i=0;strcpy(str,p); /strif (row=1) for(i=0;stri!=0;i+) / DisplayChar_LCD(i,1,stri); /if (row=2) for(i=0;stri!=0;i+) / DisplayChar_LCD(i,2,stri);void Delay(uint n) uint i;uchar j; for(i=n;i0;i-) for(j=0;j10;j+);/-void StartADC()PortC=PortC | ALE; /ale,start=1;PortC=PortC & ALE; /ale,start=0;void SetCh(uchar ch)ch=5;PortC=(PortC & 0x1f) | ch;/-/Interrupt/-void InitialInt()IT0=0;EX0=1;IT1=1;EX1=1;PX1=1;PX0=0;void ISR_IT0() interrupt 0float voltage;data uchar str16;EA=0;PortC=PortC | OE; /enable output of adcvoltage=PortB*0.0196;sprintf(str,%f V,voltage);DisplayString_LCD(2,str);PortC=PortC & OE; /OE=0StartADC();EA=1;void ISR_IT1() interrupt 2EA=0;switch (P1)case 0x7f:DisplayString_LCD(1,Voltage of ch.7 );SetCh(7);break;case 0xbf:DisplayString_LCD(1,Voltage of ch.6 );SetCh(6);break;case 0xdf:DisplayString_LCD(1,Voltage of ch.5 );SetCh(5);break;case 0xef:DisplayString_LCD(1,Voltage of ch.4 );SetCh(4);break;case 0xf7:DisplayString_LCD(1,Voltage of ch.3 );SetCh(3);break;case 0xfb:DisplayString

温馨提示

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

评论

0/150

提交评论