找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2963|回复: 0
打印 上一主题 下一主题
收起左侧

STC12C5A60S2单片机PWM输出程序,STC12C5A60S2.h头文件下载

[复制链接]
跳转到指定楼层
楼主
本程序是在基于STC12C5A60S2芯片基础上采用硬件PCA/PWM模块编写。

STC12C5A60S2.h头文件:

工程功能 :PWM输出
** MCU:STC12C5A60S2   
** 晶振:11.0592MHz
*  配置PCA模块为8位PWM输出模式,PCA计数脉冲设置为Timer0的溢出频率,配置步骤如下:
* 1、PCA模块0在空闲模式下扔然计数,选择T0计数溢出频率为PCA模块0的计数脉冲,禁止PCA0的溢出中断,即CMOD=0X84;
* 2、不使用PCA中断,将PCA各模块中断请示标志清除,即CCON=0X00;
* 3、PCA计数器清0,即使CH=CL=0;
* 4、T0设置为工作方式2,8位自动重装模式,即TMOD=0X02;
* 5、将计数初值装入T0;
* 6、开启T0计数器,开启PCA0计数器,即TR0=1; CR=1;
* 7、PWM输出端口为P1.3,另一端接直流电机使用ULN2003驱动
* 8、启动后电机转速最慢。

主程序如下,有意向的同学可以在此基础再增加控制功能。

#include<STC12C5A60S2.h>
#include<PWM.h>
#define uint  unsigned int
#define uchar unsigned char

sbit  K2 =P2^0;           //PWM值减小键
sbit  K1 =P2^1;           //PWM值增大键
sbit  BEEP =P3^7 ;         //蜂鸣器
sbit  mt =P1^3;             //PWM输出接入直流电机
void delay(unsigned char t)  //10us延时子程序
{
   while(t--) ;
}
void Delay_ms(uchar ms)    //延时函数
{
    uchar i ;
    while(ms--)
    {
        for(i=0 ; i<114 ; i++) ;
    }
}
void Beep()         // 蜂鸣器子程序
{
   unsigned char i  ;
   for (i=0  ;i<100  ;i++)
   {
      delay(100);
      BEEP = !BEEP;                //Beep取反
   }
   BEEP = 1;                       //关闭蜂鸣器
   Delay_ms(100);
}
void main()
{
    PCA_init();
    Timer0_init();
    while(1)  //在while(1)循环中通过连续改变CCAP0H改变PWM0输出的PWM信号的占空比,PWM信号在P1.3脚输出
    {         //修改后的代码使用按键直接加减CCAP0H的值来改变PWM0输出的PWM信号的占空比,加/减到最大/小时FMQ响,
        do
        {
            if(CCAP0H!=0x02)   
            {
                CCAP0H--;
                Delay_ms(60);
            }
            else Beep();
        }
        while(K2==0);
        do
        {
            if(CCAP0H!=0xFF)
            {
                CCAP0H++;
                Delay_ms(60);
            }
            else Beep();
        }
        while(K1==0);
    }
}

全部代码51hei下载地址:
STC12C5A60S2_按键控制PWM输出占空比控制电机转速.rar (4.33 KB, 下载次数: 88)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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