本帖最后由 sankyo_feng 于 2010-5-25 12:08 编辑
单片机STC90C52 晶振 12MHZ
#include "reg51.h"
main()
{
TMOD=0X20; 将TIMER1设定MODE 2,作为比特率
TH1=0XFF; 比特率设定为62.5K
TR=1;
P0=0XFF;
P2=0XFF;
SMOD=0X00;
SCON=0XD0; 设定为MODE 3
while(1)
{
SUBF=P1; 将1MCU P1的值放入SUBF中
if(RI==1)
{RI=0;P2=SBUF;} 将1MCU P1的值通过SBUF传入2MCU P2中 .
if(TI==1)
TI=0;
}
}
将以上程序分别烧入两个STC90C52,P1为开关,P2为输出发光管,P0口接了上拉输出发光管。1MCU P3.0-2MCU P3.1 1MCUP3.1-2MUCP3.0 串行通信。
作用是1MCU P1有输入时,2MCU P2有对应输出。2MCU P1有输入时,1MCU P2有对应输出。
出现问题
1.上电后,1MCU P2.6拉低灯亮,2MCU P0.7灯亮整个程序中就没有用到P0.7 PCB板做的也好像没什么问题,P3.0P3.1都有扑地。
2.1MCU P1分别输入时,2MCU输出正常,但是2MCU P1输入时1MCU P2输出错开两位,开关到P1.7时P2所有灯灭,重新输入后,就正常了。
3. 2MCU P0.7一直亮。
请各位帮忙看看。谢谢! |