⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 master.c

📁 利用改变单片机定时参数来改变输出PWM波来调速
💻 C
字号:
#include<reg51.h>
#define uchar unsigned char
sbit tr=P1^7 ;		//1发0收


//发送子程序

uchar SendMsg(uchar msg,uchar IDnum)

//msg:发送缓冲区指针;len:要发送的数据长度;IDnum:从机号

{uchar i=0;
TB8=1;

tr=1;

SBUF=0xff; //复位从机

while(TI==0);

TI=0;

SBUF=IDnum; //呼叫从机

while(TI==0);

TI=0;

tr=0;

while(RI==0); //等待从机回应 RI=0; //清除串行口中断标志
 RI=0;
//下面是数据帧
 i=SBUF;
 if(i== IDnum)
  {TB8=0;

tr=1;


  SBUF=msg;
   

    while(TI==0);

   
 TI=0;
   tr=0;
   while(RI==0);RI=0;
   i=SBUF;
   	return i;
	
  }
 
}

uchar send(uchar msg,uchar IDnum)
{ uchar i=0;

//初始化

PCON=0; //SMODE=0

TMOD=0x20; //定时器1设为模式2,作为串行口的波特率发生器

EA=0; //禁止定时器中断

TH1=0xfd;
TL1=0xfd; //定时起始值,12MHz晶振时波特率为9600bps

SCON=0xd8; //串行口模式3,TB8=1发送地址呼叫

TR1=1; //启动定时器1
i=SendMsg( msg,IDnum);
return i;
}

 main()
 {uchar i=0;
  while(1)
 {
   while(i!=1)  i=send(10,1);
   i=0;
    while(i!=1) i=send(30,1);
   i=0;
	while(i!=1) i=send(50,1);
   i=0;
	while(i!=1) i=send(70,1);
   i=0;
	while(i!=1) i=send(100,1);
   i=0;
	while(i!=1) i=send(70,1);
   i=0;
	while(i!=1) i=send(20,1);
   i=0;
 }
 }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -