久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
PWM調光 led還有點微亮
[打印本頁]
作者:
lids
時間:
2016-10-24 16:16
標題:
PWM調光 led還有點微亮
//兩個鍵控制亮度加減,一個鍵控制燈開關;在實驗板上測試通過,就是還有點問題,開關鍵關燈的狀態,led還有點微亮,原因還不明。
#include <reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
作者:
lids
時間:
2016-10-24 16:17
#include <reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16; //define
sbit down = P3^0; //亮度減
sbit up = P3^1; //亮度加
sbit KEY3 = P3^2; //開關鍵
bit flag;
uint8 t = 0;
uint8 PWM_T = 0; //占空比控制變
void delay_1ms(uint16 t)
{
uint16 x,y;
for(x=t;x>0;x--)
for(y=120;y>0;y--);
}
/****************************************************
主程序
****************************************************/
void main(void)
{
TMOD = 0x02; //定時器0,工作模式2,8位定時模式
TH0=210; //寫入預置初值(取值1-255,數越大PWM頻率越高)
TL0=210; //寫入預置值 (取值1-255,數越大PWM頻率越高)
TR0=1; //啟動定時器
ET0=1; //允許定時器0中斷
EA=1; //允許總中斷
// P1=0xff; //初始化P1,輸出端口
PWM_T=100; //這里的值決定開機時的亮度,數值越大亮度越大
while(1)
{
if(flag==0)
{
if(!up)
{
if(PWM_T<250)
{
PWM_T++;
}
delay_1ms(20);
}
if(!down)
{
if(PWM_T>0)
{
PWM_T--;
}
delay_1ms(20);
}
}
else
{
P1=0xff;
}
if(KEY3==0)
{
delay_1ms(20);
if(KEY3==0)
{
flag=~flag;
while(!KEY3);
}
}
}
}
/****************************************************
/定時器0中斷模擬PWM
****************************************************/
timer0() interrupt 1
{
t++; //每次定時器溢出加1
if(t==250) //PWM周期 100個單位
{
t=0; //使t=0,開始新的PWM周期
P1=0x00; //輸出端口
}
if(PWM_T==t) //按照當前占空比切換輸出為高電平
{
P1=0xff; //
}
}
作者:
lids
時間:
2016-10-25 09:51
程序修改好了,開關鍵關燈狀態,LED不再有微亮
#include <reg52.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
unsigned int flag, temp;
unsigned char menu;
sbit down = P3^0; //亮度減
sbit up = P3^1; //亮度加
sbit KEY3 = P3^2; //開關鍵
//bit flag;
uint8 t = 0;
uint8 PWM_T = 0; //占空比控制變
void delay_1ms(uint16 t)
{
uint16 x,y;
for(x=t;x>0;x--)
for(y=120;y>0;y--);
}
/****************************************************
主程序
****************************************************/
void main(void)
{
TMOD = 0x02; //定時器0,工作模式2,8位定時模式
TH0=210; //寫入預置初值(取值1-255,數越大PWM頻率越高)
TL0=210; //寫入預置值 (取值1-255,數越大PWM頻率越高)
TR0=1; //啟動定時器
ET0=1; //允許定時器0中斷
EA=1; //允許總中斷
P1=0xff; //初始化P1,輸出端口
PWM_T=100; //這里的值決定開機時的亮度,數值越大亮度越大
menu=0;
while(1)
{
if(flag==0)
{
if(!up)
{
if(PWM_T<250)
{
PWM_T++;
}
delay_1ms(20);
}
if(!down)
{
if(PWM_T>0)
{
PWM_T--;
}
delay_1ms(20);
}
}
else
{
temp=0xff;
P1=temp;
}
if(menu==0)
{
if(KEY3==0)
{
delay_1ms(20);
if(KEY3==0)
{ menu++;
flag=~flag;
TR0=0;
while(!KEY3);
}
}
}
if(menu==1)
{
if(KEY3==0)
{
delay_1ms(20);
if(KEY3==0)
{ menu=0;
flag=~flag;
TR0=1;
while(!KEY3);
}
}
}
}
}
/****************************************************
/定時器0中斷模擬PWM
****************************************************/
timer0() interrupt 1
{
t++; //每次定時器溢出加1
if(t==250) //PWM周期 100個單位
{
t=0; //使t=0,開始新的PWM周期
P1=0x00; //輸出端口
}
if(PWM_T==t) //按照當前占空比切換輸出為高電平
{
P1=0xff;
//
}
}
作者:
嘿小毅
時間:
2016-11-11 11:44
用電阻拉低
作者:
CHEN08046792
時間:
2016-11-11 12:17
不錯
作者:
CHEN08046792
時間:
2016-11-11 12:17
好方法
作者:
wuyibin2003
時間:
2016-11-11 12:28
多練練
作者:
xixdpj-2
時間:
2019-3-20 23:25
這個好像對 我有用,仔細看一下
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
亚洲国产精品一区二区三区
|
亚洲欧美精品国产一级在线
|
在线中文字幕av
|
久久久91精品国产一区二区精品
|
国产精品99视频
|
国产视频一区二区
|
日韩一区中文字幕
|
www.99热
|
中文一区
|
欧美日韩在线精品
|
日韩精品一区二区三区免费视频
|
欧美男人天堂
|
国产精品特级毛片一区二区三区
|
91精品国产日韩91久久久久久
|
亚洲视频一区在线观看
|
欧洲一级视频
|
成人国产一区二区三区精品麻豆
|
最新国产精品精品视频
|
欧美性区
|
日韩在线中文
|
日韩av在线一区
|
国产91精品在线
|
久久久一区二区三区
|
国产一级在线
|
亚洲h在线观看
|
国产a级毛毛片
|
毛片一级网站
|
成在线人视频免费视频
|
天天插天天操
|
日韩一级
|
久久久久亚洲
|
九九精品在线
|
国产91在线观看
|
99亚洲
|
午夜精品久久久久99蜜
|
4hu最新网址
|
国产成人99久久亚洲综合精品
|
日韩av一区二区在线观看
|
一级毛片在线播放
|
国产中文字幕网
|
一级做a毛片
|