找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1989|回复: 3
收起左侧

求助:这个单片机串口程序改一下

[复制链接]
ID:299435 发表于 2018-5-4 16:33 | 显示全部楼层 |阅读模式
8黑币
我想:发送1步进电机正转0停止。(其他功能可以不看)
现在:发送1步进电机正转在发1停止。
#include <REG52.H>
#define uint unsigned int
#define uchar unsigned char

uchar state=0;
uchar both=0;
uint t;
uchar count= 0;
unsigned char receiveData='0';
sbit k1=P3^7;
sbit pul1=P1^0;
sbit dir1=P1^1;
sbit en1=P1^2;
sbit pul2=P2^0;
sbit dir2=P2^1;
sbit en2=P2^2;


void delay(uint xms)
{
   uint i,j;
   for(i=xms;i>0;i--)
   for(j=110;j>0;j--);
}

key0()interrupt 0
{
IE0=1;      
TF0=0;
IE1=0;
{pul1=0;
delay(1);
pul1=0;
delay(1);
         }
}

key1()interrupt 1
{
count++;
        if(count==1)count=0;
{
TF0=1;
IE1=0;
         {
         dir1=0;
   pul1=1;
   delay(1);
   pul1=0;
   delay(1);
         }
         }
         }
         
key2()interrupt 2
{
IE1=1;
{
for(t=0;t<400;t++)
{
dir2=1;
pul2=1;
delay(1);
pul2=0;
delay(1);
}
delay(500);
for(t=0;t<400;t++)
{
dir2=0;
pul2=1;
delay(1);
pul2=0;
delay(1);
}
}
IE1=0;
}

void motor1_zz()
{
dir1=1;
  pul1=1;
  delay(1);
  pul1=0;
  delay(1);
        }


void main()
{

SCON=0X50;  
TMOD=0x26;
PCON=0X80;  
TH1=0XFA;  
TL1=0XFA;
//ES=1;   
//EA=1;   
TR1=1;  
IP=0x10;

  IT0=1;   
  IT1=1;     
TH0=TL0=0xff;  
        ET0=1;   
TR0=1;      
TF0=0;      
IE=0X97;   
while(1)
        {
while(both==0)
{
        if(receiveData=='1')
{
        state=1;
                receiveData='0';
            break;
                                         }
                                                  P1=0x0f;
                                        }               
                                while(state==1)
         {                 
if(receiveData=='1')
{
                        state=1;
           receiveData='0';
           break;
}
motor1_zz();
        }
        }}
        


void Usart() interrupt 4
{
IE0=0;
receiveData=SBUF
while(!RI);
RI = 0;
}

回复

使用道具 举报

ID:213173 发表于 2018-5-4 17:38 | 显示全部楼层
receiveData=SBUF   少了分号
回复

使用道具 举报

ID:299435 发表于 2018-5-8 11:58 | 显示全部楼层
wulin 发表于 2018-5-4 17:38
receiveData=SBUF   少了分号

加了,这个可能是复制的时候掉了。
回复

使用道具 举报

ID:299435 发表于 2018-5-8 12:02 | 显示全部楼层
我想按一次就可以执行了。在按一次可以不用停止的。又是个循环的这种。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表