用MCS-51汇编语言编程

来源:百度知道 编辑:UC知道 时间:2024/07/07 01:02:14
将(DPTR)指示的片外RAM中若干个数据通过串口发送出去,当数据的值等于00H时结束发送,00H不必发送,发送数据的总数存放在R7中。(串口初始化过程可以省略,要求画出流程图,

程序这样应该可以的吧,
.....
....
CLR R7
CLR R1
START:CLR TI
MOV A,@R1
MOV A,@A+DPTR
SUB A,#00H
JZ END
MOV SBUF,A
JNB TI,$
INC R7
INC R1
LJMP START
END
流程图就看着程序画就是了

MOV R7,#0 ;总数计数器清零,同时兼做地址修正
MOV SCON,#40H;设串口工作方式1
KKK0:CLR TI;清发送中断标志
MOV A,R7;形成待取数地址相对基址(DPTR)的偏移量
MOVX A,@A+DPTR ;取一个待发送数
JZ KKK ;是结束标志转
MOV SBUF,A ;启动一个数的发送
INC R7 ;发送数个数加1,同时兼地址加1
JNB TI,$ ;该数末发送完转(等待发送)
SJMP KKK0 ;转去发送下一个数
KKK:REI ;返回
照程序注解就可以画流程图。
流程图:
(开始)---1--(R0清零)---(设串口工作方式1)---(清TI)---(取一个数)---<该数是结束标志吗?>---是转3处,不是---(启动一个数的发送)---(R7计数)---2--(该数发送完了吗?)---没完
转2处,完了转1处。-3---(返回)