OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4647|回复: 4

求助用stm89c52单片机打算用串口控制两路PWM输出,可是为什么输出不能用,是因为定时器不能用吗?有程序

[复制链接]

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2014-9-8
在线时间
0 小时
发表于 2014-9-26 23:53:10 | 显示全部楼层 |阅读模式
5金钱
#include <reg52.h>
#include<stdio.h>
#define uchar  unsigned char 
#define uint   unsigned int
uint num=5,pp,dianji=8,dj;
uchar buf;
sbit pwm=P1^0;
sbit pwmfs=P2^1;
sbit beep=P2^3;
void initt0()
{
TMOD=0x01;
TR0=1; //打开定时器
TH0=0Xff; //定时器设置,每隔100微秒发起一次中断。
TL0=0Xa4;
ET0=1; //开定时器0中断
}

void main(void) 
{
    SCON=0x50;           //设定串口工作方式
    PCON=0x00;           //波特率不倍增

    TMOD=0x20;           //定时器1工作于8位自动重载模式, 用于产生波特率
initt0();
    EA=1;
    ES = 1;              //允许串口中断
    TL1=0xfd;
    TH1=0xfd;             //波特率9600
    TR1=1;

    while(1)
{
  if((num>=0)&&(num<=10))
  {
  if(pp<num)
pwm=1;
else
pwm=0;
  };
if(num<0)
{
num=0;
pwm=0;
pp=0;
};
if(num>10)
{   num=10;
   pwm=1;
      pp=0;
};
if ((dianji>=0)&&(dianji<=20))
{
if(dj<dianji)
pwmfs=1;
else
pwmfs=0;
};
if(dianji<0)
{
dianji=0;
pwmfs=0;
dj=0;
};
if(dianji>20)
{
dianji=20;
pwmfs=1;
dj=0;
};


}      
}
/*********************************************************

  串行中断服务函数

*********************************************************/
void  serial() interrupt 4 
{
   ES = 0;                //关闭串行中断
   RI = 0;                //清除串行接受标志位
   buf = SBUF;            //从串口缓冲区取得数据
  switch(buf)
   {
      case 0x31:  num++;beep=1;break;  //接受到1,增加led亮度
      case 0x32:  num--;beep=1;break;  //接受到2,减低led亮度   
      case 0x33:  pwm=0;beep=1;break;  //熄灭led   
      case 0x34:  dianji++;beep=1;break;  //接受到4,增高占空比
      case 0x35:  dianji--;beep=1;break;  //接受到5,降低占空比      
      case 0x36:  pwmfs=0;beep=1;break;  //接受到5,PWMfs输出为低电平            
      //case 0x37:  1=0xbf;beep=1;break;  //接受到5,第七个LED亮
 //case 0x38:  1=0x7f;beep=1;break;  //接受到5,第八个LED亮
 default:    beep=01=0xff;break;  //接受到其它数据,蜂鸣器响         
   }
   ES = 1;    //允许串口中断
}
  void time0() interrupt 1
{ TH0=0Xff;  
TL0=0Xa4;
pp++;
dj++;
}

努力
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7877

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12010
金钱
12010
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-9-27 13:49:34 | 显示全部楼层
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2014-9-8
在线时间
0 小时
 楼主| 发表于 2014-9-27 21:58:05 | 显示全部楼层
回复【2楼】Badu_Space:
----------------------------
写错了,是STC89s52
努力
回复

使用道具 举报

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
56
金钱
56
注册时间
2014-9-8
在线时间
0 小时
 楼主| 发表于 2014-9-27 22:00:00 | 显示全部楼层
da shen men ,qiu ding
努力
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-9-27 22:54:48 | 显示全部楼层
帮顶....
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 04:18

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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