如何用单片机实现对传感器信号的非线性补偿

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

aa317wk272010-03-17 13:44:03

(一)设计思路

1.测量方法:

多周期同步测量法( 倒数计数器法)从根本上消除了±1误差,实现了等精度测量

2.实现技术的选择:

硬件实现法(可选的器件有通用的SSI/MSI/LSI集成电路、专用集成电路、可编程逻辑器件——如isPLD器件等);

软件实现法(可选的平台有PC机、单片机、DSP器件等)

将这两种结合来实现设计要求。

3.信号发生器的选择(频率范围900—1300.0(KHz))

SG-4162AD高频信号发生器/计频器:频率范围:100KHZ-150MHZ◆分6档三次谐波到4 50MHZ±5%◆输出电压:100MVRMS◆低频输出:1KHZ2VRMS3.大概的系统设计原理框图:(二)子系统设计

1.输入通道的设计。输入通道是由前置放大器和整形器组成的,所以要对前置放大器的增益和带宽指标进行估计。为了能准确测量信号,将输入信号经过一个放大整形电路。其具体实施方案为:将输入信号经过LM358运放放大,再通过74LS132整形,此时的信号还不能直接送入单片机,这是因为在硬件上CPU对INT0和INT1引脚的信号不能控制,解决这个问题要通过硬件,再配合软件来解决。

2.预置闸门时间发生电路设计。闸门时间的确定,可以先由一个555定时器产生一个脉冲信号,将555产生的脉冲信号送入到74LS90十进制计数器当中,由于74LS90具有二-五进制混合计数的功能,所以可以用它来实现五进制计数,将74LS90的输出接到3—8线译码器74LS138的输入端,再将译码器的输出端接上五个发光二极管,这样就可以实现硬件上的闸门时间控制。但是考虑到硬件实现上的复杂性,可以通过软件上来实现,就是将五个发光二极管直接接到单片机的P1口由软件上来实现,通过按键来改变它的闸门时间。

3.数码显示电路的设计。该部分电路是由单向八位移位寄存器74LS164和数码管组成的。同时还要显示频率和周期的单位,所以还需再级联一块74LS164,在74LS164的输出端接六个单位指示灯,分别表示周期频率的三个不同的单位数量级,即周期单位s,ms,μs和频率单位Hz,KHz及MHz。移位寄存器的时钟信号是由单片机的串行输出口TXD脚控

1.单片机系统的选择:

单片机子系统(根据下列要求选用AT89C51)

①由+5V电源供电,I/O口与TTL电平兼容,并有足够数目的I/O口;②要有丰富的四则算术运算和逻辑运算指令,指令执行速度要快;③片内除RAM外还要有EPROM;④至少有两个16位的定时器/计数器;⑤有外部中断输入引脚;⑥具有串行通信口;⑦价格要低廉其中输入通道组成框图如下:被测信号边沿选择电路:被测信号边沿选择电路的工作波形图:三、软件设计

(一)软件主程序流程图(见图)

(二)子程序的设计

1.键盘中断服务子程序。因该频率计的测量项目较多,所以在系统初始化时,将默认测量项目设置为测频,且预置闸门时间设置为1ms。具体做法就是在主程序的系统初始化部分,将测频选择键的键值以及预置闸门时间设置代码写入单片机RAM单元中去。这样开机后即使用户没有选择任何测量项目键,也能进行频率测量。

2.软件计数器子程序。该频率计所需要的不同闸门预置时间信号是由单片机产生的。由于预置闸门时间的范围很宽,最大值为10s,最小值为1ms,仅用单片机中的定时器硬件是不能实现的,需采用软硬件相结合的方法来实现。其具体实现方案为将C/T0定时器/计数器设置为由引脚高电平启动的方式1定时器T0,初始化将其初值设为0.该计数器的启动过程如下:主程序首先将单片机P1.6脚置为高电平(逻辑1)发出预置闸门信号,该信号经同步电路而产生高电平的同步门信号,从而使单片机引脚变为高电平,C/T0定时器中的计数器就被启动开始计数。

3.数据处理子程序。当事件计数器和时间计数器的计数值NA,NB被读到单片机中后,通过调用数据处理子程序,根据过去读入并保存在单片机RAM单元中的测量项目的键值,预置闸门值代码,判断出所要测量的参数项目,对计数值NA,NB进行相应的处理,求出所测参数的值和单位,最后应将参数值转换为十进制数,再转换为驱动LED数码显示器的段码(每位包含5个数字段码和1个小数点)以及驱动三个单位符号指示灯之一的位码,作为显示子程序的输入数据,存放在9个RAM单元组成的显示缓冲区中。对计数值NA,NB的处理运算要用到除法和乘法,为了提高运算精度,应当采用浮点运算。显然,采用C 语言来编写这些运算程序可大大提高编程效率。计数式测频的原理方框图:四、结论

本系统采用大规模集成电路设计,用C51语言编程,实现了对不同波形、不同频率信号的测量。

相关文档
最新文档