4 51系列单片机汇编语言程序设计方法-出版社

合集下载

专题四 MCS-51指令系统-第三章 单片机的指令系统

专题四 MCS-51指令系统-第三章 单片机的指令系统

8、指令字节数和机器周期数
第三章 单片机的指令系统
是必须掌握的内容。 Ø 一台计算机所有指令的集合, 称为该计算机的指令系统。 Ø 各种计算机都有专用的指令系统。
Ø 本章主要介绍单片机的寻址方式及指令系统,
学时分配:2学时 1—53+97+98+99 2学时 54—96 100
第三章 单片机的指令系统 • 3.1 MCS-51 指令系统概述

按指令字长分类
按指令执行时间分类
3.2 寻址方式
• 寻址方式:7种
– – – – – – – – – 寄存器寻址 直接寻址 寄存器间接寻址 立即寻址 变址间接寻址 相对寻址 位寻址 寻址方式与寻址空间 MCS-51单片机的两个突出特点
寄存器寻址——操作数存放在寄存器中
寄存器为 MOV A,R0 MOV R0,#01001111B R0~R7,A,DPTR,C SETB RS0 MOV R3,#56H
目的寻址为直接寻址
2) 20H ~2FH 可位寻址区的寻址方式
字节寻址方式: 直接寻址 direct
寄存器间接寻址@R0,@R1
位寻址: bit 直接寻址
例: MOV 26H,C ; 位寻址 (26H)1位
MOV 26H,A ;字节寻址(26H)8位
3) 30H ~7FH 数据缓冲区的寻址方式
字节寻址方式: 直接寻址 direct
MOV A,#23H
PUSH ACC
;
A寄存器寻址
POP
0E0H
;直接寻址
4、可做片内RAM的指针有:
R0,R1, 四个组共有8个 预先设置RS1、RS0,以选定组。 SETB RS0 CLR RS1; 1组

第4章 单片机的C51语言

第4章 单片机的C51语言
第4章 单片机的C51语言
4.1 C51的程序结构 4.2 C51的数据结构 4.3 C51与汇编语言的混合编程 4.4 C51仿真开发环境 4.5 C51初步应用编程
第4章单片机的C51语言
51汇编语言能直接操作单片机的系统硬件,指令执行速度 快。但其程序可读性差,且编写、移植困难。
第4章单片机的C51语言
数据类型
【存储类型】
变量名
51单片机的 三个逻辑存储空间:
片内数据存储器,片外数据存储器和程序存储器。
建立C51存储类型与存储空间的对应关系
code区
xdata区
idata区
data区
bdata区
pdata 区
第4章单片机的C51语言
C51的存储类型与存储空间对应关系表
编译模式
SMALL系统
COMPACT系统 LARGE系统
注意:SFR字节地址变量的物理地址是由MCU资源决定的
第4章单片机的C51语言
sbit型
部分SFR具有位地址,如何定义与这些位地址相关的变量?
D0^7
PSW D7H
D0^6
AC
D0^5
D0^4
RS1
D0^3
RS0
D0^2
D0^1
D1H
D0^0
P
相对位地址
D0H 字节地址 绝对位地址
CY
CY
D6H
AC
32
对于“/”和“%”往往会有疑问。这两个符号都涉
及除法运算,但“/”运算是取商,而“%” 运算为取余 数。例如“5/3”的结果(商)为1,而“5%3”的结果 为2(余数)。 表3-3中的自增和自减运算符是使变量自动加1或减1, 自增和自减运算符放在变量前和变量之后是不同的。 ++i,--i:在使用i之前,先使i值加(减)1。

计算机接口技术课件 第三章 MCS-51单片机汇编语言与程序设计基础

计算机接口技术课件 第三章 MCS-51单片机汇编语言与程序设计基础

例2:编制一段程序,要求在端口线 :编制一段程序,要求在端口线P1.0,P1.1上分别产生周期为 , 上分别产生周期为 200us和400us的方波.设单片机的外接频率为 的方波. 和 的方波 设单片机的外接频率为12MHz. . 分析:利用定时器产生方波,将定时器设置成为工作方式 , 分析:利用定时器产生方波,将定时器设置成为工作方式3,将寄 存器T0定时 定时100us,T1定时 定时200us,达到定时时间后引起中断,在中 存器 定时 , 定时 ,达到定时时间后引起中断, 断服务程序中各自将P1.0和P1.1引脚取反. 引脚取反. 断服务程序中各自将 和 引脚取反 定时器预设值的设置: 定时器预设值的设置: 单片机的晶体振荡频率为12MHz,计时器的计时频率为1MHz,机 单片机的晶体振荡频率为 ,计时器的计时频率为 , 器周期为1us. 定时 定时100us,因此寄存器 需要计数 需要计数100次 器周期为 . T0定时 ,因此寄存器T0需要计数 次 ,其预 置值为64H+1=9CH. T1定时 定时200us,因此寄存器 需要计数 需要计数200次 置值为 . 定时 ,因此寄存器T1需要计数 次 其预置值为C8H+1=38H. ,其预置值为 . 定时器T0,T1的工作方式设置: 的工作方式设置: 定时器 的工作方式设置 T0采用工作方式 ,因此 采用工作方式3,因此TMOD寄存器的值设置为 寄存器的值设置为#22H. 采用工作方式 寄存器的值设置为 . 定时器T0,T1的控制设置: 的控制设置: 定时器 的控制设置 打开T0, ;要求TCON寄存器的值设置为 寄存器的值设置为#50H. 打开 ,T1;要求 寄存器的值设置为 .
定义存储区域的大小. 6. DS —定义存储区域的大小. 定义存储区域的大小 例: ORG 0350H DS 3

51单片机汇编语言教案单片机备课本中职篇.

51单片机汇编语言教案单片机备课本中职篇.

第八 九课时教学内容I/O 口的简单应用——循环彩灯教学重难点1. 1、I/O 作为一般的输入输出口时,有何要求?2、发光二极管工作参数 〖新课内容:〗一、循环彩灯硬件电路在最小硬件系统基础上,用P1口作输出,用低电平驱动LED 发光管,LED 发光条件是:电压1.8V 左右,电流8~10mA 。

为满足要求,电路中串接限流电阻,经计算取360Ω。

电路如图所示。

二、软件设计软件设计是在最小软件系统基础上,根据所要求的显示方式,用位操作指令CLR P1.X/SETB P1.X ,对某位口操作,也可用数据传送指令MOV P1,#DATA ,对多位口同时操作。

如:设计一个由8个小灯构成的循环彩灯,要求8个小灯依次亮灭,然后重复循环 程序为:ORG 0000H360Ω+5V8.2KRSTVCC+5V+5V +5V 40 31A T89S511 8 9 181920EA10μF 6MHz 20PLJMP SETUP ORG 0030HSETUP :CLR P1.0SETB P1.0CLR P1.1SETB P1.1CLR P1.2SETB P1.2 CLR P1.3 SETB P1.3 ………SETB P1.7LJMP SETUP ENDDELAY: MOV R2,#80H DEL1: MOV R3,#0FFH DEL2: DJNZ R3,DEL2 DJNZ R2,DEL1 RET三、引出指令1、NOP 空操作指令2、循环转移指令DJNZ Rn ,rel ;先执行Rn Rn-1,然后判断,若Rn=0,则程序顺序执行, 否则就转移,转移到rel 处,转移范围为-128B~+127B 。

DJNZ direct ,rel ;同上面类似。

1、 用和返回指令LCALL addr16 ;长调用指令,调用子程序,子程序可在64KB 空间内任意 位置,同LJMP 指令。

MOV R2, #80HDEL1: MOV R7,#0FFHDEL2:DJNZ R7,DEL2DJNZ R2,DEL1MOV R2, #80HDEL1: MOV R7,#0FFHDEL2:DJNZ R7,DEL2DJNZ R2,DEL1ACALL addr11 ;断调用指令,调用子程序,同LJMP 指令。

第3章 51单片机指令系统

第3章 51单片机指令系统
MOV MOV MOV MOV MOV MOV MOV R0, #30H ;R0←30H ,立即寻址 A, @R0 ;A←(R0) ,寄存器间接寻址 R1, A ;R1←A ,寄存器寻址 B, @R1 ;B←R1 ,寄存器间接寻址 @R1, P1 ;(R1)←P1 ,直接寻址 P2, P1 ;P2←P1 ,直接寻址 10H, #20H ;(10H)←20H ,立即寻址
3.1.3 堆栈操作指令
(1)入栈指令:
PUSH direct; SP ← SP+1, (SP) ← (direct)
入栈操作:栈指针SP+1指向栈顶的上 一个空单元,将直接地址direct寻址的单元 内容压入当前SP所指示的堆栈单元中。 (本操作不影响标志位)
例3-3 在中断响应时,SP=09H,数据 指针DPTR的内容为0123H。执行下列指令 后:
MOV @Ri , A ; (Ri)←A MOV @Ri , direct ; (Ri)←(direct) MOV @Ri , data ; (Ri)←#data 上述指令将累加器A,直接地址单元内 容或立即数送到Ri间接寻址单元中。由于内 容较多,下面需要说明:
累加器A是个使用最多的寄存器,MCS-51单 片机以A为中心体系结构。绝大部分指令均需通 过A送到ALU进行运算,结果存于A中,有些指令 仅在A中进行。 直接地址direct ,8位直接地址可寻址0~255个 单元。对于8051则直接寻址内部RAM0~127地址 空间的单元及128~255地址空间的特殊功能寄存 器。这里需注意128~255地址空间很多单元开始 时无定义,对无定义单元进行读/写,则读数不定, 欲写入的数将丢失。 间接寻址@Ri,@间接寻址的符号,是以Ri 的内容作为地址进行寻址,亦即Ri的内容不是操 作数,而是地址。此地址所对应的单元内容才是 所要找的操作数。间接寻址的寻址范围与直接寻 址相同(0~255)。直接寻址单元在编程时就已 明确,而间接寻址单元是在程序运行中明确。

PIC单片机指令系统和汇编语言程序设计

PIC单片机指令系统和汇编语言程序设计

第二章PIC单片机指令系统和汇编语言程序设计2.1 指令系统概述2.1.1 指令的表示方法1.机器指令的表示方法:指令用于规定计算机的基本操作。

一台计算机所能执行的指令集合就是它的指令系统。

指令共有两种表示方法,分别是机器语言表示方法和汇编语言表示方法。

不同种类的单片机有不同的一套命令(即所谓“指令系统”)。

2.汇编语言的表示方法:汇编语言是对机器语言的改进,它采用便于人们记忆的一些符号(例如简化的英文单词)来表示操作码、操作数和地址码等。

通常把表示指令的符号称之为助记符。

3.PIC16F87X单片机指令:PIC16F87X单片机采用精简指令集(RISC)结构,指令效率高,功能强。

它的指令为单字的宽字位(14)指令,由此生成的程序代码短。

指令条数少,仅有35条。

(1)面向字节操作类(2)面向位操作类(3)常数操作和控制类操作。

2.1.2PIC单片机指令的寻址方式1.寄存器间接寻址:所谓寄存器间接寻址指的是通过寄存器F0、F4来实现。

实际的寄存器地址放在F4的低5位中,通过F0来进行间接寻址。

INDF不是物理上实际存在的寄存器,而任何寻址INDF的指令都是以FSR寄存器内容为地址的RAM单元中存放着参加运算或操作的数据。

2.立即数寻址:所谓立即寻址就是操作数在指令中直接给出。

通常把出现在指令中的操作数称之为立即数,因此就把这种寻址方式称之为立即寻址。

3.直接寻址:指令中操作数以其所在存储单元地址的形式给出,就称之为直接寻址。

这种方式是对任何一寄存器直接寻址访问。

4.位寻址:这种寻址方式是对寄存器中的任一位(bit)进行操作。

2.1.3指令符号的意义说明1.PIC汇编语言指令格式PIC系列微控制器汇编语言指令与MCS-51系列单片机汇编语言一样,每条汇编语言指令由4个部分组成,其书写格式如下:标号操作码助记符操作数1,操作数2;注释2.指令符号的意义说明:在PIC系列单片机指令中常把数据存储器RAM当作寄存器来使用(处理)并用字母f(或F)表示。

MCS-51单片机汇编语言的伪指令-文档资料

若(40H)≥(50H),则P1.0管脚连接的LED1发光; 若(40H)<(50H),则P1.1管脚连接的LED2发光。
Copyright 2006
题意分析:
本例是典型的分支程序,根据两个无符号数的 比较结果(判断条件),分别点亮相应的发光二极 管。
6.定义空间伪指令DS
4.定义字节数据伪指令DB
格式:[标号:] DS 表达式
格式:[标号:] DB 字节数据表
功能:从指定的地址开始,保留
功能:字节数据表可以是多个字节数 多少个存储单元作为备用的空间。
据、字符串或表达式,它表示将字节数据表中的 数据从左到右依次存放在指定地址单元。
如: ORG 1000H
Copyright 2006
JC L1 CLR P1.0
SJMP FIN L1:CLR P1.1 FIN:SJMP $
END
;CY=1,转移到 L1 ;CY=0,(40H)≥(50H),点亮 P1.0 连 接的LED1 ;直接跳转到结束等待
;(40H)<(50H),点亮P1.1接的LED2
7. 数据地址赋值伪指令XDATA
格式:符号名 XDATA 表达式
功能:将表达式的值或某个特定 汇编符号定义为一个指定的符号名,可以 先使用后定义,并且用于双字节数据定义。
例如:
DELAY XDATA 0356H
LCALL DELAY ;执行指令后,程 序转到0356H单元执行
Copyright 2006
BUF: DS 50 ;
例如:ORG 1000H
TAB: DB 22H ;22H存放在1032H单元。
TAB: DB 2BH, 0A0H, ‘A’, 2*4 ;
表示从1000H单元开始的地方存放数 据2BH,0A0H,41H(字母A的ASCII码), 08H

第1章作业-单片机原理与应用及C51程序设计(第4版)-谢维成-清华大学出版社

习题1.给出下列有符号数的原码、反码和补码(假设计算机字长为8位)。

+53-88-7+104答:【+53】原=00110101,【+53】反=00110101,【+53】补=00110101【-88】原=11011000,【-88】反=10100111,【-88】补=10101000【-7】原=10000111,【-7】反=11111000,【-7】补=11111001【+104】原=01101000,【+104】反=01101000,【+104】补=011010002.指明下列字符在计算机内部的表示形式。

AsENdfJFmdsv120答:41H73H45H4EH64H66H4AH46H6DH64H73H76H31H32H30H 3.什么是单片机?答:单片机是把微型计算机中的微处理器、存储器、I/O接口、定时器/计数器、串行接口、中断系统等电路集成到一个集成电路芯片上形成的微型计算机。

因而被称为单片微型计算机,简称为单片机。

4.与一般微型计算机相比,单片机有何特点?答:主要特点如下:1)在存储器结构上,单片机的存储器采用哈佛(Harvard)结构2)在芯片引脚上,大部分采用分时复用技术3)在内部资源访问上,采用特殊功能寄存器(SFR)的形式4)在指令系统上,采用面向控制的指令系统5)内部一般都集成一个全双工的串行接口6)单片机有很强的外部扩展能力5.简述存储器的哈弗结构。

答:哈佛(Harvard)结构,将程序和数据分别用不同的存储器存放,各有自己的存储空间,分别用不同的寻址方式。

存放程序的存储器称为程序存储器,存放数据的存储器称为数据存储器。

程序存储器一般由只读存储器芯片构成,所以又可简称为ROM,数据是随时变化的,所以数据存储器一般用随机存储器构成,所以又可简称为RAM。

6.简述51单片机有哪些系列。

答:主要有如下系列:1.MCS-51系列单片机2.ATMEL公司的AT89系列单片机3.STC系列51单片机4.SST公司的SST89系列单片机5.Silicon Labs公司51单片机6.华帮W77系列、W78系列单片机7.简述PIC单片机的特点。

单片机控制流水灯程序汇编语言

单片机控制流水灯程序汇编语言随着科技的发展和微电子技术的迅猛进步,单片机逐渐成为智能系统与设备中不可或缺的组成部分。

而流水灯作为最基础的应用之一,不仅在学习过程中具有重要意义,同时也在实际工程中发挥着重要作用。

本文将介绍如何使用汇编语言编写单片机控制流水灯程序,并详细讲解其运行原理和实现方法。

一、流水灯原理流水灯是一种由多个LED组成的灯条或灯链,在按照一定次序依次点亮和熄灭的灯光效果。

其原理基于单片机通过控制输出口的电平高低来控制LED的亮灭状态,实现灯光的变化和移动效果。

二、程序设计方法1. 初始化设置在编写流水灯程序之前,我们首先要了解单片机的相应接口和寄存器的使用方法。

在程序开始时,需要进行相应的初始化设置,包括将数据方向寄存器和端口寄存器设置为输出,并将初始值赋予输出口电平。

例如,对于51单片机,可以使用以下汇编语言代码进行初始化设置:MOV P1, #00H ;将P1端口的输出电平置为低电平MOV P1M1, #FFH ;将P1端口的数据方向设置为输出MOV P1M0, #00H2. 主程序在流水灯程序中,需要编写主程序来实现流水灯的效果。

主程序中使用循环结构控制LED的亮灭状态和移动效果。

例如,以下是一个简单的汇编语言代码,实现了由4个LED组成的流水灯的效果:MOV R0, #F0H ;初始亮灭状态MOV R1, #00H ;初始LED位置LOOP: ;循环MOV P1, R0 ;将亮灭状态赋予P1端口的输出电平ACALL DELAY ;延时,形成流水灯效果MOV A, R1SUBB A, #01H ;将LED位置减一MOV R1, AJZ CHANGE ;当LED位置为零时,改变亮灭状态MOV R0, R0SJMP LOOP ;继续循环CHANGE: ;改变亮灭状态CPL R0 ;对亮灭状态进行取反操作SJMP LOOP ;继续循环3. 延时函数为了实现流水灯的移动效果,需要设置一个合适的延时时间来控制LED的亮灭速度。

微机原理与单片机接口技术(第2版)李精华 第4章 单片机C51语言程序设计

位类型bit是C51语言扩充的数据类型,利用它可定义一个位标量,但 不能定义位指针,也不能定义位数组。bit占1位的存储容量,只有0或1两种 取值。位变量必须定义在51系列单片机片内RAM的可位寻址空间中,也就 是字节地址为20H~2FH的16个节单元,每1字节的每1位都可以单独寻址, 共有128位。例如,定义一个位变量flag,若flag的值为0,则将P1口的状态 送入变量temp1中,否则将P1口的状态送入变量temp2中,相关程序段如 下所示。 unsigned char temp1,temp2; bit flag; if(flag= =0)
4.2.3 数据类型
数据类型
类型名称
长位度/
bit sbit sfr sfr16
位类型
1
可寻址位型
1
特殊功能寄存器型
8
16位特殊功能寄存器型
16
取值范围
0,1 0,1 0~255 0~65536
4.2.3 数据类型
1.字符型char
字符型char包括无符号字符型unsigned char和带符号字符型signed
double,float占4字节存储容量,double占8字节存储容 量。浮点型数据可以直接表示小数,因此许多复杂的数 学表达式都采用浮点型数据。51单片机使用浮点型数据 进行运算时消耗资源较大,运行速度也慢,因而在实时 性要求非常高的程序中不做浮点型数据的运算。
4.2.3 数据类型
5.位类型bit
4.2.2 关键字
又称保留字,是程序设计语言中规定的、有固定含义 的单词符号。(32个)
auto break case
Байду номын сангаас
char const continue default do
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档