找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6069|回复: 8
收起左侧

STC8A8K64S4单片机内置PWM控制直流电机 源程序

  [复制链接]
ID:427492 发表于 2019-9-24 19:30 | 显示全部楼层 |阅读模式
  1. #include <stc8.h>
  2. #include "hc595.h"
  3. #include "pwm.h"

  4. #define CYCLE           100        // 设置PWM周期为1000H个PWM时钟

  5. unsigned char table[] = {90,70,50,30,10};// 定义5个档位的占空比
  6. sbit keyContrl = P0^7;  // 独立按键总开关
  7. sbit key1 = P0^0;       // 独立按键1

  8. void Delay(unsigned int xms) // 毫秒级延时
  9. {
  10.         unsigned int i, j;
  11.         for(i=xms;i>0;i--)
  12.         {
  13.                 for(j=921;j>0;j--);
  14.         }
  15. }
  16. void main()               
  17. {
  18.         unsigned char i = 0;
  19.         P_SW2 = 0x80;
  20.         PWMCKS = 0x00;         // PWM时钟为系统时钟
  21.         PWMC = CYCLE;          // 设置PWM周期为CYCLE个PWM时钟
  22.         PWM5T1= 0;             // 在计数值为0时,开始输出低电平
  23.         PWM5T2= 0;             // 在计数值为0时,开始输出高电平
  24.         PWM5CR= 0x88;          // 使能PWM5_2输出
  25.         P_SW2 = 0x00;

  26.         PWMCR = 0x80;          // 启动PWM模块
  27.         keyContrl = 0;
  28.        while (1)
  29.         {
  30.                 if(!key1)          // 独立按键1,被按下
  31.                 {
  32.                         Delay(10);     // 延时消抖
  33.                         if(!key1)
  34.                         {
  35.                                 i++;       // 档位增加1
  36.                                 if(i>4)    // 大于最大档位后,归零
  37.                                 {
  38.                                         i = 0;
  39.                                 }
  40.                         }
  41.                         while(!key1);  // 等待按键抬起
  42.                 }
  43.                 PWM5T2= table[i];  // 把i档位的占空比赋给PWM5T2
  44.                
  45.                 // 访问逻辑地址位于XDATA区域的特殊功能寄存器前需要
  46.                 // 将 P_SW2(BAH)寄存器的最高位(EAXFR)置 1
  47.                 P_SW2 |= 0x80;      
  48.                
  49.                 display(0,i);        // 显示档位(0~4,共5个档位)
  50.         }
  51. }
复制代码

清单.jpg

清单.jpg

STC8手册-增强型PWM部分.pdf

921.73 KB, 下载次数: 81, 下载积分: 黑币 -5

内置PWM控制直流电机调转速.rar

36.17 KB, 下载次数: 145, 下载积分: 黑币 -5

回复

使用道具 举报

ID:328014 发表于 2019-9-24 20:37 | 显示全部楼层
好东东,楼主能分享下电路图吗?
回复

使用道具 举报

ID:65956 发表于 2019-9-25 09:58 | 显示全部楼层
学习一下
回复

使用道具 举报

ID:427492 发表于 2019-9-25 10:22 | 显示全部楼层
芯片引脚及直流电机接的引脚
123_副本.jpg
124_副本.jpg
回复

使用道具 举报

ID:427492 发表于 2019-9-25 12:24 | 显示全部楼层
51hei团团 发表于 2019-9-24 20:37
好东东,楼主能分享下电路图吗?

贴出了芯片引脚图和直流电机接的位置,回复框没搞懂怎么发图片的
回复

使用道具 举报

ID:267435 发表于 2019-9-26 10:27 | 显示全部楼层
正好了解一下
回复

使用道具 举报

ID:374694 发表于 2019-12-30 20:45 | 显示全部楼层
好好好,get到了
回复

使用道具 举报

ID:135635 发表于 2020-3-31 09:19 | 显示全部楼层
好东东,谢谢楼主分享!
回复

使用道具 举报

ID:307263 发表于 2021-2-1 12:10 | 显示全部楼层
请问你用的直流电机的额定输入电压是多大?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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