找回密码
 立即注册

QQ登录

只需一步,快速开始

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

关于51单片机PWM波的问题

[复制链接]
跳转到指定楼层
楼主
ID:782567 发表于 2020-6-17 21:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在想要实现一个串口发送PWM波形数据,单片机在通过串口接收数据后在修改P1.1口的波形,PWM输出用的是定时器计数器。现在有一个疑问,就是我生成的波形的数据是字节变量的,但是输出的口需要位变量,这个问题怎么解决?求各位大佬给点指点。
void chuankou() interrupt 4
{
TI=0;
SBUF=PWMboxing;
while(TI==1)
{
  TI=0;
   
}
RI=0;
i=SBUF;
P1^1=i
while(RI==0)
{
  RI=0;
}
}
程序是我自己写的,现在目前就是这个思路,不知道能不能行的通,有问题的话也欢迎各位指出,谢谢大家啦!!!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2020-6-18 08:45 | 只看该作者
字节变量一定要转换成位变量才能输出给位变量。
回复

使用道具 举报

板凳
ID:213173 发表于 2020-6-18 09:27 | 只看该作者
楼主这个程序错误太多根本玩不转。给你一个经验证过的参考程序试试。

#include<reg51.h>

sbit PWM=P1^1; //PWM输出端口

unsigned char i,j;//全局变量

void main()                                                       
{
        SCON=0x50;  //8位UART波特率可变
        TMOD=0x22;  //定时器0、1方式2(8位重载)晶振11.0592MHz
        TH0=0xA4;        //设置定时重载值100us
        TL0=0xA4;        //设置定时初值
        TH1=0xfd;   //波特率9600
        TL1=0xfd;   //波特率9600
        TR0=1;           //开定时器0
        TR1=1;           //开定时器1
        REN=1;           //允许串行接收
        EA=1;              //开总中断
        ET0=1;           //开T0中断
        ES=1;              //开串口中断
        while(1);
}

void T0Interrupt(void) interrupt 1
{
        if(j>i)PWM=1;//周期10ms,占空比0~100
        else PWM=0;
        if(++i>=100)i=0;
}

void serial() interrupt 4
{
        RI=0;
        j=SBUF;//j值范围0~100
}
回复

使用道具 举报

地板
ID:245429 发表于 2020-6-18 10:31 | 只看该作者
输出口是位变量(就是调节高低电平),生成波形的数据是字节变量,就是通过控制高低电平的时间调节占空比控制波形。具体有一个非常简单容易理解的例子,看完你就会明白,建议看一下这一篇http://www.51hei.com/bbs/forum.php?mod=viewthread&tid=75309
回复

使用道具 举报

5#
ID:782567 发表于 2020-6-18 21:01 | 只看该作者
xuyaqi 发表于 2020-6-18 08:45
字节变量一定要转换成位变量才能输出给位变量。

好的,我在琢磨琢磨
回复

使用道具 举报

6#
ID:782567 发表于 2020-6-18 21:03 | 只看该作者
wulin 发表于 2020-6-18 09:27
楼主这个程序错误太多根本玩不转。给你一个经验证过的参考程序试试。

#include

好的,谢谢啦,我在仔细研究一下
回复

使用道具 举报

7#
ID:782567 发表于 2020-6-18 21:03 | 只看该作者
单调的唯一的 发表于 2020-6-18 10:31
输出口是位变量(就是调节高低电平),生成波形的数据是字节变量,就是通过控制高低电平的时间调节占空比控 ...

谢谢啦
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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