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

QQ登錄

只需一步,快速開始

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

我是新手,用P0.0產(chǎn)生周期0.1ms脈沖,作為計(jì)數(shù)器T1輸入,定時(shí)器T0定時(shí)1ms,在定時(shí)器中斷中判斷技術(shù)脈沖個(gè)數(shù),進(jìn)而驅(qū)動(dòng)電機(jī)正反轉(zhuǎn),問(wèn)題是拷進(jìn)代碼后蜂鳴器

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:41459 發(fā)表于 2012-6-7 15:09 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這是程序代碼

#include<reg52.h>
#include <intrins.h>
 
sbit wave=P0^0;
unsigned char Flag;//定義正反轉(zhuǎn)和停止標(biāo)志位
//sbit KEY = P3^3;


unsigned char code F_Rotation[4]={0xf1,0xf2,0xf4,0xf8}; //正轉(zhuǎn)表格
unsigned char code B_Rotation[4]={0xf8,0xf4,0xf2,0xf1}; //反轉(zhuǎn)表格

 void Delay(unsigned int i)//延時(shí)
{
 while(--i);
}

 

void T0ISR(void) interrupt 1
{
 unsigned char i;
 unsigned char a;
 a=TL1;
 while(a>3&& a<11)
 {
     for(i=0;i<4;i++)      //4相
      {
      P2=F_Rotation;  //輸出對(duì)應(yīng)的相 可以自行換成反轉(zhuǎn)表格
      Delay(500);        //改變這個(gè)參數(shù)可以調(diào)整電機(jī)轉(zhuǎn)速 ,數(shù)字越小,轉(zhuǎn)速越大
   }
   }
  while(a<3||a>11)
   {
  
    for(i=0;i<4;i++)      //4相
      {
      P2=B_Rotation;  //輸出對(duì)應(yīng)的相 
      Delay(500);        //改變這個(gè)參數(shù)可以調(diào)整電機(jī)轉(zhuǎn)速 ,數(shù)字越小,轉(zhuǎn)速越大
   }
   }
   a=0;
   TL1=0;
  TL0=0x18;
     TH0=0x1c;


}

 void delay1()
{
unsigned char a,b,c;

for(a=0;a<1;a++)
   for(b=0;b<1;b++)
     for(c=0;c<61;c++);
}

void main()
{

TMOD=0x40;
TL0=0x18;
TH0=0x1c;
TR0=1;
TR1=1;
ET0=1;
EX1=1;         //外部中斷0開
IT1=1;         //邊沿觸發(fā)
EA=1;


 while(1)
   {
     wave=0;
  delay1();
  wave=1;
 
 }   
 }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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