串口通讯问题..

2020-02-04 09:22发布

最近为一个串口的问题苦恼了很久.
要求是这样的:
1、上位机有开始和停止2个按键,按下开始 会给单片机发送0xAA,0x30,0x00,0x00,0x7E  按下停止会给单片机发送0xAA,0x31,0x00,0x00,0x7E
2、上位机有1个温度显示..温度值显示命令(假设水温为10℃):0xAA,0x10,0x00,0x0a,0x7E(0x10和0x7e中间2位数为温度值)
3、要求按下开始后,点亮1个led灯,上位机温度显示每分钟上升5度,按下停止后 led灯熄灭 上位机温度显示每分钟下降5度

我就是发送和接收可以单独写,写在一起就只能接收上位机命令而发不出去命令了。求大大们帮忙

补充内容 (2012-3-27 07:05):
代码和图片请看6和7楼..
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
mey
1楼-- · 2020-02-04 14:15
有没有大大帮下忙的?
mey
2楼-- · 2020-02-04 14:16
求高人来啊。.
mey
3楼-- · 2020-02-04 19:52
怎么就是没人帮忙解决下
idodi
4楼-- · 2020-02-05 00:00
 精彩回答 2  元偷偷看……
mey
5楼-- · 2020-02-05 05:32
上位机界面和通信命令都在附件里。..不会贴图
mey
6楼-- · 2020-02-05 09:46
#include <REG52.H>
#define uchar unsigned char
sbit LED = P1^0;
uchar light[5]={0xAA,0x20,0xff,0xff,0x7E};
uchar buf[5];
uchar UART_buff;
bit New_rec = 0, Send_ed = 1, Money = 0;
uchar i,k;
//----------------------------------------------
void main (void)
{
    SCON = 0x50;   //串口方式1, 8-n-1, 允许接收.
    TMOD = 0x20;   //T1方式2
    TH1 = 0xFD;    //9600bps@11.0592MHz
    TL1 = 0xFD;
    TR1 = 1;                        
    ES  = 1;       //开中断.
    EA  = 1;

        while(1)  
        {
                if ((New_rec == 1) && (Send_ed == 1))  
                {
                SBUF = light[i]; //发送.
                i++;
                if(i==5)
                        i=0;
                New_rec = 0;
                Send_ed = 0;
                }
        }
}
//----------------------------------------------
void ser_int (void) interrupt 4
{
        if(RI == 1)
        {  //如果收到.
                RI = 0;      //清除标志.
                New_rec = 1;
                buf[k] = SBUF;  //接收.
                k++;
                if(k==5)
                {
                        if(buf[1]==0x30)
                        LED=0;
                        else
                        LED=1;
                        k=0;       
                }
        }
        else  
        {        //如果送毕.
                TI = 0;      //清除标志.
                Send_ed = 1;
        }
}

代码如下..只能接收而不能发送

一周热门 更多>