<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[利用单片机定时器产生PWM波]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Sun, 01 Aug 2010 06:24:01 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	PWM( 脉宽调制) 在很多场合都用得上，例如LED 亮度控制，开关电源输出电圧控制等。<br/>这里采用简单的定时器实现PWM 波输出，通过更改定时器定时参数，控制IO 口输出<br/>波形高低电平持续时间，实现PWM 波。<br/><br/>代码如下：<br/><br/><br/><div class="code">#include&lt;reg52.h&gt;<br/><br/>#define T0_INTERRUPT 1&nbsp;&nbsp;//T0 中断向量号<br/>#define PWMH_L 0x9C<br/>#define PWMH_H 0xFF&nbsp;&nbsp; //PWM 低电平时间 0.1ms<br/><br/>#define PWML_L 0xCE<br/>#define PWML_H 0xFF&nbsp;&nbsp;&nbsp;&nbsp;//PWM 高电平时间 0.05ms<br/><br/>sbit LED1 = P1^0;&nbsp;&nbsp; // 常亮 LED ，作为对比，仿真看不出效果<br/>sbit LED2 = P1^1;&nbsp;&nbsp;&nbsp;&nbsp;//PWM 驱动 LED<br/><br/><br/><br/>typedef unsigned char uchar;<br/>typedef unsigned int uint;<br/><br/>void Init_T0();<br/><br/>void main()<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;LED1 = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 点亮 LED1<br/>&nbsp;&nbsp;&nbsp;&nbsp;LED2 = 1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 熄灭 LED2<br/>&nbsp;&nbsp;&nbsp;&nbsp;Init_T0();&nbsp;&nbsp;&nbsp;&nbsp;// 初始化定时器 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;while(1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PCON &#124;= 0x01; // 单片机进入休眠模式，节省功耗<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&#125;<br/><br/>void Init_T0()<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;TMOD &amp;= 0xF0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;TMOD &#124;= 0x01;&nbsp;&nbsp;//16 位定时器模式<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;TH0 = PWML_H;<br/>&nbsp;&nbsp;&nbsp;&nbsp;TL0 = PWML_L;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;EA = 1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 开全局中断<br/>&nbsp;&nbsp;&nbsp;&nbsp;ET0 = 1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 允许 T0 中断<br/>&nbsp;&nbsp;&nbsp;&nbsp;TR0 = 1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 启动定时器<br/>&#125;<br/><br/>void T0_Interrupt() interrupt T0_INTERRUPT<br/>&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;TF0 = 0;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(LED2 == 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED2 = 0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置低电平持续时间， LED2 亮<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TH0 = PWMH_H;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TL0 = PWMH_L;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&nbsp;&nbsp;&nbsp;&nbsp;else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#123;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LED2 = 1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// 设置高电平持续时间 ,LED2 灭&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TH0 = PWML_H;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TL0 = PWML_L;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#125;<br/>&#125; </div>
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 利用单片机定时器产生PWM波]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>