第2章 51单片机的指令系统和C语言

合集下载

零基础学51单片机(C语言版)

零基础学51单片机(C语言版)

9.1独立按键 输入电路与 程序详解
9.2矩阵键盘 输入电路与 程序详解
10.1双色LED 点阵的使用 及编程
10.2 1602 字符型液晶 显示屏的使 用及编程
11.1步进电 机与驱动芯
片介绍
11.2单片机 驱动步进电 机的电路及 编程
1
12.1概述
12.2串行通信 2
口的结构与原 理
3 12.3串行通信
精彩摘录
电源、时钟信号和复位信号是单片机工作必须具备的,提供这三者的电路称为单片机的工作条件电路。 单片机是一种内部包含有CPU、存储器和输入/输出接口等电路的集成电路(又称IC芯片)。 这种具有8051硬件内核且兼容8051指令的单片机称为MCS-51系列单片机,简称51单片机。 单片机是一种内部集成了很多电路的IC芯片(又称集成电路、集成块) 单片机是一块内部包含有 CPU、存储器和输入/输出接口等电路的IC芯片,但单独一块单片机芯片是无法工 作的,必须给它增加一些有关的外围电路来组成单片机应用系统,才能完成指定的任务。 单片机则是将CPU、存储器和输入/输出接口电路等集成在半导体硅片上,再接出引脚并封装起来构成集成电 路,外部的输入/输出设备通过单片机的外部引脚与内部输入/输出接口电路连接起来。 单片机与微型计算机都是由CPU、存储器和输入/输出接口电路(I/O接口电路)等组成的 8051单片机的引脚可分为三类,分别是基本工作条件引脚、I/O(输入/输出)引脚和控制引脚。 sfr用于定义特殊功能寄存器,如“sfr P1=0x90;”是将地址为0x90的特殊功能寄存器名称定义为P1; sbit 用于定义特殊功能寄存器中的某一位,如“sbit LED1=P1^1;”是将特殊功能寄存器P1的第1位名称定义为LED1。
6.2单片机驱 动8位LED数 码管的电路

单片机原理 第2章 MCS-51单片机体系结构

单片机原理 第2章 MCS-51单片机体系结构
8051单片机的内RAM共有128个单元,应用最为灵活,用于 存放变量的值、运算结果和标志位等信息。按其用途可分为三个 区域。
2.4.2 MCS-51单片机数据存储器
2.4.2 MCS-51单片机数据存储器
1. 工作寄存器区
字节地址为00H~1FH的32个单元是4组通用工作寄存器区,每组占用8个 字节,都标记为R0~R7。在某一时刻,CPU只能使用其中的一组工作寄存 器,工作寄存器的选择由程序状态字寄存器PSW中RS1、RS0两位来确定 ,如表2-3所示。
2. 数据总线DB 数据总线宽度为8位(D0~D7),由P0提供。
3. 控制总线CB 控制总线由P3口的第二功能状态和4根独立控制线RESET、 和ALE组成。
2.3 MCS-51单片机的中央处理器
• 8051系列单片机的中央处理器CPU是单片机 的指挥中心和执行机构,它的作用是产生合适的 时序,读入和分析每条指令代码,根据每条指令 代码的功能要求,指挥并控制单片机的有关部件 和器件,具体执行指定的操作。
2.2.3 并行I/O引脚
3. P2口
P2口,为准双向I/O口,具有内部上拉电阻。一共8位,有P2.0~P2.7共8 条引脚。当8051系列单片机扩展外部存储器及I/O接口芯片时,P2口作为 地址总线(高8位),和P0输出的低8位地址一起构成16位地址,可以寻址 64KB的地址空间。
P2口位结构图如图2-3 (c)所示,它比P1口多了 一个转换控制部分,当P2 与P0配合作为“地址/数据总 线”方式下的高8位数据线 (A8~A15)时,CPU将写 控制信号“1”使MUX切换到 右边,在“地址/数据总线” 方式下,无论P2口剩余多 少地址线,均不能被用于 普通I/O操作。
(2)控制引脚—— 、

单片机原理与应用及c51程序设计答案

单片机原理与应用及c51程序设计答案

单片机原理与应用及c51程序设计答案【篇一:单片机原理与c51语言程序设计与基础教程_课后习题答案】p> 习题填空题1.一般而言,微型计算机包括、四个基本组成部分。

2.单片机是一块芯片上的微型计算机。

以地应用范畴。

3.atmel 公司生产的cmos型51系列单片机,具有代替rom作为程序存储器,4.单片机根据工作温度可分为、和三种。

民用级的温度范围是0℃一70℃,工业级是-40℃~85℃,军用级是-55℃-125℃(不同厂家的划分标推可能不同。

5.在单片机领域内,ice的含义是。

选择题1.单片机的工作电压一般为v?a 5vb 3vc 1vd 4v2.单片机作为微机的一种,它具有如下特点:a 具有优异的性能价格比b 集成度高、体积小、可靠性高c 控制功能强,开发应用方便d 低电压、低功耗。

3.民用级单片机的温度范围是:a -40℃~85℃b 0℃一70℃c -55℃-125℃d 0℃一50℃4.mcs-51系列单片机最多有a 3b 4c 5d 65.下列简写名称中不是单片机或单片机系统的是a mcub scmc iced cpu问答题1.单片机常用的应用领域有哪些?2.我们如何学习单片机这么技术?3.单片机从用途上可分成哪几类?分别由什么用处?填空题1.运算器、控制器、存储器、输入输出接口2.单片机嵌入式系统3. mcs-51flash rom4.民用级(商业级)工业级军用级5.在线仿真器选择题1、a2、abcd3、b 4、c5、d问答题1.单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:(1)在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。

第2章 MCS-51单片机结构与时序_110905

第2章 MCS-51单片机结构与时序_110905
2.3.1 运算部件及专用寄存器组 2.3.2 控制部件及振荡器 2.3.3 单片机工作的基本时序
2.3.1 运算部件及专用寄存器组
运算部件以算术逻辑单元ALU为核心,包括一个位处理器和 两个8位暂存寄存器(不对外开放),它能实现数据的算术运 算、逻辑运算、位变量处理和数据传输操作。 累加器ACC 寄存器B 专用寄存器组 程序状态字PSW 程序计数器PC 堆栈指针SP 数据指针寄存器DPTR
锁 存 器
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 D7 D6 D5 D4 D3 D2 D1 D0 VCC VSS
地 址 总 线 (AB)
数 据 总 线 (DB)
VCC VSS
ห้องสมุดไป่ตู้(a)
(b)
MCS-51系列单片机引脚及总线结构
2.3 微 处 理 器
Program State Word
accumulator
ALU --Arithmetic and Logic Unit
图2.1 MCS-51单片机内部结构框图
1.算术逻辑单元ALU与累加器ACC、寄存器B
算术逻辑单元不仅能完成8位二进制的加、减、乘、除、加 1、减1及BCD加法的十进制调整等算术运算,还能对8位变量进 行逻辑"与"、"或"、"异或"、循环移位、求补、清零等逻辑运 算,并具有数据传输、程序转移等功能。 累加器(ACC,简称累加器A,地址E0H)为一个8位寄存器, 它是CPU中使用最频繁的寄存器。进入ALU作算术和逻辑运算的 操作数多来自于A,运算结果也常送回A保存。 寄存器B(地址F0H )是为ALU进行乘除法运算而设置的。 若不作乘除运算时,则可作为通用寄存器使用。

51单片机期末课程设计

51单片机期末课程设计

51单片机期末课程设计一、课程目标知识目标:1. 理解并掌握51单片机的基本原理和结构组成,包括内部资源、指令系统及编程方法。

2. 学会使用51单片机的开发工具和编程环境,如Keil C及ISP下载线。

3. 掌握51单片机在嵌入式系统中的应用,能够阅读并分析相关电路图。

技能目标:1. 能够独立设计并编写简单的51单片机程序,实现基础的外围设备控制,如LED灯、蜂鸣器等。

2. 能够运用所学的知识解决实际的51单片机编程问题,进行基本的程序调试和故障排查。

3. 通过课程设计项目,培养动手实践能力和团队协作能力。

情感态度价值观目标:1. 培养学生对于电子技术和编程的兴趣,激发其主动探索和创新的热情。

2. 增强学生的工程意识,培养严谨、细致、负责的学习态度和职业素养。

3. 通过课程学习,使学生认识到技术对生活的影响,增强社会责任感和使命感。

本课程针对高年级学生,在已有电子技术和C语言编程基础的前提下,进一步深化对51单片机的理解与应用。

课程性质为理论与实践相结合,强调知识的应用性和实践性。

在教学过程中,注重培养学生的自主学习和问题解决能力,以项目驱动教学,确保学生能够达到预设的学习成果。

通过期末课程设计,巩固所学知识,提高综合运用能力。

二、教学内容本课程教学内容紧密围绕课程目标,结合教材以下章节展开:1. 51单片机原理概述:包括内部结构、工作原理、资源分布等,重点理解时钟电路、复位电路的作用。

- 教材章节:第1章 51单片机基础2. 51单片机指令系统与编程:学习汇编语言编程,掌握常用指令,理解程序执行流程。

- 教材章节:第2章 51单片机指令系统与编程3. 开发工具使用:介绍Keil C集成开发环境和ISP下载线的使用方法,学会创建、编译、下载程序。

- 教材章节:第3章 51单片机开发工具4. 外围设备控制:学习51单片机与LED灯、蜂鸣器、数码管等外围设备的接口与编程控制。

- 教材章节:第4章 51单片机外围设备编程5. 传感器应用:结合实际案例,学习传感器与51单片机的连接和数据处理。

第2章 MCS-51单片机

第2章  MCS-51单片机

(4)可寻址外部程序存储器和数据存储器,各64KB;
(5)两个16位定时器/计数器; (6)32位可编程并行I/O口; (7)一个可编程全双工串行I/O口; (8)二十多个特殊功能寄存器; (9)5个中断源,两个优先级嵌套中断结构。
2. 微处理器 8051微处理器的组成如下所示:
累 加 器 ACC( Accumulator) 程 序 状 态 字 寄 存 器 PSW( Program Status Word) 运算器 暂存寄存器 CPU 寄存器B 指 令 寄 存 器 IR 控制器 指 令 译 码 器 ID 程 序 计 数 器 PC
(2)位寻址区
内部RAM的0x20~0x2F为位寻址区,这16个字节的每
一位都对应一个8位地址,位地址范围为0x00~0x7F。该区 域可按字节读写,也可按位读写,位地址从0x20单元最低位 开始,共有16×8位,即128个位地址。 如果系统需要位操作,最好保留0x20~0x2F单元的部分
或全部,作为位存储区,以支持位处理操作。位寻址区的每
一位都可以直接进行位操作。通常把各种程序状态标志位控 制变量,设在位寻址区内,同时,位寻址区的RAM单元也 可以作一般的数据缓冲器使用。RAM寻址区位地址映象如 表2-5所示。
位 寻 址 区 地 址 映 象
(3)缓冲器区
内部RAM的0x30~0x7F的地址区,可作为数据缓冲器 使用,存放数据,由于该区有丰富的操作指令,使用十分 方便。 2.外部数据存储器 在51系列中,允许用户扩展外部数据存储器和I/O接口, 用户可以通过P0、P2口最多扩展连接64K个外部单元(每
片机系统。
MCS-51的典型产品是8051、8031、8751。8051是ROM型单片 机,内部有 4KB 掩膜 ROM ; 8031 无片内 ROM , 8751 片内有

单片机习题答案

《单片机应用技术》习题答案第一章概述1. 什么是总线?总线主要有哪几部分组成?各部分的作用是什么?总线是连接计算机各部件之间的一组公共的信号线。

一般情况下,可分为系统总线和外总线。

系统总线应包括:地址总线(AB)控制总线(CB)数据总线(DB)地址总线(AB):CPU根据指令的功能需要访问某一存储器单元或外部设备时,其地址信息由地址总线输出,然后经地址译码单元处理。

地址总线为16位时,可寻址范围为216=64K,地址总线的位数决定了所寻址存储器容量或外设数量的范围。

在任一时刻,地址总线上的地址信息是惟一对应某一存储单元或外部设备。

控制总线(CB):由CPU产生的控制信号是通过控制总线向存储器或外部设备发出控制命令的,以使在传送信息时协调一致的工作。

CPU还可以接收由外部设备发来的中断请求信号和状态信号,所以控制总线可以是输入、输出或双向的。

数据总线(DB):CPU是通过数据总线与存储单元或外部设备交换数据信息的,故数据总线应为双向总线。

在CPU进行读操作时,存储单元或外设的数据信息通过数据总线传送给CPU;在CPU进行写操作时,CPU把数据通过数据总线传送给存储单元或外设2.什么是接口电路? CPU与接口电路连接一般应具有哪些信号线?外部设备与接口电路连接一般应具有哪些信号线?CPU通过接口电路与外部输入、输出设备交换信息,一般情况下,外部设备种类、数量较多,而且各种参量(如运行速度、数据格式及物理量)也不尽相同。

CPU为了实现选取目标外部设备并与其交换信息,必须借助接口电路。

一般情况下,接口电路通过地址总线、控制总线和数据总线与CPU连接;通过数据线(D)、控制线(C)和状态线(S)与外部设备连接。

3. 存储器的作用是什么?只读存储器和随机存储器有什么不同?存储器具有记忆功能,用来存放数据和程序。

计算机中的存储器主要有随机存储器(RAM)和只读存储器(ROM)两种。

随机存储器一般用来存放程序运行过程中的中间数据,计算机掉电时数据不再保存。

第2章 MCS-51系列单片机的内部结构

第2章 MCS-51系列单片机的内部结构单片机就是将构成计算机最基本的功能部件集成在一块芯片上的集成芯片。

本章主要介绍MCS-51系列单片机芯片内的硬件结构、性能特性,特别是存储器结构及并行I/O接口结构和工作原理。

只有了解了单片机的存储结构和所能提供的内部资源,才能合理地使用单片机。

2.1 MCS-51系列单片机内部结构和引脚说明MCS-51系列单片机是Intel公司于20世纪80年代初推出的系列8位单片机,经过30多年的发展,目前已发展到十多种产品,属于这一系列的单片机有多种,包括51子系列(如8051/8751/8031)和52子系列(如8052/8752/8032)。

在制造上,MCS-51系列单片机按照两种工艺生产。

一种是HMOS工艺,即高密度短沟道MOS工艺。

另一种是CHMOS工艺,即互补金属氧化物的HMOS工艺。

CHMOS是HMOS和CMOS的结合,既保留了HMOS高速度和高密度的特点,还具有CMOS的低功耗特点。

HMOS芯片的电平与TTL电平兼容,而CHMOS芯片的电平既与TTL电平兼容,又与CMOS电平兼容。

产品型号中凡带有字母“C”的芯片即为CHMOS芯片(如80C51等),不带字母“C”的芯片即为HMOS芯片(如8051等)。

在功能上,MCS-51系列单片机有基本型和增强型两类,以芯片型号的末位数字来区分,“1”为基本型,“2”为增强型。

如8051/8751/8031、80C51/87C51/80C31为基本型,而8052/8752/8032、80C52/87C52/80C32为增强型。

MCS-51系列单片机在片内程序存储器的配置上有3种形式,即掩膜ROM、EPROM 和片内无程序存储器。

如在基本型中,8051内有4KB的掩膜ROM,8751内有4KB的EPROM,而8031片内无程序存储器,使用时需在单片机外部扩展程序存储器。

另外,属于MCS-51系列的单片机还有8044/8744/8344,这类单片机增加了串行接口单元(SIU),专门负责串行通信管理,使单片机的组网功能大大增强。

51系列单片机指令系统


MOV DPTR,#1000H MOVX A,@DPTR INC DPTR, MOVX @DPTR,A 7、程序存储器向累加器A传送指令 MOVC A,@A+DPTR MOV DPTR,#100H MOV A,R0 MOVC A,@A+DPTR ORG 0100H. DB 0,1,4,9,16,25 8、堆栈操作指令 PUSH direct POP direct 第一条指令称之为入栈指令,就是将direct中的内容 送入堆栈中,第二条指令称之为弹出指令,就是将堆栈 中的内容送回到direct中。
位寻址时,操作数是二进制数的某一位,其位地 址出现在指令中,例如指令 • SETB bit ;(bit) ← l • 51系列单片机可用于位寻址的空间是内部RAM的可 位寻址区和SFR区中的字节地址可以被8整除(即地址以 “0”或“8”结尾)的寄存器所占空间,寻址方式如表 2-2所示。
表2-2 寻址方式一览表
寻 址 方 式
寻 址 范 围
R0-R7 ,DPTR ACC,B,C(CY位)
内部RAM 00H-7FH 特殊功能寄存器 80H-FFH 内部RAM位寻址区 (20H-2FH): 位地址00H-7FH 可寻址的特殊功能寄存器: 位地址 80H-F7H 以数据指针表示操作数 内部RAM 00H-7FH 外部RAM或I/O端口 00H-FFH / 0000H-FFFFH
图2-3 寄存器间接寻址
图2-4 立即寻址
4、立即寻址

立即寻址时,指令中直接给出操作数。例如指令 MOV A,#76H ;数据76H送累加器 A。 • 立即数寻址过程如图2-4所示。
5、变址寻址

变址寻址时,指定的变址寄存器的内容与指令中 给出的偏移量相加,所得的结果作为操作数的地址。 例如指令MOVC A, @A+DPTR ;((A)+(DPTR))送 A。变址寻址过程如图2-5所示。 不论用DPTR或PC作为基址指针,变址寻址方式都 只适用于51系列单片机的程序存储器,通常用于读取 数据表也就是将程序存储器中的数送入A中。因此也称 为查表指令,常用此指令来查一个已做好在程序存储 器中的表格,这条指令采用变址寻址。

第二章.MCS-51单片机结构和原理


* 由于T1的作用,不需外接上拉电阻。
②输入数据
类似于读引线
控制:C=0,MUX下通,与门4输出为0。T1截止,预臵Q=1, T2截止。 P0.X→三态门2→内总线
二、P1口
通用8位准双向端口。 ⑴ 输出:Q→FET(反相)→P1.X
* 有内部上拉电阻,不必外接。
⑵ 输入: 读引线:预臵Q=1,FET截止,P1.X→下三态门→内部总线 读锁存器:Q→上三态门→内部总线
3
ATmega8 RISC,SPEED,power,a/d,spi,i2c,uart,pwm,内时钟 C8051F310 debug,speed,power,ram,外设 PIC16F87X 指令,存储器,外设,a/d
MC68HC908JB16 i/o,usb,mul&div
ADuC812 12bit a/d 凌阳SPCE061A
㈢.P2.0-P2.7:P2端口
⑴.无外存:通用准8位双向I/O口(有内部上拉电阻)
⑵.有外存:地址总线高8位
*EPROM编程时,接收地址高8位
㈣.P3.0-3.7:P3端口
⑴.通用8位准双向I/O口(有内部上拉电阻)
⑵.专用功能:
串行口: P3.0-RXD,接收 P3.1-TXD, 发送 中断申请:P3.2- INT0 P3.3-INT1 CTC: P3.4-T0 , CTC0时钟输入 P3.5-T1 , CTC1时钟输入 读写控制: P3.6- WR, 外部RAM写 P3.7- RD, 外部RAM读.
三. I/O接口电路:
并行口:4个8位端口 P0-P3,32根I/O线 串行口:1个
四.CTC:
16位CTC 2个/3个(52)
五.中断功能:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1byte 2bytes 4bytes 4bytes 8bytes
0,1
0~255,.128~127 0~65525,.32768~32767 0~4294967295,.2147483648~214748 2647 ±1.176E.38E~±3.40+38(6位数字) ±1.176E.38E~±3.40+38(10位数字)


2.4 51单片机的C语言
2.4.1 C51语言的数据类型、运算符和表达式
数据 类型 名称 长度 值域
基本 类型
位型bit
字符型unsigned char,char 整型unsigned int,int 长整型unsigned long,long 浮点型float 双精度浮点型double
1bit
构造 类型 指针 类型
数组、结构体、共用体、枚举 2~3byte s 存储空间,最大64K
2.4 51单片机的C语言
2.4.1 C51语言的数据类型、运算符和表达式
• 常量和变量:常量在程序执行过程中值不能发生变化,变量在程序执行过程中值 可以改变;常量通常用#define关键字来定义,而变量通常用变量名来表示,一个 起始字符为字符或者下划线,随后字符必须是字母、数字或者下划线的字符组合, 变量在使用之前必须先定义。 C51语言的存储器和寄存器变量定义:数据存储空间关键字 、C51的存储模式 C51语言的算术运算、赋值、逻辑运算以及关系运算:算术运算符 、赋值中的自 动类型转化 C51语言的位操作:位逻辑运算包括位与、位或、位异或、位取反。 C51语言的自增减、复合和逗号运算:C51语言的自增减运算分别是使变量的值 增加或者减少1,相当于“变量 = 变量 + 1”或者“变量 = 变量 –1”操作,其应用 形式是“变量++”、“++变量”、“变量--”和“--变量”。
2.1 51单片机的寻址
2.1.2 寻址方式
• • • 立即寻址:立即寻址是直接给出操作数的寻址方式,操作码后面的内容就是操作 数,由于这些操作数立即传送或者赋值,所以被称为立即数 。 直接寻址:直接给出操作数所在存储器地址的方式被称为直接寻址,操作数的地 址可以是内部数据存储器的用户区、特殊功能寄存器或者位地址空间 。 寄存器寻址:寄存器寻址和直接寻址类似,只是将数据存放在寄存器中,然后直 接给出寄存器的地址,这些寄存器可以是R0~R7、A、B、DPTR,其中A、B可 以联合起来作为一个16位的寄存器参与寻址;当使用位操作指令时候还可以使用 CY。 寄存器间接寻址:将操作数所在的存储器地址放在一个寄存器中,然后对这个寄 存器寻址,这就是寄存器间接寻址,寄存器间接寻址方式可以访问内部数据存储 器和外部数据存储器 。 变址间接寻址:变址间接寻址是将基址寄存器内部数据加上变址寄存器内部数据 的结果作为操作数的存放地址 。 相对寻址:相对寻址方式是以PC的内容作为基础地址,加上指令中给定的偏移 量,所得到的结果为转移地址,其中偏移量是8位带符号数,范围在+127~ -128 之间,一般用于程序的跳转,只能寻址程序寄存器 。 寻址空间范围:寻址空间是指寻址指令能使用的存储器地址范围,表2.1给出了 常用的寻址方式的寻址空间范围。

2.2 51单片机的指令
2.2.3 逻辑操作指令
• • • • • • ANL指令:逻辑与指令是在所给出的操作数之间进行的以位为单位的与操作,将 结果存放在目的操作数中,常常用于将字节数据指定的位清零。 ORL指令:逻辑或指令是在所给出的操作数之间进行的以位为单位的逻辑或操作, 结果存放在目的操作数中,常常用于将字节数据的指定位置位。 XRL指令:逻辑异或指令是在所给出的操作数之间进行的以位为单位的逻辑异或 操作,结果存放在目的操作数中,常常用于将字节数据的指定位取反。 LR和CPL指令:清零指令CLR将累加器A数据清零,取反指令CPL将累加器A数 据取反,这两条指令只能对累加器A使用。 移位操作指令:51系列单片机的移位指令包括循环左移指令RL、循环右移指令 RR、带进位的循环左移指令RLC和带进位的循环右移指令RRC。这些指令的操 作数都必须是累加器A。 SWAP指令:半字节操作指令SWAP用于将累加器A高半字节数据和低半字节数据 交换。

2.2 51单片机的指令
2.2.5 控制转移指令
• • 无条件转移指令:无条件转移指令包括短转移指令AJMP、长转移指令LJMP、相 对转移指令SJMP和散转指令JMP,这些指令不需要任何条件,直接根据操作数 修改PC内容,均不影响PSW相关标志位。 条件转移指令:条件转移指令根据某些条件决定是否修改PC的数值,当条件不 满足时,继续执行PC下面的指令,当条件满足时候跳转到指定指令起始位置。 条件转移指令包括零条件转移指令JNZ、JN,比较转移指令CJNE和减1非零转移 指令DJNZ。 子程序转移指令:子程序转移指令包括短调用指令ACALL,长调用指令LCALL 和返回指令RET、RETI。这些指令用于从主程序进入和返回子程序,子程序是指 具有某种功能的公用程序段。子程序转移指令和普通转移指令的最大区别是在调 用前者必须把当前PC数值压入堆栈保存,退出前者时必须从堆栈中将PC值恢复。 控制转移指令:位控制转移指令包括JC,JNC,JB,JNB,JBC共5条指令,均是 条件跳转指令,使用进位标志CY或者位地址作为判断地址。 空操作指令:空操作指令NOP将PC值加1,让程序继续执行,占用一个机器周期, 常常用于等待操作。
• •
2.4 51单片机的C语言

• •
2.3 51单片机的伪指令和汇编程序设计
2.3.1 伪指令
• • • • ORG伪指令:ORG伪指令用于定义程序或者数据块的起始存放地址,其一般使 用格式是“ORG 16位地址”,在一个程序中可以多次使用ORG定义不同程序段 的起始地址。 DB伪指令:DB伪指令用于将以系列数据字节存放到从标号开始的连续字节单元 中,数据字节使用逗号分离,可以是十六进制数,十进制数或者是字符。 DW伪指令:DW伪指令和DB类似,将系列数据按照双字节格式存放到从标号开 始的连续双字节单单元中,低位地址单元存放低位数据字节,高位地址单元存放 高位数据字节,每双字节之间使用逗号隔开。 EQU伪指令:EQU伪指令用于给一个表达式的值或者字符串赋予标号,这个标 号可以用作程序地址、数据地址或者立即数。通常的使用格式是“标号 EQU 表 达式”,标号必须是没有使用过的,表达式可以是8位或者16位数据,EQU可以 使用“=”代替。 DATA伪指令:DATA伪指令用于给8位内部数据存储器地址单元赋予一个标号, 这个标号不是唯一的,同一个地址单元可以拥有多个标号。 XDATA、BIT和END伪指令:XDATA伪指令用于给一个8位外部数据存储器单元 赋予一个标号,其使用方法和DATA伪指令相同。BIT伪指令用于给可以位寻址 的存储器单元起一个名字,使用方法和DATA伪指令相同。END伪指令用于标志 程序的结束,编译器对程序的编译到END结束。
第二章 51单片机的指令系统和C语言
2.1 51单片机的寻址 2.2 51单片机的指令 2.3 51单片机的伪指令和汇编程序设计
2.4 51单片机的C语言
2.5 C51语言程序设计技巧
汇编语言和C语言是51单片机软件开发中最常用的语言,而指令系统又是 汇编语言开发的基础,通常来说C语言会用于较复杂的大型程序编写,汇编语 言则用于对效率要求很高的场合,尤其是底层函数的编写。
• • • •
2.2 51单片机的指令
2.2.1 数据传送指令
• • • • • • • MOV指令:MOV是将数据存储器或者寄存器中的源操作数内容送入目的操作数 的指令。 MOVC指令:MOVC和MOV指令类似,但是只能用于访问程序存储器,一般用 于查表操作,使用间址变址寻址。 MOVX指令:MOVX指令也和MOV指令类似,但是用于访问外部数据存储器, 可以使用R0~R7和DPTR间接寻址。 XCH指令:XCH指令用于完成累加器和源操作数之间的数据交换,所有的目的 操作数必须是累加器A,源操作数则可以是寄存器寻址、直接寻址和寄存器间接 寻址。 XCHD指令:XCHD是一个半字节交换指令,和XCH类似,但是交换的只是源操 作数和目的操作数的低半字节,它们的高半字节保持不变。 PUSH指令:PUSH用于将操作数压入堆栈,其操作数必须为直接寻址,例2.11给 出了PUSH指令的应用方法。 POP指令:POP用于把数据从堆栈中弹出到指定的内部数据存储器或者特殊功能 寄存器。
2.2 51单片机的指令
2.2.2 算术指令
• • • ADD和ADDC指令:ADD和ADDC是加法指令,其中ADD是不带进位的加法运算 指令,两个相加的数中目的操作数存放到累加器中,原数据可以采用立即寻址、 寄存器寻址、寄存器间接寻址或者直接寻址方式。 SUBB指令:SUBB是带借位的减法,其用法和ADDC完全类似,也会影响PSW的 对应标志位。 MUL和DIV指令:MUL是乘法指令,目的操作数为累加器A,源操作数为B寄存 器,使用寄存器寻址,相乘之后的结果低字节存放到累加器A中,高字节存放到 B寄存器中。执行MUL指令之后CY一定为零,若高字节为零则OV被清除,否则 OV被置位。 INC和DEC指令:INC是自加1指令,可以使指定单元内容加1,加法按照无符号 二进制数进行,其执行结果不影响PSW中各个标志,寻址方式可以是直接寻址、 寄存器寻址、寄存器间接寻址。DEC和INC类似,可以使指定单元内容减1,执 行结果不影响相关标志位。
2.2 51单片机的指令
2.2.4 位操作指令
• • 位传送指令:位传送指令仍然是MOV,但是其目的操作数和源操作数必须分别 是位地址和CY标志位,需要注意的是位地址和位地址之间不能直接传送数据, 必须利用CY作为中间媒介。 位变量修改指令:位变量修改指令包括清除位指令CLR和置位位指令SETB,这 两条指令可以对一个位地址或者进位标志CY操作,例2.24给出了这两条指令的应 用方法。 位逻辑运算指令:位变量之间的逻辑运算包括逻辑与运算指令、逻辑或运算指令 和逻辑非运算指令,这些指令使用进位标志C作为目的操作数,使用一个单片机的寻址
相关文档
最新文档