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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機PWM脈寬調制控制AC220V白熾燈程序

[復制鏈接]
跳轉到指定樓層
樓主
用脈寬調制控制AC220V白熾燈程序,本人經過試驗,基本正確。控制部分用普中開發板,SCR部分外接。詳見硬件連接圖:


單片機源程序如下:
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit K1=P1^0;           //按鍵1,PWM脈沖寬度值增加
  5. sbit K2=P1^1;           //按鍵2,PWM脈沖寬度值減少
  6. sbit LED=P1^3;          //LED顯示
  7. sbit PWM_OUT=P1^4;      //PWM輸出,SCR控制

  8. uchar PWM,num;          //PWM設定脈沖寬度值,num計算中斷次數;
  9. void delay(uint ms)     //1ms延時
  10. {
  11.         uchar i;
  12.         while(ms--)
  13.         {
  14.                 for(i=0;i<120;i++);
  15.         }
  16. }

  17. void keyscan()          //按鍵掃描函數
  18. {
  19.         if(K1==0)             //按鍵1是否按下
  20.         {
  21.                 delay(50);          //去抖延時
  22.                 if(K1==0)           //按鍵1是否繼續按下
  23.                 {
  24.                         if(PWM<32)        //PWM設定脈沖寬度值是否小于32
  25.                         {
  26.                                 PWM++;          //PWM設定脈沖寬度值加1
  27.                                 delay(100);
  28.                         }

  29.                 }
  30.         }
  31.         if(K2==0)             //按鍵2是否按下
  32.         {
  33.                 delay(50);          //去抖延時
  34.                 if(K2==0)           //按鍵2是否繼續按下
  35.                 {
  36.                         if(PWM>1)         //PWM設定脈沖寬度值是否大于1
  37.                         {
  38.                                 PWM--;          //PWM設定脈沖寬度值減1
  39.                                 delay(100);
  40.                         }

  41.                 }
  42.         }
  43. }
  44. void init_t0()          //定時器T0初始化
  45. {
  46.         TMOD=0x01;            //方式1,16位定時器
  47.         TH0=(65536-500)/256;  //0,5ms定時
  48.         TL0=(65536-500)%256;  //0,5ms定時
  49.         EA=1;                 //開總中斷
  50.         ET0=1;                //開定時器T0
  51.         TR0=1;                //啟動定時器T0
  52. }
  53. void t0() interrupt 1   //T0中斷服務函數
  54. {
  55.         TR0=0;                //停止T0定時器
  56.         TH0=(65536-500)/256;  //0,5ms定時
  57.         TL0=(65536-500)%256;  //0,5ms定時
  58.         num++;                //num計算中斷次數+1
  59.         if(num>32)            //中斷次數大于32
  60.         {
  61.                 num=0;              //中斷次數=0
  62.         }
  63.         if(num<=PWM)          //中斷次數<=PWM脈沖寬度
  64.         {
  65.                 LED=0x01;           //輸出高電平,小燈滅
  66.     PWM_OUT=0x00;       //輸出低電平,關閉SCR
  67.    
  68.         }
  69.         else
  70.         {
  71.                 LED=0x00;           //輸出低電平,小燈亮
  72.     PWM_OUT=0x01;       //輸出高電平,啟動SCR
  73.         }
  74.         TR0=1;                //啟動T0定時器,等待下一次中斷
  75. ……………………

  76. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
PWM_鍵調LED顯示脈寬控制SCR.rar (71.82 KB, 下載次數: 21)




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

使用道具 舉報

沙發
ID:1 發表于 2017-6-29 22:36 | 只看該作者
樓主這樣控制燈會閃嗎?
回復

使用道具 舉報

板凳
ID:149988 發表于 2017-6-30 06:46 | 只看該作者

RE: 單片機PWM脈寬調制控制AC220V白熾燈程序

admin 發表于 2017-6-29 22:36
樓主這樣控制燈會閃嗎?

程序還有待于改進,燈實際上還是以減低頻率的方式進行亮度調整,只有脈寬最大時,燈的亮度是不閃爍的。如果是用來調整溫度還是沒有問題的。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕一二三 | 欧美成人手机在线 | 中文字幕一区二区三区不卡在线 | 亚洲综合色自拍一区 | 99小视频| 精品视频一二区 | 国产色婷婷精品综合在线手机播放 | 成人在线免费电影 | 成人免费视频观看 | 久久五月婷 | 日日爱夜夜操 | 久久久久久中文字幕 | 精品亚洲91| 国产精品一区二区无线 | 亚洲草草视频 | 亚洲国产精品一区二区久久 | 一区二区三区免费 | 久久91精品久久久久久9鸭 | 国产精品久久久久久久久久久久久 | 午夜精品久久久久久久久久久久久 | 亚洲精品毛片av | 欧美日韩中文在线 | 久久国产一区 | 国产探花在线精品一区二区 | 涩涩导航 | 91.色| 国产福利在线小视频 | 9久久| 6080yy精品一区二区三区 | 免费麻豆视频 | 天天夜碰日日摸日日澡 | 国产精品a久久久久 | 日韩成人 | 91婷婷韩国欧美一区二区 | 日本高清视频在线播放 | 精品欧美激情精品一区 | 中文字幕第九页 | 99久久精品免费看国产免费软件 | 日韩精品在线播放 | 男女羞羞视频在线免费观看 | 人人鲁人人莫人人爱精品 |