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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8903|回復: 7
打印 上一主題 下一主題
收起左側

給你的51單片機作品加個呼吸燈(程序)

[復制鏈接]
跳轉到指定樓層
樓主
ID:76190 發(fā)表于 2015-4-5 18:27 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 xiashan 于 2015-4-5 18:30 編輯

看著筆記本待機的時候,電源燈變成忽明忽暗,手就不自在了。

研究了一番,寫出了代碼,加到自己做的“玩具”上。

可能會覺得這個東西沒有什么實在意義,只不過看起來沒閃爍那么單調而已。

如果覺得有用,也可以加到自己的作品上,據(jù)說某mp3用呼吸頻率來表示系統(tǒng)電量得多少,咱覺得還是蠻創(chuàng)意的。

如果你的系統(tǒng)有空余的定時器,或者已經(jīng)使用了定時器,那不妨試試,唯一就是要占用兩個字節(jié)的ram,和幾十微秒的時間。

unsigned char t1=0,t2=0,c1=1;
bit c=1;


void timer_1() interrupt 3 using 3   //呼吸燈程序
{
    TL1 = 0x3C;    //200us   
    TH1 = 0xFF;
    t1++; t2++;

    if(t1 <= cl) led = 0;   //這三行通過t1與cl比較,控制led亮滅,也就是PWM調光。
    if(t1 > cl) led = 1;    //
    if(t1 == 40) t1 = 0;    //   
  
    if(t2 == 250)           //250次中斷以后,進入以下語句,更改cl值,改變亮度。改變比較的值(250)
        {                   //可以調整閃爍速度。
            t2=0;
            if(c)  
                {
                    cl++;
                    if(cl == 41) c=0;    //由亮變暗標識
                }

            if(!c)
                {
                    cl--;
                    if(cl == 3) c=1;    //由暗變亮標識
                }
        }
}  



下面以我的開發(fā)板為例作個具體的程序:
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int

sbit led=P1^0; //位定義;定義led燈是接到P1^0;
unsigned char t1=0,t2=0,c1=1;
bit c=1;
sbit wela=P2^6;

uchar code table[]={0x06,0x5b,0x4f};
uchar temp,num;
delay(uchar);
display(uchar);

void main()
{
TMOD=0x01;
TH0=0x3C;
TL0=0xFF;
EA=1;
ET0=1;
TR0=1;

while(1)
{
  P3=0x7f;
  temp=P3;
  temp=temp&0x7f;
  if(temp!=0x7f)
   {
   delay(50);
   if(temp!=0x7f)
    {
    switch(temp)
    {
     case 0x6f: num=0;
      break;
     case 0x5f: num=1;
      break;
     case 0x3f: num=2;
      break;
    }
    }
   }
     display(num);
}
}

delay(uchar x)
{
uchar a,b;
for(a=x;a>0;a--)
  for(b=200;b>0;b--);
}
display(uchar num1)
{
P0=table[num1];
wela=0;
}

void timer_0() interrupt 1 //呼吸燈程序
{
    TL1 = 0x3C;    //200us   
    TH1 = 0xFF;
    t1++; t2++;

    if(t1 <= c1) led = 0;   //這三行通過t1與cl比較,控制led亮滅,也就是PWM調光。
    if(t1 > c1) led = 1;    //
    if(t1 == 40) t1 = 0;    //   
  
    if(t2 == 100)           //250次中斷以后,進入以下語句,更改cl值,改變亮度。改變比較的值(250)
        {                   //可以調整閃爍速度。
            t2=0;
            if(c)  
                {
                    c1++;
                    if(c1 == 41) c=0;    //由亮變暗標識
                }

            if(!c)
                {
                    c1++;
                    if(c1 == 41) c=1;    //由暗變亮標識
                }
        }
}  




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:75567 發(fā)表于 2015-4-5 19:58 | 只看該作者
大神啊,贊一個
回復

使用道具 舉報

板凳
ID:64888 發(fā)表于 2015-4-5 22:47 來自觸屏版 | 只看該作者
挺復雜的!
回復

使用道具 舉報

地板
ID:66287 發(fā)表于 2015-6-2 09:15 | 只看該作者
頂一個
回復

使用道具 舉報

5#
ID:79961 發(fā)表于 2015-6-2 11:06 | 只看該作者
看起來好厲害的樣子
回復

使用道具 舉報

6#
ID:81459 發(fā)表于 2015-6-2 11:39 | 只看該作者
看起來好厲害的樣子
回復

使用道具 舉報

7#
ID:241613 發(fā)表于 2017-10-21 16:51 | 只看該作者
為什么我燒錄了之后是蜂鳴器在響
回復

使用道具 舉報

8#
ID:241613 發(fā)表于 2017-10-21 16:52 | 只看該作者
為什么我燒錄了之后是蜂鳴器在響?
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九色在线视频 | 羞羞网站在线观看 | 午夜美女福利 | 他揉捏她两乳不停呻吟动态图 | 人人爱人人草 | 免费一区二区 | 欧美日韩少妇 | 小sao货撅起屁股扒开c微博 | 国产91在线看 | 黄色片亚洲 | 亚洲另类色综合网站 | 亚洲三级免费 | 理论片中文字幕 | 久久久国 | 日本特级黄色片 | 蜜臀久久99精品久久久久宅男 | 欧美成人一区二区三区 | 中文字幕精品视频 | 久久久久久久久国产 | 69视频在线播放 | 玖草在线 | 色哟哟入口国产精品 | 欧美日韩亚洲国产 | 在线成人小视频 | 亚洲欧美综合网 | 日韩成人免费视频 | 国产一区在线观看视频 | 日韩久久久久久 | 天天干女人 | 天天爱天天色 | 日韩资源在线 | 日韩久久视频 | 国产欧美日韩在线观看 | 免费视频a | 国产一区二区精品在线 | 欧美一页| 国产精品一区二区三区免费 | 少妇在线| 诱人的大乳奶3做爰 | 国产精品伦理一区 | 国产精品美女久久久 |