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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

寫了一個PWM波程序,STC12單片機運行錯誤,51單片機運行正確,請問為什么呢?

查看數: 3067 | 評論數: 10 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2021-3-10 09:58

正文摘要:

自己寫了一個PWM波程序,頻率50HZ,用的STC12C5A單片機,然后用邏輯分析儀測了一下,結果出現了錯誤的連續波 我在一個群里問了一下,有人用51單片機運行我的程序,結果卻是對的 但我用STC12C5a單片機, ...

回復

ID:57657 發表于 2021-4-18 18:45
study2018 發表于 2021-4-18 18:12
void time0() interrupt 1
{
        time++;

定時器模式2,裝什么初值。
ID:430857 發表于 2021-4-18 18:12
angmall 發表于 2021-3-15 12:00
可以通過設置AUXR為12分頻,解決這個問題

void time0() interrupt 1
{
        time++;
        if(time<200)     //周期為0.1ms*200=20ms
        {
                if(time<=15) //高電平時間為0.1ms*15=1.5ms
                PWM=1;
                else
                PWM=0;
        }
        else
        time=0;
}

你的中斷程序里面居然沒有裝初值,也能正常運行嗎?
ID:155507 發表于 2021-3-15 12:00
可以通過設置AUXR為12分頻,解決這個問題

  1. #include <stc12c5a.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <math.h>
  5. #define uchar unsigned char
  6. #define uint  unsigned int
  7. /*用定時器T0,任選一管腳P21輸出PWM波*/
  8. /*單片機晶振11.0592MHZ,時鐘周期為1/11.0592us*/
  9. /*11.0592M除以12=921600,就是1秒921600個機器周期*/
  10. /*0.1ms就是92機器周期,輸出PWM波周期為20ms,分成200份,
  11. 中斷200次,定時器初值為256-92=164*/
  12. /*周期20ms中高電平時間1.5ms,也就是0.1ms×15*/

  13. sbit PWM=P2^1;//P21輸出PWM波   
  14. uchar time=0;   //占空比

  15. void time0init()//定時器初始化
  16. {
  17.         AUXR &= 0x7F;                //定時器時鐘12T模式
  18.         TMOD &= 0xF0;                //設置定時器模式
  19.         TMOD|=0x02;   //定時器0工作方式2,8位重裝
  20.         TH0=164;     //92個機器周期,即0.1ms
  21.         TL0=164;
  22.         ET0=1;
  23.         EA=1;
  24.         TR0=1;
  25. }

  26. void time0() interrupt 1
  27. {
  28.         time++;
  29.         if(time<200)     //周期為0.1ms*200=20ms
  30.         {
  31.                 if(time<=15) //高電平時間為0.1ms*15=1.5ms
  32.                 PWM=1;
  33.                 else
  34.                 PWM=0;
  35.         }
  36.         else
  37.         time=0;
  38. }

  39. void main()
  40. {
  41.         time0init();
  42.         while(1)
  43.         {
  44.                
  45.         }
  46. }

復制代碼
ID:796670 發表于 2021-3-15 08:22
glinfei 發表于 2021-3-10 10:55
你算錯了,對于AT89c51,1個機器周期=12個震蕩周期,對于STC12C5A60S2,1個機器周期=1個震蕩周期。

請問可以通過設置AUXR為12分頻,解決這個問題嗎?
ID:796670 發表于 2021-3-15 08:17
dj3365191 發表于 2021-3-11 10:15
AT89C51是12T單片機,STC12是1T單片機

請問STC12的定時器不是默認12分頻嗎?這樣他的機器周期和51不一樣嗎?
ID:143767 發表于 2021-3-11 10:15
AT89C51是12T單片機,STC12是1T單片機
ID:57657 發表于 2021-3-10 23:55
這種波形,可能是看門狗有問題。
ID:584814 發表于 2021-3-10 17:17
看過STC那些山寨般的廣告了么,速度快真的不是胡吹的,樓上正解
ID:844772 發表于 2021-3-10 10:55
你算錯了,對于AT89c51,1個機器周期=12個震蕩周期,對于STC12C5A60S2,1個機器周期=1個震蕩周期。

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久九九九女人毛片 | 国产二区在线播放 | 欧美一级二级三级视频 | 欧美va大片 | 欧美精品久久久 | 8x国产精品视频一区二区 | www.激情.com | 国产婷婷| 国产精品一区二区三区99 | 国产精品无码永久免费888 | 日韩av一区二区在线观看 | 日日操视频| 欧美精品久久久 | 一区二区中文字幕 | 一级片在线免费播放 | 国产一区中文字幕 | 九七午夜剧场福利写真 | 亚洲成人av一区二区 | 天天久久 | 精品欧美色视频网站在线观看 | 亚洲一级黄色 | 亚洲精品91| 国产在线精品一区 | 手机看片在线播放 | 欧州一区二区 | 成人一区二区三区在线观看 | 亚洲国产网址 | 日本a级大片 | 99热这里有精品 | 亚洲狠狠 | 国产成人在线视频 | 99亚洲精品 | 婷婷福利 | 欧美一区二区免费在线 | 国产精品高清在线 | 伊人久麻豆社区 | 国产精品亚洲综合 | 毛片站| 久久久久国产一区二区 | 日韩欧美在 | 国产亚洲一区二区三区在线 |