中科因仑“3+1”工程特种兵精英论坛
标题:
009、STC15F104E系列单片机之产生PWM信号测试程序
[打印本页]
作者:
张衍波
时间:
2015-5-6 08:14
标题:
009、STC15F104E系列单片机之产生PWM信号测试程序
/********************************************************************
汇诚科技
实现功能: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;
}
}
/********************************************************************
结束
*********************************************************************/
[attach]2738[/attach]
欢迎光临 中科因仑“3+1”工程特种兵精英论坛 (http://bbs.enlern.com/)
Powered by Discuz! X3.4