51单片机c语言直流电机廷迟启停,51单片机控制直流电机不会加定时器延时程序...

这是自己改的延时,串口输入1,电机转动,再输入其他没用了

#include

void uart_init();

void qudong (unsigned int t);

sbit en1=P0^0; //l298nen1

unsigned char str ;

int n=1,t=1;

void uart_init()

{

SCON = 0x50;//设置串口工作方式1

TMOD = 0x20;//设置计数器工作方式2

TMOD |= 0x01;

PCON = 0x00;//即SMOD=1,波特率不加倍

TH1 = 0xFD;//计数器初值,波特率是9600,晶振为11.0592MHz

TL1 = 0xFD;

ET0=1;

ES = 1;//打开接收中断

EA = 1;//打开总中断

TR1 = 1;//打开计数器

}

void delay(unsigned int xms)         //延时函数

{

n=xms;

TH0=(65536-1000*n)/256;

TL0=(65536-1000*n)%256;

TR0=1;

while(t);

TR0=0;

}

void main()

{

en1=0;

uart_init();

while (1)

{

if(str==1)

qudong(0) ; //停止

else if(str==2)

qudong(10) ; //速度1

else if(str==3)

qudong(15) ; //速度2

else if(str==4)

qudong(20) ; //速度3

}

}

void qudong (unsigned int t)

{

en1=1;

delay(t);

en1=0;

delay(20-t);

}

void a(void) interrupt 4

{

if(RI)

{

RI=0;

str=SBUF;

}

}

void b(void) interrupt 1

{

t=0;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值