一个奇怪的问题,51单片机会自己复位么?
试验一个单片机串口和液晶显示屏通信的程序,单片机选用的89C58(没有程序跑飞后自动复位的功能),显示屏选用的河南友利华的YD711-ARMWH,标准RS232接口,12V供电,经询问技术人员,用3个引脚用来进行穿行通信,GND连接单片机的GND(此处5V与12V共地),DSR连接单片机的任意管脚作为单片机输入(显示屏有256字节的缓冲区,DSR为高电平表示缓冲区空,可以发送数据,低电平表示缓冲区满,要等待),RXD连接单片机的标准串行接口TXD,硬件上就这3根线连接(已和他们的技术人员确认),单片机除了晶振电路/复位电路外无别的连接。
程序大体如下,具体的在实验室电脑上不太记得了
#include<reg52.h>
#define uchar unsigned char;
#define uint unsigned int;
sbit DDTR=P1^0;//单片机管脚,连接液晶显示器的DSR
sbit P11=P1^1;//自己设置的管脚,用于示波器观测脉冲波形
void delay()//延时子程序,约50ms
{
XXXXX;
}
sendchar(uchar c)//RS232发送子程序
{
TI=0;//清发送中断
while(DDTR==0);//等待DDTR==1
SBUF=c;//把数据发送到缓冲区
while(TI==0);//等待发送完成
TI=0;//清发送中断
}
main()
{
XXXXXX;//初始化,串口,波特率设置等语句
P1=0X01;//使P1.0为输入
P11=0;
delay();
sendchar(0x1b);//往液晶显示屏送1b 4c 00,清显示屏为黑色
P11=1;
delay();
sendchar(0x4c);
P11=0;
delay();
senchar(0x00);
P11=1;
delay();
}