试验要求:AT89S52串行通讯口作业在方法1,8位UART方法,答应接纳,9600bps。在PC机上运转串口调试软件。编程完成:AT89S52内部定时器1,按方法1作业,每1秒钟内部RAM30H单元内容加1,并经过串行通讯口送PC机显现。
//This is the fifth_2programof homework
//This is made by WQ Data:2013/3/4/
ORG 0000H
AJMP MAIN
ORG 0023H //0023H 串口中止程序的进口地址
AJMP Transfer
ORG 000BH //000BH 计时器程序T0进口地址
AJMP WT0
MAIN:
MOV TMOD,#21H //定时器的作业方法寄存器
MOV TH0,#4CH //定时器0
MOV TL0,#00H //定时器0
MOV R3,#40 //R3做一个计数器
SETB EA //开总中止
SETB ET0 //答应计时器
SETB TR0 //敞开计时器0
MOV TH1,#0FDH
MOV SCON,#50H ;传口作业方法1,答应中止承受
SJMP $
ORG 0100H
WT0: MOV TH0,#4CH //计时器0置数
MOV TL0,#00H
DJNZ R3,RETN //1秒钟到来了
MOV R3,#50
SETB ES //翻开串口中止
SETB TR1 //翻开定时器1
MOV R1,#30H
MOV @R1,#89H
MOV R1,#030H
MOV A,@R1
MOV SBUF,A //将内存中的数据传送给计算机
RETN:RETI //中止子程序的回来指令
Transfer:
JNB TI,$
CLR TI
MOV P1,A
RETI
END