📄 timer0_overflow.c
字号:
sfr TH0 = 0x8C;
sfr TL0 = 0x8A;
sbit TF0 = 0x8D;
sbit ET0 = 0xA9;
sbit P10 = 0x90;
extern xdata unsigned char TxByte;/*要发送的字节数据*/
extern unsigned char nTxIndex;/*发送单个字符的位指针*/
extern bit nTxNextBit;/* 单个字符数据位*/
extern bit UartBusy;
void Timer0_Overflow() interrupt 1 using 0
{
{
P10=nTxNextBit;/* 产生数据位 */
TH0=0xFF; /* 写入计数初值到TH0 */
TL0=0x97; /* 写入计数初值到TL0 */
nTxIndex++;
nTxNextBit=(TxByte>>nTxIndex)&0x01;
//计算下一位
}
if(nTxIndex==7)
nTxNextBit=1;/* 下一位停止位 */
/* 1T后溢出 */
TF0=0; /* 定时器0中断标志位清0 */
if(nTxIndex==8) //发送完毕
{ET0=0; /*关闭定时器0中断*/
UartBusy=0; /*Uart发送完毕*/
nTxIndex=0; /* 发送下一个数据的D0位 */
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -