找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

12864曲線顯示18B20溫度,電機PWM調(diào)速等經(jīng)典單片機源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:319808 發(fā)表于 2018-6-14 20:31 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式



12864顯示字符
12864曲線顯示18B20溫度
1602顯示4路AD
1602顯示漢字加時間
1602漸入顯示
18b20報警按鍵可設(shè)值1602顯示
AD采集光敏或熱敏值數(shù)碼管顯示
DA輸出控制LED亮度
DS1302實時時鐘
DS18B20溫度傳感器
EEPROM 24C02芯片
PWM調(diào)試LED燈顯示
紅外解碼數(shù)碼管顯示

單片機源程序如下:
  1. /**************************************************************************/

  2.           //-----------------直流電機PWM調(diào)速實驗程序----------------//

  3. //測試單片機:STC89C52RC

  4. //晶振:11.0592M (外部)

  5. //復(fù)位方式:內(nèi)部復(fù)位
  6.                    
  7. //調(diào)試環(huán)境:KEIL4

  8. //硬件測試環(huán)境:使用“清翔電子”單片機開發(fā)板測試通過

  9. //程序功能: PWM也就是脈寬調(diào)制,是指在周期脈沖信號頻率不變的情況下,改變高電平
  10. //
  11. //                         和低電平的比例,也就是改變占空比。PWM在燈具調(diào)光,直流電機調(diào)速方面
  12. //
  13. //                         有著廣泛的應(yīng)用。程序使用定時器0中斷模擬PWM定時,S2、S3 兩個獨立按
  14. //
  15. //                         鍵控制電機速度,為使演示結(jié)果明顯,PWM輸出
  16. //
  17. //                     到整個P1接口,通過板上的LED燈可以看到亮度的變化。
  18. //
  19. /****************************************************************************/       

  20. #include <reg51.h>

  21. typedef unsigned char uint8;
  22. typedef unsigned int  uint16;

  23. sbit down = P3^0;
  24. sbit up = P3^1;

  25. uint8 t = 0;
  26. uint8 PWM_T = 0;   //占空比控制變

  27. void delay_1ms(uint16 t)
  28. {
  29.         uint16 x,y;
  30.         for(x=t;x>0;x--)
  31.                 for(y=120;y>0;y--);
  32. }


  33.          
  34. /****************************************************
  35.                   主程序
  36. ****************************************************/
  37. void main(void)      
  38. {

  39.         TMOD = 0x02;   //定時器0,工作模式2,8位定時模式
  40.         TH0=210;     //寫入預(yù)置初值(取值1-255,數(shù)越大PWM頻率越高)
  41.         TL0=210;     //寫入預(yù)置值 (取值1-255,數(shù)越大PWM頻率越高)
  42.         TR0=1;       //啟動定時器
  43.         ET0=1;       //允許定時器0中斷
  44.         EA=1;        //允許總中斷
  45.         P1=0xff;          //初始化P1,輸出端口
  46.         PWM_T=30;
  47.          while(1)      
  48.        
  49.          {   
  50.                    if(!up)
  51.                          {
  52.                                 if(PWM_T<250)
  53.                                         {
  54.                                           PWM_T++;
  55.                                         }
  56.                                
  57.                                 delay_1ms(10);
  58.                         }
  59.                  if(!down)
  60.                          {
  61.                                 if(PWM_T>0)
  62.                                         {
  63.                                           PWM_T--;
  64.                                         }
  65.                                
  66.                                 delay_1ms(10);
  67.                         }

  68.        
  69.          }      
  70. }
  71. /****************************************************
  72.                /定時器0中斷模擬PWM
  73. ****************************************************/
  74. timer0() interrupt 1  
  75. {
  76.          t++;    //每次定時器溢出加1
  77.          
  78.          if(t==250)   //PWM周期 100個單位
  79.                  {
  80.                           t=0;  //使t=0,開始新的PWM周期
  81.                           P1=0x00;  //輸出端口
  82.                  }
  83.          
  84.          if(PWM_T==t)  //按照當(dāng)前占空比切換輸出為高電平
  85.                  {  
  86.                          P1=0xff;        //  
  87.                  }
  88. }
復(fù)制代碼

所有資料51hei提供下載:
6.經(jīng)典例程源碼.zip (7.01 MB, 下載次數(shù): 72)


評分

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

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:53978 發(fā)表于 2021-2-22 20:20 | 只看該作者
這個找了好久 感謝
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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