已知单片机晶振频率6MHZ,串口工作于方式1,波特率1200,允许中断方式接收,编程对串口进行初始化.怎么用汇编语言编程啊?
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/19 05:44:46
已知单片机晶振频率6MHZ,串口工作于方式1,波特率1200,允许中断方式接收,编程对串口进行初始化.怎么用汇编语言编程啊?
已知单片机晶振频率6MHZ,串口工作于方式1,波特率1200,允许中断方式接收,编程对串口进行初始化.
怎么用汇编语言编程啊?
已知单片机晶振频率6MHZ,串口工作于方式1,波特率1200,允许中断方式接收,编程对串口进行初始化.怎么用汇编语言编程啊?
UARTINIT:;1200bps@6MHz
ANL PCON,#7FH;波特率不倍速
MOV SCON,#50H;8位数据,可变波特率
ORL AUXR,#40H;定时器1时钟为Fosc,即1T
ANL AUXR,#0FEH;串口1选择定时器1为波特率发生器
ANL TMOD,#0FH;清除定时器1模式位
ORL TMOD,#20H;设定定时器1为8位自动重装方式
MOV TL1,#064H;设定定时初值
MOV TH1,#064H;设定定时器重装值
CLR ET1;禁止定时器1中断
SETB TR1;启动定时器1
RET
ORG 0023H
LJMP UARTInterrupt
InitUART:;串口初始化
MOV TMOD,#20H
MOV SCON,#50H
MOV TH1,#0F3H
MOV TL1,TH1
MOV PCON,#00H
SETB EA
SETB ES
...
全部展开
ORG 0023H
LJMP UARTInterrupt
InitUART:;串口初始化
MOV TMOD,#20H
MOV SCON,#50H
MOV TH1,#0F3H
MOV TL1,TH1
MOV PCON,#00H
SETB EA
SETB ES
SETB TR1
RET
UARTInterrupt:
JB RI,IsUART_Receive
CLR TI
RETI
IsUART_Receive:;串口接收一个字节
CLR RI
PUSH ACC
MOV A,SBUF
;========================
;add your code here!
;========================
POP ACC
RETI
SendOneByte: ;串口发送一个字节
CLR ES
CLR TI
MOV SBUF,A
WaitSendFinish:
JNB TI,WaitSendFinish
CLR TI
SETB ES
RET
收起