找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2320|回复: 7
收起左侧

用串口给单片机发数据,怎么发送的数据无法修改产生的波形,

[复制链接]
ID:637351 发表于 2019-11-29 16:55 | 显示全部楼层 |阅读模式
25黑币
请大家帮忙看看有什么问题?
#include <reg52.h>

#define uchar unsigned char
#define uint unsigned int
sbit test = P1^0;
uchar x;//256时100Hz;1时24.25KHz;
uint H,L;
uchar  flag;
void Initurat()  
{
TMOD=0X20;
TH0 = 0Xfd;
TL0 = 0Xfd;
TR1 = 1;

SM0=0;
SM1=1;
REN=1;
PCON|=0x00;//SMOD=0;
EA = 1;
ES = 1;
}
void receive()  interrupt 4
{
if(RI)
{
  RI = 0;
  x = SBUF;
  ES = 0;
  flag = 1;
}
}
void init()
{
EA = 1;
ET1 = 1;
TMOD=0x10;
x = 65536 - x*18;
H = x / 256;
L = x % 256;
TH1 = H;
TL1 = L;
TR1 = 1;
}
main()
{
init();
while(1);
}
void interrupt_() interrupt 3
{
TH1 = H;
TL1 = L;
P1 = ~P1;
IE1 = 0;
}

回复

使用道具 举报

ID:213173 发表于 2019-11-30 08:32 | 显示全部楼层
51单片机串口波特率发生器是T1,不可以用T0。
回复

使用道具 举报

ID:94031 发表于 2019-11-30 10:30 | 显示全部楼层
你的基本功很差,要一步步来,先解决能正常接收,再解决产生正常波形。
回复

使用道具 举报

ID:653163 发表于 2019-11-30 19:43 | 显示全部楼层
把TH0和TL0改成TH1和TL1
回复

使用道具 举报

ID:637351 发表于 2019-12-2 10:21 | 显示全部楼层
xuyaqi 发表于 2019-11-30 10:30
你的基本功很差,要一步步来,先解决能正常接收,再解决产生正常波形。

现在就是不能正常接收啊?该怎么改才行
回复

使用道具 举报

ID:637351 发表于 2019-12-2 10:22 | 显示全部楼层
wulin 发表于 2019-11-30 08:32
51单片机串口波特率发生器是T1,不可以用T0。

除此之外还有什么问题吗?
回复

使用道具 举报

ID:213173 发表于 2019-12-2 13:19 | 显示全部楼层
王文杰 发表于 2019-12-2 10:22
除此之外还有什么问题吗?

51单片机在11.0592MHz晶振条件下用定时器模式1产生可变频方波的最高频率只能达几百Hz。因为运算定时器重装值需要时间的。要想输出24.25KHz需要外接锁相环倍频。
回复

使用道具 举报

ID:498463 发表于 2019-12-2 14:37 | 显示全部楼层
问题比较多啊,兄弟
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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