导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→jhg[zhoubinjiang]

 *第12975篇: jhg

  
楼 主:zhoubinjiang 2003年6月2日11:04
 jhg
串口中断的时候,我用 interrupt 1 using 1后面的using 1可不可以不要,请回到我的邮箱里,谢谢!
  
2楼:huzimax 2003年6月2日12:56
 interrupt 1是串口吗?
  
3楼:chessman 2003年6月2日16:44
 不明白什么意思?能否说的更详细一些!
  
4楼:zhoubinjiang 2003年6月5日08:42
 #include <reg51.h>

#include   <reg51.h>  

#define uchar unsigned char

uchar sn=10;                       //步数,控制时,每段分为10步

uchar idata nowrate[2]={0x00,0x00};//匀速定时器赋初值,匀速

uchar idata *pp;                   //状态分为加速,匀速,减速共三种状态

    是什么意思 bit pf=1;                         //中断标志


void contrl(direct,mode)

是什么意思  bit direct;                       //方向

uchar mode;                      //速度控制

{

uchar i;

uchar idata *cmode;

uchar idata rise[20];            //加速

uchar idata fall[20];           //减速

uchar idata plus[7]={0x01,0x03,0x02,0x06,0x04,0x05,0x00};

uchar idata minu[7]={0x05,0x04,0x06,0x02,0x03,0x01,0x00};

if (direct) cmode=plus;

   else cmode =minu;

switch(mode)

  {

   case 1:
   
   pp=rise;                 //PP指向定时器的值

break;

   case 2:
   
   pp=nowrate;

break;

   case 3:
   
   pp=fall; 

break;

   default:
   
   pp=nowrate;

break;

  }

  do

  {

   P1=cmode[i];    //输出转动控制字

   if(cmode[++i]==0x00)i=0;

   while(pf);     //等待定时器的时间到

   pf=1;

   if((mode==1)||(mode==3))pp+=2;   //定时器的初值变化

  }

  while(sn--);

}


void intt0()interrupt 1     //T/C0中断服务程序

{

  TL0=*pp;              //赋初值,

  nowrate[0]=TL0;      //并记录定时器的初值

  TH0=*(pp+1);

  nowrate[1]=TH0;

  pf=0;

}


void main()

{

  TMOD=0x01;

  TH0=0x00;

  TL0=0x00;

  TR0=1;

  ET0=1;

  EA=1;

  contrl(1,1);

  sn=10;

  contrl(1,2);

  sn=10;

  contrl(1,3);

}

  
5楼:zhoubinjiang 2003年6月5日08:34
 谢谢你的回复,我现在明白了!
谢谢你的回复,我现在明白了!

>>>>>>对该主题发表你的看法

本主题贴数5,分页: [第1页]


[上一篇主题]:8052控制8019的一体化电路图中,谁能告诉我耦合隔离变压器的作用啊???

[下一篇主题]:求助(dsp 资料 )