#include
void
main()
{
ddrd|=0x30
//也许没必要。自己试试
tccr1a=0xa3
//设置工作模式
tccr1b=0x0b
//设置工作模式
ocr1a=800
//设置第1路占空比
ocr1b=500
//设置第2路占空比
}
10位模式下
最高值是1023
调整ocr1a或咐唯禅ocr1b为511,即可山蠢产生占衡尘空比为50%的方波。
#include"reg52.h"sbit PWM=P1^0//定义输出脚
void main()
{
TMOD=0x01 //定时器0工作薯灶方式1
TH0=(65536-10000)/256 //12M晶振10MS计桐手碧时常数
TL0=(65536-10000)%256
EA=1 //开总中断
ET0=1 //开定时器0中断
TR0=1 //启动定时器0
while(1)
}
//中断函局举数,启动后每10MS进入一次中断
void T0_time(void) interrupt 1
{
TH0=(65536-10000)/256 //12M晶振10MS计时常数
TL0=(65536-10000)%256
if(PWM)PWM=0 //输出脚取反
else PWM=1
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)