找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 3965|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

基于STC15單片機(jī)的SI7021 IDC機(jī)房放火控制系統(tǒng)源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
粘貼一段STC15W4K32S4的PWM程序,希望大家喜歡,里面用了SI7021溫濕度傳感器,提供全部源碼

單片機(jī)源程序如下:
  1. #include <STC15F2K60S2.H>
  2. #include <STC15_PWM.H>


  3. #define EAXSFE() P_SW2 |= 0x80;     //CPU訪問(wèn)外部擴(kuò)展
  4. #define EAXRAM() P_SW2 &= 0x7F;                //CPU訪問(wèn)內(nèi)部RAM

  5. unsigned int PWM_Duty = 600;
  6. int PWM_Right_Duty = 100,PWM_Left_Duty = 100;
  7. unsigned int PWM_Freq = 2200;

  8. void PWM_init()
  9. {
  10.         PWMCFG = 0;          //PWM配置寄存器 全部初始低電平
  11.         EAXSFE();        
  12.         PWMCKS = 0x00;//不分頻,分頻數(shù)=低四位加一               
  13.         PWM2CR = 0x08;
  14.         PWM3CR = 0x00;
  15.         P2M0 |= (1<<7);
  16.         P2M0 |= (1<<1);
  17.         PWM2T1H = PWM3T1H = 0;
  18.         PWM2T1L = PWM3T1L = 0;
  19.         PWM_Flash_Freq(PWM_Freq);
  20.         PWM_Flash_Duty(PWM_Duty);
  21.         EAXRAM();
  22. /////////////////////////////////////        
  23.         PWMCR = 0x83;        //PWM選擇控制寄存器
  24. //PWMCR 啟用PWMn對(duì)應(yīng)為置“1”        ,
  25. //ENPWM/ECBI/EN7/EN6/EN5/EN4/EN3/EN2/        
  26. //        1                        0                0                0                0                0                1                1
  27. //////////////////////////////////////        
  28. }

  29. void PWM2_Flash_Duty(uint Duty)
  30. {
  31.         PWM_Right_Duty = Judgment_value(Duty);
  32.         EAXSFE();
  33.         PWM2T2H = PWM_Duty / 256;
  34.         PWM2T2L = PWM_Duty % 256;               
  35.         EAXRAM();        
  36. }

  37. void PWM3_Flash_Duty(uint Duty)
  38. {
  39.         PWM_Left_Duty = Judgment_value(Duty);
  40.         EAXSFE();
  41.         PWM3T2H = PWM_Duty / 256;
  42.         PWM3T2L = PWM_Duty % 256;               
  43.         EAXRAM();
  44. }

  45. void PWM_Flash_Duty(uint Duty)
  46. {
  47.         PWM_Duty = Judgment_value(Duty);
  48.         EAXSFE();
  49.         PWM2T2H =        PWM3T2H = PWM_Duty / 256;
  50.         PWM2T2L =        PWM3T2L = PWM_Duty % 256;
  51.         EAXRAM();        
  52. }        

  53. void PWM_Flash_Freq(uint Freq)        
  54. {
  55.         Freq = Judgment_value(Freq);
  56.         EAXSFE();
  57.         PWMCH = Freq / 256;
  58.         PWMCL = Freq % 256;               
  59.         EAXRAM();
  60. }

  61. uint Judgment_value(uint value)
  62. {
  63.         if(value>(PWM_Freq-20))
  64.                 value=PWM_Freq-20;
  65.         if(value<11)
  66.                 value=20;
  67.         return value;
  68. }
復(fù)制代碼

所有資料51hei提供下載:
防火控制.rar (747.29 KB, 下載次數(shù): 31)


評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:205015 發(fā)表于 2019-3-25 13:45 | 只看該作者
感謝開(kāi)源分享,借鑒一下。
回復(fù)

使用道具 舉報(bào)

板凳
ID:461266 發(fā)表于 2019-12-15 13:22 | 只看該作者
感謝樓主分享
回復(fù)

使用道具 舉報(bào)

地板
ID:230926 發(fā)表于 2025-4-30 12:12 | 只看該作者
弱弱的問(wèn)一句機(jī)房里為啥要放火?
回復(fù)

使用道具 舉報(bào)

5#
ID:108361 發(fā)表于 2025-4-30 14:47 | 只看該作者
xujg74 發(fā)表于 2025-4-30 12:12
弱弱的問(wèn)一句機(jī)房里為啥要放火?

大概是筆誤,防火吧
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表