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

標(biāo)題: 基于51單片機(jī)實(shí)現(xiàn)不同按鍵輸出不同占空比,從而達(dá)到調(diào)光作用 [打印本頁(yè)]

作者: 周鵬    時(shí)間: 2016-10-14 19:26
標(biāo)題: 基于51單片機(jī)實(shí)現(xiàn)不同按鍵輸出不同占空比,從而達(dá)到調(diào)光作用
輸出0v~5v不同占空比,從而實(shí)現(xiàn)多級(jí)調(diào)光,此程序硬件電路還必須配合SGD1011芯片使用,單片機(jī)輸出不同脈沖信號(hào),控制SGD1011輸出電流大小,從而控制不同亮度的燈管。后續(xù)會(huì)把電容觸摸調(diào)光,上傳至51黑電子論壇論壇,資源共享。本壓縮包附有multisim/protues仿真和程序/SGD1011芯片規(guī)格介紹書(shū)。我也找了好長(zhǎng)時(shí)間才找到這個(gè)SGD1011資料,現(xiàn)分享。謝謝!


單片機(jī)源程序:
  1. #include<reg51.h>     //程序是基于KEIL-C51編寫(xiě),引入8051頭文件
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. sbit P37=P3^7;

  5. sbit k1=P1^0; //開(kāi)、關(guān)
  6. sbit k2=P1^1; //一檔
  7. sbit k3=P1^2; //二擋
  8. sbit k4=P1^3; //三擋
  9. sbit k5=P1^4; //四擋
  10. sbit k6=P1^5; //五檔
  11. unsigned int scale=10;   //占空比控制變量
  12. void delay(uint xms)
  13. {
  14.         uint i,j;
  15.         for(i=xms;i>0;i--)
  16.                 for(j=110;j>0;j--);
  17. }
  18. timer0() interrupt 1             //定時(shí)器0中斷程序
  19. {
  20.        
  21.     static  unsigned int  tt ;   //tt用來(lái)保存當(dāng)前時(shí)間在一個(gè)時(shí)鐘周期的位置
  22.     tt++;                        //每中斷一次,即每經(jīng)過(guò)250us,tt的值自加1
  23.     if(tt==10)                   //中斷10次定時(shí)2.5ms,
  24.     {
  25.         tt=0;                    //使tt=0,開(kāi)始新的周期,達(dá)到循環(huán)的效果
  26.         P37=0;                   //點(diǎn)亮LED
  27.     }
  28.     if(scale==tt)                //如果占空比與中斷次數(shù)相同時(shí),此時(shí)輸出高電平
  29.     P37=1;                       //熄滅LED燈

  30.     /*
  31.     前面的程序是將占空比設(shè)置成了10個(gè)等級(jí),scale=1時(shí)維持高電平的時(shí)間
  32.     是1/10個(gè)PWM周期(這里是2.5ms),因?yàn)閟cale<=tt的時(shí)間段是低電平點(diǎn)亮LED燈的,
  33.     scale>=tt的時(shí)間是熄滅LED燈的,通過(guò)改變一個(gè)周期內(nèi)高低電平維持的時(shí)間長(zhǎng)短
  34.     就可以控制LED燈的亮度或者是電機(jī)的轉(zhuǎn)速了,這就是PWM的工作原理
  35.     */
  36. }
  37. void keyscan()
  38. {
  39.         if(k1==0)
  40.         {
  41.                 delay(10);
  42.                 if(k1==0)
  43.                 {
  44.                         scale=10;
  45.                         while(!k1);
  46.                 }
  47.         }
  48.         if(k2==0)
  49.         {
  50.                 delay(10);
  51.                 if(k2==0)
  52.                 {
  53.                         scale=8;
  54.                         while(!k2);
  55.                 }
  56.         }
  57.         if(k3==0)
  58.         {
  59.                 delay(10);
  60.                 if(k3==0)
  61.                 {
  62.                         scale=6;
  63.                         while(!k3);
  64.                 }
  65.         }
  66.         if(k4==0)
  67.         {
  68.                 delay(10);
  69.                 if(k4==0)
  70.                 {
  71.                         scale=4;
  72.                         while(!k4);
  73.                 }
  74.         }
  75.         if(k5==0)
  76.         {
  77.                 delay(10);
  78.                 if(k5==0)
  79.                 {
  80.                         scale=2;
  81.                         while(!k5);
  82.                 }
  83.         }
  84.         if(k6==0)
  85.         {
  86.                 delay(10);
  87.                 if(k6==0)
  88.                 {
  89.                         scale=0;
  90.                         while(!k6);
  91.                 }
  92.         }
  93. }
  94. /*void display()
  95. {
  96.         keyscan();

  97. }*/
  98. void main(void)      
  99. {
  100.         unsigned int n;     //延時(shí)循環(huán)變量
  101.     TMOD=0x02;        //定時(shí)器0,工作模式2(0000 0010),8位定時(shí)
  102.     TH0=0x06;         //定時(shí)250us(12M晶振)
  103.     TL0=0x06;         //預(yù)置值
  104.     TR0=1;            //啟動(dòng)定時(shí)器0
  105.     ET0=1;            //啟動(dòng)定時(shí)器0中斷
  106.     EA=1;             //開(kāi)啟總中斷
  107.                                           
  108.   while(1)   
  109.   {        
  110.                 keyscan();
  111.          //   for(n=0;n<50000;n++)    //延時(shí)一段時(shí)間
  112.         //        {
  113.           //      scale=6;                 //占空比控制變量加一
  114.          //       if(scale==10)  scale=0;  //達(dá)到循環(huán)的效果
  115.         //        }
  116.   }
  117. }
復(fù)制代碼


所有資料打包下載:
IC觸摸6鍵調(diào)光程序 硬件仿真.rar (785.5 KB, 下載次數(shù): 49)

作者: gdx    時(shí)間: 2018-8-28 19:37
謝謝樓主的分享




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 特级a欧美做爰片毛片 | 国产乱码精品1区2区3区 | 可以免费看的毛片 | 国产一区二区三区四区五区加勒比 | 免费在线一区二区 | 欧美日韩在线视频一区 | 国产美女黄色片 | 国产日韩一区二区三免费 | 久久一日本道色综合久久 | 成人在线国产 | 午夜精品久久久久久久久久久久久 | 99精品免费| 日韩无| 最新中文字幕在线 | 精品视频一区二区三区在线观看 | 91精品国产综合久久久久久蜜臀 | 日韩中文字幕一区二区 | 久久99蜜桃综合影院免费观看 | 亚洲国产高清在线观看 | 免费视频一区二区 | 韩日在线视频 | 久久亚洲欧美日韩精品专区 | 免费视频一区二区 | 奇米av| 日本成人二区 | 亚洲精品福利视频 | 91精品亚洲| 视频1区 | 黄色av网站免费看 | 久久精品中文字幕 | 91福利网址 | 秋霞在线一区二区 | 黑人精品欧美一区二区蜜桃 | av在线二区 | a久久 | 国产一区二区三区四区在线观看 | 精品国产乱码久久久久久丨区2区 | 国产精品99久久久久久宅男 | 成人av网站在线观看 | 欧美男人的天堂 | 久久久综合 |