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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4997|回復: 13
收起左側

請問STC8單片機怎么用定時器0溢出率改變PWM頻率,定時器如何設置

[復制鏈接]
ID:531986 發表于 2019-9-18 20:43 | 顯示全部樓層 |閱讀模式
麻煩大家
回復

使用道具 舉報

ID:94031 發表于 2019-9-19 09:48 | 顯示全部樓層
不是改變頻率,而是改變脈寬比例,這種東西網上搜一搜很容易找到。
回復

使用道具 舉報

ID:65956 發表于 2019-9-19 15:46 | 顯示全部樓層
用單片機自身的PCA功能就好了
回復

使用道具 舉報

ID:230975 發表于 2019-9-19 16:05 | 顯示全部樓層
STC8系統列硬件的PWM可以直接使用,不用定時器了。
回復

使用道具 舉報

ID:230975 發表于 2019-9-19 16:05 | 顯示全部樓層
可以設置,頻率和占空比
回復

使用道具 舉報

ID:611078 發表于 2019-9-19 21:18 | 顯示全部樓層
STC8-.jpg
我剛買的,寫的不錯。
回復

使用道具 舉報

ID:531986 發表于 2019-9-27 15:09 | 顯示全部樓層
xuyaqi 發表于 2019-9-19 09:48
不是改變頻率,而是改變脈寬比例,這種東西網上搜一搜很容易找到。

嗯,你這個叫做改變占空比,我知道
回復

使用道具 舉報

ID:531986 發表于 2019-11-3 14:33 | 顯示全部樓層
吳衛革 發表于 2019-9-19 21:18
我剛買的,寫的不錯。

我也買了,以前的51不夠用
回復

使用道具 舉報

ID:634800 發表于 2019-11-3 15:25 | 顯示全部樓層
如果使用通用定時器的話,可以直接設置指向該定時器的寄存器的值,調整定時器的溢出時間和啟動條件就可以了,具體寄存器的代碼和設置可以直接查芯片的數據手冊
回復

使用道具 舉報

ID:155507 發表于 2019-11-3 18:29 | 顯示全部樓層
我給你來個試試


  1. //本示例在Keil開發環境下請選擇Intel的8058芯片型號進行編譯
  2. //若無特別說明,工作頻率一般為11.0592MHz

  3. #include "reg51.h"
  4. #include "intrins.h"

  5. //測試工作頻率為11.0592MHz

  6. sfr     CCON        =   0xd8;   //     //PCA控制寄存器
  7. sbit    CF          =   CCON^7; // PCA計數器溢出(CH,CL由FFFFH變為0000H)標志。PCA計數器溢出后由硬件置位,必須由軟件清0。
  8. sbit    CR          =   CCON^6;        // 1: 允許PCA計數器計數,必須由軟件清0。
  9. sbit    CCF3        =   CCON^3;        // PCA 模塊3中斷標志,由硬件置位,必須由軟件清0。      
  10. sbit    CCF2        =   CCON^2;        // PCA 模塊2中斷標志,由硬件置位,必須由軟件清0。      
  11. sbit    CCF1        =   CCON^1;        // PCA 模塊1中斷標志,由硬件置位,必須由軟件清0。      
  12. sbit    CCF0        =   CCON^0;        // PCA 模塊0中斷標志,由硬件置位,必須由軟件清0。   
  13. sfr     CMOD        =   0xd9;      //     //PCA模式寄存器
  14. sfr     CL          =   0xe9;      //PCA模塊 16位寄存器 低字節
  15. sfr     CH          =   0xf9;      //PCA模塊 16位寄存器 高字節
  16. sfr     CCAPM0      =   0xda;      //PCA模塊0的工作模式寄存器。   //PCA模塊0模式控制寄存器
  17. sfr     CCAP0L      =   0xea;      //PCA模塊0的捕捉/比較寄存器低8位。
  18. sfr     CCAP0H      =   0xfa;      //PCA模塊0的捕捉/比較寄存器高8位。
  19. sfr     PCA_PWM0    =   0xf2;      //PCA模塊0 PWM寄存器。
  20. sfr     CCAPM1      =   0xdb;      //PCA模塊1的工作模式寄存器。
  21. sfr     CCAP1L      =   0xeb;      //PCA模塊1的捕捉/比較寄存器低8位。
  22. sfr     CCAP1H      =   0xfb;      //PCA模塊1的捕捉/比較寄存器高8位。
  23. sfr     PCA_PWM1    =   0xf3;      //PCA模塊1 PWM寄存器。
  24. sfr     CCAPM2      =   0xdc;      //PCA模塊2的工作模式寄存器。
  25. sfr     CCAP2L      =   0xec;      //PCA模塊2的捕捉/比較寄存器低8位。
  26. sfr     CCAP2H      =   0xfc;      //PCA模塊2的捕捉/比較寄存器高8位。
  27. sfr     PCA_PWM2    =   0xf4;      //PCA模塊2 PWM寄存器。
  28. sfr     CCAPM3      =   0xdd;      //PCA模塊3的工作模式寄存器。
  29. sfr     CCAP3L      =   0xed;      //PCA模塊3的捕捉/比較寄存器低8位。
  30. sfr     CCAP3H      =   0xfd;      //PCA模塊3的捕捉/比較寄存器高8位。
  31. sfr     PCA_PWM3    =   0xf5;      //PCA模塊3 PWM寄存器。
  32. sfr     AUXR        =   0x8E;      //輔助寄存器
  33. sfr     INTCLKO     =   0x8f;      //中斷與時鐘輸出控制寄存器

  34. void main()
  35. {
  36.     AUXR &= 0x7F;                          //定時器時鐘12T模式
  37.     TMOD &= 0xF0;                          //設置定時器模式       
  38.     TMOD = 0x00;                                //定時器T0 模式0 16位自動重裝載模式
  39.     TL0 = 0x66;                                 //65536-11.0592M/12/1000
  40.     TH0 = 0xfc;                                 //1000微秒@11.0592MHz
  41.     TF0 = 0;                                            //清除TF0標志       
  42.     TR0 = 1;                                    //啟動定時器
  43.     INTCLKO = 0x01;                             //使能時鐘輸出
  44.        
  45.     CCON = 0x00;
  46. //    CMOD = 0x08;                                //PCA時鐘為系統時鐘
  47.     CMOD = 0x04;                                //PCA時鐘為定時器T0的溢出脈沖
  48.     CL = 0x00;
  49.     CH = 0x00;
  50.     CCAPM0 = 0x42;                              //PCA模塊0為PWM工作模式
  51.     PCA_PWM0 = 0x80;                            //PCA模塊0輸出6位PWM P1.7
  52.     CCAP0L = 0x20;                              //PWM占空比為50%[(40H-20H)/40H]
  53.     CCAP0H = 0x20;
  54.     CCAPM1 = 0x42;                              //PCA模塊1為PWM工作模式
  55.     PCA_PWM1 = 0x40;                            //PCA模塊1輸出7位PWM  P1.6
  56.     CCAP1L = 0x20;                              //PWM占空比為75%[(80H-20H)/80H]
  57.     CCAP1H = 0x20;
  58.     CCAPM2 = 0x42;                              //PCA模塊2為PWM工作模式
  59.     PCA_PWM2 = 0x00;                            //PCA模塊2輸出8位PWM P1.5
  60.     CCAP2L = 0x20;                              //PWM占空比為87.5%[(100H-20H)/100H]
  61.     CCAP2H = 0x20;
  62.     CCAPM3 = 0x42;                              //PCA模塊3為PWM工作模式
  63.     PCA_PWM3 = 0xc0;                            //PCA模塊3輸出10位PWM P1.4
  64.     CCAP3L = 0x20;                              //PWM占空比為96.875%[(400H-20H)/400H]
  65.     CCAP3H = 0x20;
  66.     CR = 1;                                     //啟動PCA計時器

  67.        
  68.     while (1);
  69. }

復制代碼
回復

使用道具 舉報

ID:531986 發表于 2019-11-3 23:04 | 顯示全部樓層
我已經做來了,謝謝,這個51的也能實現
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜三级视频 | 一区二区伦理电影 | 国产午夜精品久久久 | 欧洲av一区| 人人爱干 | 在线播放精品视频 | 亚洲午夜视频在线观看 | 国产精品成人一区二区 | 久色网 | 亚洲欧美国产精品久久 | 精品免费国产一区二区三区四区 | 精品视频在线播放 | www.日日干| 精品国产色 | 中国一级特黄真人毛片免费观看 | 日韩成人精品一区 | 激情欧美日韩一区二区 | 91观看 | 日韩欧美国产精品一区二区三区 | 亚洲天堂影院 | 久久精品亚洲成在人线av网址 | 黄色一级免费看 | 一区二区福利视频 | 在线视频a| 久久综合色综合 | 综合五月 | 国产激情在线 | 亚洲av一级毛片 | 日韩精品 电影一区 亚洲 | 欧美一级免费看 | 亚洲欧美中文日韩在线v日本 | 日干夜操 | 男女啪啪高潮无遮挡免费动态 | 中文字幕精品一区 | 特级黄一级播放 | 日韩欧美一级精品久久 | 色偷偷噜噜噜亚洲男人 | 精品国产青草久久久久福利 | 日本一二区视频 | 九一精品 | 午夜精品久久 |