久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機呼吸燈的燈為什么會突然閃爍一下?
[打印本頁]
作者:
匿名信封研
時間:
2019-1-21 09:46
標題:
單片機呼吸燈的燈為什么會突然閃爍一下?
就是我寫呼吸燈的程序然后燒錄到單片機里面的時候,在執行的時候呼吸燈會突然閃爍一下,不知道為什么
/*********************************************************************
函數名:呼吸燈
原理:利用調節某一時間段的燈的占空比從而制成呼吸燈
調用值:
參數:上下左右
返回值:
結果:可以實現呼吸燈,就是燈的亮度發生變化
備注:
日期:2019.1.18.
***********************************************************************/
單片機源碼:
#include <reg52.h> //此包含了51單片機的部分功能
#define uint unsigned int
#define uchar unsigned char
sbit PWM=P1^5; //設置的關于呼吸燈的為P1^5;
uint cycle,high,low;
void delay(uint i)
{
while(i--); //此為延時函數
}
void main()
{
cycle=500; // 給全局變量cycle定一個初值500
while(1)
{
for(high=100;high<=cycle;high++) //給high一個初值,當實現 自加可以了
{
PWM=1;
delay(high);
low=cycle-high;
PWM=0;
delay(low);
// PWM=0;
// delay(high);
// PWM=1;
// delay(low);
}
high=1;
delay(1000);
}
}
復制代碼
作者:
mosqu
時間:
2019-1-21 10:30
應該是delay(1000);的問題,注釋試一下。還有那個high=1有什么用,你for里面都定義=100
作者:
天風情
時間:
2019-1-21 11:06
當high=500時,你看一下程序是怎么執行的
作者:
周超然
時間:
2019-1-21 11:13
就是你程序最后那個delay(1000)去掉就行了。
作者:
搖籃
時間:
2019-1-21 12:08
HIGH=500的時候程序有點問題,你仔細看看,那個時候會突然閃一下
作者:
HC6800-ES-V2.0
時間:
2019-1-22 08:44
看了你的程序,也用它做了試驗,原因是:程序只有從亮到暗的逐漸變化過程,沒有從暗到亮的逐漸變化過程,所以,看起來,就是閃了一下。
給個例子你看看:
#include <reg52.h>
//--定義使用的IO口--//
sbit PWM=P2^1;
bit DIR;
//--定義一個全局變量--//
unsigned int count,value,timer1;
void Time1Config();
/*******************************************************************************
* 函 數 名 : main
* 函數功能 : 主函數
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main(void)
{
Time1Config();
while(1)
{
if(count>100)
{
count=0;
if(DIR==1) //DIR控制增加或減小
{
value++;
}
if(DIR==0)
{
value--;
}
}
if(value==1000)
{
DIR=0;
}
if(value==0)
{
DIR=1;
}
if(timer1>1000) //PWM周期為1000*1us
{
timer1=0;
}
if(timer1 <value)
{
PWM=1;
}
else
{
PWM=0;
}
}
}
/*******************************************************************************
* 函 數 名 : Time1Config
* 函數功能 : 設置定時器
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void Time1Config()
{
TMOD|= 0x10; //設置定時計數器1工作方式1為定時器
TH1 = 0xFF;
TL1 = 0xff;
ET1 = 1; //開啟定時器1中斷
EA = 1;
TR1 = 1; //開啟定時器
}
/*******************************************************************************
* 函 數 名 : Time1
* 函數功能 : 定時器1的中斷函數
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void Time1(void) interrupt 3 //3 為定時器1的中斷號 1 定時器0的中斷號 0 外部中斷1 2 外部中斷2 4 串口中斷
{
TH1 = 0xFF; //重新賦初值
TL1 = 0xFf;
timer1++;
count++;
}
作者:
dongdong124
時間:
2019-11-9 18:18
HC6800-ES-V2.0 發表于 2019-1-22 08:44
看了你的程序,也用它做了試驗,原因是:程序只有從亮到暗的逐漸變化過程,沒有從暗到亮的逐漸變化過程,所 ...
count的作用是什么呢???
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
黄视频在线网站
|
亚洲国产欧美国产综合一区
|
中文福利视频
|
国产91亚洲精品一区二区三区
|
亚洲第一免费播放区
|
激情av
|
中文字幕免费在线
|
日本高清aⅴ毛片免费
|
av国产精品
|
日韩和的一区二在线
|
久久99精品国产
|
国产成人综合久久
|
国产欧美一区二区三区另类精品
|
久久久久精
|
91精品国产综合久久福利软件
|
日本a∨视频
|
成人福利网站
|
美女久久视频
|
免费久久网站
|
国产精品99久久久久久宅男
|
国产成人免费视频
|
中文字幕 在线观看
|
欧美日韩1区2区
|
免费成人av网站
|
国产精品视频导航
|
亚洲精品二区
|
黄色片大全在线观看
|
97超级碰碰
|
国产精品久久久久久久久免费软件
|
不卡一二区
|
国产1区
|
九九九视频精品
|
午夜在线观看视频
|
亚洲欧美一区二区三区国产精品
|
一区二区视频在线
|
欧美日韩综合
|
国产91成人
|
欧美精品中文字幕久久二区
|
亚洲在线电影
|
亚洲自拍偷拍视频
|
精品国产精品国产偷麻豆
|