单片机原理及应用第四章 汇编程序设计(中断服务子程序)
单片机原理及接口技术第四版答案

单片机原理及接口技术第四版答案【篇一:《单片机原理及接口技术(第2版)张毅刚》第4章习题及答案】第4章 at89s51单片机的中断系统思考题及习题41.外部中断1的中断入口地址为 ,定时器1的中断入口地址为。
答:0013h;001bh2.若(ip)=00010100b,则优先级最高者为,最低者为。
答:外部中断1,定时器t13.中断服务子程序与普通子程序有哪些相同和不同之处?答:reti指令在返回的同时自动清除相应的不可寻址的优先级触发器,以允许下次中断,而ret指令则没有这个操作。
除了这一点两条指令不同外,其它操作都相同。
4.下列说法正确的是。
答:da. 各中断源发出的中断请求信号,都会标记在at89s51的ie寄存器中b. 各中断源发出的中断请求信号,都会标记在at89s51的tmod寄存器中c. 各中断源发出的中断请求信号,都会标记在at89s51的ip寄存器中d. 各中断源发出的中断请求信号,都会标记在at89s51的tcon与scon寄存器中5.at89s51单片机响应外部中断的典型时间是多少?在哪些情况下,cpu将推迟对外部中断请求的响应?答:在一个单一中断的系统里,at89s51单片机对外部中断请求的响应时间总是在3~8个机器周期之间。
在下述三种情况下,at89s51将推迟对外部中断请求的响应:(1)at89s52正在处理同级或更高优先级的中断。
(2)所查询的机器周期不是当前正在执行指令的最后一个机器周期。
(3)正在执行的指令是reti或是访问ie或ip的指令。
如果存在上述三种情况之一,at89s52将丢弃中断查询结果,将推迟对外部中断请求的响应。
6.中断查询确认后,在下列各种at89s51单片机运行情况下,能立即进行响应的是。
a. 当前正在进行高优先级中断处理b. 当前正在执行reti指令c. 当前指令是div指令,且正处于取指令的机器周期d. 当前指令是mov a,r3答:d7. at89s51单片机响应中断后,产生长调用指令lcall,执行该指令的过程包括:首先把的内容压入堆栈,以进行断点保护,然后把长调用指令的16位地址送,使程序执行转向中的中断地址区。
《单片机应用系统设计》教学大纲及知识点

《单片机应用系统设计》课程教学大纲一、本课程的地位、作用和任务本课程是在学生学完电子技术类基础课程和微机应用类基础课程之后,为加强对学生技术应用能力的培养而开设的体现电子技术、计算机技术综合应用的综合性课程。
本课程的任务是使学生获得单片机应用系统设计的基本理论、基本知识与基本技能,掌握单片机应用系统各主要环节的设计、调试方法,并了解单片机在测量、控制等电子技术应用领域的应用。
初步具备应用单片机进行设备技术改造、产品开发的能力。
二、理论教学内容绪论单片机概述0.1 引言0.2 单片机的特点0.3 单片机的发展0.4 MCS-51单片机系列简介第一章MCS–51单片机的结构和原理1. 1 单片机的内部结构1. 2 MCS–51的外部引脚及功能1. 3 MCS–51的存储器配置1. 4 并行输入/输出接口电路1. 5 时钟电路与时序1. 6 MCS –51最小系统设计第二章MCS-51的指令系统2.1 MCS-51指令系统概述2.2 数据传送类指令2.3 算术运算类指令2.4逻辑运算及移位类指令2.5 控制转移类指令2.6 布尔变量操作类指令第三章汇编语言程序设计3.1 汇编语言源程序的格式3.2 伪指令3.3 汇编语言程序举例第四章MCS—51的中断与定时4.1 MCS—51单片机的中断系统4.2 MCS–51的定时/计数器第五章存储器扩展技术5.1 概述5.2 程序存储器的扩展5.3 数据存储器的扩展5.4 PROME2及其扩展第六章I/O扩展技术6.1 I/O接口概述6.2 MCS-51并行I/O口的直接使用6.3 简单I/O扩展6.4 8255并行I/O口6.5 8155简介第七章键盘/显示器扩展技术7.1 单片机应用系统中的人机通道7.2 键盘及其接口7. 3 显示器及接口7.4 专用的8279键盘/显示器接口第八章模拟量输入/输出通道8.1 模拟量输入通道8.2 模拟量输出通道第九章MCS-51的串行通信9.1 串行通信基础9.2 串行接口的构成与工作方式9.3 串行口的典型应用9.4 单片机的多机通信9.5 RS-232C串行总线第十章应用程序设计技术10.1 智能仪表的一般结构10.2 单片机应用系统设计举例第十一章高性能单片机PIC16F8XX介绍11.1 PIC16F87X的特点11.2 PIC16F87X的结构与配置11.3 PIC16F87X的功能部件11.4 PIC16F87X的应用举例三、实践教学的内容和要求实验一联机仿真操作练习实验目的:进一步掌握开发工具的应用实验内容:学习PC机与开发机联机仿真的操作方法实验二指令系统和编程练习实验目的:掌握8051单片机常用指令的使用和编程实验内容:用8051单片机的常见指令编写简单的多字节加减法程序。
单片机原理课程教案

(一)课程教学目的和要求随着科学技术的不断进步,计算机在社会各个领域中的应用也不断得以发展,本课程是信息类基础课程之一,是一门学生学习掌握计算机硬件知识和汇编语言程序设计的入门课程。
通过本课程的学习使学生从理论和实践两方面掌握单片机的基本结构、工作原理、汇编语言程序设计方法、接口电路及单片机应用系统的设计方法,以求达到初步的单片机软硬件设计开发能力。
并为以后从事电子控制类的设计奠定理论基础和实践能力。
《单片机原理及应用》是信息类专业的一门重要专业基础必修课,是一门理论与实际紧密结合并对学生进行工程训练的课程。
通过本课程的教学,学生应掌握51系列单片机CPU、定时/计数器、存储器、串行通信、中断系统、I/O口的硬件结构,能用汇编语言进行程序设计,具备应用单片机知识分析解决工程实际问题,设计较复杂的单片机应用系统能力。
(二)课程教学重点和难点1、重点:硬件结构;指令系统;系统扩展和应用;外围接口技术。
2、难点:指令系统;外围接口技术。
(三)教学方法理论与实验相结合(四)课时安排总课时:64课时,其中:理论课时48,实验课时16。
(五)考核方式本课程的考核采取平时的形成性考核和课程结束时的笔试闭卷考试相结合的考核办法。
平时的考核主要有三个方面:课堂、课外、实验。
课堂考核依据出勤率、听课态度、课堂讨论表现等;课外考核主要依据作业、平时测试、课外的创新和发明等;实验考核依据实验完成的质量和数量等情况来评定。
(六)参考教材刘湘涛.江世明编著《单片机原理与应用》.电子工业出版社. 2006.第一章单片机基础知识教研室:计算机教研室教师姓名:申寿云教学过程1、问题牵引、导入新课(1)单片机是什么?它的主要特点和应用的领域。
(2)计算机中数据有哪些表示?二进制、八进制、十进制、十六进制;原码、反码、补码;ASCII码、BCD码。
2、课程内容本章的主要知识点有:知识点1:单片机的概念。
知识点2:单片机主流机型。
知识点3:80C51系列简介。
第4章8051单片机的中断系统

第四章 8051单片机的中断系统
例3-3 双字节数取补子程序。将(R4R5)中的双字节数取补,结果 送R4R5。 低8位送入A CMPT: MOV A,R5 低8位取反 CPL A ADD A, #1 低8位最低位加1 MOV R5, A MOV A, R4 CPL A 与前面相似 ADDC A, #0 MOV R4,A 无需SETB ACC.7 RET 对于二进制数,左移一位相当于乘以2,右移一位相当于除以2。 由于一般带符号数的最高位为符号位,故在执行算术移位操作时, 必须保持符号位不变。 原码表示的负数:由于负数的符号位为1,故移位时符号位不参 加移位; 8
第四章 8051单片机的中断系统
具体
14
第四章 8051单片机的中断系统 例3-10无符号二进制乘法程序。将(R2R3)和(R6R7)两个双字节 无符号数相乘,结果送R4R5R6R7。
NMUL: MOV R4, #0 MOV R5, #0 MOV R0, #16 ; 16位二进制数 CLR C NMLP: MOV A, R4 ;右移一位 RRC A MOV R4, A MOV A, R5 RRC A R4 R5 MOV R5, A MOV A, R6 RRC A MOV R6, A MOV A, R7 RRC A MOV R7, A JNC NMLN ;C为移出的乘数最低位, 若为0,则不执行加法 MOV A, R5 ;执行加法 15 ADD A, R3 MOV R5, A MOV A, R4 ADDC A, R2 MOV R4, A NMLN: DJNZ R0, NMLP ;循环16次 MOV A, R4 ;最后再右移一位 RRC A MOV R4, A R6 R7 MOV A, R5 RRC A MOV R5, A MOV A, R6 RRC A MOV R6, A MOV A, R7 RRC A MOV R7, A RET
《单片机技术应用》课件——第四章 汇编语言程序设计及知识

MOV R0,#52H MOV R1,#55H MOV A,@R0 ADD A,@R1 MOV @R0,A DEC R0 DEC R1 MOV A,@R0 ADDC A,@R1 MOV @R0,A DEC R0 DEC R1
MOV A,@R0 ADDC A,@R1 MOV @R0,A CLR A ADDC A,#00H MOV R0,#20H MOV @R0,A
BRE : SJMP $
通过堆栈实现程序多分支举例,分支序号放在R0中,分支程 序入口地址放在BRATAB表中
MOV DPTR,#BRTAB MOV A,R0 RL A MOV R1,A INC A MOVC A,@A+DPTR PUSH ACC MOV A,R1 MOVC A,@A+DPTR PUSH ACC RET BRTAB:DW BR0
例:LOOP:MOV A,#00H;立即数00H→A
标号
标号是用户定义的符号地址。 一条指令的标号是该条指令的符号名字,标号的值是汇编这 条指令时指令的地址。 标号由以英文字母开始的1~8个字母或数字组成,以冒号 “:”结尾。 标号可以由赋值伪指令赋值,如果没有赋值,汇编程序把存 放该指令目标码第一字节的存储单元的地址赋给该标号,所 以,标号又叫指令标号。
ADD A,R2 MOV R2,A JNC LOOP1 INC R1 LOOP1:INC R0 DJNZ R3,LOOP
BIG0:INC DPTR MOVX @DPTR,A RET
BIG1: MOVX A,@DPTR SJMP BIG0
多重单分支举例:温度值Ta在A中,内部RAM54H放温度下 限,55H放温度上限。根据温度比较,采取JW、SW、FH。
CJNE A,55H,LOOP1
单片机原理及应用第二版(张毅刚主编)

第1章单片机概述参考答案1.答:微控制器,嵌入式控制器2.答:CPU、存储器、I/O口、总线3.答:C4.答:B5.答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。
而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。
嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。
目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。
嵌入式微处理器相当于通用计算机中的CPU。
与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。
而嵌入式微处理器仅仅相当于单片机中的中央处理器。
为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。
6.答:MCS-51系列单片机的基本型芯片分别:8031、8051和8071。
它们的差别是在片内程序存储器上。
8031无片内程序存储器、8051片内有4K字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM。
7.答:因为MCS-51系列单片机中的“MCS”是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。
8.答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K 字节Flash存储器取代了87C51片内的4K字节的EPROM。
9.单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。
单片机在嵌入式处理器市场占有率最高,最大特点是价格低,体积小。
DSP是一种非常擅长于高速实现各种数字信号处理运算(如数字滤波、FFT、频谱分析等)的嵌入式处理器。
由于对其硬件结构和指令进行了特殊设计,使其能够高速完成各种复杂的数字信号处理算法。
单片机原理及应用教案-第4章

第4课教学内容:2.4.2数据传送指令及要点分析2.4.3算术运算类指令及要点分析2.4.4逻辑操作与移位指令及要点分析2.4.5控制转移指令及其偏移量的计算2.4.6位操作指令2.4.7对指令的进一步说明教学目标:了解:单片机指令的分类与格式。
掌握:单片机指令的寻址方式,内部数据传送指令特点与应用,算术运算类指令及要点,逻辑操作与移位指令及要点,程序转移指令的相对偏移量计算,位操作指令的特点,PSW标志位的作用。
课时安排:3 课时教学重点:各类指令特点与应用教学提示:一、重点内容与要点分析1.数据传送类指令的共性:1)操作:把源操作数传送到目的操作数,指令执行后,源操作数不改变,目的操作数修改为源操作数。
2)若要求在进行数据传送时,不丢失目的操作数,则可以用交换型的传送指令。
3)数据传送指令不影响标志C、AC和OV,不包括奇偶标志P。
对于P一般不加说明。
POP PSW 或 MOV PSW,#(x)可能使某些标志位发生变化。
助记符有:MOV,MOVX,MOVC,XCH,XCHD,SWAP,POP,PUSH 8种。
源操作数可为:寄存器、寄存器间接、直接、立即、寄存器基址加变址 5种寻址方法;目的操作数可为:寄存器、寄存器间接、直接 3种寻址方法。
例1:设内部RAM的(30H)=40H,(40H)=10H ,(10H)=00H ,端口P1上的内容为11001010B(后缀B表示二进制数),分析下面7条指令分别属于上述16条指令中的哪一条,操作数采用的寻址方法,以及指令执行后各单元及寄存器、端口的内容。
MOV R0,#30H ;属于第8条(寄存器寻址、立即数寻址)(R0)=#30HMOV A,@R0 ;3条(寄存器寻址、寄存器间接寻址)(A)=#40HMOV R1, A ;2条(寄存器寻址、寄存器寻址)(R1)=#40HMOV B, @R1 ;13条(直接寻址、寄存器间接寻址)(B)=#10HMOV @R1, P1 ;14条(寄存器间接寻址,直接寻址)(40H)=#11001010B MOV P2, P1 ;15条(直接寻址、直接寻址)(P2)=#11001010B MOV 10H, #20H ;10条(直接寻址、立即寻址)(10H)=#20H指令执行以后,P1口的内容均为11001010B,其它内容如上。
精品课件-单片机原理及应用系统设计-第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) 注释应与其描述的代码相近, 对单条语句的注释应 放在其上方或右方相邻位置, 不可放在下面, 如放于上方
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
辅助优先级如下:
中断源 外部中断0(INT0) 定时/计数器0(T0) 外部中断1(INT1) 定时/计数器1(T1) 串行口接收/发送 定时/计数器2(T2)
申请标志 IE0 TF0 IE1 TF1 RI/TI TF2
中断矢量 0003H 000BH 0013H 001BH 0023H 002BH
(2)采用硬件延时(定时器中断)方法实现
1.定时器应用程序的编写步骤
(1)确定时间常数
机器周期T
12 晶振频率
12 6 106
2106 (s)
根据公式:t =(2n - x)·T,计算X值。
(2)定时器和中断系统初始化(一般放在主程序中) ① 对TMOD、TCON、 IP、IE进行设置; ② 将时间常数送入定时/计数器中。
;P1.0位取反
(2)方法2:查询方式
ORG 0000H
RESET: AJMP MAIN ;转主程序
ORG 0100H
MAIN: MOV TL0, #0CH ;置初值
MOV TH0, #0F0H
SETB TR0
;开始定时
LOOP: JBC TF0,PTF0 ;溢出否?
AJMP LOOP
PTF0: MOV TL0,#0CH ;重置初值
ORG 1100H INT: MOV A,B
RL A MOV B,A MOV P1,A RETI END
;自B寄存器中取数 ;左环移一次 ;存回B,备下次取用 ;输出到P1口 ;中断返回
中断服 务程序
三、定时器中断应用举例
例2:假设晶振频率6MHz,要在P1.0上输出一个周期为 2ms的方波信号。
ET0
INT1 外部中断 IE1
请求1
EX1
内部 TF1
定时器1
ET1
内部 T TI 串行口 R RI ES
IE寄存器
EA位 IP寄存器
高中断级 中断请求
中断源
标志位 中断入口低中断级 中断请求来自中断源标志位 中断入口
注:各中断允许控制位=0,开关断开; =1,开关接通
中断系统硬件结构图
一、知识回顾
② 初始化SFR (IP)=0 (IE)=82H (TMOD)=02H (TCON)=10H
ORG 0000H
RESET:AJMP MAIN ;转主程序
ORG 000BH
AJMP ITOP
;转中断服务程序
ORG 0100H MAIN:ACALL PTOMO HERE:AJMP $ PTOMO:MOV TL0, #06H
MOV TH0, #06H
SETB TR0
;开始定时
LOOP: JBC TF0,PTF0 ;溢出否?
AJMP LOOP
PTF0: CPL AJMP END
P1.0 LOOP
;输出信号变反
四、练习
题1:运用软件延时和硬件定时(T0的模式1)两种 方法编写霓虹灯实验程序。
硬件连接:P1口接8各发光二极管; 亮灯方式:8个灯依次循环点亮。
分析:
Th:半周期 T:周期
① 机器周期:T=2us; ② 指令“DJNZ Rn,rel”
的执行时间:2T=4us; ③ 执行250次刚好1ms。
(1)采用软件延时方法实现
ORG 0000H AJMP MAIN ORG 0100H MAIN: MOV R7, #250 LOOP: DJNZ R7, LOOP CPL P1.0 AJMP MAIN END
MOV TH0,#0F0H
CPL P1.0
;输出信号变反
AJMP LOOP
END
3.定时器方式2的应用
例3:假设晶振频率6MHz,要在P1.0上输出一个周期为 1ms的方波信号。
(1)方法1:中断方式
① 确定时间常数
T=2us 根据公式:t=(28 - x)·T 有: x=6
所以初值应为: TH0 = 00H,TL0 = 06H。
(3)中断服务程序设计 注意:重赋初值和中断标志位清零。
2.定时器方式0的应用
例2:假设晶振频率6MHz,要在P1.0上输出一个周期为 2ms的方波信号。
(1)方法1:中断方式
① 确定时间常数
T=2us 根据公式:t=(213 - x)·T 有: x = 7692 = 1E0CH =1111000001100B
HERE:AJMP $
PTOMO:MOV TL0, #0CH ;T0初值
MOV TH0, #0F0H
SETB TR0
;启动T0
SETB ET0
;T0开中断
SETB EA
;CPU开中断
RET ITOP: MOV
MOV CPL RETI END
TL0, #0CH ;重装时常数
TH0, #0F0H
P1.0
所以初值应为: TH0 = 0F0H,TL0 = 0CH。
② 初始化SFR (IP)=0 (IE)=82H (TMOD)=0 (TCON)=10H
ORG 0000H RESET:AJMP MAIN
;转主程序
ORG 000BH
AJMP ITOP
;转中断服务程序
ORG 0100H MAIN:ACALL PTOMO
一、知识回顾
中断响应的几个环节:
①中断源
②中断申请
③开放中断
④保护现场(先自动将PC值压栈,再保存相关寄存器值)
⑤中断服务
⑥恢复现场 (恢复相关寄存器值)
⑦中断返回(RETI,PC值出栈)
一、知识回顾
各单路开关 总开关
中断源标志 位查询机构
INT0 外部中断 IE0
请求0
EX0
内部 TF0
定时器0
中断优先级 最高优先级
最低优先级
二、外部中断应用举例
例1:在INT1引脚接一个按钮开关到地,每按一下按钮 就申请一次中断,中断服务则是:依次点亮八盏灯中 的一盏。
P1.0 P1.7
INT1
300
ORG 0000H LJMP MAIN ORG 0013H ;中断矢量 LJMP INT ORG 1000H MAIN:SETB EA ;开总中断 SETB EX1 ;开外部中断1 SETB IT1 ;边沿触发 MOV B,#01H ;给 B 寄存器赋初值 HERE:SJMP HERE ;原地等待
;T0初值
MOV TH0, #06H
SETB TR0
;启动T0
SETB ET0
;T0开中断
SETB EA
;CPU开中断
RET ITOP: CPL P1.0
RETI END
;P1.0位取反
(2)方法2:查询方式
ORG 0000H
RESET: AJMP MAIN ;转主程序
ORG 0100H
MAIN: MOV TL0, #06H ;置初值