80c51用c语言能编程吗,怎么用80c51产生PWM信号?用C语言怎么编程,我这里有个汇编的,我自己编的不好使,不知道怎么回事。...

本文档展示了一个使用80C52微控制器通过L298驱动电机并调节转速的程序。程序中定义了相关端口和中断服务函数,包括串行通信接收数据设置转速、定时器中断控制脉冲等关键功能。通过调整百分比值来控制电机速度。
摘要由CSDN通过智能技术生成

这是我编得程序:用80c52通过L298控制电机转速

下面是程序:

#include

#define uchar unsigned char

#define uint unsigned int

uchar Dat,time,percent;

sbit v1=P2^5;//v1,v2,v3,v4控制转速,p1p2其它口控制方向

sbit v2=P2^6;

sbit v3=P1^5;

sbit v4=P1^6;

void serials(void) interrupt 4 using 0{

if(RI)

{

Dat=SBUF;

P2=Dat;

P1=Dat;

RI=0;

SBUF=0x51;

}

else if(TI)

{

TI=0;

}

}

void setspeed(uchar x)

{

if(x>63)

if(x>126) percent=99;

else percent=60;

else if(x>31) percent=30;

else percent=1;

}

void pulse(void) interrupt 1 using 1

{

setspeed(Dat);

TH0=0xFD;

TL0=0xFD;

ET0=1;

if(time==percent) {v1=v2=v3=v4=0;time++;}

else if(time==100) {time=0;v1=v2=v3=v4=1;time++;}

}

void main()

{

P1=0;P2=0;

PT1=1;

PS=1;

IE=0X9a;

TMOD=0x22;

TL0=0xFD;TH0=0xFD;

TL1=0xFD;TH1=0xFD;

TCON=0x54;

SCON=0xd8;

PCON=0x00;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值