查看: 881|回复: 0
打印 上一主题 下一主题

009、STC15F104E系列单片机之产生PWM信号测试程序

[复制链接]
跳转到指定楼层
沙发
发表于 2015-5-6 08:14:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/********************************************************************
                            汇诚科技

实现功能:STC15F104E系列单片机之产生PWM信号测试程序
使用芯片:STC15F104E系列单片机
晶振:11.0592MHZ
波特率:9600
编译环境:Keil
作者:zhangxinchun
网站:www.ourhc.cn
淘宝店:
汇诚科技 http://ourhc.taobao.com
郑兴电子直销部 http://shop68451856.taobao.com
【声明】此程序仅用于学习与参考,引用请注明版权和作者信息!     

*********************************************************************/
/********************************************************************/
#include "reg52.h"
#include <intrins.H>
#define uchar unsigned char //宏定义字符型变量
#define uint  unsigned int        //宏定义整型变量
/********************************************************************
                            初始化定义
*********************************************************************/
unsigned char N=0;        //定义变量
unsigned char X=50;        //占空比初始值为50%
uchar b=0;                        //定义计数变量
/********************************************************************
                            IO口初始化定义
*********************************************************************/
sbit PWM=P3^3;        //PWM输出脚

sbit JIA=P3^4;        //PWM输出增加
sbit JIAN=P3^5;        //PWM输出减小

/********************************************************************
                           定时器函数
*********************************************************************/
void scjs(void)interrupt 3         //输出频率618HZ
{
TH1=0Xff;                                         
TL1=0xf0;
b++;
}
/********************************************************************
                            主函数
*********************************************************************/
main()
{
TMOD=0x00; //定义定时器工作方式
IE=0X88;   //开中断
TH1=0Xff;  //定义定时器初值
TL1=0Xf0;  //定义定时器初值
TR1=1;           //启动定时器

while(1)
{
PWM=1;
  while(1)
    {
     b=0;
     while(!b);
       if (N==X)
       PWM=0;
       if (N==100)break;
       N++;
            if(JIA==0) { X++;while(!JIA);}        //占空比增加
        if(JIAN==0){ X--;while(!JIAN);} //占空比减小
      }
   N=0;
  }
  }
/********************************************************************
                            结束
*********************************************************************/





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?加入因仑

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 加入因仑

本版积分规则

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