51单片机直流电机PWM控制系统 C程序、proteus仿真、报告

51单片机直流电机PWM控制系统 C程序、proteus仿真、报告 
支持LED数码管显示PWM占空比
支持按键设置PWM占空比增1、减1、正反转、停止,从而实现对直流电机的加速、减速以及正反转、急停。
切记:程序用keil5打开,仿真用proteus8.6打开,别的版本不行,

51单片机直流电机PWM控制系统

摘要:

本文将介绍一个基于51单片机的直流电机PWM控制系统,该系统可以通过按键设置PWM占空比,从而实现对直流电机的加速、减速以及正反转、急停。同时,系统还支持LED数码管显示PWM占空比。程序使用Keil5编写,仿真使用Proteus8.6进行。

一、系统概述

本文所介绍的51单片机直流电机PWM控制系统,主要基于51单片机实现,通过调节PWM(脉冲宽度调制)信号的占空比,控制直流电机的转速和方向。系统支持按键设置PWM占空比,从而实现对直流电机的加速、减速以及正反转、急停。同时,系统还支持LED数码管显示PWM占空比,方便用户观察和调整。

二、硬件设计

  1. 51单片机:作为系统的核心控制器,负责产生PWM信号和控制电机的转向。
  2. 直流电机:作为被控对象,其转速和方向受PWM信号的控制。
  3. LED数码管:用于显示PWM占空比,方便用户观察和调整。
  4. 按键:用于设置PWM占空比增1、减1、正反转、停止。
  5. Proteus8.6:作为系统的仿真软件ÿ
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于51单片机的L298电机PWM驱动汇编程序是用来控制直流电机的速度和方向的。下面是一个简单的代码示例: 1. 首先,我们需要定义一些常量和变量,例如PWM占空比的初始值和增量,以及用于控制电机方向的引脚。 ``` ORG 0000h ;程序入口地址 MOV SP,#50h ;栈指针初始化 LCALL Port_Init ;端口初始化程序调用 LCALL PWM_Init ;PWM初始化程序调用 ; 定义常量 Const_on db 0xFF ;PWM占空比初始值 Const_incr db 10 ;PWM占空比增量 Const_dir db 0 ;电机方向引脚 ; 变量 Var_pwm db 0 ;PWM占空比变量 ``` 2. 然后,我们定义端口初始化子程序,用于设置引脚的输入/输出方向以及初始状态。 ``` Port_Init: MOV P1,#00000000b ;P1设置为输出口 RET ``` 3. 接下来,我们定义PWM初始化子程序,用于设置定时器的计数器和模式。 ``` PWM_Init: MOV TMOD,#00000001b ;设置定时器1为模式1 MOV TH0,#0 ;计时器1高位清零 MOV TL0,#0 ;计时器1低位清零 SETB EA ;全局中断开关 SETB ET0 ;定时器1中断允许 MOV TL0,#0Fh ;设定中断间隔为50us(0.05ms) SETB TR0 ;启动定时器1 RET ``` 4. 最后,我们在主程序循环中实现PWM占空比的调整,以控制电机的转速和方向。 ``` Main: SETB P1.0 ;设置电机方向引脚 LJMP delay ;延时子程序调用 CLR P1.0 ;清空电机方向引脚 delay: MOV Var_pwm, Const_on ;初始化PWM占空比变量 MOV R0, Const_incr ;初始化PWM占空比增量 MOV R1, #200d ;设定循环次数 loop: ; 设置PWM占空比 MOV TH0, Var_pwm MOV TL0, Var_pwm INC Var_pwm, R0 CJNE Var_pwm, #10h, skip ;若Var_pwm小于16则跳过 MOV Var_pwm, #0 ;重新初始化Var_pwm skip: ACALL delay_50us ;延时50us DJNZ R1, loop ;重复循环 LJMP Main ``` 这是一个简单的基于51单片机的L298电机PWM驱动汇编程序的示例。请注意,这只是一个基本的框架,实际实现中需要根据具体硬件和需求进行适当修改。在Proteus仿真中,您可以根据需求设置引脚连接和调整参数,以查看程序的运行情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值