標(biāo)題: 請問我的單片機(jī)PWM波控制led亮度為什么led只會閃爍? [打印本頁]

作者: DC大魔王    時間: 2024-4-25 12:17
標(biāo)題: 請問我的單片機(jī)PWM波控制led亮度為什么led只會閃爍?
#include <reg52.H>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char Pwm_Duty =0;
unsigned char Pwm_Duty1 =0;  
unsigned char Pwm_Duty2 =0;  
unsigned char Pwm_Duty3 =0;  
unsigned char Pwm_Duty4 =0;  
unsigned char Pwm_Duty5 =0;  
unsigned char Pwm_Duty6 =0;  
unsigned char Pwm_Duty7 =0;  
unsigned char PWM_Cnt=0;
unsigned char p=0;
int i1=0;
int i2=0;
int i3=0;
int i4=0;
int i5=0;
int i6=0;
int i7=0;
int i8=0;

sbit rs = P2 ^ 6;
sbit rw = P2 ^ 5;
sbit en = P2 ^ 7;
sbit K1=P2^1;
sbit L1=P1^0;
sbit L2=P1^1;
sbit L3=P1^2;
sbit L4=P1^3;
sbit L5=P1^4;
sbit L6=P1^5;
sbit L7=P1^6;
sbit L8=P1^7;

void Delay(int i)
{ int  j,k;
    for(;i>0;i--)
    for(j=15;j>0;j--)
    for(k=11;k>0;k--);}
void Timer0Init(void)              
  //200微秒@12.000MHz

{
        TMOD &= 0xF0;                //設(shè)置定時器模式
        TMOD |= 0x02;                //設(shè)置定時器模式
      TH0=240;//高八位
      TL0=240;                 //設(shè)置定時初始值
        TF0 = 0;                    //清除TF0標(biāo)志
        ET0 = 1;
        EA = 1;
        TR0 = 1;                //定時器0開始計時

}






void timer0_Routine(void) interrupt 1   //T0中斷程序
{

        TH0=240;//高八位
TL0=240;                         //重裝始值
                               //重裝始值
        PWM_Cnt++;
        if(PWM_Cnt>=100)      
        {
          PWM_Cnt=0;
        }

50f91d1cf76ec26d9115f8d30c639fa.png (47.49 KB, 下載次數(shù): 48)

50f91d1cf76ec26d9115f8d30c639fa.png

作者: DC大魔王    時間: 2024-4-25 12:27
用硬件做的也只會閃
作者: yzwzfyz    時間: 2024-4-25 15:34
是你的程序讓它閃爍的。
作者: Hephaestus    時間: 2024-4-25 15:39
如果是實物,那就是PWM頻率太低,如果是仿真,也許是仿真軟件故意讓你看波形不連續(xù)。
作者: heyanrog    時間: 2024-4-25 17:46
你也沒發(fā)完整程序,沒看到怎么控?zé)簟?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1