大众信息网

如何利用单片机产生500HZ的信号

关注:56  答案:3  手机版
解决时间 2021-01-16 12:12
如何利用单片机产生500HZ的信号
最佳答案
使用单片机的定时器可以产生500Hz的信号

以51单片机为例,程序如下:
#include<reg51.h>
sbit Wave=P1^6;
unsigned char k=0;
void main()
{
Wave=0;
EA=1;//开总中断
TMOD=0x01;//设置定时器0为工作方式1
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
ET0=1;//开定时器0中断
TR0=1;//启动定时器0
}

void exter0() interrupt 1 //中断函数
{
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;//定时器重新赋初值
k++;
if(k==10)
{
Wave=~Wave;//波形翻转
k=0;
}
}

假设晶振为12MHz 所以经过12分频之后的时钟周期为1MHz 那么想要得到500Hz 的波形 就是说半个周期为1/500s 而定时器加1的时间是1/5000000s 所以要这个时间乘以100000才能得到1/500s 这也就是TH0=(65536-10000)/256;TL0=(65536-10000)%256;为什么这样赋值的原因 其他部分的代码我想你应该可以看懂 我就不解释了 如果再有问题咱们再交流!
全部回答
每隔一毫秒翻转信号电平即可-方波信号而言
利用定时器产生,不过只能是方波信号。 具体的方法根据你使用的单片机不同有细微的区别。 如果单片机带有PWM功能,可以直接使用PWM模式输出,这样免去了中断处理的麻烦。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!