普中开源电子分享网

 找回密码
 立即注册
搜索
查看: 6233|回复: 2

大神们来帮忙看看程序

 关闭 [复制链接]

2

主题

6

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2016-1-11 15:39:52 | 显示全部楼层 |阅读模式
首先是SSCOM串口调试的结果,能发送也能接收,我是想从PC发指令给单片机,由单片机接收到的指令来控制继电器,是根据教程的示例改变的,代码能这样写吗?
void main (void) {


        SCON = 0x50;      //REN=1允许串行接受状态,串口工作模式1                             
            TMOD|= 0x20;      //定时器工作方式2                    
                PCON|= 0x80;                                                         
                TH1  = 0xFd;     //baud*2  /* reload value 19200、数据位8、停止位1。效验位无 (11.0592)   
                //TH1 = 0xF3;         // //baud*2  /*  波特率4800、数据位8、停止位1。效验位无 (12M)
            TL1 = 0xF3;      
                TR1  = 1;                                                            
                ES   = 1;        //开串口中断                  
                EA   = 1;        // 开总中断
       
           // IE = 0x0;

        while(1)
    {
       
          if (SendFlag==1)    // max485(半双工通信) RE/DE定义 RE=0为接受状态  DE=1为发送状态(参考MAX485芯片管脚)
             {   RS485E=1;           //                              RS5485E=0为接收状态  RS5485E=1为发送状态
              SBUF=SenData;           //发送数据
                  delay(50);
       }
         else
          {

              RS485E=0;              //接收状态
          }

}

}


void ser_int (void) interrupt 4 using 1
{
if(TI == 1)
{
        TI = 0;
        SendFlag = 0;
}

if(RI == 1)        //RI接受中断标志
{
        RI = 0;                    //清除RI接受中断标志
        ReData = SBUF;  //SUBF接受/发送缓冲器
        SenData=ReData;
        SendFlag = 1;

}
}

void Relay()
{
        int k,i,ms;
        i = 250;
        //K1 = 1;
        //K2 = 1;
        ReData = SBUF;       

        while(1)
        {
                RELAY1 = 1;
                RELAY2 = 1;
                if(ReData == 00)
                {
                        for(ms=i;ms>0;ms--)
                        {
                                RELAY1 = 0;
                                //Delay_ms(250);
                                //cont1 = a;
                                //cont2 = b;
                                 for(k=0;k<16;k++)
                                {
                                        HC595SendData(~tab2[2*k+1],~tab2[2*k],tab0[2*k],tab0[2*k+1]);
                                }
                        }
                        //清屏
                        HC595SendData(0Xff,0Xff,0,0);       
                }
                if(ReData == 01)
                {
                        //显示“起”
                        for(ms=i;ms>0;ms--)
                        {
                                RELAY2 = 0;
                                //Delay_ms(250);
                                //cont1 = b;
                                //cont2 = a;
                                for(k=0;k<16;k++)
                                {
                                        HC595SendData(~tab1[2*k+1],~tab1[2*k],tab0[2*k],tab0[2*k+1]);
                                }
                        }
                        //清屏
                        HC595SendData(0Xff,0Xff,0,0);       
                }
        }       
}

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

2

主题

7

帖子

30

积分

新手上路

Rank: 1

积分
30
发表于 2016-1-11 23:00:24 | 显示全部楼层
能不能生成hek文件咯??
回复 支持 反对

使用道具 举报

2

主题

6

帖子

28

积分

新手上路

Rank: 1

积分
28
 楼主| 发表于 2016-1-12 09:51:42 | 显示全部楼层
SHUSHI 发表于 2016-1-11 23:00
能不能生成hek文件咯??

能的,编译都成功了
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

Archiver|手机版|小黑屋|普中开源电子分享网 粤ICP备16123577号-2

GMT+8, 2024-5-12 08:22 , Processed in 0.088226 second(s), 31 queries .

Powered by 论坛搭建 X3.4

Copyright © 2001-2021, Tencent Cloud.

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