单片机产生方波程序

单片机产生方波程序,第1张

快速10位pwm模式

#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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8241623.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存