实验要求:AT89S52串行通信口工作在方式1,8位UART方式,允许接收,9600bps。在PC机上运行串口调试软件。编程实现:AT89S52内部定时器1,按方式1工作,每1秒钟内部RAM30H单元内容加1,并通过串行通信口送PC机显示。 //This is the fifth_2 program of 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
|