;这是TC35I试验板最新源程序 ;采用STC89C52单片机,晶振11.0592MHZ,通讯速率9600,采用TTL串口通讯 ;P0.0为 D10 LED ;P0.1为 D11 LED ;P0.2为SW4按钮 ;P0.3为SW5按钮 ;P0.4为蜂鸣器 ;P0.5为DS18B20 ;P0.6为J1 ;P0.7为J2 ;P3.2为TC35I 启动脚 ORG 0000H AJMP MAIN;转入主程序 ORG 0003H NOP NOP NOP NOP NOP NOP NOP RETI ORG 000BH;中断陷阱 NOP NOP NOP NOP NOP NOP NOP RETI ORG 0013H;中断陷阱 NOP NOP NOP NOP NOP NOP NOP RETI ORG 001BH;中断陷阱 NOP NOP NOP NOP NOP NOP NOP RETI ORG 0023H;中断陷阱 NOP NOP NOP NOP NOP NOP NOP RETI MAIN: CLR EA CLR IT1;立即禁止中断1,否则会错误进入中断! MOV SCON,#50H;设置成串口1方式 MOV TMOD,#20H;波特率发生器T1工作在模式2上 MOV TH1,#0FDH;预置初值(按照波特率9600BPS预置初值) MOV TL1,#0FDH;预置初值(按照波特率9600BPS预置初值) SETB TR1;启动定时器T1 ;以上完成串口9600通讯初始化设置 CLR P0.4;打开蜂鸣器 ACALL DELAY500;延时500毫秒 ACALL DELAY500;延时500毫秒 SETB P0.4;关闭蜂鸣器 CLR P0.0;打开LED D10 CLR P0.6;打开J1 ACALL DELAY500;延时500毫秒 ACALL DELAY500;延时500毫秒 ACALL DELAY500;延时500毫秒 ACALL DELAY500;延时500毫秒 SETB P0.0;关闭LED D10 SETB P0.6;关闭J1 CLR P0.1;打开LED D11 CLR P0.7;打开J2 ACALL DELAY500;延时500毫秒 ACALL DELAY500;延时500毫秒 ACALL DELAY500;延时500毫秒 ACALL DELAY500;延时500毫秒 SETB P0.1;关闭LED D11 SETB P0.7;关闭J2 CLR P3.2;启动TC35 ACALL DELAY500;延时500毫秒 ACALL DELAY500;延时500毫秒 ACALL DELAY500;延时500毫秒 SETB P3.2;完成启动TC35 TEL: JB P0.3,TEL;判断SW5的按钮是否按下? ACALL DELAY100 JB P0.3,TEL;判断SW5的按钮是否按下?软件抗干扰检测一次! CLR P0.0;打开LED D10 JNB P0.3,$;等待按键松开 SETB P0.0;关闭LED D10 CLR P0.4;打开蜂鸣器 ACALL DELAY500;延时500毫秒 ACALL DELAY500;延时500毫秒 SETB P0.4;关闭蜂鸣器 ;拨打0513-3342087电话!!!!ATD051383082087; CLR TI;先对TI进行软件复位 MOV A,#41H;将ASCII码A发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#54H;将ASCII码T发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#44H;将ASCII码D发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#30H;将ASCII码0发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#35H;将ASCII码5发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#31H;将ASCII码1发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;先对TI进行软件复位 MOV A,#33H;将ASCII码3发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#38H;将ASCII码8发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#33H;将ASCII码3发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#30H;将ASCII码0发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#38H;将ASCII码8发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#32H;将ASCII码2发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;先对TI进行软件复位 MOV A,#30H;将ASCII码0发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#38H;将ASCII码8发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#37H;将ASCII码7发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#3BH;将ASCII码;发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#0DH;将ASCII码8发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 MOV A,#0AH;将ASCII码;发送到串口去 MOV SBUF,A JNB TI,$;如果TI为0说明发送没有完成,程序等待 CLR TI;对TI软件复位 AJMP TEL;电话拨打完毕,返回主程序 ;100毫秒延时子程序,占用R4、R5 DELAY100:MOV R4,#100 D222:MOV R5,#248 DJNZ R5,$ DJNZ R4,D222 RET ;500毫秒延时子程序,占用R4、R5 DELAY500:MOV R4,#248 DA222:MOV R5,#248 DJNZ R5,$ DJNZ R4,DA222 RET END