久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3909|回復: 16
收起左側

單片機控制led燈微亮,用的1Khz,占空比50%的信號給LED燈

[復制鏈接]
ID:508684 發表于 2019-4-29 16:57 | 顯示全部樓層 |閱讀模式
請教各位,我想讓led燈微亮,用的1Khz,占空比50%的信號給LED燈,但是用Prouse仿真時,燈老是閃爍,請問有沒有老是知道這是為什么?怎么解決這個問題呢?

單片機源程序如下:
#include<reg52.h>
sbit light1=P1^4;
sbit light2=P1^5;
void main()
{
    TMOD=0X01;
        TH0=(65536-1000)/256;
        TL0=(65536-1000)%256;
        EA=1;
        ET0=1;
        TR0=1;
        light2=0;
        while(1);
        {
        }
}
void temp() interrupt 1
{
    TH0=(65536-1000)/256;
        TL0=(65536-1000)%256;
        light1=~light1;
}


回復

使用道具 舉報

ID:96682 發表于 2019-4-29 20:34 | 顯示全部樓層
軟件仿真模擬不了高頻率的,不能期望太高只能以實物為準
回復

使用道具 舉報

ID:213173 發表于 2019-4-29 20:42 | 顯示全部樓層
用Prouse仿真呼吸燈不可能得到想象的結果。
回復

使用道具 舉報

ID:508684 發表于 2019-4-30 20:10 | 顯示全部樓層
wc86110 發表于 2019-4-29 20:34
軟件仿真模擬不了高頻率的,不能期望太高只能以實物為準

原來是這樣啊,老師我用實物也實驗了,但是燈沒有微亮的效果,老師有沒有控制燈微亮的方法嗎
回復

使用道具 舉報

ID:508684 發表于 2019-4-30 20:12 | 顯示全部樓層
wulin 發表于 2019-4-29 20:42
用Prouse仿真呼吸燈不可能得到想象的結果。

這樣啊,老師我用實物也實驗了,但是燈沒有微亮的效果,我這樣做燈要么和原來一樣全亮,要么就閃爍的厲害,沒有微亮的效果,老師有沒有什么方法呢
回復

使用道具 舉報

ID:508684 發表于 2019-4-30 20:13 | 顯示全部樓層
wc86110 發表于 2019-4-29 20:34
軟件仿真模擬不了高頻率的,不能期望太高只能以實物為準

除了使用兩個不同的電阻的方法
回復

使用道具 舉報

ID:508684 發表于 2019-4-30 20:13 | 顯示全部樓層
wulin 發表于 2019-4-29 20:42
用Prouse仿真呼吸燈不可能得到想象的結果。

除了使用兩個不同的電阻的方法
回復

使用道具 舉報

ID:96682 發表于 2019-4-30 23:03 | 顯示全部樓層
通過修改程序實現唄
回復

使用道具 舉報

ID:213173 發表于 2019-4-30 23:38 | 顯示全部樓層
吳育竹 發表于 2019-4-30 20:13
除了使用兩個不同的電阻的方法

給你一個呼吸燈程序,P1接LED
  1. #include<reg52.h>
  2. typedef unsigned char uchar;
  3. typedef unsigned int uint;

  4. uint count=0,time0=0,time1=0,DIR=0;

  5. void main( )
  6. {       
  7.         while (1)
  8.         {
  9.                 time0++;
  10.                 count++;
  11.                 if(count>=80)
  12.                 {
  13.                         count=0;
  14.                         if(DIR==0)
  15.                         time1++;
  16.                         else
  17.                         time1--;               
  18.                 }
  19.                 if(time1>=500)
  20.                         DIR=1;
  21.                 if(time1==0)
  22.                         DIR=0;
  23.                 if(time0>=500)
  24.                         time0=0;
  25.                 if(time0<=time1)
  26.                         P1=0x00;
  27.                 else
  28.                         P1=0xff;
  29.         }
  30. }
復制代碼
回復

使用道具 舉報

ID:508684 發表于 2019-5-1 11:02 | 顯示全部樓層
wulin 發表于 2019-4-30 23:38
給你一個呼吸燈程序,P1接LED

老師我呼吸燈程序看的懂了,我自己改了程序,但是效果不理想,我用P3^4連了一個紅外熱釋傳感器,用P1^7連接了一個LED燈觀察效果,我達到的效果是,有人來高亮,無人來微亮,老師能看看我的程序嗎/*設置一個定時器,控制P20口輸出PWM,頻率為100HZ,占空比可調,熱釋檢測有無人控制占空比*/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char                                                                                               
sbit PWM=P1^7;
sbit LED1=P1^3;//LED1常亮作為跟PWM輸出時的亮度對比
sbit reshi=P3^4;//控制占空比
uchar time;
uint num;
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}


void main()
{
        num=0;
        TMOD=0x01;//定時器0工作方式1
        TH0=(65536-100)/256;
        TL0=(65536-100)%256;//賦值定時0.1ms
        EA=1;
        ET0=1;
        TR0=1;
        while(1)
        {
                LED1=0;        
                while(reshi==0)//無人高亮
                {
                        delay(5);
                        while(reshi==0)
                        {
                                num=20;
                              
                        }
                }
                while(reshi==1)//有人微亮
                {
                        delay(5);
                        while(reshi==1)
                        {
                                num=0;
                              
                        }
                }
        }        
}


void timer0() interrupt 1
{
        TR0=0;//賦值時先關閉定時器
        TH0=(65536-100)/256;
        TL0=(65536-100)%256;//賦值定時0.1ms
        TR0=1;//再從新打開定時器
        time++;
        if(time>=100) time=0;//0.1ms*100=10ms,即100HZ;
        if(time<=num) PWM=0;
        else PWM=1;


}
回復

使用道具 舉報

ID:213173 發表于 2019-5-1 15:34 | 顯示全部樓層
吳育竹 發表于 2019-5-1 11:02
老師我呼吸燈程序看的懂了,我自己改了程序,但是效果不理想,我用P3^4連了一個紅外熱釋傳感器,用P1^7連 ...

優化了一下,你試試。
  1. #include<reg52.h>
  2. typedef unsigned char uchar;
  3. typedef unsigned int uint;
  4. sbit PWM=P1^7;
  5. sbit LED1=P1^3;//LED1常亮作為跟PWM輸出時的亮度對比
  6. sbit reshi=P3^4;//控制占空比
  7. uint count=0,time0=0,time1=0,DIR=0;

  8. void main( )
  9. {       
  10.         LED1=0;        //常亮
  11.         time1=30;//初始亮度
  12.         while (1)
  13.         {
  14.                 count++;
  15.                 if(count>=100)//計數延時(漸亮/暗速度)
  16.                 {
  17.                         count=0;
  18.                         if(reshi==0)//無人高亮
  19.                         {
  20.                                 if(time1<500)
  21.                                         time1++;
  22.                         }
  23.                         else if(time1>30)//有人微亮               
  24.                                 time1--;               
  25.                 }
  26.                 if(++time0>=500)
  27.                         time0=0;
  28.                 if(time0<=time1)
  29.                         PWM=0;
  30.                 else
  31.                         PWM=1;
  32.         }
  33. }
復制代碼
回復

使用道具 舉報

ID:452817 發表于 2019-5-1 16:01 | 顯示全部樓層
我只能說仿真和現實是有差距的
回復

使用道具 舉報

ID:395068 發表于 2019-5-2 14:43 | 顯示全部樓層
你要微亮占空比就不能是50了,50的話高電平的時間和低電平的時間一樣的,怎么可能微亮呢
回復

使用道具 舉報

ID:365802 發表于 2019-5-3 08:39 | 顯示全部樓層
之前實現過, 思路是這樣的, PWM頻率一定, 改變PWM的占空比就可以控制亮度了哦.
回復

使用道具 舉報

ID:508684 發表于 2019-5-3 13:18 | 顯示全部樓層
wulin 發表于 2019-5-1 15:34
優化了一下,你試試。

老師你這個哪部分程序是占空比程序,哪部分是控制占空比大小的 呢
回復

使用道具 舉報

ID:508684 發表于 2019-5-3 13:19 | 顯示全部樓層
ping264888 發表于 2019-5-3 08:39
之前實現過, 思路是這樣的, PWM頻率一定, 改變PWM的占空比就可以控制亮度了哦.

我用P3^4連了一個紅外熱釋傳感器,用P1^7連接了一個LED燈觀察效果,我想達到的效果是,有人來高亮,無人來微亮,老師能看看我的程序嗎,請問你說的占空比頻率和占空比大小控制是在哪部分改動呢/*設置一個定時器,控制P20口輸出PWM,頻率為100HZ,占空比可調,熱釋檢測有無人控制占空比*/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char                                                                                                
sbit PWM=P1^7;
sbit LED1=P1^3;//LED1常亮作為跟PWM輸出時的亮度對比
sbit reshi=P3^4;//控制占空比
uchar time;
uint num;
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}


void main()
{
        num=0;
        TMOD=0x01;//定時器0工作方式1
        TH0=(65536-100)/256;
        TL0=(65536-100)%256;//賦值定時0.1ms
        EA=1;
        ET0=1;
        TR0=1;
        while(1)
        {
                LED1=0;        
                while(reshi==0)//無人高亮
                {
                        delay(5);
                        while(reshi==0)
                        {
                                num=20;
                              
                        }
                }
                while(reshi==1)//有人微亮
                {
                        delay(5);
                        while(reshi==1)
                        {
                                num=0;
                              
                        }
                }
        }        
}


void timer0() interrupt 1
{
        TR0=0;//賦值時先關閉定時器
        TH0=(65536-100)/256;
        TL0=(65536-100)%256;//賦值定時0.1ms
        TR0=1;//再從新打開定時器
        time++;
        if(time>=100) time=0;//0.1ms*100=10ms,即100HZ;
        if(time<=num) PWM=0;
        else PWM=1;


}
回復

使用道具 舉報

ID:525872 發表于 2019-5-4 12:44 | 顯示全部樓層
調節脈寬占空比啊,你的是500HZ的
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 青青草一区二区 | 亚洲国产欧美日韩 | 精品免费国产一区二区三区四区介绍 | 色综合久久天天综合网 | 日韩国产在线 | 一区二区三区视频在线 | 夜夜干夜夜操 | 在线永久看片免费的视频 | 亚洲欧美一区二区三区在线 | 成人福利网 | 一级做受毛片免费大片 | 成年人黄色一级片 | 国产一区二区在线播放 | 中文字幕专区 | a在线视频 | 国产第一区二区 | 午夜av成人 | 免费看黄色国产 | 日本黄色激情视频 | 中文字幕1区2区 | 91亚洲精选 | 伊人啪啪网 | 中文字幕 国产精品 | 午夜影晥 | 国产精品国产a级 | 欧美激情精品久久久久久 | 狠狠插狠狠操 | 欧美性猛交一区二区三区精品 | 日韩精品在线免费观看视频 | 色天堂影院 | 精品久久不卡 | 美女久久久 | 久久一区二区三区电影 | 91av小视频 | 国产精品视频97 | 日韩在线免费视频 | 玩丰满女领导对白露脸hd | 成人小视频在线观看 | 精品国产一区探花在线观看 | 久久不卡区 | 国产一区二区日韩 |