资源描述:
《高精度高稳定度电流及方波发生器的研制》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2005年10月ExperimentScience&Technology增刊*高精度高稳定度电流及方波发生器的研制ManufacturingtheCurrentandSignalGeneratorwithHighPrecisionandHighStability**俞眉孙(电子科技大学物理电子学院成都610054)摘要:介绍一种基于单片机的高精度电流及方波信号发生器,对其工作原理、硬件设计、软件设计及性能作基本的阐述。该仪器主要用于工业自动控制系统的辅助测试。关键词:单片机;传感器;信号频率;定时器中图分类号:TH7文献标识码:B
2、文章编号:1672-4550(2005)03-0184-03码显示,每个数码管由一个串入并出集成块74LS164驱动,如图2所示。1概论在科研及生产中特别是在自动测控的工作现场,有时需要一种能产生与被测信号相同的信号的仪器,用以事先检查测控系统的工作状态,以防止并机后出现事故。出于此目的,本文利用单片机研制了一种产生4~20mA传感器信号和1~100Hz信号的信号发生器,它实际上一部分是个带显示的图1单片机系统框图传感器模拟器,另一部分是个带显示的精密信号发生器,其特点如下:(1)数码管直接显示输出的电流和信号频率。(2)精度高,
3、即仪器显示出来的电流和频率与实际信号的高度一致,例如信号频率在100Hz以下时误差小于百分之一Hz,这是传统的信号发生器作不到的。(3)线性好、操作方便,可方便地键控设置或改变输出信号。(4)稳定度好。(5)外形小巧,携带方便。2系统设计图2显示驱动原理图采用单片机系统是研制此类高标准信号源的最这样设计是为了尽量使用CPU现有的出口,佳选择,系统采用MS51系列的89C52作为控制避免作系统扩展,送显部分只占用了CPU的两个CPU,晶振用6MHz。口,一个作为数据口,一个作为打入脉冲口。不足图1为单片机系统的基本框图。系统硬件大致
4、之处是软件的编写要麻烦些,送显也要占用CPU可分为三部分:CPU、按键及显示电路和FV变换一定的时间。电路。显示部分采用的是串入并出方式,有六位数直流电流输出也就是一个D/A转换过程,由*[收稿日期]2005-05-31**[作者简介]俞眉孙(1956)),男,硕士,讲师,研究方向:工业测量控制智能化。)184)2005年10月实验科学与技术增刊于系统输出对速度要求不高,所以本系统采用V/F转换器LM331,它进行F/V转换,由CPU根据情况产生适当频率的脉冲信号送入LM331,再由LM331进行F/V变换输出适当大小的电流。在电
5、路装配调试时调整电路参数,使其每增加5Hz的输出频率D/A模块就增加输出1mA的电流,D/A模块也由LM331组成的F/V变换器再将这60Hz的方波变换成12mA的输出电流。采用这种方法,外围电路简单、成本低廉并且也有比较好的效果。还得另在软件中想办法。如果用定时工作方式1,3软件设计则在定时中断中必须将TH1,TL1重新置初值,这系统软件用汇编语言编写,主要有以下模块:将占用几个机器周期的时间,约8ns。这额外的时间将对输出信号的精度有影响,所以为了保证输出(1)初试化部分,包括开机清所有的工作寄存器,设定定时器工作方式,确定初
6、始频率等;(2)按信号的精度,最好采用16位自动加载工作方式。键扫描部分,用于扫描按键及作出相应的处理,如输出信号的频率为:f=1/T。切换显示,增加或减少输出参数等;(3)计算输出可见,输出信号的频率是由计数初值来决定,每进入一次定时中断,CPU自动将此值放入TH1,电流所需的脉冲频率及直接输出方波的计算部分,包括查表程序,计算程序等;(4)显示子程序,用TL1中作为计数初值。再进行下一个周期的循环,于将信号频率的各位数字转化为字型代码,再转化当TH1、TL1溢出又进入下一个中断,每进入中断时软件将输出口状态翻转一次,就得到了对
7、应频率为串行脉冲打入显示模块。(5)定时中断子程序,的方波。如要改变输出信号的频率,就相应改变计用来产生输出信号。下面着重介绍一下如何通过软件控制定时器来数初值。例如,使用者用按键改变输出信号的频产生控制脉冲的输出的。单片机内部按晶振的频率率,此时CPU就由显示出来的新的频率由上式反算出对应的计数初值装入TH1、TL1。输出口就输工作,内部定时器也以晶振为基础来分频工作,而晶振的频率是严格而稳定的,误差可以忽略不计。出对应频率的信号。计算方法有两种,一种方式为这就为产生稳定信号打下了基础。上述方式,每改变一个数就计算一次;另一种方
8、式按硬件的设计,电流输出和方波输出对CPU为由编程者事先将各频率的计数初值计算好(如1~400Hz)放入程序的一个表格中,频率改变时来说实际上都是方波输出,只不过方波是按频率要求直接输出,而电流输出是按电流的大小(以mACPU就由频率数在表中查出对