:+-+- 一般的rc振荡电路生成的正弦波频率靠改变r、c值来调节,不能连续大范围调节。所以,设计中采用数字方法合成模拟波形,其原理见图6。图6中8254为软件可编程计数器。其包含3个独立的16位计数器,计数最高频率可达8mhz,设计中输入3mhz的时钟,将2个计数器串连使用,这样可以增加频率控制范围。8254产生的方波信号作为后面并行计数器的计数脉冲输入。并行计数器由2片74ls161组成8位二进制循环计数器。74ls161计数到最大值时会自动清零,重新开始计数,其输出可作为e2prom 2817a的地址信号(即每个正弦周期内采样点数为256个)。2817a的数据读取时间为150ns。设计电路时将它的片选和读信号均设为有效,以提高数据读取速度。d/a转换采用dac-08电流输出型d/a转换器。电路输出时间85ns,放大器采用高速高精度运放op-37,同理,d/a转换器的片选和转换开始信号总为有效,其输出跟随输入变化,提高转换速度。实验结果表明,此信号发生器完全可以生成10khz以内可调频的正弦波。而且使用可编程计数器8254,输出正弦波的频率可以用软件方法调节。如果想输出非正弦波形,只要修
程序,其周期必须小于1.67 ms(交流电网的1个周期是20 ms,除以12就是l_67 ms),这就要求实时记录的时间在1ms以下甚至更短(考虑到程序的执行时间)。经查阅资料发现,目前很多eeprom达不到这个要求[1],即使时间最短的at89s8252单片机片内。eep-rom的写周期也是2.5 ms。本文通过对eeprom的巧妙应用,实现了整流器在线记录数据的功能。 1 寻找符合要求的单片机 设备使用的是atmel公司的at89c52(40dip封装)单片机和eeprom芯片2817a。要想在不改变原设备电路板的情况下完成要求的功能,就只能在兼容的mcs-51系列单片机中想办法。at89s8252片内含有2 kb的eeprom,经编程测试发现,它虽然能实时记录数据并且断电不丢失,但是在向片内eeprom中记录1个数据时,能引起输出电压和电流的波动,不能满足实际运行的需要。其原因是at89s8252单片机片内eeprom的写周期为2.5 ms,超过了1.67 ms的程序的执行周期,从而影响了程序的正常运行。所以执行周期是解决问题的关键。 由参考文献[2-3]知:stc89
+ -一般的rc振荡电路生成的正弦波频率靠改变r、c值来调节,不能连续大范围调节。所以,设计中采用数字方法合成模拟波形,其原理见图6。图6中8254为软件可编程计数器。其包含3个独立的16位计数器,计数最高频率可达8mhz,设计中输入3mhz的时钟,将2个计数器串连使用,这样可以增加频率控制范围。8254产生的方波信号作为后面并行计数器的计数脉冲输入。并行计数器由2片74ls161组成8位二进制循环计数器。74ls161计数到最大值时会自动清零,重新开始计数,其输出可作为e2prom 2817a的地址信号(即每个正弦周期内采样点数为256个)。2817a的数据读取时间为150ns。设计电路时将它的片选和读信号均设为有效,以提高数据读取速度。d/a转换采用dac-08电流输出型d/a转换器。电路输出时间85ns,放大器采用高速高精度运放op-37,同理,d/a转换器的片选和转换开始信号总为有效,其输出跟随输入变化,提高转换速度。实验结果表明,此信号发生器完全可以生成10khz以内可调频的正弦波。而且使用可编程计数器8254,输出正弦波的频率可以用软件方法调节。如果想输出非正弦波形,只要修