标题: 单片机6MHZ晶振,如何产生精确的300HZ方波? [打印本页]

作者: adeyan    时间: 2020-6-29 21:07
标题: 单片机6MHZ晶振,如何产生精确的300HZ方波?
如题
作者: man1234567    时间: 2020-6-30 07:56
都可以通过中断来解决
作者: cjjdemon    时间: 2020-6-30 09:33
PWM即可
作者: xianfajushi    时间: 2020-6-30 10:40
本帖最后由 xianfajushi 于 2020-7-1 06:59 编辑

没说明是虾米蛋骗鸡如果是C52的话就是12T可以计算预填值给定时器去产生准确的信号,6/12=0.5,1/0.5=2,2*555=1110。1110*3=3330,65536-1/300*1000*1000/2.
作者: 之二星魂    时间: 2020-6-30 10:52
放一堆nop,放一个翻转,放一个跳转指令。绝对能精确到一个机器周期
作者: 之二星魂    时间: 2020-6-30 10:53
ORG 0
JMP MAIN
ORG 0BH
JMP TIMER0ISR
MAIN:
MOV TMOD,#02H
MOV TH0,#06H
MOV TL0,#06H
SETB EA
SETB ET0
SETB TR0
JMP $
TIMER0ISR:
CPL P1.1
RETI
作者: wulin    时间: 2020-6-30 16:47
#include<reg52.h>
sbit PMW=P1^0;
unsigned char i;
void main()
{
        TMOD= 0x02;
        TH0 = 0x98;
        TL0 = 0x98;//6MHz晶振
        TF0 = 0;
        TR0 = 1;
        EA=1;
        ET0=1;
        while(1);
}
void timer0()interrupt 1
{
        if(++i>=8)
        {
                i=0;
                PMW=~PMW;
        }
}





欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1