标题: 定时器与串行通信同时使用方法(调试了两天两夜) [打印本页]

作者: daniu    时间: 2014-12-26 15:03
标题: 定时器与串行通信同时使用方法(调试了两天两夜)

//定时器与串行通信如果要同时使用,记住要把记时器中的模式设为记数模式,不然是不成功的,我调试了两天两夜///才发现这个问题,,唉,,,,

void  t0init()//定时器0初始化函数
{
  TMOD|=0x01;  //定时器工作在方式1
  IE|=0x82;
   TH0=0x4c;//50毫秒对TH0 TL0赋值
  TL0=0x00;//(65536-50000)%256; //使定时器0.05秒中断一次
  TR0=1;           //开始计时
  IP=0x02;
}

void infirst(void)//串行通信的初始化
{
         SCON=0x50;          //串行口工作方式1, 10位异步收发   波特率由定时器来控制
        TMOD |=0x20;        //定时器工作方式设置,启用定时器1,工作方式2
        PCON |=0x80;        //电源控制设置SMOD  为1
        TH1  =0xf4;         //设置波特率为4800 晶振是11.0592Mhz  这一个波特率一定要经过计算出来的,   
        IE   |=0x90;        //中断允许寄存器设置,其实就是设EA=1 CPU开中断   还有设置ES=1    串行口开中断
        TR1   =1;           //定时器1启动  
   }


作者: wwwmagic    时间: 2014-12-30 12:46
谢谢楼主分享
作者: GG-路人乙    时间: 2015-1-14 10:15
学习了,非常好。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1