单片机原理及其应用课件--第四章
完美版课件资料单片机原理及应用第四章
例:FLG BIT 00H FAST BIT 20H ┇ CLR FLG SETB FAST ┇
4.4 基本程序结构
4.4.1 顺序程序
顺序程序是指无分支、无循环结构的程序。 其执行流程是依指令在存储器中的存放顺序 进行的。
顺序程序是所有程序设计中最基本、最 简单,应用最多的程序结构。
CJNE A,30H,NE ;若两个数不相等,则转NE
SETB 7FH;若两个数相等,则7FH单元置1
AJMP OVER ;转OVER
NE: CLR 7FH
;7FH单元清零
OVER:SJMP $
[例] 设VAR 单元内有一自变量X,请按如 下条件编程求函数值Y并存入FUNC单元 中。
1 X 0 Y 0 X 0
五、字节数据定义伪指令 DB
格式:[标号:]DB 字节数据表。
功能是从标号指定的地址开始,在ROM中把数据 以字节数的形式存放在存储器单元中。一个数据 占一个存储单元。
例:FIRST: DB 73,04,53,38,00,46 SECON:DB 02H,36H,7AH,34H
六、字数据定义伪指令 DW
MOV R7,#08H ;R7存放循环次数
判断两个数相等的程序流程图
程序如下:
ORG 0100H
MOV DPTR,#2000H;地址指针指2000H单元
MOVX A,@DPTR ;(2000H)→A
MOV R0,A
;A→R0
MOV DPTR,#2001H;地址指针指2001H单元
MOVX A,@DPTR ;(2001H)→A
MOV 30H,R0
MOV A,#0FFH ; 若 X<0 , 则 -1→A , FFH为-1的补码
《单片机原理及应用》(张才华)811-8课件 第4章 中
• 4.1 中断基础知识
• 4.1.1 什么是中断
•
单片机的中断是指在正常执行某一程序过程中,由于内部或
外部的突发事件,CPU暂停执行此程序而转去处理突发事件(即
执行突发事件的中断服务程序),事件处理结束后返回主程序断
点处(被中断的下一条指令)继续执行。中断处理过程如图4-1所
示。
图4-1 中断处理过程示意图
图4-3 中断处理过程
• 4.3 中断应用实例
• 【例4-2】利用单片机的外部中断0响应按键开关的按键信号, 当有按键按下时,单片机响应中断,并使内部某变量加1,硬件电 路如图4-4所示。
图4-4 单片机外部中断检测按键电路图
• 4.1.2 为什么要引入中断机制
•
若单片机采用顺序结构运行,由于采用查询方式,CPU将不
停的检测外设信号的变化情况,占用了大量的CPU时间,效率很
低。引入中断机制后,CPU在执行某一程序的过程中,当CPU系统
内、外发生紧急情况时,可以要求CPU终止原工作的执行,转去
执行相应的紧急事件,待处理结束后,再回到原来被中断的地方
继续执行被打断的工作。
• 4.1.3 中断的优先级与嵌套
• 4.2 MCS-51的中断结构与控制
• 4.2.1 MCS-51的中断源及中断结构
• (一)中断源
•
向CPU发出中断请求的信号称为中断源。
• (二)中断结构
•
MCS-51系列单片机的中断系统结构如图4-2所示。
• 1.TCON中的中断标志位
• 2.SCON中的中断标志位 • 3.中断允许控制寄存器IE
• 4.中断优先级控制寄存器IP
图4-2 MCS-51中断结构
《单片机原理与应用》全套课件 387p
~2 20 V
R4 1 0KΩ
+ C4
晶闸管 智能模块
5 4 3 2 1
+ OUT -
IN
1 00 μF
+12 V
(晶振电路、电源电路省略)
《单片机原理与应用》
课程简介:“单片机原理及应用 ”是一门实践性、
应用性很强的技术基础课,通过本课程的学习,使学 生较好地掌握MCS-51系列单片微型计算机的基本结构、 工作原理、接口技术和应用等方面的知识。掌握单片 机应用系统的设计和应用程序的设计方法,学习单片 机应用于工业测控等方面的基本技术。并通过实践环 节的学习,学会单片机应用系统的设计和调试方法。 为将来从事自动测控技术、智能电器、电子、检测等 工业领域相关工作,进行各种智能化电子产品的设计 和研发等提供技术准备,奠定坚实的技术基础。
AM PL IFE R
火 线
5V
5 0KΩ
独石电容
1 04
P 2 .0
3 4 BUT T E N J5 1 3 4 BUT T E N J6 1 3 4 BUT T E N J7 1 3 4 BUT T E N J8 1
独石电容
2
独石电容
1 04 1 04
P 2 .1
3 4 BUT T E N J9 1 3 4 BUT T E N J1 0 1 3 4 BUT T E N J1 1 1 3 4 BUT T E N J1 2 1
P 3 .3
1 3 P3. 3 (INT 1 ) (A1 5) P2. 7 2 8 1 4 P3. 4 (T 0 ) 1 5 P3. 5 (T 1 ) 1 6 P3. 6 (W R) 1 7 P3. 7 (RD) 1 8 XT AL 2 1 9 XT AL 1 2 0 GND IAP&ISP (A1 4) P2. 6 2 7 (A1 3) P2. 5 2 6 (A1 2) P2. 4 2 5 (A1 1) P2. 3 2 4 (A1 0) P2. 2 2 3 (A9 ) P2. 1 2 2 (A8 ) P2. 0 2 1
单片机原理与应用课件单片机原理与应用第四章
•
汇编程序遇到END 伪指令后即结束汇编。处于END 之后的程序,汇
编程序将不处理。
(3)字节数据定义伪指令DB
•
格式为:
• [标号:] DB 字节数据表 • • 功能是从标号指定的地址单元开始,在程序存储器中定义字节数据。 • DB “Hello World” • DB –2,–4,–6,5,10,18
机汇编语言的指令语句格式为: • [标号:] 指令助记符 [操作数1] [操作数2] [操作数3] [;注释]
• LOOP:MOV A,# 7FH ;A←7FH
• 一、标号 • 标号是指令语句的符号地址,用于引导对该语句的非顺序访问,通常可以
作为转移指令的操作数。
• 标号不能使用保留字,如指令助记符、寄存器符号名称、伪指令等; • 标号位于语句的开头位置,由字母、数字或其它特定字符组成,以字母开
用途
#include 包含一个源代码文件
#define 定义宏
#undef 取消已定义的宏
#if
如果给定条件为真,则编译下面代码
#elif
#endif #ifdef
如果前面的#if给定条件不为真,而当前条件为真 ,则编译下面代码 结束一个#if……#else条件编译块
如果宏已经定义,则编译下面代码
#ifndef #error
• 1.C51源程序的编辑 • #include<reg51.h> • #define LED P1 • unsigned int m; • void delay_ms(void); • void delay_us(void); • ... ...
//预处理命令,用于包含头文件,宏定义等
//全局变量说明 //函数1声明
单片机原理及应用——C51编程+Proteus仿真(第3版)课件第4章-keil与Proteus的使
35
占用程序存储器共89字节。最后生成的.hex文件名为“流水灯.hex”,至 此,整个程序编译过程就结束了,生成的.hex文件就可在后面介绍的 Proteus环境下进行虚拟仿真时,装入单片机运行。
下面对用于编译、连接时的快捷按钮
与 作简要说明:
(1) 用于编译正在操作的文件。。
这些图标大多数是与菜单栏命令【Debug】下拉菜单中的各项子命令是 相对应的,只是快捷按钮图标要比下拉菜单使用起来更加方便快捷。
24
图4-15与图4-16中常用的快捷按钮图标的功能介绍图4-14中各个窗口的开与关。
25
(2)各调试功能的快捷按钮
片机可以运行的二进制文件(.hex格式文件),文件的扩展名为.hex。 (2)Select Folder for objects—选择最终的目标文件所在的文件夹,默认
与项目文件在同一文件夹中,通常选默认。 (3)Name of Executable—用于指定最终生成的目标文件的名字,默认与
项目文件相同,通常选默认。
(2) 按钮—用于编译修改过的文件,并生成相应的目标程序(.hex文 件),供单片机直接下载。
(3) 按钮—用于重新编译当前项目中的所有文件,并生成相应的目标 程序(.hex文件),供单片机直接下载。主要用在当项目文件有改动时 ,来全部重建整个项目。
36
因为一个项目不止一个文件,当有多个文件时,可用本按钮进行编译。 用C51编写的源代码程序不能直接使用,一定要对该源代码程序编译,生
窗口会出现一个空白的文件编辑画面,用户可在这里输入编写的程序源 代码。
11
(2)单击图4-1中快捷按钮
图4-7 建立新文件
(2)单击图4-1中快捷按钮 ,保存用户程序文件,这时会弹出如图4-8 所示窗口。,保存用户程序文件,这时会弹出如图4-8所示窗口。
单片机原理及应用课件(第4讲)
21
第4章 MCS-51单片机汇编语言程序设计
§4-7 数制转换程序
常见的数制转换主要有二进制数与十进制数之间的转换, 二进制与十六进制之间的转换
1.二进制数转换为十进制数
4.20 将R3中的二进制数转换为非压缩BCD数,存放在片 内R0指向的单元,结果放在60H开始的单元中。
13
第4章 MCS-51单片机汇编语言程序设计
例:
课堂练习: 9、设计一个将十六进制数转换成ASCII码的子 程序。设十六进制数存放在R0的低4位,要 求转换后的ASCII码送回R0中。 10、设片内RAM中以20H开始的单元,连续存 放10个非压缩BCD码,试将其转换成ASCII 码,存放到片内以50H开始的单元中。
Author: Zhanghaitao E_mail: zht_sir@
10
第4章 MCS-51单片机汇编语言程序设计
例:
课堂练习: 6、10个数,去掉一个最大值、一个最小值, 求剩余8个数的平均值。 7、试编程把以2000H为首地址的连续50个单 元的内容按升序排列,存放到以3000H为首 地址的存储区中。
E_mail: zht_sir@
20
第4章 MCS-51单片机汇编语言程序设计
§4-6 算术逻辑处理程序
4.除以2的倍数的处理
4-18. 假设自P0口输入8个数据,已经存在片内RAM60H开 始的单元中,求出这八个数据平均值,并将商放在R3、 R4中。
5.双字节无符号整数相乘
4-19. 设被乘数已经在R5、R4中,乘数已在R3、R2中,4 个字节的乘积存放在ADR指出的片内RAM的连续4个单 元中,地地址存放积得低位。
精品课件-单片机原理及应用系统设计-第4章
;
PUSH
DPL
;
保护现场, 将主程序中
; DPTR的低八位放入堆
MOV
DPTR, #TABLE
; 在子程
第四章 单片机程序设计语言
恢复现场,
MOVC A, @A+DPTR
POP
DPL
将主程序中DPTR
; ;
;的低八位从堆栈中弹出
POP 场, 将主程序中DPTR
DPH
; 恢复现
;的高八位从堆栈中弹出
图 4-8 循环程序的典型形式
第四章 单片机程序设计语言
【例 4-4】 冒泡程序。假设有N个数, 它们依次存放 于LIST地址开始的存储区域中, 将N个数比较大小后, 使它 们按照由小到大的顺序排列,
编写该程序的方法: 依次将相邻两个单元的内容作比较, 即第一个数和第二个数比较,第二个数和第三个数比 较, ……, 如果符合从小到大的顺序则不改变它们在内存 中的位置,否则交换它们之间的位置。如此反复比较, 直到 数列排序完成为止。
LJMP MAIN
;
MAIN: MOV A, X
XRL A, Y
; (X)与(Y)进行异或操作
JB ACC.7, NEXT1
; 累加器A的第7位
为1, 两个数
;符号不同, 转移到
第四章 单片机程序设计语言
MOV
CJNE
转移到NEQUAL
CLR
P1.0置0
S
MOV DXCE1COUNTER, #00H
; 将DXCE1COUNTER赋值为0
而如下的注释则给出了额外有用的信息:
JNZ PC Comm_Err
;
第四章 单片机程序设计语言
(2) 注释应与其描述的代码相近, 对单条语句的注释应 放在其上方或右方相邻位置, 不可放在下面, 如放于上方
单片机原理与应用技术(第2版)电子课件第4章
2、中断申请的撤除 3) 外部中断请求的撤除
外部中断可分为边沿触发型和电平触发型。
对于边沿触发的外部中断或,CPU在响应中断后,由硬件 自动清除其中断标志位IE0或IE1,无需采取其他措施。
对于电平触发的外部中断,其中断请求撤除的方法较为 复杂,只有通过硬件配合相应软件的方式 。
4.2 中断程序设计
2、编程举例 例4.2 用C语言对例4.1重新编程。
解:编程如下:
4.3 定时/计数器
4.3.1 定时/计数器的结构
8051单片机内部有两个 16 位的可编程定时/计数器,称为定时器0 (T0) 和定时器1(T1),可编程选择其用作定时器或计数器,其逻辑结构如图。
例4.1 在图4.3中,P1.4~P1.7接有 4个发光二极管,P1.0~P1.3接有4 个开关,消抖电路用于产生中断请 求信号,消抖电路的开关来回拨动 一次将产生一个下降沿信号,通过 向CPU申请中断,要求:初始发光 二极管全黑,每中断一次,P1.0~ P1.3所接的开关状态反映到发光二 极管上,且要求开关合上时对应发 光二极管亮。
机系统内、外的某种原因,当出现CPU以外的某种情况时,由 服务对象向CPU发出中断请求信号,要求CPU暂时中断当前程 序的执行而转去执行相应的处理程序,待处理程序执行完毕后,
再返回继续执行原来被中断的程序。
2、中断的特点 ◆ 分时操作 ◆ 实时处理 ◆ 故障处理 3、中断系统的功能 ◆ 实现中断响应和中断返回 ◆ 实现优先权排队 ◆ 实现中断嵌套
第4章 中断系统、内部定时/计数器
• 4.1 中断系统 • 4.2 中断程序设计 • 4.3 定时/ • 4.4 定时/计数器的编程举例 • 小结
4.1 中断系统
4.1.1 中断系统概述
《单片机原理与应用》课件
《单片机原理与应用》课件一、教学内容本节课的教学内容选自教材第四章《单片机原理与应用》。
本章主要介绍单片机的基本原理、硬件结构、编程语言及其应用。
本节课将详细讲解单片机的基本原理、硬件结构以及单片机编程的基本方法。
二、教学目标1. 让学生了解单片机的基本原理及其硬件结构。
2. 培养学生掌握单片机编程的基本方法。
3. 使学生能够运用单片机解决实际问题。
三、教学难点与重点重点:单片机的基本原理、硬件结构以及编程方法。
难点:单片机编程语言的掌握以及实际应用。
四、教具与学具准备教具:电脑、投影仪、黑板、粉笔。
学具:教材、笔记本、编程软件。
五、教学过程1. 导入:通过展示生活中常见的单片机应用实例,引导学生关注单片机的作用和应用领域。
2. 讲解单片机的基本原理:介绍单片机的定义、工作原理及其发展历程。
3. 分析单片机的硬件结构:讲解单片机的各个组成部分,如中央处理器、存储器、输入输出接口等。
4. 教学编程语言:介绍单片机编程的基本语言,如C语言、汇编语言等。
5. 示例讲解:通过具体的编程实例,讲解单片机编程的方法和技巧。
6. 随堂练习:让学生动手实践,编写简单的单片机程序。
六、板书设计板书内容:单片机原理与应用1. 单片机的定义和工作原理2. 单片机的硬件结构3. 单片机编程语言及方法4. 单片机应用实例七、作业设计1. 请简述单片机的基本原理及其硬件结构。
答案:单片机是一种集成度很高的微处理器,它将中央处理器、存储器、输入输出接口等集成在一个芯片上。
单片机的基本原理是通过编程实现对输入输出设备的控制,实现对各种信息的处理。
2. 请列举两种生活中的单片机应用实例,并说明其作用。
答案:例如,洗衣机中的单片机用于控制洗涤、漂洗、脱水等程序;智能家居系统中的单片机用于实现远程控制家用电器等功能。
八、课后反思及拓展延伸课后反思:本节课通过讲解单片机的基本原理、硬件结构以及编程方法,使学生了解了单片机的相关知识。
在教学过程中,要注意引导学生动手实践,提高学生的实际操作能力。
2024版《单片机原理及应用》ppt课件
01单片机概述Chapter单片机定义与发展定义发展历程单片机应用领域工业控制智能家居医疗设备汽车电子物联网常见单片机类型及特点8051系列PIC系列AVR系列ARM系列02单片机基本原理Chapter微处理器基本构成工作原理指令系统030201微处理器结构与工作原理存储器类型及访问方式存储器类型访问方式存储器扩展技术输入输出端口与外设接口输入输出端口外设接口接口电路设计03指令系统与汇编语言程序设计Chapter1 2 3指令系统基本概念寻址方式指令格式与编码指令系统概述及寻址方式01020304汇编语言基本概念程序结构与设计伪指令与宏指令子程序设计与调用汇编语言程序设计方法中断服务程序中断的基本概念、中断向量表、中断服务程序的编写等。
条件转移、无条件转移等控制转移的汇编实现。
数据传送程序内存与寄存器之间、寄存器与寄存器之间数据传送的汇编实现。
算术运算程序加法、减法、乘法、除法等基逻辑运算程序典型汇编语言程序实例分析04中断系统与定时Chapter中断定义中断优先级中断响应过程中断源中断系统基本概念及工作原理定时/计数器工作原理及应用实例定时/计数器工作原理01定时/计数器应用实例02定时/计数器模式设置03中断服务程序编写方法中断向量表中断服务程序结构中断服务程序编写步骤05串行通信接口与扩展应用Chapter串行通信基本概念及协议串行通信定义01串行通信协议02串行通信接口标准03串行通信接口电路设计与实现接口电路设计设计串行通信接口电路需要考虑电平转换、阻抗匹配、信号隔离等问题,以确保数据的可靠传输。
接口芯片选型根据实际需求选择合适的接口芯片,如MAX232、MAX485等,实现TTL电平与通信协议电平之间的转换。
编程实现通过编程设置单片机的串口参数,如波特率、数据位、停止位等,实现数据的发送和接收。
串行通信扩展应用实例多机通信远程监控数据采集与处理无线通信扩展06单片机系统扩展与外围设备配置Chapter并行扩展串行扩展数据总线地址总线控制总线功能性兼容性确保所选外围设备与单片机型号及接口兼容。
单片机原理及应用课件0451系列单片机的并行口结构和功能
读锁存器
内部 总线 1 写锁 存器
读引脚
2 1
DQ CK /Q
1
第二功能输出
Vcc
(WR,RD,TxD)
内部上拉电阻
16
反相器 3
1
引脚 P3.X
4
第二功能输入时,信号经缓冲器4 直接进入内总线。
读锁存器
内部 总线
1
写锁 存器
2
DQ CK /Q
1
此端自动=1
Vcc 内部上拉电阻
4 P2某几根线作地址使用时,剩下的线不能作I/O口线用。 5 P3口的某些口线作第二功能时,剩下的口线可以单独
作I/O口线使用。
●MCS-51系列单片机为总线结构,外部三总线如下: ◆ 数据总线:P0口; ◆ 地址总线:P2口(高8位)+P0口(低8位); ◆ 控制总线:∕EA、∕PSEN、∕WR、∕RD、ALE。
读锁存器
地址/数据 控制 =0
T1 Vcc 截
内部 总线 1
2
DQ
3
0 &0
止 引脚P0.X
2
T2 截
写锁 存器
CK /Q 0
MUX
0
止
1
读引脚 =1 (1)作输出口:内部总线数据写到P0.X引脚,加上拉电阻。 (2)作输入口:引脚作输入口,事先必须对它写“1”。
2、P0口作为地址∕数据总线使用 控制信号=1
1
0截
17
13
止 引脚 P3.X
4
读引脚
第二功能输入(RxD,
T0,T1,INT0,INT1)
P3口第二功能表
引脚
第二功能
P3.0
RxD: 串行口接收数据输入端
第4章51《单片机原理与应用》PPT课件
第4章
汇编语言程序设计
4.1.2 80C51汇编语言的伪指令 汇编语言的伪指令
8. 定义存储区伪指令 .
定义存储区伪指令一般格式如下: 定义存储区伪指令一般格式如下: 字符名称〉 表达式〉 〈字符名称〉 DS 〈表达式〉 定义存储区伪指令是从指定的地址开始, 定义存储区伪指令是从指定的地址开始,保留若 干字节的内存空间以作备用。汇编时, 干字节的内存空间以作备用。汇编时,对这些单 元不赋值。 元不赋值。 例:ORG 4000H DS 9H DB 86H,A7H ,
第4章
汇编语言程序设计
4.2.1 数据传送程序设计
内容互换, 与内存 与内存70H单元内容 例1:将R2与R3内容互换,R4与内存 : 与 内容互换 单元内容 互换。 互换。
解:这个程序只需要利用交换指令和传送指令就可以完成, 这个程序只需要利用交换指令和传送指令就可以完成, 其程序段如下: 其程序段如下: XCHR:MOV A,R2 : , XCH A,R3 , XCH A,R2 , ;R2与R3内容互换 与 内容互换 MOV A,R4 , XCH A,70H , XCH A,R4 ;R4与70H单元内容互换 , 与 单元内容互换
第4章
汇编语言程序设计
4.1.2 80C51汇编语言的伪指令 汇编语言的伪指令
9. 位地址符号伪指令
位地址符号伪指令一般格式如下: 位地址符号伪指令一般格式如下: 字符名称〉 位地址〉 〈字符名称〉 BIT 〈位地址〉 位地址符号伪指令是对位地址赋予所规定的字符 名称。 名称。 说明:其中,位地址可以是绝对地址, 说明:其中,位地址可以是绝对地址,也可以是符 号地址。 号地址。 例:A1 BIT P2.1 A2 BIT P3.0 Nhomakorabea 第4章
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理及其应用
扬州大学
4.2 汇编语言程序设计
4.2.1 汇编语言程序设计步骤
4.2.2 汇编语言程序的汇编
4.2.3 顺序程序 4.2.4 分支程序 4.2.5 循环程序 4.2.6 子程序
4.2.7 查找程序
4.2.8 码制转换程序
4.2.9 程序举例
13
单片机原理及其应用
扬州大学
4.2.1 汇编语言程序设计步骤
11
单片机原理及其应用
扬州大学
ORG 1600H ABC: DW 1234H, 4567H (1600h 12H 34H 45H 67H)
5.DS :定义存储区命令 从指定的地址单元开始,保留一定数量存储单元。 ORG 1000H BASE: DS 50H 6.BIT:位定义命令 赋字符名为某个位地址值。 EA: BIT 0AFH 7.END:汇编结束命令 告知汇编程序源程序结束
1000H A, 40H ; 取数 A, #0,NZEAR ; 非零,转 NEGT ;(A)=0,转存结果 ACC.7,POSI ; (A)>0,转 A, #81H(原码); A ← -1 NEGT A,#1H ;A←1 41H,A ; 存结果 $ ; 暂停
27
单片机原理及其应用
扬州大学
3.多向分支程序设计举例
7
单片机原理及其应用
扬州大学
2.汇编语言的语句格式 汇编语言源程序是由汇编语句(即指令) 组成的。汇编语言一般由四部分组成。 其典型的汇编语句格式如下:
标号: 操作码 START: MOV 操作数 A,30H ;注释 ;A←(30H)
8
单片机原理及其应用
扬州大学
MOV A, #0 ; 赋初值 (4-1) (p.69) MOV R1, #10 ;计数器赋初值 MOV R2, #00000011B LOOP: ADD A, R2 ;累加 DJNZ R1, LOOP HERE: SJMP HERE 标号:即符号地址,需要时加上。标号后加冒号;标号由 字母开头(1-8字符),标号不能与指令助记符、预定 义符号相同。 操作数:数值操作数,根据需要可用16进制 (后缀H)、10 进制、二进制 (后缀B) 表示。16进制数以A~F开头时, 前面要加’0’。 $符号的使用:程序最后一句可用 SJMP $ 代替。 注释:以分号开头,根据需要对于指令的作用加以解释。 9 START:
单片机原理及其应用
扬州大学
2.EQU :赋值命令 给标号赋予一个确定的数值。其它语句可以引用这 个标号 TTY: EQU 1080H
3.DB :定义数据字节命令 把数据以字节的形式存放在连续存储单元中。 ORG 1500H HERE: DB 56H,0A7H,35,‘A’ (1500h 56H A7H 23H 41H) 4.DW :定义数据字命令 按字的形式把数据存放在连续存储单元中。
17
单片机原理及其应用
扬州大学
4.2.3 顺序程序
顺序程序是一种最简单,最基本的程序。 特点:程序按编写的顺序依次往下执行每一 条指令,直到最后一条。 【例4.1】 将30H单元内的两位BCD码拆开并 转换成ASCII码,存入RAM两个单元中(低位 在31H,高位在32H)。 程序流程如图4-1所示。
扬州大学
【例4.5】(4-14)根据(31H 30H)的内容决定程序流向 (31H)<80 (p.90) JMP6: MOV DPTR,#TAB6 ; 转移指令表首地址 MOV A,30H ; 取低字节分支转移参量送A MOV B,#3 ; 乘数3送B (3字节指令) MUL AB ; 形成低字节转移偏移量 MOV R3, A ; 暂存 MOV A, B ; A←低字节偏移量高8位 ADD A, DPH MOV DPH, A ; 加到DPH中 MOV A, 31H ; 取高字节分支转移参量送A MOV B,#3 ; 乘数3送B (3字节指令) MUL AB ; 形成高字节转移偏移量 ADD A, DPH ; 加入DPH MOV DPH, A
21
开始
取数据X 求X2 暂存X2 取数据Y 求Y2 求X2+Y2 保存平方和
结束
图4-州大学
参考程序如下: ORG 2000H MOV A,30H MOV B,A MUL AB MOV R1,A MOV A,31H MOV B,A MUL AB ADD A,R1 MOV 32H,A SJMP $ END
1.分析问题 完成什么任务,解决什么问题;已知的数据,运算 精度和速度; 2.确定算法 用何种方法解决问题;多个算法的比较;怎样组织 数据;
3.设计程序流程图 把算法和解决问题的步骤具体化;通过流程图掌握 程序的总体结构;
14
单片机原理及其应用
扬州大学
4.分配内存单元和I/O端口地址 片内RAM划分:工作寄存器组;堆栈区;其它暂 存区和缓冲区等;片外RAM; 确定各I/O端口的地址 5.编写汇编语言源程序 按流程图编写源程序;程序通常由主程序、子程 序、中断服务程序等构成。 6.调试程序 对程序的各个部分分别调试;有些还要与硬件系 统连接后调试; 切记:编程不易,调试更难。 15 只有掌握了程序的调试、测试才算会编程。
单片机原理及其应用
扬州大学
4.1.3 伪指令
用汇编语言编写的程序必须经汇编(翻译)成机 器代码,单片机才可运行它。为了控制汇编程序如何 完成源程序的汇编过程并产生目标程序,需要在源程 序中加入汇编控制命令,即伪指令。 1.ORG :汇编起始地址命令 用来说明ORG指令以下程序段在存储器中存放的起 始地址。 例如 ORG 1000H START: MOV A,#20H MOV B,#30H ┇ 一个程序中可多次使用ORG指令,地址要由小到大 排列。 10
┇
; 转移指令表首地址 取分支转移参量送A 乘数3送B (3字节指令) 形成转移偏移量 暂存偏移量低8位 A←偏移量高8位 加到DPH中 取回偏移量低8位 分支跳转[PC ← (A)+(DPTR)]
TAB5: LJMP LJMP
┇
PRG0 PRG1
; 转移指令表
LJMP
PRGn
29
单片机原理及其应用
条件满足?
N
条件满足?
N B
Y A (a) A (b) K=? K=0 K=1 … K=n A0 A1 …… An
Y
(c)
图4-3 分支程序结构流程图
24
单片机原理及其应用
扬州大学
分支程序的设计要点如下: (1)先建立可供条件转移指令测试的条件。 (2)选用合适的条件转移指令。 (3)在转移的目的地址处设定标号。 2.双向分支程序设计举例 【例4.3】(4-12) 求符号函数的值 (p.88)
【例4.4】(4-13) 根据R2的值转向n个分支程序。(p.90) (R2)=0,转向PRG0; (R2)=1,转向PRG1;
┇
(R2)=n,转向PRGN; 解:利用JMP @A+DPTR 指令直接给PC赋值,使程 序实现转移。
28
单片机原理及其应用
扬州大学
参考程序如下: JMP6: MOV DPTR,#TAB5 MOV A,R2 ; MOV B,#3 ; MUL AB ; MOV R6, A ; MOV A, B ; ADD A, DPH MOV DPH, A ; MOV A, R6 ; JMP @A+DPTR ;
单片机原理及其应用
扬州大学
单片机原理接口及其应用
(Principle and Application of Single Chip Microcomputer)
1
单片机原理及其应用
扬州大学
第1章 第2章 第3章 第4章 第5章 第6章 第7章 第8章 第9章
概述 MCS-51单片机硬件结构 MCS-51寻址方式和指令系统 MCS-51汇编程序设计 中断系统 定时器/计数器及串行口 存储器扩展 接口电路扩展 应用举例
;取数 ;取低4位 ;转换成ASCII码 ;保存结果 ;取数 ;高4位与低4位互换 ;取低4位(原来的高4位) ;转换成ASCII码 ;保存结果
20
单片机原理及其应用
扬州大学
【例4.2】 设X、Y两个小于10的整数分别存于片内 30H、31H单元,试求两数的平方和并将结果存于 32H单元。
解:两数均小于10,故两数的平方和可存放于一个 字节,可利用乘法指令求平方。 程序流程如图4-2所示。
Y= 1 0 -1 X>0 X=0 X<0
解:X为有符号数,存在40H单元。Y存在41H单元。 程序流程如图4-4所示。
25
单片机原理及其应用
扬州大学
图4-4 例4.3程序流程图
26
单片机原理及其应用
扬州大学
参考程序如下: ORG MOV CJNE AJMP NZEAR: JNB MOV AJMP POSI: MOV NEGT: MOV SJMP END
30
单片机原理及其应用
扬州大学
MOV A , R3 JMP @A+DPTR ┇ TAB6: LJMP PRG0 LJMP PRG1 ┇ LJMP PRGn
18
开始 取数据低4位 转换成ASCII码 存ASCII码 取数据高4位 转换成ASCII码 存ASCII码 结束
图4-1 拆字程序流程图
单片机原理及其应用
扬州大学
参考程序如下: ORG 2000H MOV A,30H ANL A,#0FH ADD A,#30H MOV 31H,A MOV A,30H SWAP A ANL A,#0FH ADD A,#30H MOV 32H,A SJMP $ END
2
单片机原理及其应用
扬州大学
第4章 MCS-51汇编程序设计
4.1 汇编语言基本概念
4.2 汇编语言程序设计