标题:
用按钮控制SG90伺服马达运动的单片机程序
[打印本页]
作者:
521521LOVE
时间:
2021-4-3 16:50
标题:
用按钮控制SG90伺服马达运动的单片机程序
用按钮控制伺服马达运动
单片机源程序如下:
#include <reg52.h>
#include <intrins.h>
#include "Delay.h"
#include <ds18b20mul.h>
#include <uart.h>
sbit beep=P1^7;
sbit key1=P2^3;
sbit key2=P2^4;
sbit key3=P2^5;
sbit key4=P2^6;
int8u temp_date[16]="max:xx min:xx\r\n";
unsigned int temp_1,temp_2,temp_3;
unsigned int temp_max=50;
unsigned int temp_min=30;
unsigned char mode_flag=0;
void delay_us(unsigned int us)
{
while(us--);
}
void key_scan()
{
if(key1==0)
{
delay_us(10);
if(key1==0)
{
sendstring("Start set,Change mode!\r\n");
mode_flag++;
if(mode_flag>3)
mode_flag=1;
}
while(!key1);
}
if(key2==0)
{
delay_us(10);
if(key2==0)
{
if(mode_flag==1)
temp_max+=2;
if(mode_flag==2)
temp_min+=2;
sendstring(temp_date);
}
while(!key2);
}
if(key3==0)
{
delay_us(10);
if(key3==0)
{
if(mode_flag==1)
temp_max-=2;
if(mode_flag==2)
temp_min-=2;
sendstring(temp_date);
}
while(!key3);
}
if(key4==0)
{
delay_us(10);
if(key4==0)
{
mode_flag=0;
sendstring("Set OK!\r\n");
}
while(!key4);
}
}
void main()
{
UARTinit();//串口初始化
beep=0;
while(1) //空等
{
if(mode_flag==0)
{
Delay_Xms(1000);//每秒上传一次温度
GetData(1); //读取温度放入dispBuf中,1指P1.0引脚,2指P1.1引脚
sendstring("*1:");
sendstring(dispBuf);sendstring("\r\n");//主动上传温度
GetData(2); //
sendstring("*2:");
sendstring(dispBuf);sendstring("\r\n");//主动上传温度
GetData(3); //
sendstring("*3:");
sendstring(dispBuf);sendstring("\r\n");//主动上传温度
}
temp_date[4]=temp_max/10+'0';
temp_date[5]=temp_max%10+'0';
temp_date[11]=temp_min/10+'0';
temp_date[12]=temp_min%10+'0';
key_scan();
if(temp_1>temp_max||temp_1<temp_min||temp_2>temp_max||temp_2<temp_min||temp_3>temp_max||temp_3<temp_min)
beep=1;
else
beep=0;
}
}
复制代码
以上代码51hei下载:
51黑论坛_SG90舵机--按键控制.7z
(9.62 KB, 下载次数: 2)
2021-4-3 16:50 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1