ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:325.60KB ,
资源ID:6423221      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6423221.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(4路模拟信号采集系统.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

4路模拟信号采集系统.docx

1、4路模拟信号采集系统单片机开发与设计工程师考试文档学 校: 湖南人文科技学院 题 目: 4路模拟信号采集系统 学生姓名: 陈自斌 易颂文 起止日期: 2010-6-152010-6-25 摘 要本次设计是建立一个四路模拟信号采集系统,能处理模拟信号(05V),同时对信号进行循环采样并通过键盘控制输出。它主要由A/D转换模块、单片机、显示模块、控制器模块组成。其中最主要的部分是单片机和A/D转换器,首先被测模拟信号通过A/D转换器转换成数字信号,然后通过单片机的处理,在数码管上不停的显示4路的采样数据,通过的给一个控制信号,可以选择的任意一路信号在数码管上面输出显示。关键词:A/D转换模块;单片

2、机;控制模块 目 录设计要求 11、方案 12、单元电路设计 22.1 A/D转换模块 22.2 单片机 32.3 显示模块 32.4 控制模块设计 43、系统软件设计 53.1 系统工作流程 54、总原理图 55、调试结果及分析 67、详细仪器清单 7参考文献 8附录 94路模拟信号采集系统设计要求1. 4路模拟量输入,范围0-5V;2. 对4个通道的模拟量进行巡回采样,再将采集的数据进行工程量转换;3. 能通过按键切换所选通道;4. 数据在LED显示器上显示,并能够通过键盘操作切换显示不同通道的采样值。1、方案此方案以单片机STC89C52为核心,对四路模拟信号进行循环采样输出。首先,信号

3、通过一个A/D转换模块把模拟信号转换成数据信号,在通过STC89C52和8255的控制,由按键控制选择一路信号在LED数码管上显示。4路模拟信号采集系统原理框图如图1所示:图1 系统方框图2、单元电路设计2.1 A/D转换模块A/D转换模块我们采用的ADC0809芯片,设有一路信号巧(0V5V)从ADC0809的INo通道输入,地址输人端A、B、C均接地,这时1No的通道地址为OOH。0809是8位ADC,对0V,5V的信号,其转换精度为20mV级。P27和、共同组成ADC0809的口地址和启动转换控制信号。当P27=0时,指定ADC0809的口地址为0EFFFH;当STC89C52的来到时,

4、0809的ALE在脉冲的上升沿锁存地址信号,START在脉冲的高电平启动A/D转换。在转换结束后EOC输出高电平,转换后的数字量锁存在0809内部的三态输出锁存器中。当输出允许信号为高电平时,转换结果经数据线D7D0输出2。如图2所示:图2 A/D0809芯片2.2 单片机这个设计的核心我们采用的是STC89C52芯片,P0口作为数据总线和地址总线,首先,当模拟信号输入时,P0口作为数据总线对数据进行输入,其后在把数据传给8255时此时P0口作为一个地址总线。P2作为ADC0809的控制端口。P1作为流水灯控制口1。如图3 所示。图3主控芯片2.3 显示模块它主要由8255和LED数码管组成,

5、通过8255上的PA口和PB口控制数码管,数码管由8段组成,分别为A,B,C,D,E,F,G,H,PA口作为一个位选信号,而PB口作为一个段选信号。当PA口为低电平时就选择这一位。如图4所示:图4 LED数码管2.4 控制模块设计利用STC89C52的外部中断0对信号进行切换,INTO为一个下降沿触发。每按一次键,就产生一次中断,因为此时P10,P11口连接ADC0809的A,B口,按键一次对P1口进行加1赋值,所以我们可以通过观测二极管的亮灭判断我们选择哪路信号。如图5所示:图5 控制和复位3、系统软件设计3.1 系统工作流程程序开始运行时,我们先将它进行初始化,当数据输入后对4个通道的模拟

6、量进行巡回采样,再将采集的数据进行工程量转换,在数码管管上显示出来,通过外部的中断实现信号的切换。图6系统工作流程4、总原理图U1为单片机STC89C52,U2为芯片8255,复位按键与开始按键分别接到单片机的P3.2、P3.3脚,单片机的P0.0-P0.7脚接8255芯片D0-D7脚,8255的PA0-PA5分别接6个数码管的位选 ,PB0接数码管引脚11, PB1接数码管引脚10, PB2接数码管引脚7, PB3接数码管引脚1, PB4接数码管引脚2, PB5接数码管引脚3,PB6接数码管引脚4, PB7接数码管引脚5。P2.2 与ADC0809的ALE连接,P2.3连接OE,P3.4连接

7、EOC3。如图7所示:图7 总原理图5、调试结果及分析本设计主要是在编写的程序编译通过后4,用下载软件将编写的程序下载到实验开发板上,验证结果是否满足设计要求。主要通过按键部分进行控制,通过数码管和LED灯部分进行观察。当把程序下载到开发板以后,接通电源,单片机开始工作,输入模拟信号,此时我们可以看到在数码管上数据进行循环采集,当我们按下外部中断0的时候停止对数据的采集,数码管显示当前的数据。再次按下后,则对第2路信号进行循环采集。依此可以对4路数据进行采集。7、详细仪器清单表1 元器件及仪器设备明细表名称型号数量单片机STC89C521块扩展芯片82551块A/D转换芯片ADC08091块数

8、码管LED数码管2个电阻1K若干三极管9015若干导线若干电池1.5V3个参考文献1 孙育才.新型AT89S52系列单片机及其应用 .北京:清华大学出版社,20052 张鑫 .单片机原理及应用.北京:电子工业出版社,20053 万福君 潘松峰.单片微机原理系统设计与应用. 合肥:中国科学技术大学出版社,20014 陈家骏 郑滔 程序设计教程 北京:机械工业出版社,20045 余文俊 .8051 C语言实习 北京:中国水利水电出版社,2002.附录#include #include #define a8255_PA XBYTE0xD9FF /*PA口地址*/#define a8255_PB XB

9、YTE0xDAFF /*PB口地址*/#define a8255_PC XBYTE0xDDFF /*PC口地址*/#define a8255_CON XBYTE0xDFFF /*控制字地址5*/#define uchar unsigned charsbit ST = P2 7;sbit EOC = P3 4;sbit OE = P2 3;sbit CLK = P2 0;void display(void) ;unsigned char x0,x1, x2, x3; unsigned char choice =0x00;unsigned char dispdata10 = 0xA0, /*0*/

10、 0xBB, /*1*/ 0x62, /*2*/ 0x2A, /*3*/ 0x39, /*4*/ 0x2C, /*5*/ 0x24, /*6*/ 0xBA, /*7*/ 0x20, /*8*/ 0x28 /*9*/;unsigned char const dis_table16= 0xA0, /*0*/ 0xBB, /*1*/ 0x62, /*2*/ 0x2A, /*3 */ 0x39, /*4*/ 0x2C, /*5 */ 0x24, /*6*/ 0xBA, /*7*/ 0x20, /*8*/ 0x28, /*9 */ 0x30, /*A*/ 0x25, /*B*/ 0xE4, /*C*/

11、0x23, /*D */ 0x64, /*E*/ 0x74, /*F */ ; void delay(unsigned int num) unsigned int i = 0; for(i = 0; inum;i+); void display_F(unsigned char place,unsigned char num) unsigned char i = 0,display_num = 0; unsigned int test = 0; a8255_CON=0x89; a8255_PB=0xff; a8255_PA=0xff; delay(100); test =(0x01(place-

12、1); a8255_PA=test; display_num = dis_tablenum; a8255_PB=display_num; delay(100); /0x28,0xeb,0x32,0xa2,0xe1,0xa4,0x24,0xea,0x20,0xa0;uchar AD_DATA; /保存 void delay1(unsigned int i) while(i-); /*系统初始化*/void init() EA = 1; /开总中断 TMOD = 0x02; /设定定时器T0工作方式 TH0 = (65535-65485)/256; /利用T0中断产生CLK信号 TL0 = (65

13、535-65485)%256; TR0 = 1; /启动定时器T0 ET0 = 1; ST = 0; OE = 0; IT0=1; EX0=1; /*T0中断外断0服务程序*/void t0(void)interrupt 1 using 0 CLK = CLK; int0() interrupt 0 inturpt+; if(intrupt-1)=0xff ) intrupt=0xfc; flag=1; delay(100); else/*AD转换函数*/void AD() ST = 0; P1=choice; /选择通道 delay(2); ST = 1; /启动AD转换 delay(2);

14、 ST = 0; while (0 = EOC) / display(); /delay(20); OE = 1; AD_DATA = P0; OE = 0; /*主函数*/void main() unsigned int cout=0; float c; unsigned int b=0; init(); while (1) P1=choice; cout+;if(cout=100) cout=0; AD(); c = (float)AD_DATA ; c = c*5000.0/256.0; b =(unsigned int) c ; x0 = b % 10; x1 = b /10 % 10; x2 = b / 100 % 10; x3 = b / 1000; display_F(3,x3); display_F(4,x2); display_F(5,x1); display_F(6,x0);

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

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