电子产业一站式赋能平台

PCB联盟网

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

有大佬可以帮孩子解释一下这段代码是什么意思吗

[复制链接]

600

主题

954

帖子

5061

积分

四级会员

Rank: 4

积分
5061
发表于 2022-7-3 07:39:14 | 显示全部楼层 |阅读模式
有大佬可以帮孩子解释一下这段代码是什么意思吗
有大佬可以帮孩子解释一下这段代码是什么意思吗-1.png

有大佬可以帮孩子解释一下这段代码是什么意思吗-2.jpg

有大佬可以帮孩子解释一下这段代码是什么意思吗-3.jpg
回复

使用道具 举报

604

主题

947

帖子

5151

积分

四级会员

Rank: 4

积分
5151
发表于 2022-7-3 07:40:38 | 显示全部楼层
#include <reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit ENA=P1^2;
sbit k0=P2^0;//正转
sbit k1=P2^1;//反转
sbit k2=P2^2;//加速
sbit k3=P2^3;//减速
sbit k4=P2^4;//停止
uchar Counter=0,Compare=0;
void delay(uint n)
{
   uint i=0,j=0;for(i=0;i<n;i++){for(j=0;j<120;j++);}}
void Timer0_init()//100us
{
TMOD &= 0xF0;//设置定时器模式TMOD |= 0x01;//设置定时器模式TL0 = 0x9C;//设置定时初值TH0 = 0xFF;//设置定时初值ET0=1;EA=1;TR0=1;}
void main()
{
  ENA=0;
IN1=0;
IN2=0;//一开始让电机停止Timer0_init();
Compare=50;
while(1)
{if(k0==0)//正转
{
delay(100);
while(!k0);
ENA=1;
IN1=1;
IN2=0;
}
else if(k1==0)//反转
{
delay(100);
while(!k1);
ENA=1;
IN1=0;
IN2=1;
}
else if(k2==0)//加速
{
delay(100);
while(!k2);
Compare=Compare+20;
}
else if(k3==0)//减速
{delay(100);
while(!k3);
Compare=Compare-20;}
if(k4==0)//停止
{
delay(100);
while(!k4);
ENA=0;
TR0=0;
IN1=0;
IN2=0;}
}}
void Timer0() interrupt 1
{TL0 = 0x9C;//设置定时初值
TH0 = 0xFF;//设置定时初值
Counter++;Counter%=100;
if(Counter<Compare)//如果小于占空比{IN1=1;}
else{IN1=0;}}
回复 支持 反对

使用道具 举报

587

主题

981

帖子

5126

积分

四级会员

Rank: 4

积分
5126
发表于 2022-7-3 07:41:11 | 显示全部楼层
这个电动机的代码不错,我拿走用了
这个中断写的挺朴素的啊,是哪句不懂吗?
回复 支持 反对

使用道具 举报

598

主题

943

帖子

5138

积分

四级会员

Rank: 4

积分
5138
发表于 2022-7-3 07:41:21 | 显示全部楼层
帮顶
回复 支持 反对

使用道具 举报

发表回复

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

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表