单片机串行的一些设定不太理解,请高手指教

来源:百度知道 编辑:UC知道 时间:2024/06/28 00:40:48
有一些串行设定不理解,请高手指教:
org 0000H
AJMP START
org 0023h
AJMP SERIAL ;
ORG 30H
START:
mov SP,#5fh ; -----这个是不是多余的?因为下面并没有用堆栈呀
mov TMOD,#20h
mov PCON,#80h ------这个是电源控制器吧,设SMOD=1有什么用呢,不明白...麻烦高手详细解答

mov TH1,#0FDH
----这里的意思是溢出频率=波特率吧
mov SCON,#50h
----关于串行控制器不是很明白,能简单明了解释一下更好,谢谢!

MOV R0,#0AAH ;准备送出的数
SETB REN ;允许接收
SETB TR1 ;T1开始工作
SETB EA ;开总中断
SETB ES ;开串口中断
SJMP $
SERIAL:
MOV A,SBUF
MOV P1,A
CLR RI
RETI
END

mov SP,#5fh 不是多余的,因为跳转指令也需要用SP指针的
mov PCON,#80h 是指波特率加倍;
mov TH1,#0FDH 根据溢出率决定波特率,再根据上面的mov PCON,#80h 使波特率为溢出率的2倍;
mov SCON,#50h 指串口为8位UART,并允许接收