急求用51单片机(stc89c52)利用pwm控制led灯光亮度变化的c程序,电路图如下:

急求用51单片机(stc89c52)利用pwm控制led灯光亮度变化的c程序,电路图如下:电路图可以忽略示波器和电压表

第1个回答  2016-10-15
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar count ,z;
sbit key_1 = P3^7;
sbit key_2 = P3^6;
sbit PWM = P2^0;
void key_control();
void init ();
void create_PWM(uchar);
void delay(uint);
void main ()
{
init ();
while(1);
{
key_control();
create_PWM(count);
}
}
void delay(uint z)
{
uint x,y;
for(x = z;x>0;x--)
for(y = 110;y>0;y--);
}

void init()
{
TMOD = 0x10;
TH1 = (65536-4608)/256;//50sm
TL1 = (65536-4608)%256;
TR1 = 1;
}
void create_PWM(uchar count)
{
static i;
if(TF1 == 1)
{
TF1 = 0;
TH1 = (65536-4608)/256;//50sm
TL1 = (65536-4608)%256;
i++;
if(i == 100) i=0;
if(i <= count) PWM = 1;
else PWM = 0;
}
}
void key_control()
{

if(key_1 ==0)
{
delay(10);
if(key_1 == 0)
{
count+= 5;
if(count >= 100)count = 0;
}
}
if(key_2 ==0)
{
delay(10);
if(key_2 ==0)
{
count-= 5;
if(count <= 0)count =100;
}
}
}本回答被网友采纳

求单片机二极管渐亮的程序。STC89C52RC
LED0=1; \/\/熄灭LED Delay(CYCLE-PWM_LOW);\/\/延时长度,600次循环中从599减至1 } LED0=0;for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--){ \/\/与逐渐变亮相反的过程 LED0=0;Delay(PWM_LOW);LED0=1;Delay(CYCLE-PWM_LOW);} \/\/主循环中添加其他需要一直工作的程序 } } void Delay(...

stc89c52怎样控制直流电机正反转的c语言程序
如果你选用第一种,你需要为你的直流电机设计一个驱动控制模块,建议使用简单的H桥控制,其控制方法是单片机引脚输出的高电平为正转,低电平为反转,与控制LED灯类似。如果是第二种,你也需要为其设计一个驱动控制模块,但是控制方法是用到PWM占空比控制,相关的资料在网上很容易找到。我知道的就是这些。

大神,我想用基于STC89C52单片机,用到定时器通过L298N调PWM控制一个电机...
STC89C52好象不带硬件PWM功能,建议用STC12C5A系列 和STC89C52管脚兼容,带AD和PWM功能,如果用不了那么多管脚的话,也可用STC12C5410 或STC12C5628系列 我可以给你一个手动PWM程序供参考 STC单片机单\/双键控制LED亮度PWM调光程序 输出口为P3.7(PWM0) S2 S3为亮度调节(可用来调速)按钮 液晶屏...

stc89c52单片机和51单片机的区别
1、种类不同:51系列单片机是指51内核,stc89c5X基本都是51内核的种类。2、大小不同:最后一个数字表示E2prom的大小,E2prom=X*4K,c51就是4K,c52就是8k。3、配件不同:52还多了一个定时器,所以可以说52是51(这个51是指stc89c51,不是51内核)的增强型。如下图,可以很清晰的看出两者之间的...

stc89c52和51单片机有什么不同呢?
STC单片机是高速、低功耗、超强抗干扰的新一代8051单片机51单片机,指令代码完全兼容传统8051,但速度快8~12倍,内部集成MAX810专用复位电路。4路PWM 8路高速10位A、D转换,针对电机电机 的供应商控制,强干扰场合,成为继51单片机后一个全新系列单片机。STC单片机特性:1、下载烧录程序用串口方便好用,...

STC89C52究竟是不是51单片机
1、种类不同:51系列单片机是指51内核,stc89c5X基本都是51内核的种类。2、大小不同:最后一个数字表示E2prom的大小,E2prom=X*4K,c51就是4K,c52就是8k。3、配件不同:52还多了一个定时器,所以可以说52是51(这个51是指stc89c51,不是51内核)的增强型。如下图,可以很清晰的看出两者之间的...

用STC89C52单片机,想根据电脑给的信号,输出一个PWM来控制开关的闭合,有...
你利用电脑的串口给单片机发数据,0~255,单片机根据接收到的数据做出反应,就可以了

设计分享 | 基于51单片机理解SG90舵机原理并用按键控制
SG90舵机由直流电机、减速齿轮、可变电阻传感器和控制电路组成,其工作原理是利用直流电机在一定角度范围内转动,不能连续转动。外部中断在STC89C52中提供了4个选项,包括下降沿触发和低电平触发,用于按键的响应控制。定时器0被用来计时,初始值设定为0.5ms,通过调整计数值实现舵机角度的控制。主函数中,通过...

怎么样用单片机做成恒流源
程控恒流源电路设计 1 数控电路的设计 数控电路采用由STC89C52构成的单片机最小系统来负责对D\/A、A\/D的控制,以及按键响应和LED的显示。模块内的数字电路和模拟电路各自采用独立的稳压电路供电,以减小数字电路高频峰值电流对模拟电路的影响,可以很大程度上降低D\/A输出的纹波电压。本设计中的D\/A转换电路...

74HC595控制LED灯
void main(void) \/\/主程序{ PCA0MD &= ~0x40;\/\/ 关闭看门狗 PIO_Init(); \/\/I\/O口初始化配置 sysclk(); \/\/系统时钟初始化配置 t01_init(); \/\/定时器初始化配置 \/\/PWM(); SPI_Init(); \/\/SPI0DAT是SPI的数据寄存器 Interrupt_Init(); \/\/中断初始化配置 ADC_INIT(); \/\/AD转换初始化 SPI1_...

相似回答