找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

關(guān)于PWM脈沖輸出的問(wèn)題,困擾我很久了

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:66425 發(fā)表于 2014-9-20 19:51 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
#include<reg51.h>        // 本程序是要輸出脈沖周期為20ms高電平1ms的脈沖用來(lái)控制舵機(jī),用兩個(gè)定時(shí)器,每次中斷時(shí)間都是0。1ms,中斷10次就是1ms。
sbit P1_0=P1^0;          //          用兩個(gè)定時(shí)器,每次中斷時(shí)間都是0。1ms,中斷10次就是1ms。         
int n,m,np=0,mp=0;
void init()          //初始化設(shè)置
{
   TMOD=0X22;
   EA=1;
   ET0=1;
   ET1=1;
}
main()
{  

   init();
   P1_0=0;
   while(1)
   {
   n=10;m=200-10;                           // n m確定中斷的次數(shù)
   TH0=156;                                  //定時(shí)器方式2的初值設(shè)置晶振是12mhz,每0.1ms一個(gè)中斷TH0=256-100;
   TL0=156;
   TH1=156;
   TH1=156;
   P1_0=1;TR0=1;
   while(np<n){P2=np;}         //等待定時(shí)器1的中斷,中斷10次后就是1ms
   TR0=0;P1_0=0;TR1=1;          
   while(mp<m){P3=mp;}
    TR1=0;
        }
}
void pwm0() interrupt 1
{                                                                 
   np++;   P1_0=1;                   //np用來(lái)判別中斷了幾次,與n比較中斷10后就執(zhí)行下面程序
    TH0=156;
    TL0=156;
}
void pwm1() interrupt 3
{
  mp++;          P1_0=0;
   TH1=156;
   TL1=156;
}
求大神解答已經(jīng)困擾我很久了

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

使用道具 舉報(bào)

沙發(fā)
ID:444215 發(fā)表于 2020-5-30 14:56 | 只看該作者
為啥不用一個(gè)定時(shí)中斷呢
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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