模块推荐:https://item.taobao.com/item.htm?ft=t&id=671629736762
33---数据采集实验:
硬件需求:PC机,PCM模块一个,microUSB线,APS6404L芯片一个,AD7477芯片
一个;
软件需求:PCM编译软件,电脑端串口调试助手;
供电方式:USB线接PC机供电;
连接电路:图43
图43 数据采集实验电路
本实验演示如何通过串口指令来启动数据采集,并保存到内存中。采集完成后,又
通过串口指令读取采集的数据,并通过串口输出显示出来。
实验中使用AD7477采集电压信号(10位有效数字量)并保存到APS6404L存储器
中,存储地址从0开始,每个数据占用2字节,所以每存储一次,地址增加2。读取数据时
也一样,从地址0开始,每次读2个字节,地址值每次增加2.
串口指令格式我们采用如表1所示的格式:
数据采集指令使用5字节格式,第1字节固定为1,第2,3字节为采样次数,低字节在
前。第4,5字节为采样频率,也是低字节在前。表1中启动采集行,第2,3字节值分别为
64,00,即16进制的0064,10进制的值就是100,说明采样次数为100次。第4,5字节值分
别为E8,03,即16进制的03E8, 10进制的值就是1000,说明采样频率为1000Hz;
数据读取指令使用3字节格式,第1字节固定为2,第2,3字节为要读取的数据量,低
字节在前。表1中读取数据行,第2,3字节值分别为64,00,即16进制的0064,10进制的
值就是100,说明要读取100个采样的数据。
含义 |
字节顺序 |
||||
第1字节 |
第2字节 |
第3字节 |
第4字节 |
第5字节 |
|
功能(16进制) |
采样次数低字节(16进制) |
采样次数高字节(16进制) |
采样频率低字节(16进制) |
采样频率高字节(16进制) |
|
启动采集 |
01 |
64 |
00 |
E8 |
03 |
读取数据 |
02 |
64 |
00 |
---- |
---- |
表1 数据采集串口指令格式
如果要采集数据10000次,采集频率5000Hz,串口发送指令:01 10 27 88 13, 其中
第2,3字节表示采样次数为16进制的2710,即10进制的10000;第4,5字节表示采样频
率,值为16进制的1388,即10进制的5000;
如果要读取3000个数据,串口发送指令:02 B8 0B, 这样读取的数据会通过串口输
出到上位机显示。
实验程序如下:
//写内存子程序,D0为要写入的内存地址,D1为要写入的字节数,写入的值存放在D10
//起始的寄存器中
1 subpro writeram
2 mov 0 d5 //D5=0,字节地址清零
3 mov d0 d2 //D2=D0, D2为要写入的内存地址