// 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;
}
}
//------------------------------------------------------------------------------
// 简单程序,还需要从错误中恢复的语句.
文章评论(0条评论)
登录后参与讨论