定时器的初始化代码和中断代码如下
- /* Timer0 interrupt routine */
- void tm0_isr() interrupt 1 using 1
- {
-
- number++;
- Uart1SendChar(number>>8);
- Uart1SendChar(number);
-
- }
-
- /* main program */
- void Timer0Init(void)
- {
- AUXR|=0x80; //???0?1T??
- TMOD=0x00;
- TL0 = T1MS; //??????
- TH0 = T1MS >> 8;
- EA = 1;
- TR0 = 1; //???0????
- ET0 = 1; //?????0??
- }
复制代码
串口1的初始化代码及发送字节函数如下,因为没用到接收函数所以就没写串口中断服务函数程序
- void UART1_Init(unsigned short usBaud)
- {
- SCON = 0x50; //8-bit variable UART
- // TMOD |= 0x20; //¶¨Ê±Æ÷1¹¤×÷ÔÚģʽ2,8λ×Ô¶¯ÖØ×°
- // TH1 = TL1 = -(FOSC/12/32/usBaud); //Set auto-reload vaule
- // TR1 = 1; //Timer1 start run
- AUXR=0X11;
- BRT=-(FOSC/32/12/usBaud);
- ES = 1; //Enable UART interrupt
- EA = 1;
- TI = 1;
- }
-
-
- void Uart1SendChar(unsigned char ucSendChar)//·¢ËÍÒ»¸ö×Ö·û
- {
- SBUF = ucSendChar; //Send data to UART buffer
- while(!TI);
- TI = 0;
- }
复制代码 在主程序中测试时 Uart1SendChar可以正常发送数据,但是在定时器服务中断函数的发送函数却没用。。
请帮忙看看是哪里出的问题。。。
|