找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1332|回复: 3
打印 上一主题 下一主题
收起左侧

STC11F04想定时发送数据 但发送不了 求指点哪儿错了

[复制链接]
跳转到指定楼层
楼主
ID:304494 发表于 2018-4-11 14:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
uchar t;
sfr AUXR=0x8e;
sbit DR = P1^1;
void delay(uint z);
void  main()
{


    PCON &= 0x7F;                //波特率不倍速
        SCON = 0x50;                //8位数据,可变波特率
        AUXR &= 0xBF;                //定时器1时钟为Fosc/12,即12T
        AUXR &= 0xFE;                //串口1选择定时器1为波特率发生器
        TMOD &= 0x0F;                //清除定时器1模式位
        TMOD |= 0x20;                //设定定时器1为8位自动重装方式
        TL1 = 0xFD;                //设定定时初值
        TH1 = 0xFD;                //设定定时器重装值
        ET1 = 0;                //禁止定时器1中断
        TR1 = 1;                //启动定时器1
       
    DR=0;        //485控制端:“0”发送,“1”接收
          t=0;



    AUXR &= 0x7F;                //定时器时钟12T模式
        TMOD &= 0xF0;                 //设置定时器模式
        TMOD |=0x01;                //设置定时器模式
        TL0 = 0x00;                //设置定时初值
        TH0 = 0xEE;                //设置定时初值
        TF0 = 0;        //清除TF0标志
        ET0=1;               
        TR0 = 1;

        ES=1;
    EA=1;

   while(1)
   {
                 if(t==1000)
                   {
                    t=0;
            SBUF=0x02;  
            while(!TI);
            TI=0;
                    ES=1;
                   }
                        //delay(5000);                         
   }
}


void ser() interrupt 4
{
   RI=0;
  /* a=SBUF;       
   ptr[len++]=a;
   if(len>=3)
     len=0;*/
}





void timer0() interrupt 1
{
    TL0 = 0x00;                //设置定时初值
        TH0 = 0xEE;
        t++;
}



void delay(uint z)
{
   uint x,y;
   for(x=z;x>0;x--)                         //这个循环是毫秒数
   for(y=110;y>0;y--);            //这个循环是1毫秒循环次数
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:213173 发表于 2018-4-11 20:17 | 只看该作者
你定义了 uchar t;
使用了if(t==1000)
这个条件永远不会成立
回复

使用道具 举报

板凳
ID:306274 发表于 2018-4-11 23:26 | 只看该作者
你定义了 uchar t;
使用了if(t==1000)
这个条件永远不会成立
回复

使用道具 举报

地板
ID:304494 发表于 2018-4-17 16:55 | 只看该作者
wulin 发表于 2018-4-11 20:17
你定义了 uchar t;
使用了if(t==1000)
这个条件永远不会成立

en  已经解决了  谢了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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