1、课题 单片机指令与编程入门, 任务- 仿真软件使用 任务- 单片机指令系统的基本知识 小结 思考题, 任务- 仿真软件使用,3.1.1 单片机仿真软件和开发工具使用初步 任务要求:上机练习。 阅读附录 ,上机练习附录中的实例,初步学习 Proteus 软件的使用。 阅读附录 ,上机练习附录中的实例,初步学习 Keil C软件的使用。 3.1.2 在仿真软件中调试一个存储区间置或者清的程序 1.用 Proteus软件绘单片机最小系统图,下一页,返回, 任务- 仿真软件使用,打开 Proteus ISIS编辑环境,添加器件 A T89 C51,CAP、CAP-ELEC、CRYS-TAL、RES,按
2、照图 -所示连接电路和设置元件参数。 单击 ISIS菜单 SourceAdd Remove Source File选项,弹出图 3-2所示对话框。 在 Code Generation Tool下拉菜单选择代码生成工具 ASEM51。若 Source Code Filename下方框中没有所要的源程序文件,则单击 按钮,在对话框文件名框中输入新建源程序文件名CLR RAM.asm 后,单击 “ 打开”按钮,在弹出的小对,上一页,下一页,返回, 任务- 仿真软件使用,话框中单击 “ OK”按钮,新建的源程序文件就添加到 Source Code Filename下方框中,同时在菜单 Source 中
3、也出现源程序文件 CLR RAM.asm ,如图-所示。 单击菜单 Source CLR RAM.asm ,编写编辑源程序,如图3-4所示。源程序 清单如图例1 编辑无误后,单击保存按钮存盘,文件名就是 CLR RAM.asm,上一页,下一页,返回, 任务- 仿真软件使用,单击菜单SourceDefine Code Generation Tools,设置代码产生工具。如图-所示。其中, Code Generation Tool( 代码生成工具)设置为ASEM51;Make Rules中,Source Extn设置为 ASM,Obj Extn设置为 HEX,Command Line设置为 ;De
4、bug Data Extraction中,List File Extn设置为 LST。 单击 SourceBuild All,编译生成目标代码,编译结果在弹出的编译日志对话框中,如图 -所示,无错则生成目标代码文件。对 ASEM51系列及其兼容单片机而言,目标代码文件格式为*.hex。这里生成目标代码文件 LED.hex 。若有错,则可根据编译日志提示来调试源程序,直至无错生成目标代码文件为止。,上一页,下一页,返回, 任务- 仿真软件使用,在绘制的原理图中选中 AT89C51并单击鼠标左键,打开 Edit Component对话窗口,窗口中对 的属性设置如图-所示。 单击 Proteus I
5、SIS界面左下角的单步仿真按钮,进入程序调试状态,并在 Debug菜单中打开8051 CPU Registers、8051 CPU Internal(IDATA) Memory及8051 CPU SFR Memory三个观测窗口,按 键,单步运行程序。在程序运行过程中,可以在这三个窗口中看到各寄存器及存储单元的动态变化。程序运行结束后, 8051 CPURegister和8051 CPU Internal(IDATA) Memory 的状态如图-所示。,上一页,下一页,返回, 任务- 仿真软件使用,程序调试成功后,将汇编源程序的第行语句改为: , 编译后重新运行,即可实现存储块置的功能。,上一
6、页,返回, 任务- 单片机指令系统的基本知识,3. 2.1指令系统概述 1.指令的概念 (1)汇编语言指令 (2)汇编语言的语句格式 (3)指令的长度 2. MCS-51单片机的寻址方式 (1)寄存器寻址方式操作数存放在寄存器中,指令中直接给出该寄存器名称的寻址方式。可以获得较高的传送和运算速度。,下一页,返回, 任务- 单片机指令系统的基本知识,(2)直接寻址方式在指令中只是给出源操作数的直接地址,即操作数本身存放在该地址所指示的存储单元中,此寻址方式称为直接寻址。 (3)寄存器间接寻址方式以寄存器中的内容为地址,从该地址中取出操作数的寻址方式称为寄存器间接寻址。 (4)立即寻址方式 指令编
7、码中直接给出操作数的寻址方式称为立即寻址。 (5)变址寻址方式 以一个基地址加上一个偏移量地址形成操作数地址的寻址方式称为变址寻址。,上一页,下一页,返回, 任务- 单片机指令系统的基本知识,(6)相对寻址方式 (7)位寻址方式 对位地址中的内容进行操作的寻址方式称为位寻址方式。 3.指令格式中符号意义说明 3. 2. 2 MCS-51单片机指令系统的分类介绍 1.数据传送类指令 (1)内部RAM数据传送指令 以累加器为目的操作数的指令 以寄存器Rn为目的操作的指令。,上一页,下一页,返回, 任务- 单片机指令系统的基本知识,以直接地址为目的操作数的指令。 以间接地址为目的操作数的指令、 十六
8、位数的传递指令。 (2)外部RAM数据传送指令 (3)程序存储器数据传送指令 (4)堆栈操作指令 (5)数据交换指令 字节交换指令 半字节交换指令。 累加器A高低半字节交换指令。,上一页,下一页,返回, 任务- 单片机指令系统的基本知识,2.算术运算类指令 (1)加法指令 (2)带进位加法指令 (3)带借位减法指令 (4)加1指令 (5)减1指令 (6)乘法、除法指令 (7)一进制加法调整指令,上一页,下一页,返回, 任务- 单片机指令系统的基本知识,3.逻辑与运异指令 (1)逻辑与运算指令 (2)逻辑或运算指令 (3)逻辑异或运算指令 (4)累加器清0和取反指令 (5)移位指令 4.控制转移
9、指令 (1)无条件转移指令 不规定条件的程序转移称之为无条件转移。 (2)条件转移指令 所谓条件转移就是程序转移是有条件的。,上一页,下一页,返回, 任务- 单片机指令系统的基本知识,(3)子程序调用与返回指令组 子程序结构,即把重复的程序段编写为一个子程序,通过主程序调用而使用它。减少了编程工作量,缩短了程序的长度。 5.位操作类指令 (1)位传送指令 (2)位置位复位指令 (3)位运算指令 (4)位控制转移指令组,上一页,下一页,返回, 任务- 单片机指令系统的基本知识,3. 2. 3汇编语言的伪指令汇编语言的伪指令是汇编程序能够识别并对汇编过程进行某种控制的汇编命令。它没有对应的可执行目
10、标码,不是单片机执行的指令,所以汇编后产生的目标程序中不会再出现伪指令。 1.定位伪指令ORG ( Origin) 功能:指出汇编语言程序通过编泽,得到的机器语言程序的起始地址。 2.定义字节伪指令DB ( Define Byte )功能:定义程序存储器从标号开始的连续单元,用来存放常数、字符和表格。,上一页,下一页,返回, 任务- 单片机指令系统的基本知识,3.定义字伪指令DW ( Define Word ) 功能:同DB,不同的是为16位数据 4.汇编结束命令END功能:END是汇编语言源程序的汇编结束标志,在它后面所写的指令均不予处理。 5.等值命令EQU 功能:将一个数或特定的汇编符号
11、赋予规定的字符名称。先定义后使用。,上一页,下一页,返回, 任务- 单片机指令系统的基本知识,6.空间定义伪指令DS功能:从标号指定的地址单元开始,在程序存储器中保留由表达式所指定的个数的存储单元作为备用的空间,并都填以零值。 7.位地址符号定义伪指令BIT 功能:将位地址赋给指定的符号名。,上一页,返回,思考题,1.在Keil C中调试本课题的3. 1. 2的存储区间清。或者置1的程序。 2.单片机有哪几种寻址方式? 3.访问特殊功能寄存器SFR可以采用哪些寻址方式? 4.访问内部RAM单元可以采用哪些寻址方式?访问外部RAM单元可以采用哪些寻址方式? 5.访问外部程序存储器可以采用哪些寻址
12、方式?,下一页,返回,思考题,6.若(50H)=40 H,试写出执行以下程序段后累加器A,寄存器RO及内部RAM的40H、41H、42H单元中的内容各为多少? MOV A,50H MOV RO,A MOV A,#00H MOV RO , A MOV A,3 BH MOV 41H,A MOV 42H,41H,上一页,下一页,返回,思考题,7.试写出完成以下每种操作的指令程序。 (1)将R6的内容传送到R7; (2)内部RAM单元SOH的内容传送到寄存器R6; (3)外部RAM单元2000 H的内容传送到内部RAM单元70 H ; (4)外部RAM单元2000 H的内容传送到寄存器R6; (5)外
13、部RAM单元2000 H的内容传送到外部RAM单元3000 H。,上一页,下一页,返回,思考题,8.试编写程序,将R1中的低4位数与R2中的高4位数合并成一个8位数,并将其存放在R1中。 9.试编写程序,完成两个16位数的减法:7F4DH一2B4EH,结果存人内部RAM 的30H和31H单元,31H单元存差的高8位,30H单元存差的低8位。,上一页,返回,小结,指令是 控制计算机进行某种操作的命令,指令系统则是全部指令的集合。 单片机有七种寻址方式,其指令系统按指令功能分则有数据传送类指令、算术运算类指令、逻辑运算及移位类指令、控制转移类指令和位操作类指令,另外还有用于控制汇编过程的伪指令。,返回,图例1,返回,图- 单片机最小系统图,返回,图- 对话框,返回,图3-3 源程序文件加载到 ,返回,图- 编写编辑源程序,返回,图- 目标代码生成工具设置,返回,图- 源程序编译日志窗口,返回,图- 的属性设置,返回,图- 程序调试教程中的各存储器的状态,返回,