【Proteus仿真】【51单片机】无线红外遥控车
2023-12-28 12:14:12
一、功能简介
本项目使用Proteus8仿真51单片机控制器,使LCD1602液晶,L298电机,直流电机,红外遥控模块等。
主要功能:
系统运行后,LCD1602显示小车运行状态,速度档位,控制命令;可通过红外遥控键发送命令控制小车前进、后退、左转、右转、停止。
二、软件设计
/*
作者:嗨小易(QQ技术交流群:570487280)
*/
//系统数据获取
void sys_data_get(void)
{
while(1)
{
break;
}
}
//系统数据显示
void sys_data_show(void)
{
while(1)
{
//速度显示
lcd1602_show_nums(6,0,sys_ctrl.speed,1,0);
//小车方向状态显示
_car_staus_show(sys_ctrl.dir);
//控制命令显示
lcd1602_show_num(14,0,USART1_RX_BUF[0],0);
break;
}
}
//系统数据设置
void sys_data_set(void)
{
//前进
switch(USART1_RX_BUF[0])
{
case CAR_STOP://停止
sys_ctrl.dir=0;
break;
case CAR_FORM://前进
sys_ctrl.dir=1;
break;
case CAR_BACK://后退
sys_ctrl.dir=2;
break;
case CAR_LEFT://左转
sys_ctrl.dir=3;
break;
case CAR_RIGHT://右转
sys_ctrl.dir=4;
break;
case CAR_SPEED_ADD://加速
if(sys_ctrl.speed<5)
sys_ctrl.speed++;
USART1_RX_BUF[0]=0;
break;
case CAR_SPEED_DEC://减速
if(sys_ctrl.speed>1)
sys_ctrl.speed--;
USART1_RX_BUF[0]=0;
break;
}
}
//系统功能控制
void sys_fun_ctrl(void)
{
//控制小车
switch(sys_ctrl.dir)
{
case 0:car_stop();break;//停止
case 1:car_forward();break;//前进
case 2:car_back();break;//后退
case 3:car_left();break;//左转
case 4:car_right();break;//右转
}
pwm_set_duty_cycle(sys_ctrl.speed*20);//占空比
}
//应用控制系统
void appdemo_show(void)
{
sys_parm_init();//系统参数初始化
lcd1602_init();//LCD1602初始化
sys_open_show();//系统初始界面显示
pwm_init(100-1,800-1);
dc_motor_init();
USART1_Init(9600);
while(1)
{
sys_data_get();//系统数据获取
sys_data_show();//系统数据显示
sys_data_set();//系统数据设置
sys_fun_ctrl();//系统功能控制
}
}
void USART1_IRQHandler(void) //串口1中断服务程序
{
if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET) //接收中断
{
USART1_RX_BUF[0]=USART_ReceiveData(USART1);//(USART1->DR); //读取接收到的数据
}
}
三、实验现象
B站演示视频:https://space.bilibili.com/444388619
联系作者
视频地址:https://space.bilibili.com/444388619/video
专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。
文章来源:https://blog.csdn.net/Hello_Muyi/article/details/135261057
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!