標(biāo)題:
關(guān)于單片機(jī)呼吸燈的一點(diǎn)問(wèn)題,就是這個(gè)程序不理解怎么回事,怎么弄呀
[打印本頁(yè)]
作者:
134849694164151
時(shí)間:
2018-6-7 22:40
標(biāo)題:
關(guān)于單片機(jī)呼吸燈的一點(diǎn)問(wèn)題,就是這個(gè)程序不理解怎么回事,怎么弄呀
單片機(jī)源程序如下:
#include <reg52.h>
//--定義使用的IO口--//
sbit PWM=P2^1;
bit DIR;
//--定義一個(gè)全局變量--//
unsigned int count,value,timer1;
void Time1Config();
void main(void)
{
Time1Config();
while(1)
{
if(count>100)
{
count=0;
if(DIR==1) //DIR控制增加或減小
{
value++;
}
if(DIR==0)
{
value--;
}
}
if(value==1000)
{
DIR=0;
}
if(value==0)
{
DIR=1;
}
if(timer1>1000) //PWM周期為100*1us
{
timer1=0;
}
if(timer1 <value)
{
PWM=1;
}
else
{
PWM=0;
}
}
}
void Time1Config()
{
TMOD|= 0x10; //設(shè)置定時(shí)計(jì)數(shù)器工作方式1為定時(shí)器
//--定時(shí)器賦初始值,12MHZ下定時(shí)1us--//
TH1 = 0xFF;
TL1 = 0xff;
ET1 = 1; //開(kāi)啟定時(shí)器1中斷
EA = 1;
TR1 = 1; //開(kāi)啟定時(shí)器
}
void Time1(void) interrupt 3 //3 為定時(shí)器1的中斷號(hào) 1 定時(shí)器0的中斷號(hào) 0 外部中斷1 2 外部中斷2 4 串口中斷
{
TH1 = 0xFF; //重新賦初值
TL1 = 0xFf;
timer1++;
count++;
}
復(fù)制代碼
作者:
devcang
時(shí)間:
2018-6-8 00:08
這是一路的,那PWM 先熟悉一下這原理,就清楚了。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1