单片微机原理系统设计与应用 笔记(15)

发布时间:2021-06-07

万福君、潘松峰

储器中的
;表格数据
 ···
WENDUB:DB 00,02,08,11
DB 15,19,23,29
   ···
   
   
练习题:2-13、2-18、3-7、3-8、4-5、4-7
2-13:不存在,内部和外部程序存储器用EA\引脚的电平区分,内部和外部数据存储器用指令区分,如 MOV 和 MOVX(P40)
2-18:不能,特殊功能寄存器只能用直接寻址方式访问。间接寻址方式读到的是高128字节RAM内容或随机数。
3-7:向2000H单元开始的十个字节中放入30H~39H的数,或者说0~9的ASCII码
3-8:将2000H单元开始的50H个字节,放入片内存储器30H地址开始的50H个字节中。程序执行完成后SP=7FH。
4-5:AAA:MOV R0,#30H;初始化数据指针
MOV R1,#38H
CLRA;初始化数据、标志
MOVB,A
MOV@R1,A
CLRC
MOVR2,#8;设循环次数
BBB:MOVA,@R1;循环累加
ADDCA,@R0
MOV@R1,A
MOVA,B
ADDCA,#0
MOVB,A
INCR0
DJNZR2,BBB
MOVR2,#3;除以8
CCC:MOVA,B
RRCA
MOVB,A
MOVA,@R1
RRCA
MOV@R1,A
DJNZR2,CCC
RET
4-7:MOVR0,#BLOCK
MOVR1,#MINI
MOVR2,#LEN
MOVA,@R0
AAA:CLRC
MOVB,A
INCR0
SUBBA,@R0
JCBBB
MOVA,B
XCHA,@R0
SJMPCCC
BBB:MOVA,B
CCC:DJNZR2,AAA
MOV@R1,A
RET


五、子程序结构
(一) 子程序的优点
1、 提高编程效率
2、 便于简化程序的逻辑结构,便于阅读
3、 减少程序长度,节省占用存储器空间
4、 使程序模块化、通用化,共享程序资源
5、 便于调试
(二) 子程序的调用
1、 在程序中写入子程序数据准备程序
2、 写入子程序的调用指令 “CALL 子程序名”
3、 取用子程序运算数据
(三) 子程序的结构
子程序的结构必须具备子程序入口(地址或标号)和RET指令
(四) 编制子程序应注意的问题:
1、 注意主程序与子程序之间数据的传递方法(数据区、寄存器、堆栈等)
利用堆栈传送数据:在单片机编程中由于RAM资源与编程方法的限制酌情使用,在进行少量数据交换时也会用到,或作数据暂存
2、 数据的保护:堆栈、寄存器组等
调用子程序和响应中断时的现场保护
需要保护的数据:原则是中断程序中使用到的那些通用寄存器
(1) PSW
(2) ACC
(3) DPL、DPH
3、 子程序的通用性
4、 子程序的可浮动性(正确使用标号,对于单片机,使用自动编译程序时一般不考虑)
5、 子程序的可递归、可嵌套和可重入性
6、 加子程序说明:子程序名、使用的
寄存器名、入口数据类型、出口数据类型、子程序功能说明、调用其它程序说明等

(五) 子程序递归调用
递归调用是一种比较复杂算法中用到的调用形式,在子程序中反复调用自身的子程序,容易造成堆栈溢出,使用中必须注意可能调用的层数。



AAA:PUSHPSW; 递归调用

单片微机原理系统设计与应用 笔记(15).doc 将本文的Word文档下载到电脑

精彩图片

热门精选

大家正在看

× 游客快捷下载通道(下载后可以自由复制和排版)

限时特价:7 元/份 原价:20元

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219