作业帮 > 综合 > 作业

请问如何用51单片机根据模数转换器输入的数字信号生成连续的频率可调的方波信号?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/16 13:01:46
请问如何用51单片机根据模数转换器输入的数字信号生成连续的频率可调的方波信号?
基本要求:输入电压为0~5V可调电压,要求输出0~100Hz的方波信号,且呈线性关系(从0.1V起,低于0.1V不生成方波,输出端置于高电平).
我的思路这样的:5V可调电压作为ADC0832模数转换器的输入信号,然后用51单片机采集ADC0832的输出信号,转换为电压的数值,51单片机输出方波,方波的每个时间周期由电压的数值来决定,这样就实现了输出的方波信号频率可调.可是,这个方波不连续,因为每次51单片机要中断输出方波去采集和转换ADC0832的信号,这需要一定时间,因此这段时间里输出端始终置于高电平.请问如何改进才能输出符合题意的方波信号呢?(参考程序见我的主页http://hi.baidu.com/warlab/item/a0cc8a7b24f75c3dd7a89c97)
首先主程序判断有无大于0.1V电压,同时计算好定时中断周期,把用于产生脉冲的定时器中断开启
方波周期数据由主程序采集AD信号后计算直接赋值给一个变量比如TLL0,THH0,
然后定时器中断后重新加载计数值就
TL0=TLL0;
TH0=THH0;
然后在定时器中断中顺便把输出频率的IO电平修改了
主程序中只是实时的扫描AD转换完成就可以了.
再问: 产生方波与采集计算AD转换器数据不能同时进行的
再答: 怎么不能,你主程序里采集ADC,定时中断去产生方波。