原创 外部中断和定时器 模拟uart口.

2008-3-21 21:04 2958 5 5 分类: MCU/ 嵌入式

// holtek mcu


//  2400波特率 ,fsys = 4mhz,定时器 fsys/16分频.


 


#pragma vector isr_4 @ 0x4   // 外部中断
#pragma vector isr_8 @ 0x8   //定时器0 中断
void isr_4()   // 有下降沿说明有起始位.
{
//打开定时器,
count_8 = 9;
temp = 0;
_tmr = 0x64;   //第一次设置定时器时间应为1.5位的时间值.起始位
_ton = 1;  // open timer0
_eei = 0;   //关掉外部中断
}
//-----------------------------------定时器0中断处理程序
void isr_8()   // 定时器溢出,建立标志.
{
_ton = 0;
_tmr = 0x98; // 定时器付初值,溢出时间为1位的时间值
_ton = 1;
temp = temp >> 1;     // 移动一位 ,
if (Rxd ==1) temp = temp | 0x80;         //     // 如果是高电平
count_8 --;
if (count_8 == 1)           // 计数,是否接收完8位,(1个字节)?
 {
Buffer[1] = temp;
   }
if (count_8 ==0)         // 停止位.
 {
  _ton = 0;
  _eif = 0;
  _eei = 1;
  }


}


//------------------------------------------------------------------------------


// 简单程序,还需要从错误中恢复的语句.


 


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
5
关闭 站长推荐上一条 /3 下一条