请问如何用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)
![](http://img.wesiedu.com/upload/e/29/e2981c52e05103e2c9bc3b035f49c4f1.jpg)
基本要求:输入电压为0~5V可调电压,要求输出0~100Hz的方波信号,且呈线性关系(从0.1V起,低于0.1V不生成方波,输出端置于高电平).
我的思路这样的:5V可调电压作为ADC0832模数转换器的输入信号,然后用51单片机采集ADC0832的输出信号,转换为电压的数值,51单片机输出方波,方波的每个时间周期由电压的数值来决定,这样就实现了输出的方波信号频率可调.可是,这个方波不连续,因为每次51单片机要中断输出方波去采集和转换ADC0832的信号,这需要一定时间,因此这段时间里输出端始终置于高电平.请问如何改进才能输出符合题意的方波信号呢?(参考程序见我的主页http://hi.baidu.com/warlab/item/a0cc8a7b24f75c3dd7a89c97)
![](http://img.wesiedu.com/upload/e/29/e2981c52e05103e2c9bc3b035f49c4f1.jpg)
首先主程序判断有无大于0.1V电压,同时计算好定时中断周期,把用于产生脉冲的定时器中断开启
方波周期数据由主程序采集AD信号后计算直接赋值给一个变量比如TLL0,THH0,
然后定时器中断后重新加载计数值就
TL0=TLL0;
TH0=THH0;
然后在定时器中断中顺便把输出频率的IO电平修改了
主程序中只是实时的扫描AD转换完成就可以了.
再问: 产生方波与采集计算AD转换器数据不能同时进行的
再答: 怎么不能,你主程序里采集ADC,定时中断去产生方波。
方波周期数据由主程序采集AD信号后计算直接赋值给一个变量比如TLL0,THH0,
然后定时器中断后重新加载计数值就
TL0=TLL0;
TH0=THH0;
然后在定时器中断中顺便把输出频率的IO电平修改了
主程序中只是实时的扫描AD转换完成就可以了.
再问: 产生方波与采集计算AD转换器数据不能同时进行的
再答: 怎么不能,你主程序里采集ADC,定时中断去产生方波。
请问如何用51单片机根据模数转换器输入的数字信号生成连续的频率可调的方波信号?
如何用555定时器产生频率1KHZ、占空比可调的方波
51系列单片机晶振频率12MHz,要从p2.0引脚输出一个连续的10Hz方波信号,试编写相应的程序.
如何用matlab生成一个频率渐变的正弦信号
输入一固定频率的方波信号,设计电路测出其基波信号的幅度
采样信号的最高频率-数字信号处理
如何用单片机区分正弦信号和方波
如何不用单片机,搭建一个频率5~1000HZ可调,占空比为50%的方波发生电路,频率可用电位器调节?
设计一个正弦波-方波-三角波发生电路正弦波-方波-三角波的频率在100HZ~20KHZ范围内连续可调
51单片机程序1、测量方波脉冲的频率2、在单片机数码管上显示出频率
关于51单片机测方波信号占空比的问题
利用89C51单片机设计多功能低频函数信号发生器,能产生方波、正弦波、三角波等信号波形,信号的频率、幅度可变.