欢迎来到天天文库
浏览记录
ID:57326411
大小:956.50 KB
页数:72页
时间:2020-08-12
《单片机汇编语言程序设计讲课教案.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章MCS-51汇编语言程序设计教学基本要求:(1)、了解MCS-51汇编语言程序设计的特点;(2)、熟悉MCS-51汇编语言伪指令的功能及用法;(3)、掌握顺序、分支、循环程序的设计方法;(4)、掌握KEIL软件的使用方法。教学重点:(1)、KEIL软件的使用方法;(2)、分支、循环程序的设计方法;(3)、定时、查表程序的设计方法;教学难点:(1)、KEIL软件调试程序的方法;(2)、利用JMP@A+DPTR指令实现程序多分支;(3)、查表程序的设计方法;(4)、子程序结构与堆栈的关系。4.1单片机程序程序设计语言
2、概述4.1.1机器语言和汇编语言4.1.2单片机使用的高级语言(1)BASIC语言(2)C语言(3)PL/M语言4.1.380C51单片机汇编语言的语句格式4.2汇编语言程序的基本结构形式单片机汇编语言程序设计的基本结构形式一般分为以下4种形式,即顺序结构、分支结构、循环结构和子程序结构。4.2.1顺序程序结构顺序程序是最简单的程序结构,在顺序程序中,既无分支,循环,也不调用子程序,程序执行时一条一条地按顺序执行指令例:假定三字节无符号数相加,其中一个加数在内部RAM的50H、51H和52H单元中,另一个加数在内部RA
3、M的53H、54H和55H单元中,要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的00H位中。解:(1)分析任务:求两数之和(2)算法:加法运算(ADD或ADDC)(3)程序结构:顺序或循环结构(4)数据类型:三字节、二进制、无符号数(5)数据结构:升序或降序排列(6)RAM单元安排:(内部RAM字节单元、位地址空间)(7)采用寄存器间接寻址方式(R0、R1)加数(N1)高字节(8位)中字节(8位)低字节(8位)加数(N2)高字节(8位)中字节(8位)低字节(8位)加数(N1)加数(N2)和(N3
4、)52H单元低字节(8位)55H单元低字节(8位)52H单元低字节(8位)51H单元中字节(8位)54H单元中字节(8位)51H单元中字节(8位)50H单元高字节(8位)52H单元高字节(8位)50H单元高字节(8位)00H位进位位(8)程序设计流程框图;(9)程序清单;ORG1000HMOVRO,#52H;加数N1的低字节地址送地址指针R0MOVR1,#55H;加数N2的低字节地址送地址指针R1MOVA,@R0;取N1的低字节ADDA,@R1;N1、N2低字节相加MOV@R0,A;保存N1、N2低字节和DECR0;修
5、改加数N1的地址指针内容DECR1;修改加数N2的地址指针内容MOVA,@R0;取N1的中间字节ADDCA,@R1;N1、N2中间字节带低字节和进位相加MOV@R0,A;保存N1、N2中间字节和DECR0;修改加数N1的地址指针内容DECR1;修改加数N2的地址指针内容MOVA,@R0;取N1的高字节ADDCA,@R1;N1、N2高字节带中间字节和进位相加MOV@R0,A;保存N1、N2高字节和MOV00H,C;高字节和的进位送00H位保存END思考题:1)上述程序中,如果只采用ADDC指令,应如何修改程序?2)如果N
6、1、N2,N3均为十进制数,应如何修改程序?3)如果加数N1在内部RAM50H、51H和52H单元中,而加数N2与和N3均在外部RAM0053H、0054H和0055H单元中,其它条件不变,应如何修改程序?4)如果N1、N2,N3均存放在外部RAM单元,应如何修改程序?思考题:1)ORG1000HMOVRO,#52H;加数N1的低字节地址送地址指针R0MOVR1,#55H;加数N2的低字节地址送地址指针R1MOVA,@R0;取N1的低字节CLRC;清原来进位位CY的内容ADDCA,@R1;N1、N2低字节相加MOV@R
7、0,A;保存N1、N2低字节和DECR0;修改加数N1的地址指针内容DECR1;修改加数N2的地址指针内容MOVA,@R0;取N1的中间字节ADDCA,@R1;N1、N2中间字节带低字节和进位相加MOV@R0,A;保存N1、N2中间字节和DECR0;修改加数N1的地址指针内容DECR1;修改加数N2的地址指针内容MOVA,@R0;取N1的高字节ADDCA,@R1;N1、N2高字节带中间字节和进位相加MOV@R0,A;保存N1、N2高字节和MOV00H,C;高字节和的进位送00H位保存END思考题:2)ORG1000HM
8、OVRO,#52H;加数N1的低字节地址送地址指针R0MOVR1,#55H;加数N2的低字节地址送地址指针R1MOVA,@R0;取N1的低字节ADDA,@R1;N1、N2低字节相加DAA;N1、N2低字节和十进制调整MOV@R0,A;保存N1、N2低字节和DECR0;修改加数N1的地址指针内容DECR1;修改加数N2的地址指针内容
此文档下载收益归作者所有