引用 捂脸。:哦,知道了,要开中断使能,波特率才会出来。由于我只要发送,所以把发送程序和中断使能删了。
#include<reg52.h>
unsigned char flag,a;
void main()
{
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfd;
...
引用
评论
引用 捂脸。:哦,知道了,要开中断使能,波特率才会出来。由于我只要发送,所以把发送程序和中断使能删了。
#include<reg52.h>
unsigned char flag,a;
void main()
{
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfd;
...
引用 捂脸。:EA=1;
#include<reg52.h>
unsigned char flag,a;
void main()
{
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfd;
...
引用 捂脸。:我试过,把Delay1ms(300);删了,但是用串口助手接收到的是乱码,应该是循环太快了导致串口助手把杂波当数据了。
今天用硬件测试了一下,好像是你主函数循环那的延时过高,改到250以下可以(值越大字符串打印的速度越慢)。具体原因不太清楚。至于前面说的ES=1和EA=1这两句最好不要加,加了输出出错。抱歉了,貌似前面误导你了,,(忙着期末考试,原谅不能给出...
引用 pldtv:谢谢,不懂汇编啊
MOV TMOD,#00100000B
MOV TH1,#230
MOV TL1,#230
SETB TR1
; ========================...
引用 changle:你这个TMOD |= 0x20;是不等于么,貌似不用打开EA和ES吧,我传送成功的4800波特率就没打开这2个啊
SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
...