91视频免费?看_蜜芽MY188精品TV在线观看_国产免费无遮挡在线观看视频_深夜国产_亚洲精品欧洲精品_欧美黑人粗暴多交

  • 回復
  • 收藏
  • 點贊
  • 分享
  • 發新帖

用單片機控制(軟件產生PWM)LED的亮度

//引入頭文件*********************************************************
#include          "delay.h"
#include          "delay.c"
#include      

//腳位定義***********************************************************  
#define       key       RA3                                //按鍵輸入  
#define       led       RB0                                //輸出指示  

//開關標志***********************************************************
     persistent bit Sign;                                  //開關標志    
    
//占空比數據*********************************************************
     persistent unsigned char data;                        //占空表值

     const unsigned char PwmDat[10] = {0x19, 0x32, 0x4b, 0x64, 0x7d,  
                                       0x96, 0xaf, 0xc8, 0xe1, 0xfa};
  
//*******************************************************************  
//函數名稱:PortInit();  
//輸入參數:無  
//輸出參數:無  
//功能描述:端口設置  
//建造日期:2008.06.06  
//*****************************************************************  
void PortInit(void)  
{  
     PORTA = 0xfd;                                         //    
     TRISA = 0xfd;                                         //A 口設置    
      
     PORTB = 0x00;                                         //  
     TRISB = 0x00;                                         //B 口設置  
}  
  
//*******************************************************************  
//函數名稱:KeyInt();  
//輸入參數:無
//輸出參數:無  
//功能描述:按鍵處理函數  
//建造日期:2008.06.06  
//*******************************************************************  
void KeyInt(void)  
{    
     static unsigned char count = 0;                       //長按計數
     static bit valid = 0;                                 //有效標志  
     static bit reach = 0;                                 //長按標志  
      
     if (valid == 1)  
      {  
       if (key == 0)                                       //按鍵有效
        {  
         count++;                                          //增加計數    

         if (count == 50)                              
          {
           count = 25;                                     //長按加速
           reach = 1;                                      //長按置位  
           data++;                                         //查表增加
            
           if (data > 9) data = 0;                         //循環查表    
          }            
        }  
      
       else  
        {
         if (reach == 0) Sign = !Sign;                     //取反狀態
          
         count = 0;                                        //計數清零    
         valid = 0;                                        //有效清零  
         reach = 0;                                        //長按清零  
        }    
      }  
        
     else  
      {  
       if (key == 0) valid = 1;                            //有效置位  
      }  
}  

//*******************************************************************  
//函數名稱:LedPwm();  
//輸入參數:無
//輸出參數:無  
//功能描述:led 脈沖調寬輸出  
//建造日期:2008.06.06  
//*******************************************************************  
void LedPwm(void)  
{  
     unsigned char PwmH, PwmL;  
     unsigned char i,Pwm;  
      
     Pwm = PwmDat[data];                                   //占空查表
      
     if(Sign == 1)                                         //是否開機
      {    
       for (i = 0; i < 20; i++)  
        {  
         PwmH = Pwm;                                       //脈沖高位  
         PwmL = 250 - PwmH;                                //脈沖低位  

         led = 1;                                          //  
         while (PwmH--);                                   //高位輸出  
      
         led = 0;                                          //  
         while (PwmL--);                                   //低位輸出  
        }  
      }

     else    
      {
       DelayMs(20);                                        //關機延時  
      }      
}  

//*******************************************************************  
//函數名稱:main();  
//輸入參數:無  
//輸出參數:無  
//功能描述:主要程序  
//建造日期:2008.06.06  
//*******************************************************************  
void main(void)                                            //  
{      
     PortInit();                                           //腳位設置  
      
     if (data > 9) data = 0;                               //是否越階
      
     while (1)  
      {  
       KeyInt();                                           //按鍵處理  
       LedPwm();                                           //脈沖輸出  
      }    
}  


可以實現短按開關機(按鍵 < 1S),長按凋光(按鍵 >1S),以10%占空比步進.占空比為 10% -100% (在關機時長按無效)
全部回復(22)
正序查看
倒序查看
2008-10-23 11:45
該程序比較精簡....可以移值到PIC12C508A單片機上...
也可以改成三路輸出按制RGB LED ...

用內部RC振蕩..可以實現低成本方案...
0
回復
niquanwei
LV.5
3
2008-10-23 14:15
@點點滴滴
該程序比較精簡....可以移值到PIC12C508A單片機上...也可以改成三路輸出按制RGBLED...用內部RC振蕩..可以實現低成本方案...
低成本,1.5一片已經寫好調光程序的 或者RGB帶定色程序的,誰要?
喊幾聲!
0
回復
2008-10-23 15:00
@niquanwei
低成本,1.5一片已經寫好調光程序的或者RGB帶定色程序的,誰要?喊幾聲!
能不能實現50Hz過零同步變化.....

臺灣的單片機...1.3 ...我都能給..
0
回復
hzfzy
LV.1
5
2008-11-23 04:57
@niquanwei
低成本,1.5一片已經寫好調光程序的或者RGB帶定色程序的,誰要?喊幾聲!
我要這個,請發RGB帶定色程序的詳細資料來,謝謝!hzfzy@139.com
0
回復
morine
LV.1
6
2008-12-08 15:47
請給我一份,fiacky@163.com.謝謝了.
0
回復
2008-12-09 10:00
@niquanwei
低成本,1.5一片已經寫好調光程序的或者RGB帶定色程序的,誰要?喊幾聲!
我也要一份,能否發下給我?謝謝!zhongyuqiang2006@163.com
0
回復
2009-01-29 16:15
@niquanwei
低成本,1.5一片已經寫好調光程序的或者RGB帶定色程序的,誰要?喊幾聲!
我要~~~~~~~~郵箱misscool1656@163.com qq184217356
0
回復
2009-02-02 08:49
@niquanwei
低成本,1.5一片已經寫好調光程序的或者RGB帶定色程序的,誰要?喊幾聲!
我要~~~~~~~~郵箱ssg88@126.com  QQ19827671
0
回復
hqsh158
LV.1
10
2009-04-10 22:51
@點點滴滴
能不能實現50Hz過零同步變化.....臺灣的單片機...1.3...我都能給..
請問可以實時控制亮度嗎?也就是說電壓變化時,亮度保持不變.
還有就是能告知兄弟單片機型號嗎?hqsh158@126.com
0
回復
guotinglan
LV.2
11
2009-04-11 01:09
**此帖已被管理員刪除**
0
回復
bhoo
LV.5
12
2009-04-11 08:06
@guotinglan
**此帖已被管理員刪除**
chhp25@163.com 給我發一份.謝謝!
0
回復
lin135
LV.5
13
2009-04-11 12:42
@bhoo
chhp25@163.com給我發一份.謝謝!
其實用單片機做的話1.5以下就可以做個調光了,應該不貴吧.就需要一個外置的驅動三極管而且
0
回復
lin135
LV.5
14
2009-04-11 12:46
@lin135
其實用單片機做的話1.5以下就可以做個調光了,應該不貴吧.就需要一個外置的驅動三極管而且
我用過一個8腳的單片機控三色燈來顯示溫度值的,其中一個模式是按溫度的高低來先擇顏色,.比如50度是全紅,慢慢低下來加一點點的加下綠色,0度是藍色和綠的混色,-20是藍色, 紅綠藍是按255,255,225級來分級的.有點像電腦的256色調板.
0
回復
wangw0718
LV.1
15
2009-10-30 14:48
@lin135
我用過一個8腳的單片機控三色燈來顯示溫度值的,其中一個模式是按溫度的高低來先擇顏色,.比如50度是全紅,慢慢低下來加一點點的加下綠色,0度是藍色和綠的混色,-20是藍色,紅綠藍是按255,255,225級來分級的.有點像電腦的256色調板.
可以把這個設計的程序和相關資料發給我看一下么?wangw0718@163.com
0
回復
2011-04-16 00:34
@niquanwei
低成本,1.5一片已經寫好調光程序的或者RGB帶定色程序的,誰要?喊幾聲!
我也要 zaibu130@qq.com 謝謝
0
回復
2011-04-16 00:35
我也要 謝謝 zaibu130@qq.com
0
回復
sankong333
LV.4
18
2011-04-16 01:04
最好增加一個低功耗無線收發模塊
0
回復
偉哥
LV.4
19
2011-04-16 07:50
@sankong333
最好增加一個低功耗無線收發模塊

我的四路調光,3基色的LED.  芯片SOP-8,只要6毛,這個也太浪費,玩玩可以,不具備商業價值.

0
回復
fuzi
LV.3
20
2011-05-03 17:24
我批量要這東西.但是要改一下.有興趣加我.QQ:1044929960
0
回復
windyde
LV.1
21
2012-04-17 23:56
@lin135
我用過一個8腳的單片機控三色燈來顯示溫度值的,其中一個模式是按溫度的高低來先擇顏色,.比如50度是全紅,慢慢低下來加一點點的加下綠色,0度是藍色和綠的混色,-20是藍色,紅綠藍是按255,255,225級來分級的.有點像電腦的256色調板.
能把資料發來看看么,謝謝! windyde@163.com
0
回復
kingdau1985
LV.2
22
2012-04-18 23:20
@fuzi
我批量要這東西.但是要改一下.有興趣加我.QQ:1044929960
**此帖已被管理員刪除**
0
回復
borland_syj
LV.3
23
2012-04-18 23:52
@kingdau1985
**此帖已被管理員刪除**

曾經的單片機到今天,技術也像白菜一樣,價格也像白菜一樣了...................

0
回復
主站蜘蛛池模板: 商丘市| 陇西县| 夹江县| 灌云县| 内黄县| 胶州市| 翼城县| 长沙县| 和政县| 青州市| 宿州市| 灵璧县| 都兰县| 定结县| 伊吾县| 锡林郭勒盟| 高淳县| 新郑市| 敖汉旗| 平罗县| 右玉县| 夹江县| 丰都县| 昌黎县| 大足县| 都兰县| 来凤县| 仁化县| 百色市| 新津县| 永康市| 西峡县| 花莲市| 延长县| 汽车| 靖西县| 兴文县| 德令哈市| 西安市| 柞水县| 札达县|