MAX1232的看门狗复位信号取自ST信号的下降沿,要复位MAX1232的看门狗,需要把ST信号接到任意的CPU管脚,然后写毁顷程序在管脚上输出前余粗一个脉冲就慧镇可以了,程序很简单。
sbit wdt_clr = P1^0
void cleanWDT( void )
{
wdt_clr = 0
_nop()
_nop()
wdt_clr = 1
}
需要注意的就是在程序执行过程中,要严格的保证最小的调用间隔,比如每隔100ms就要调用一次cleanWDT,否则一旦超时,看门狗就会复位CPU。
加入函数:兄陵void SendData(BYTE dat)
{
while (!TI) //Wait for the previous data is sent
TI = 0 //Clear TI flag
SBUF = dat //Send current data
}
void InitUart()
{
SCON = 0x5a //8 bit data ,no parity bit
TMOD = 0x20 //T1 as 8-bit auto reload
TH1 = TL1 = -(FOSC/12/32/BAUD) //Set Uart baudrate
TR1 = 1 //T1 start running
}
然后在main函数中 :
加入 InitUart();
之后 想发串口数据调用函数:SendData();
如向羡空戚串亏雀口发送0X55 就 SendData(0x55)
这个问题你应该查看一下硬件。当然,如果说你把单片机的TXD和RXD端口搞反了。导致MAX232负载相当于睁亮迟短路是有可能导致发热。键档但51单片机的这种可悉李能性应该不会很大。当然,最好检测一下,你把单片机去掉,如果MAX232还是发热就和这边没关系了。
MAX232有两种电平,一种是232电平,一种是TTL电平。如果电平搞反了。芯片就会发热不工作。你对下资料再看一下吧。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)