数据采集综述.docx
- 文档编号:16813763
- 上传时间:2023-07-17
- 格式:DOCX
- 页数:21
- 大小:343.98KB
数据采集综述.docx
《数据采集综述.docx》由会员分享,可在线阅读,更多相关《数据采集综述.docx(21页珍藏版)》请在冰点文库上搜索。
数据采集综述
综合实验一 PWM波形的设计及应用
设计要求:
1.用ADC0809进行A/D转换,采集到数字信号D
2.在P1.1上产生周期T为1kHz的PWM波形,其中脉冲宽度Tao由数字信号D决定。
(如当采集到的数字信号为80H时,占空比为50%,依此类推)
1.系统设计与理论分析:
模拟信号经ADC0809转换成数字信号D,通过调节输入信号量的大小来控制输出PWM波形的脉冲宽度。
本实验通过模拟信号发生器产生模拟信号,将此信号输入到ADC0809模块的09IN0接口,经ADC0809将输入的模拟信号转换成数字信号D,获得数字信号与计数值T进行比较,当数字信号小于T,则在P1.1引脚输出高电平1;反之输出低电平0。
通过调节模拟量电位器调节模拟量大小,从而控制转换后的数字量大小,达到控制脉冲宽度Tao的大小的作用。
增大或减小输入的模拟信号量,通过运行C程序,在8155键显区数码管上显示也不断加大或减小数字量。
2.硬件设计
2.1根据系统设计与理论分析,这个过程将采用如下框图:
2.2模拟信号发生器
电位器电路用于产生可变的模拟量。
旋转电位器,可调节输出电压值的大小。
2.3A/D模数转换模块
主要是将输入的模拟信号转换成数字信号。
本实验中采用的转换器为ADC0809,它是一个8位逐次逼近型A/D转换器,可以对8个模拟量进行转换,转换时间为100μS。
其工作过程如下:
首先由地址锁存信号ALE的上升沿将引脚ADDA、ADDB和ADDC上的信号锁存到地址寄存器内,用以选择模拟量输入通道;START信号的下降沿启动A/D转换器开始工作;当转换结束时,ADC0809使EOC引脚由低电平变成高电平,程序可以通过查询的方式读取转换结果,也可以通过中断方式读取结果。
本实验程序通过查询的方式读取转换结果。
2.4数码管显示模块
实验箱提供了8段码数码管LED显示电路,只需按地址输出相应数据,就可以实现对显示器的控制。
显示共有6位,采用动态方式显示。
8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。
6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位显示出数据。
2.5示波器
示波器的输入端接到P1.1引脚,可观察在P1.1上产生周期为T的PWM波形。
3.软件设计
3.1编写程序,使用查询的方式读取转换结果
4.系统测试
通过模拟信号发生器,旋转其电位器,调节输入电压值的大小,经A/D转化成数字电压,从而达到控制脉宽的大小,当模拟量较大时,输出的数字量也比较大,示波器显示屏上输出的脉宽也比较宽;当模拟量比较小时,输出的数字量也比较小,其脉冲宽度也比较小,其在示波器显示出的波形分别如下(a)(b):
(a)
(b)
实验原理图:
A/D转换模块
EOC
单片机模块
实验程序:
#include
#include
#defineLEDLen3
#definemode0x03;
#defineCAddrXBYTE[0xe100]/*控制字地址*/
#defineOUTBITXBYTE[0xe101]/*位控制口*/
#defineCLK164XBYTE[0xe102]/*段控制口(接164时钟位)*/
#defineDAT164XBYTE[0xe102]/*段控制口(接164数据位)*/
#defineINXBYTE[0xe103]/*键盘读入口*/
#defineCS0809XBYTE[0xa000]
sbitP10=P1^0;
sbitP11=P1^1;
unsignedcharLEDBuf[LEDLen];/*显示缓冲*/
codeunsignedcharLEDMAP[]={/*八段管显示码*/
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
};
unsignedcharTao;
unsignedcharT;
voidDelay(unsignedcharCNT)
{
unsignedchari;
while(CNT--!
=0)
for(i=100;i!
=0;i--);
}
voidDisplayLED()
{
unsignedchari,j;
unsignedcharPos;
unsignedcharLED;
Pos=0x20;/*从左边开始显示*/
for(i=0;i OUTBIT=0;/*关所有八段管*/ LED=LEDBuf[i]; for(j=0;j<8;j++){/*送164*/ if(LED&0x80)DAT164=1;elseDAT164=0; CLK164=CLK164|0x02; CLK164=CLK164&0xfd; LED<<=1; } OUTBIT=Pos;/*显示一位八段管*/ Delay (1); Pos>>=1;/*显示下一位*/ } } unsignedcharRead0809() { CS0809=0;/*起动A/D*/ while(P10==0); return(CS0809);/*读入结果*/ } voidDisplayTao() { unsignedchari; i=Tao%100; LEDBuf[0]=LEDMAP[Tao/100]; LEDBuf[1]=LEDMAP[i/10]; LEDBuf[2]=LEDMAP[i%10]; DisplayLED(); } voidInitTimer() { TMOD=0x02; TH0=0xFC; TL0=0xFC; ET0=1; EA=1; TR0=1; } voidT0_ISR()interrupt1 { T++; if(Tao P11=1; else P11=0; } voidmain() { CAddr=mode; InitTimer(); while (1) { Tao=Read0809(); DisplayTao(); } } 综合实验二 电动车的仿真设计 姓名: 黄凤英学号: 110700524年级: 07级专业: 电子科学与技术 在熟悉超想-3000TC系统基础上,完成一电动自行车设计, 设计要求: 1.用DAC0832控制直流电机转动前进,转速可调;用两位数码管显示速度,用四位数码管显示里程。 (设每转一圈前进1m) 1.系统设计与理论分析 直流电机的转速与施加于电机两端的电压大小有关。 在模拟信号发生器获得的模拟信号,并通过电位器调节大小,输入到ADC0809模块转换成数字信号D,在把数字信号输入到DAC0809模块转换成模拟量,本实验用DAC0832控制输出到直流电机的电压,控制DAC0832的模拟输出信号量来控制电机的转速。 当电机转速小于设定值时增大D/A输出电压,大于设定值时则减小D/A输出电压,从而使电机以某一速度恒速旋转。 增大或减小输入的模拟信号量,通过运行C程序,在8155键显区数码管上显示也不断加大或减小的数字量。 2.硬件设计 2.1根据系统设计与理论分析,这个过程将采用如下框图: 2.2模拟信号发生器 电位器电路用于产生可变的模拟量。 旋转电位器,可调节电压值的大小。 2.3A/D模数转换模块 主要是将输入的模拟信号转换成数字信号。 本实验中采用的转换器为ADC0809,它是一个8位逐次逼近型A/D转换器,可以对8个模拟量进行转换,转换时间为100μS。 其工作过程如下: 首先由地址锁存信号ALE的上升沿将引脚ADDA、ADDB和ADDC上的信号锁存到地址寄存器内,用以选择模拟量输入通道;START信号的下降沿启动A/D转换器开始工作;当转换结束时,AD0809使EOC引脚由低电平变成高电平,程序可以通过查询的方式读取转换结果,也可以通过中断方式读取结果。 CLOCK为转换时钟输入端,频率为100KHz-1.2MHz。 2.4D/A数模转换模块 D/A转换器的功能主要是将输入的数字量转换成模拟量输出。 本实验中采用的转换器为DAC0832,该芯片为电流输出型8位D/A转换器,输入设有两级缓冲锁存器,因此可同时输出多路模拟量。 2.5直流电机 直流电机的转速与施加于电机两端的电压大小有关 直流电机 数码管显示模块 实验箱提供了8段码数码管LED显示电路,只需按地址输出相应数据,就可以实现对显示器的控制。 显示共有6位,采用动态方式显示。 8段数码管是由8155的PB0、PB1经74LS164“串转并”后输出得到。 6位位码由8155的PA0口输出,经uA2003反向驱动后,选择相应显示位显示出数据。 3.软件设计 3.1 4.系统测试 调节模拟信号发生器模块上的电位器,使模拟电压从小变大,输入到A/D模块,其输出值再次输入到D/A模块,控制直流电机转动速度从小变大,相应显示速度的两位数码管显示的速度也从小变大;当模拟电压从大变小时,数码管显示的速度也从大变小。 而显示里程四位数码管不断增加。 电路图 A/D转换模块 D/A转换模块 直流电机模块 实验程序: #include #include #defineLEDLen6 #definemode0x03; #defineC_8155XBYTE[0xe100]/*控制字地址*/ #defineOUTBITXBYTE[0xe101]/*位控制口*/ #defineCLK164XBYTE[0xe102]/*段控制口(接164时钟位)*/ #defineDAT164XBYTE[0xe102]/*段控制口(接164数据位)*/ #defineINXBYTE[0xe103]/*键盘读入口*/ #defineCS0809XBYTE[0xa000] #defineCS0832XBYTE[0xb000] sbitP10=P1^0; sbitP11=P1^1; bitADC_START; bitCACULATE_START; unsignedcharspeed; unsignedintmile; unsignedcharsecond; unsignedcharpressure; unsignedcharroll; unsignedcharLEDBuf[LEDLen];/*显示缓冲*/ codeunsignedcharLEDMAP[]={/*八段管显示码*/ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71 }; voidDelay(unsignedcharCNT) { unsignedchari; while(CNT--! =0) for(i=100;i! =0;i--); } voidDisplayLED() { unsignedchari,j; unsignedcharPos; unsignedcharLED; Pos=0x20;/*从左边开始显示*/ for(i=0;i OUTBIT=0;/*关所有八段管*/ LED=LEDBuf[i]; for(j=0;j<8;j++){/*送164*/ if(LED&0x80)DAT164=1;elseDAT164=0; CLK164=CLK164|0x02; CLK164=CLK164&0xfd; LED<<=1; } OUTBIT=Pos;/*显示一位八段管*/ Delay (1); Pos>>=1;/*显示下一位*/ } } voidGetADCData(void) { CS0809=0;/*起动A/D*/ while(P10==0) ; pressure=CS0809;/*读入结果*/ } voidControlSpeed(void) { CS0832=pressure; } voidShowInfo(void) { unsignedintl; l=mile/10; LEDBuf[2]=LEDMAP[l%10]; l=l/10; LEDBuf[1]=LEDMAP[l%10]|0x80; LEDBuf[0]=LEDMAP[l/10]; LEDBuf[3]=0x00; LEDBuf[4]=LEDMAP[speed/10]; LEDBuf[5]=LEDMAP[speed%10]; DisplayLED(); } voidInitSystem() { C_8155=mode;//初始化8155 ADC_START=0; CACULATE_START=0; mile=0; speed=0; roll=0; TMOD=0x01; TH0=0x3C; TL0=0xB0;//T0每隔50ms发生一次中断,采样频率为20Hz second=20; ET0=1; EX0=1; IT0=1; EA=1; TR0=1; } voidINT0_ISR()interrupt0 { roll++; } voidT0_ISR()interrupt1 { ADC_START=1; second--; if(second==0) { CACULATE_START=1; second=20; } TH0=0x3C; TL0=0xB0; } voidCaculate(void) { speed=roll; mile+=roll; roll=0; } voidmain() { InitSystem(); while (1) { ShowInfo(); if(ADC_START) { ADC_START=0; GetADCData(); ControlSpeed(); } if(CACULATE_START) { CACULATE_START=0; Caculate(); } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据 采集 综述