登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] C51单片机----红外遥控控制电机调速

[复制链接]
发表于 2023-1-26 21:52:43 | 显示全部楼层 |阅读模式
学习笔记
学习科目: C51单片机
学习安排: 通过寒假的学习,实现对C51单片机基本功能的操作。
开始时间: 2023-01-01
结束时间: 2023-01-26
C51单片机

红外遥控控制电机调速


一、代码展示

屏幕截图_20230126_210557.png

屏幕截图_20230126_210608.png

屏幕截图_20230126_211217.png

屏幕截图_20230126_211746.png

屏幕截图_20230126_211855.png

屏幕截图_20230126_211924.png

屏幕截图_20230126_211934.png

屏幕截图_20230126_211947.png

屏幕截图_20230126_212039.png

屏幕截图_20230126_212100.png

屏幕截图_20230126_212105.png

屏幕截图_20230126_212118.png

屏幕截图_20230126_212123.png

屏幕截图_20230126_212247.png

屏幕截图_20230126_212257.png

屏幕截图_20230126_212237.png

屏幕截图_20230126_212359.png

屏幕截图_20230126_212406.png

屏幕截图_20230126_212410.png

这次的代码与上次的基本相同,通过Timer0来实现定时,为IR.C函数调用判断接收到的

不同红外线信号的时长,再根据通信协议得到传输过来的数据,主函数调用IR.C中的函数

实现数据的读取判断,根据返回的Command的值来判断那个按键被按下,从而执行相应的指令。

将控制电机的程序模块化,在主函数中调用。

将配置Timer1定时器实现PWM脉冲宽度调制从而控制电机的转速的程序,

在motor.c中写好后,就可以main.c主程序中调用。配合红外遥控接收到的Command的值判断后

将speed调到不同的值,控制电机转速。再通过数码管显示出电机的转速。

最终实现红外遥控控制电机转速的功能。

代码详解请参考注释。



我的51单片机的学习到此也告以段落了。

之后学习C语言剩下的部分。争取开学前能学完,要是能再学点Java,就更好了。

32单片机的学习就丢给开学后的我吧。



二、涉及到的相关知识



(外部定时器中断配置

请结合上面的

代码注释理解)

QQ图片20230126214903.jpg

QQ图片20230126214908.jpg

QQ图片20230126215223.jpg















屏幕截图_20230126_210608.png
屏幕截图_20230126_210933.png
QQ图片20230126214915.jpg
好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表