如何用c语言编写一段方波,频率为1M。

Python030

如何用c语言编写一段方波,频率为1M。,第1张

如果是模拟出来的话,频率是1Mhz,首先你要有一个1Mx2的定时,这个2Mhz的定时每次计数到达的时候将对应的io口翻转,频率为1M周期为1us的方波就出来了。

大部分单片机都有pwm功能直接配置寄存器使能就可以输出对应的频率方波。

#include

sbit wave=P1^0

void SetupTimer0()

{

TMOD &= 0XF0//仅保留T1信息

TMOD |= 0X02//设置T0: 定时功能,方式2,自动重载8位定时器/计数器

TH0 = 256-250//定时每0.25ms中断一次

TL0 = 256-250

TR0 = 1 //开启定时器

ET0 = 1 //定时器0中断打开

}

data unsigned char us250

data unsigned int ms

bit WAVE //用以记住当前wave的状态

void Timer0_ISR() interrupt 1 //定时中断服务程序,为按键消抖服务

{

if (++us250<4) return

us250=0++ms

if (ms<10) return

//每10ms波形变化一次,20ms完成一个波形,所以波形是50Hz的

ms=0

WAVE=~WAVEwave=WAVE //方波输出

}

void main()

{

us250=ms=0

wave=WAVE=0

SetupTimer0()

EA = 1 //全局中断打开

while(1) //在中断函数中实现方波输出

}