各位老师帮我看看这个程序的不足。多谢了。

2019-07-15 21:11发布

各位老师帮我看看这个程序的不足。多谢了。
#include<reg52.h>
#define uchar unsigned char
uchar *p="I love you",flag;
void serial_init()
{
    SCON=0x50;
    PCON=0x00;
    TMOD|=0x20;
    TH1=0xFD;
    TL1=0xFD;
    TR1=1;
    EA=1;
    ES=1;
}
void serial_send(uchar a)
{
    if(flag==1)
    {    flag=0;
        ES=0;
        SBUF=a;
        while(!T1);
        T1=0;
        ES=1;
    }
}
void main()
{   
    serial_init();
    while(1);
}
void serial_tx() interrupt 4
{
    while(*p++!='')
    {
    RI=0;
    flag=1;
    serial_send(SBUF);
    }
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
88铮铮铁骨
1楼-- · 2019-07-16 14:03
路过支持一下
小分子
2楼-- · 2019-07-16 17:31
dongyumin 发表于 2013-12-27 14:47
1、自定义数据类型名最好用 typedef 不要用#define预处理命令。具体差别可以百度下。
2、函数名最好开头单 ...

谢谢您。老师!
你的指教,我受益匪浅。我是一位刚开始自学51单片机的学生,还望你多多指教!

小分子
3楼-- · 2019-07-16 17:58
hobbye501 发表于 2013-12-27 14:52
flag 这个标志没有初始化  还有 这个标志用的有问题 你应该是判断整个字符串发送完了 这个标志多余了  还有 ...

老师,谢谢您!
你受累了。我想用中断法来写这个程序!

hobbye501
4楼-- · 2019-07-16 18:16
小分子 发表于 2013-12-27 18:05
老师,谢谢您!
你受累了。我想用中断法来写这个程序!

恩!别叫我老师 咱们都是好朋友!
1.png
ntmusic
5楼-- · 2019-07-16 21:33
 精彩回答 2  元偷偷看……
小分子
6楼-- · 2019-07-17 01:55
ntmusic 发表于 2013-12-28 11:21
你这个中断法发送字符串是有问题的。首先就是缺少进入中断的触发,按你的逻辑,得先有接收中断,才能触发发 ...

首先,非常感谢你。
那你看看,在我的原程序上应当如何改正,麻烦你了!

一周热门 更多>