单灯PWM调光,自编测试程序
2015年10月04日 点击:
编辑: xiaodai6868
/************定义声明区*****************/
/*使用芯片:STC89C52
晶振:12MHZ
单按键每按一次调整一点,到达最亮后再按一下恢复初始最低亮度
*/
#include "reg52.h"
void delay10ms(void);
sbit led=P1^0;
sbit key=P3^3;
unsigned char zk=1;
unsigned char count;//计数
/***************主函数*************/
void main()
{
led=1;
//P0=0;
EA=1;
/****定时器配置***/
TMOD=0x01;
TL0=(65535-100)%256;
TH0=(65535-100)/256;
ET0=1;
TR0=1;
/***死循环***/
while(1)
{
if(key==0)
{
delay10ms();
if(key==0)
{
zk=zk+10;
if(zk>=100)
{
zk=1;
}
}
while(!key);
}
}
}
void timer() interrupt 1
{
TL0=(65535-100)%256;
TH0=(65535-100)/256;
count++;
if(count>=100) count=0;
if(count<zk)
{
led=0;
}
else
{
led=1;
}
}
void delay10ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=5;c>0;c--)
for(b=4;b>0;b--)
for(a=248;a>0;a--);
}
/*使用芯片:STC89C52
晶振:12MHZ
单按键每按一次调整一点,到达最亮后再按一下恢复初始最低亮度
*/
#include "reg52.h"
void delay10ms(void);
sbit led=P1^0;
sbit key=P3^3;
unsigned char zk=1;
unsigned char count;//计数
/***************主函数*************/
void main()
{
led=1;
//P0=0;
EA=1;
/****定时器配置***/
TMOD=0x01;
TL0=(65535-100)%256;
TH0=(65535-100)/256;
ET0=1;
TR0=1;
/***死循环***/
while(1)
{
if(key==0)
{
delay10ms();
if(key==0)
{
zk=zk+10;
if(zk>=100)
{
zk=1;
}
}
while(!key);
}
}
}
void timer() interrupt 1
{
TL0=(65535-100)%256;
TH0=(65535-100)/256;
count++;
if(count>=100) count=0;
if(count<zk)
{
led=0;
}
else
{
led=1;
}
}
void delay10ms(void) //误差 0us
{
unsigned char a,b,c;
for(c=5;c>0;c--)
for(b=4;b>0;b--)
for(a=248;a>0;a--);
}
相关文章
- · 三菱FX系列PLC自学视频教程 2015-10-08
- · 新到手 蓝牙大师10代PLUS 红外波形(没买的建议不要买了,与老9代高端差不多。) 2018-06-14
- · 06CD复制机黑屏求救 2017-02-14
- · 遥控测码软件 2016-01-04
- · 西门子S7-200CN自学视频教程(全) 2015-10-11
- · 在某宝买了点单片机资料,不知道有没有用 2016-11-15
- · 自己设计开发的STM32开发板 2016-06-05
- · 已传完 疯狂STM32实战讲学录 2017-10-26
- · 已传完 跟我学单片机 2017-10-18
- · 51单片机反汇编程序 2016-01-06