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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC12C5A60S2單片機之PWM程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:167223 發表于 2017-8-27 09:33 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
STC12C5A60S2單片機之PWM

單片機源程序如下:

  1. #include <intrins.h>
  2. #define U8 unsigned char

  3. sfr CCON     = 0xD8; //PCA控制寄存器
  4. sfr CMOD     = 0xD9; //PCA模式寄存器
  5. sfr CCAPM0   = 0xDA; //PCA模塊0模式寄存器 //模塊0對應P1.3/CEX0/PCA0/PWM0(STC12C5A60S2系列)   
  6. sfr CCAPM1   = 0xDB; //PCA模塊1模式寄存器 //模塊1對應P1.4/CEX1/PCA1/PWM1(STC12C5A60S2系列)
  7. sfr CL       = 0xE9; //PCA 定時寄存器 低位
  8. sfr CH       = 0xF9; //PCA 定時寄存器 高位
  9. sfr CCAP0L   = 0xEA; //PCA模塊0的 捕獲寄存器 低位
  10. sfr CCAP0H   = 0xFA; //PCA模塊0的 捕獲寄存器 高位
  11. sfr CCAP1L   = 0xEB; //PCA模塊1的 捕獲寄存器 低位
  12. sfr CCAP1H   = 0xFB; //PCA模塊1的 捕獲寄存器 高位
  13. sfr PCA_PWM0 = 0xF2; //PCA PWM 模式輔助寄存器0
  14. sfr PCA_PWM1 = 0xF3; //PCA PWM 模式輔助寄存器1
  15. sbit CF   = 0xDF;    //PCA計數溢出標志位
  16. sbit CR   = 0xDE;    //PCA計數器 運行控制位
  17. sbit CCF1 = 0xD9;    //PCA模塊1中斷標志
  18. sbit CCF0 = 0xD8;    //PCA模塊0中斷標志

  19. //* CCAPOH = CCAPOL = 0XC0; //模塊0輸出 占空因數為25%
  20. //* CCAPOH = CCAPOL = 0X80; //模塊0輸出 占空因數為50%
  21. //* CCAPOH = CCAPOL = 0X40; //模塊0輸出 占空因數為75%

  22. void PWM_clock(U8 clock);
  23. void PWM_start(U8 module,U8 mode);

  24. void PWM_clock(U8 clock)
  25. {
  26. CMOD |= (clock<<1);
  27. CL = 0x00;
  28. CH = 0x00;
  29. }

  30. void PWM_start(U8 module,U8 mode)
  31. {
  32. CCAP0L = 0XC0;
  33. CCAP0H = 0XC0;   //模塊0初始輸出 占空因數為25%
  34. CCAP1L = 0XC0;
  35. CCAP1H = 0XC0;   //模塊1初始輸出 占空因數為25%

  36. if(module==0)
  37.    {
  38.     switch(mode)
  39.      {
  40.    case 0: CCAPM0 = 0X42;break; //模塊0設置為8位PWM輸出,無中斷
  41.    case 1: CCAPM0 = 0X53;break; //模塊0設置為8位PWM輸出,下降沿產生中斷
  42.    case 2: CCAPM0 = 0X63;break; //模塊0設置為8位PWM輸出,上升沿產生中斷
  43.    case 3: CCAPM0 = 0X73;break; //模塊0設置為8位PWM輸出,跳變沿產生中斷
  44.    default: break;
  45.    }
  46. }
  47. else
  48.     if(module==1)
  49.      {
  50.       switch(mode)
  51.        {
  52.    case 0: CCAPM1 = 0X42;break; //模塊1設置為8位PWM輸出,無中斷
  53.    case 1: CCAPM1 = 0X53;break; //模塊1設置為8位PWM輸出,下降沿產生中斷
  54.    case 2: CCAPM1 = 0X63;break; //模塊1設置為8位PWM輸出,上升沿產生中斷
  55.    case 3: CCAPM1 = 0X73;break; //模塊1設置為8位PWM輸出,跳變沿產生中斷
  56.    default: break;
  57.    }
  58.    }
  59.    else
  60.      if(module==2)
  61.         {
  62.         switch(mode)
  63.     {
  64.       case 0: CCAPM0 = CCAPM1 = 0X42;break; //模塊0和1設置為8位PWM輸出,無中斷
  65.       case 1: CCAPM0 = CCAPM1 = 0X53;break; //模塊0和1設置為8位PWM輸出,下降沿產生中斷
  66.       case 2: CCAPM0 = CCAPM1 = 0X63;break; //模塊0和1設置為8位PWM輸出,上升沿產生中斷
  67.       case 3: CCAPM0 = CCAPM1 = 0X73;break; //模塊0和1設置為8位PWM輸出,跳變沿產生中斷
  68. ……………………

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

所有資料51hei提供下載:
025、STC12C5A60S2單片機之PWM.rar (49.23 KB, 下載次數: 98)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:57896 發表于 2017-8-28 20:59 | 只看該作者
謝謝!學習一下PCA模塊使用。
回復

使用道具 舉報

板凳
ID:266164 發表于 2019-12-14 17:07 | 只看該作者
這個程序如何修改PWM的頻率和正脈寬
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久网国产 | 精品香蕉一区二区三区 | 一区二区三区 在线 | 国产三区在线观看视频 | 国产精品国色综合久久 | 日本又色又爽又黄又高潮 | 在线中文视频 | 亚洲成人免费视频在线观看 | 日本一区二区三区在线观看 | 美女中文字幕视频 | 亚洲欧美日韩在线不卡 | 天天操天天操 | 亚洲协和影视 | 日本三级日产三级国产三级 | 啪啪免费网站 | 97超碰在线免费 | 99国产精品久久久 | 蜜桃精品噜噜噜成人av | 91最新在线视频 | 蜜桃臀av一区二区三区 | 精品久久久久久18免费网站 | 日本成人一区二区 | 久久中文字幕一区 | 欧美全黄 | 黄网站免费在线观看 | 国产午夜精品一区二区三区嫩草 | 日韩三级在线 | 国产精品99久久久久久大便 | 国产精品99999 | 国产成人精品一区二三区在线观看 | 欧美精品乱码久久久久久按摩 | av黄色在线播放 | .国产精品成人自产拍在线观看6 | 国产9久 | 日韩超碰在线 | 国产一区二区久久久 | 亚洲免费一区二区 | 中文字幕亚洲欧美日韩在线不卡 | 国产精品1区2区 | 欧一区| 成人免费视频网站在线观看 |