51单片机 | 实现直流电动机应用实例(按键控制转速)

————————————————————————————————————————————

直流电动机应用实例

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

设计要求:

通过按键控制输出电压的大小,改变直流电动机的转速

实现思路:

使用DAC0832将单片机输出的数据转换成模拟电压,通过调节单片机P2口输出的数值来改变加载直流电动机两端的电压,以此控制转速。具体DAC0832的使用见对应说明

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

实现代码:

复制代码
 1 #include <reg52.h>
 2 typedef unsigned char uchar;
 3 uchar speed = 0;
 4 int main()
 5 {
 6     /* 初始化中断 */
 7     EA = 1;
 8     EX0 = 1;
 9     IT0 = 1;
10     /* 将速度变量从P2口输出,通过DAC0832转换成模拟电压 */
11     while(1)
12     {
13         P2 = speed;
14     }
15 }
16 void Int0()interrupt 0
17 {
18     if (speed != 255) //speed最大速度限制在255
19         speed += 5;
20 }
复制代码

 

posted @   hugh.dong  阅读(5737)  评论(1编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
点击右上角即可分享
微信分享提示