欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 問一個單片機pwm波形仿真的問題 [打印本頁]

作者: 天上的一只猩    時間: 2018-12-30 23:30
標題: 問一個單片機pwm波形仿真的問題
本帖最后由 天上的一只猩 于 2018-12-31 09:08 編輯

#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char                                                         
uchar time;
double count=50;        //定義占空比,并初始占空比為50%
sbit PWM=P3^0;      //P2^0口輸出PWM
void timer0_();   //定時器0初始化
/**************定時0中斷處理******************/
void timer0() interrupt 1
{
  TR0=0;
  TH0=(65536-10)/256;
  TL0=(65536-10)%256;
  TR0=1;
time++;
        if(time>100)
                time=0;
        if(time<=count)
                PWM=1;
        else
                PWM=0;
}
/*********主函數********************/
void main()
{        
  TMOD=0x01; //定時器0工作于方式1
  TH0=(65536-10)/256;
  TL0=(65536-10)%256;
   EA=1;
        ET0=1;
        TR0=1;
        while(1)
        {
        }
}


程序中可以看出pwm周期為1ms  而仿真中根據示波器格數來看 周期卻為22ms 不知大問題出在了哪里 有沒有朋友指導一下 很急

截圖未命名.jpg (25.67 KB, 下載次數: 48)

截圖未命名.jpg

QQ圖片20181230232724.png (54.27 KB, 下載次數: 46)

QQ圖片20181230232724.png

作者: wulin    時間: 2018-12-31 07:31
你中斷周期設置10us,可是執行一次中斷函數內語句需要26us,造成中斷請求信號丟失,這是初學者容易犯的錯誤。Keil單步走一下就明白。
作者: 天上的一只猩    時間: 2019-1-5 22:41
問題已經解決 出在double count=50; 改成int count=50;就好了 但是不明白為什么 有沒有大佬解答一下





歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1