单片机原理与应用(第五章)
单片机原理及应用——C51编程+Proteus仿真(第3版)课件第5章 开关键盘显示器接口设计

在【例5-1】基础上,编写控制发光二极管反复循环点亮的流水灯。 【例5-2】电路仍采用图5-2,制作由上至下再由下至上反复循环点亮显
示的流水灯,3种方法实现。
(1)数组的字节操作实现 建立1个字符型数组,将控制8个LED显示的8位数据作为数组元素,依
次送P1口。参考程序:
#include <reg51.h> #define uchar unsigned char uchar tab[ ]={ 0xfe , 0xfd , 0xfb , 0xf7 , 0xef , 0xdf , 0xbf , 0x7f , 0x7f ,
// 读入P1口的状态,送入state // 屏蔽P1口的高6位 // 判P1口低2位开关状态
{
case 0: P2=0x01; break; case 1: P2=0x02; break; case 2: P2=0x04; break; case 3: P2=0x08; break;
// 点亮P2.0脚LED //点亮P2.1脚LED // 点亮P2.2脚LED //点亮P2.3脚LED
} }
//左移初值赋给temp
// temp中的数据取反后送P1口 // 延时 // temp 中数据左移一位 // 赋右移初值给temp
// temp中的数据取反后送P1口 // 延时 // temp 中数据右移一位
15
程序说明: 注意使用移位运算符“>>”、“<<”与使用循环左移函数 “_crol_”和循环右移函数“_cror_” 区别。左移移位运算“<<”是将高位 丢弃,低位补0 ;右移移位运算、“>>”是将低位丢弃,高位补0。而循环 左移函数“_crol_” 是将移出的高位再补到低位,即循环移位;同理循环 右移函数“_cror_” 是将移出的低位再补到高位。
单片机原理及应用教程(C语言版)-第5章 MCS-51单片机的中断系统

5.2.5 中断允许控制
例5-1 假设允许INT0、INT1、T0、T1中断,试 设置IE的值。 (2)汇编语言程序 按字节操作: MOV IE,#8FH 按位操作: SETB EX0 ;允许外部中断0中断 SETB ET0 ;允许定时器/计数器0中断 SETB EX1 ;允许外部中断1中断 SETB ET1 ;开定时器/计数器1中断 SETB EA ;开总中断控制位
IP (B8H)
D7 —
D6 D5 D4 D3 D2 D1 D0 — PT2 PS PT1 PX1 PT0 PX0
PT2:定时器/计数器T2的中断优先级控制位 PT2设置1则T2为高优先级,PT2设置0则T2为 低优先级。 后面各位均是如此,设置1为高优先级,设置0 为低优先级,不再一一赘述。 PS:串行口的中断优先级控制位。 PT1:定时器/计数器1的中断优先级控制位。 PX1:外部中断1的中断优先级控制位。 PT0:定时器/计数器0的中断优先级控制位。 PX0:外部中断0的中断优先级控制位。
5.2.4 中断请求标志
4.定时器/计数器T2中断请求标志
T2CON D7 D6 D5 (C8H) TF2 EXF2 D4 D3 D2 D1 D0
EXF2:定时器/计数器2的外部触发中断请求标志 位。T2以自动重装或外部捕获方式定时、计数,当 T2EX(P1.1)引脚出现负跳变时,TF2由硬件置1, 向CPU请求中断,CPU响应中断后,EXF2不会被硬 件清0,需要在程序中以软件方式清0。
5.2.3 外中断触发方式
TCON格式如下:
D7 D6 D5 D4 D3 D2 D1 D0
TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
IT0=1,外中断0为下降沿触发 CPU在每一个机器周期的S5P2期间对P3.2引 脚采样,若上一个机器周期检测为高电平,紧挨着 的下一个机器周期为低电平,则使IE0置1。 IT1:外中断1触发方式控制位。功能同IT0
单片机原理与应用(C51编程+proteus仿真)第2版张毅刚--第5章课后习题答案2020年1月30日整理

单片机原理与应用(C51编程+proteus仿真)第2版-张毅刚课后习题参考答案第5章思考题及习题5参考答案一、填空1. AT89S51单片机任何一个端口要想获得较大的驱动能力,要采用()电平输出。
答:低2.检测开关处于闭合状态还是打开状态,只需把开关一端接到I/O端口的引脚上,另一端接地,然后通过检测()来实现。
答: I/O端口引脚的电平3. “8”字型的LED数码管如果不包括小数点段共计()段,每一段对应一个发光二极管,有()和()两种。
答:7,共阳极,共阴极4. 对于共阴极带有小数点段的数码管,显示字符“6”(a段对应段码的最低位)的段码为(),对于共阳极带有小数点段的数码管,显示字符“3”的段码为()。
答:7DH,B0H5. 已知8段共阳极LED数码显示器要显示某字符的段码为A1H(a段为最低位),此时显示器显示的字符为()。
答:d6. LED数码管静态显示方式的优点是:显示()闪烁,亮度(),()比较容易,但是占用的()线较多。
答:无,较高,软件控制,I/O口7. 当显示的LED数码管位数较多时,一般采用()显示方式,这样可以降低(),减少()的数目。
答:动态,成本,I/O端口8. LCD 1602是()型液晶显示模块,在其显示字符时,只需将待显示字符的()由单片机写入LCD 1602的显示数据RAM(DDRAM),内部控制电路就可将字符在LCD上显示出来。
答:字符,ASCII码9. LCD 1602显示模块内除有()字节的()RAM外,还有()字节的自定义(),用户可自行定义个5×7点阵字符。
答:80,显示数据,64,字符RAM,810.当按键数目少于8个时,应采用()式键盘。
当按键数目为64个时,应采用()式键盘。
答:独立,矩阵11.使用并行接口方式连接键盘,对独立式键盘而言,8根I/O口线可以接()个按键,而对矩阵式键盘而言,8根I/O口线最多可以接()个按键。
答:8,6412.LCD 1602显示一个字符的操作过程为:首先(),然后(),随后(),最后()。
单片机原理与应用课后习题答案第5章作业

第五章中断系统作业1.外部中断1所对应的中断入口地址为()H。
2.对中断进行查询时,查询的中断标志位共有、__、、_和_、__六个中断标志位。
3.在MCS-51中,需要外加电路实现中断撤除的是:()(A)定时中断(B)脉冲方式的外部中断(C)外部串行中断(D)电平方式的外部中断4.下列说法正确的是:()(A)同一级别的中断请求按时间的先后顺序顺序响应。
()(B)同一时间同一级别的多中断请求,将形成阻塞,系统无法响应。
()(C)低优先级中断请求不能中断高优先级中断请求,但是高优先级中断请求能中断低优先级中断请求。
()(D)同级中断不能嵌套。
()5.在一般情况下8051单片机允许同级中断嵌套。
()6.各中断源对应的中断服务程序的入口地址是否能任意设定?()7.89C51单片机五个中断源中优先级是高的是外部中断0,优先级是低的是串行口中断。
()8.各中断源发出的中断申请信号,都会标记在MCS-51系统中的()中。
(A)TMOD(B)TCON/SCON(C)IE(D)IP9.要使MCS-51能够响应定时器T1中断、串行接口中断,它的中断允许寄存器IE的内容应是()(A)98H(B)84H(C)42(D)22H10.编写出外部中断1为负跳沿触发的中断初始化程序。
11.什么是中断?其主要功能是什么?12.什么是中断源?MCS-51有哪些中断源?各有什么特点?13.什么是中断嵌套?14.中断服务子程序与普通子程序有哪些相同和不同之处?15.中断请求撤除的有哪三种方式?16.特殊功能寄存器TCON有哪三大作用?17.把教材的P82页的图4.24改为中断实现,用负跳变方式,中断0(INT0)显18.示“L2”,中断1(INT1)显示“H3”。
(可参考第四章的电子教案中的例子)19.第5章课后作业第9题。
第五章中断系统作业答案3.外部中断1所对应的中断入口地址为(0013)H。
4.对中断进行查询时,查询的中断标志位共有IE0、_TF0_、IE1、TF1_和_TI、_RI_六个中断标志位。
单片机原理第五章PPT课件

编程: ORG
0100H
HEX EQU 30H HEXASC: MOV A, HEX
ANL A ,#00001111B
ADD A, #3 ;变址调整 MOVC A, @A+PC
MOV HEX,A ;2字节
RET
;1字节
ASCTAB: DB 30H,3lH,32H,33H
DB 34H,35H,36H,37H
❖1 程序设计方法 ❖2 顺序程序 ❖3 分支程序 ❖4 循环程序 ❖5 子程序 ❖6 算术运算程序
单片机原理及应用
2021/5/13
常州大学信息学院
1
第五章 汇编语言程序设计
5-1-2 汇编语言程序设计步骤
一.分析问题。 二.确定算法。 三.制定程序流程图:表示程序结构和程序功能 四.编制源程序
MOV DPTR,#2100H
MOVX A,@DPTR
MOV R2,A NEXT:INC DPTR
MOVX A,@DPTR ORL A,#80H JNB P,PASS ;判断是否加校验 MOVX @DPTR,A;是,则加奇校验
片外 RAM
…
…
2102H 01101000
2101H 00101101
2100H n
;数表首地址
MOV B,#127 ;预置最小值
NEXT: MOVX A,@DPTR
;取数
INC DPTR
;修改指针
CJNE A,#0FFH,NEXT1;是否为数表结尾?
SJMP DONE
;循环结束
NEXT1:CJNE A,B,NEXT2 ;比较
NEXT2:JNC NEXT
;Cy=1,则A<B;Cy=0,则A>B
单片机原理及应用教学PPT第五章

二、中断的基本概念
1、中断源 引起中断的事件。分CPU内部中断源和外部中断源。 2、中断优先级 多个中断请求同时有效,高优先级的先被响应。 3、中断响应 CPU暂停当前的工作,根据不同的中断源,转去执行不 同的中断子程序。
中断响应与子程序调用的差异: 中断响应与子程序调用的差异:
主程序 PRO 子程序 中断源2 子程序1 子程序2 主程序
3、定时/计数器控制寄存器TCON(88H) 定时/ 位地址 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 位符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 TF1——定时/计数器1溢出中断标志。 TF0——定时/计数器0溢出中断标志。 IE1——外中断1中断标志。 IE0——外中断0中断标志。 IT1——外中断1触发方式选择。IT1=0,外中断为低电平 触发;IT1=1,外中断为下降沿触发。 IT0——外中断0触发方式选择。
§5.3 中断程序设计
一、中断程序编写注意事项
1、入口地址 不同中断源的入口地址为0003H~0023H,每个入口地址 间隔8字节,一般在每个入口地址安排一条无条件跳转指令 AJMP或LJMP。 2、保护现场 中断响应CPU自动将PC推入堆栈,PSW、ACC、工作寄 存器的内容需用户自行保护。
二、中断程序举例
2、中断方式 接口电路需要与CPU交换数据时,由接口电路发出中断 请求信号,CPU根据当前的工作状态决定是否响应中断,如 果响应,则在执行中断服务程序过程中,完成CPU与接口电 路的数据交换。 中断方式电路复杂,CPU占用率低,实时性好,使用广 泛。 顺序执行程序和响应中断是现代CPU最基本的要求。
3、单片机中断优先级 单片机的中断源分为两个优先级:高优先级和低优先级 任一中断源可被设为高优先级或低优先级。 高优先级的中断请求可以中断低优先级的中断服务(中 断嵌套)。 相同优先级按照下列固定顺序查询中断源: INT0→T0→INT1→T1→串行口
单片机原理与应用第5章-第二版

数据在I2C总线上以字节为单位进行传送,每 次传送先传最高位。每次传送的数据字节数不限, 在每个被传送的字节后面跟一个应答位(ACK), 总 线上第9 个时钟脉冲对应于应答位,数据线上低电 平时为应答信号,高电平时为非应答信号。传送数 据开始前,CPU发送起始位,通知接收器件作好接 收准备。起始位的时序是当SCL为高电平时,SDA 由高变低。一组数据传送结束时,CPU发送停止位, 停止位的时序是当SCL为高电平时,SDA由低变高。 数据传送格式如下:
图5.3 电可擦只读存储器
1.静态RAM
单片机扩展数据存储器一般用静态RAM。
MCS-51的数据存储器空间最大为64K,要考虑
给外扩接口电路留出地址空间。扩展时可选用的 静态RAM芯片有 6264 (8K×8=64k位)图5.4 6264引脚图 62256 (32K × 8=256 k位) 图5.4 是6264引脚图。 引脚功能:
它不像27系列改写芯片内容前需要用紫外线擦除,
而能方便的进行多次改写,掉电后其内容也能长
期保存。其引脚图和6264差不多一样。如图5.3
所示,是32引脚DIP封装的电可擦存储器28F256
的符号图。
EEPROM 是一种电可擦除可编程的只读存储器,是 目前广泛被使用的一种只读存储器,其主要优点是能在 应用系统中进行在线改写,并能在断电情况下保存数据 或程序而不需要保护电源,特别是近年来生产的+5V电 可擦除可编程只读存储器,电可擦除只读存储器因兼有 程序存储器和数据存储器的特点,故在单片机应用系统 中,即可作为程序存储,也可用作数据存储器,作为程 序存储器时,其连接方式同一般27系列程序存储器一样 采用三总线方式,作数据存储器用时,要注意多数电可 擦除存储器写入周期很长,往往有ms级,远远长于单片 机的写周期μs级,故对其写入控制线可用单片机的单个 I/O口,如P1.0,还要专门编写相关的写入程序。或单独 用编程器写入。
单片机原理与应用第二版第五章(黄友锐)

2015/3/15
安徽理工大学
定时器采用方式1定时,M=65536,如要求每50ms溢出一次,采用12MHz 晶振,则计数周期T=1μs,计数值=50000,所以,计数初值为: X = 65536–50000 = 15536 = 3CB0H 将3C、B0、分别预置给TH1、TL1。
电气与信息工程学院
2015/3/15
安徽理工大学
1 工作方式控制寄存器TMOD
电气与信息工程学院
2015/3/15
安徽理工大学
2 启停与中断控制器TCON
D7 D6 D5 D4 D3 D2 D1 D0 TCON TF 1 TR 1 TF 0 TR 0 IE 1 IT 1 IE 0 IT 0 位地址 8F 8E 8D 8C 8B 8A 89 88
安徽理工大学
第5章
主 要 内 容:
5.1
5.2 5.3
定时/计数器
定时/计数器的结构
工作方式 综合应用
电气与信息工程学院
2015/3/15
安徽理工大学
5.1 定时/计数器的结构
INT1 INT0 ( P3.3) (P3.2) T1( P3.5) T0(P3.4)
定时器1 (8DH) TH1 7 溢 出 CPU 启 动 内部总线 溢出 工作方式 中断 TCON (88H) TCON 启 动 0 7 (8BH) TL1 0
TL0 5位
TH0 8位
TF0
中断
定时/计数方式0时的逻辑电路结构图
电气与信息工程学院
2015/3/15
安徽理工大学
例5.1 系统时钟频率12MHZ,用定时器1,方式0实现1s的延时。 解: 1)确定工作方式 2)预置定时或计数的初值 3)编得1s延时子程序如下: DELAY :MOV R3,#200 ;置5ms计数循环初值 MOV TMOD #00H MOV TMOD,#00H ;设定时器1为方式0 MOV1的初值 TH1,#63H ;置定时器初值 则定时器 MOV TL1 ,#18H X=M– 计数值 =8192 –5000=3192=C78H=0110001111000B SETB TR1 ;启动T1 LP1: JBC TF1,LP2 ;查询计数溢出 X的实际填写值应为 SJMP LP1 ;未到5ms继续计数 X=0110001100011000B=6318H LP2: MOV TH1,#63H ;重新置定时器初值 即TH1=63H,TL1=18H。 MOV TL1,#18H DJNZ R3,LP1 ;未到1s继续循环 RET ;返回主程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理与应用(五)第五章MCS-51单片机的中断系统5.1 中断系统概述中断:CPU暂时停止正在执行的程序,自动转去执行需紧迫处理的事件(程序),并在处理完毕后能够返回原来程序暂停的位置,接着继续执行。
5.2 中断源和中断控制5.2.1 中断源:能够让CPU暂停执行的信号(硬件)。
8051单片机有5个中断源:2个内部定时器/计数器T0和T1溢出中断:TF0和TF1。
2个外部输入INT0(P3.2)和INT1(P3.3)中断:IE0和IE1。
1个串行口发送/接收中断:TI / RI。
1. 定时器/计数器中断控制寄存器TCON (88H)D7 D6 D5 D4 D3 D2 D1 D0TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0(1) IT0 为外部中断0的触发方式控制位:(由软件置位)当IT0=0时,为负电平触发方式,即INT0(P3.2脚)为低电平时,置IE0=1。
当IT0=1时,为边沿负跳变触发方式,即INT0从高变为低电平时,置IE0=1。
(2) IE0为外部中断0的触发标志(申请中断):(当INT0的电平变化时由硬件置位)硬件置位IE0=1时,向CPU请求中断。
在CPU响应中断请求后,当IT0=1时,IE0自动清零;而当IT0=0时,IE0不能自动清零。
(3) IT1 为外部中断1的触发方式控制位:(由软件置位)同IT0。
(4) IE1 为外部中断1的触发标志(申请中断):同IE0。
(5) TF0为T0的溢出标志(申请中断):当T0的(TH0、TL0)计满溢出时,硬件置TF0为“1”,并向CPU申请中断。
CPU响应中断后,TF0自动清零。
(6) TF1为T1的溢出标志(申请中断):当T1的(TH1、TL1)计满溢出时,硬件置TF1为“1”,并向CPU申请中断。
CPU响应中断后,TF1自动清零。
2. 串行口控制寄存器SCON (98H)D7 D6 D5 D4 D3 D2 D1 D0SM0 SM1 SM2 REN TB8 RB8 TI RI1) TI:串行口发送中断标志位。
发送完成后TI=1。
2) RI:串行口接收中断标志位。
接收完成后RI=1。
5.2.2 中断控制1. 中断允许控制寄存器IE (A8H)D7 D6 D5 D4 D3 D2 D1 D0EA ---- ---- ES ET1 EX1 ET0 EX01) EA:中断允许总控制位当EA=0时,所有中断都禁止;当EA=1时,所有中断都允许。
2) ES:串行口中断允许控制位当ES=0时,禁止串行口中断;当ES=1时,允许串行口中断。
3) ET1:定时器/计数器T1中断允许控制位当ET1=0时,禁止T1中断;当ET1=1时,允许T1中断。
4) EX1:外部INT1中断允许控制位当EX1=0时,禁止INT1中断;当EX1=1时,允许INT1中断。
5) ET0:定时器/计数器T0中断允许控制位当ET0=0时,禁止T0中断;当ET0=1时,允许T0中断。
6) EX0:外部INT0中断允许控制位当EX0=0时,禁止INT0中断;当EX0=1时,允许INT0中断。
8051单片机系统上电复位后,IE的各位均被置“0”。
2. 中断优先级控制寄存器IP (B8H)D7 D6 D5 D4 D3 D2 D1 D0---- ---- ---- PS PT1 PX1 PT0 PX0如果有多个中断源同时请求中断时,就须分出处理的先后。
8051单片机分为高、低两个中断优先级,由软件设置,当处于同一优先级时,按以下次序的先后进行处理:外部INT0中断(IE0) →定时器T0溢出(TF0) →外部INT1中断(IE1) →→定时器T1溢出(TF1) →串行口中断(TI / RI)1) PS:串行口中断优先级控制位。
当设置PS=1时为高级优先,PS=0时为低级。
2) PT1:定时器/计数器T1中断优先级控制位。
优先级设置同上。
3) PX1:外部INT1中断优先级控制位。
优先级设置同上。
4) PT0:定时器/计数器T0中断优先级控制位。
优先级设置同上。
5) PX0:外部INT0中断优先级控制位。
优先级设置同上。
8051单片机系统上电复位后,IP的各位均被置“0”。
中断优先级控制系统的等效电路逻辑结构图:INT 0& IE0 IE寄存器IP寄存器高级中断请求IT0 触发器低级中断请求INT 1 IE1 EX0TF0TF1 ET0TIRIESEA PX05.3 中断处理5.3.1 中断的响应过程1. 硬件响应:当前程序计数器PC的内容进栈,中断入口地址装入PC中,程序转移到该中断入口地址去执行中断服务子程序。
2. 软件响应:进入中断服务子程序后,执行关中断→保护现场→开中断→中断处理→关中断→恢复现场→开中断→中断返回。
注意:在保护现场和恢复现场时,不允许其他中断进入,必须禁止中断。
中断入口地址表中断源中断入口地址外部输入INT0中断0003H内部定时器/计数器T0溢出中断000BH外部输入INT1中断0013H内部定时器/计数器T1溢出中断001BH串行口发送/接收中断0023H5.3.2 中断的响应时间:一般是3~8个机器周期。
5.3.3 外部中断的方式(IT0 / IT1)1. 电平触发方式:要求在中断返回之前能清除中断源的低电平。
2. 边沿触发方式:要求触发电平至少要保持12个时钟周期。
5.4 外部中断源的扩展(略)5.5 中断系统设计中应注意的几个问题5.5.1 调试时注意开发机上使用的中断入口地址(目前的仿真器已无此问题)5.5.2 保护现场:一般是把累加器A、程序状态字PSW、数据指针DPTR、等进栈。
例:CLR EAPUSH APUSH PSWPUSH DPHPUSH DPLSETB EA恢复现场:以保护现场时进栈的反序出栈。
例:CLR EAPOP DPLPOP DPHPOP PSWPOP ASETB EARETI5.5.3 中断标志的清除(1) T0的TF0、T1的TF1、IT0=1(负边沿触发)时的IE0,IT1=1时的IE1这四个中断标志,在中断响应后,CPU会自动清零。
(2) IT0=0(负电平触发)时的IE0,IT1=0时的IE1这两个中断标志,必须撤消引起外部中断的负电平信号。
(3) 串行口中断信号TI、RI,必须由软件清零。
中断的应用:(1) 设置中断允许控制寄存器IE (EA=0)。
(2) 设置中断优先级控制寄存器IP。
(3) 对于外部中断,还要设置中断请求触发方式IT0 / IT1。
(4) 在相应的中断入口地址处加一条无条件转移指令:LJMP <标号>(5) 在主程序的开头加开中断指令:SETB EA(6) 编写中断处理子程序。
例题1:采用外部中断方式的按键计数程序。
K BIT P3.2S EQU 20HORG 0000HMain: MOV S, #00H ; S置初值0MOV P0, #0C0H ; 显示‘空’L1: SETB KJB K, L1 ; K=1, 无键入LCALL Delay10 ; 消抖处理JB K, L1 ; K=1, 是抖动INC S ; K键按下的处理:S S+1, 显示数值S(0~9)MOV A, SMOV DPTR, #TABMOVC A, @A+DPTR; 取出数值S对应的LED显示段码MOV P0, A ; 显示数值S(0~9)L2: SETB KJNB K, L2 ; K=0, 键没有松开LCALL Delay10 ; 消抖处理JNB K, L2 ; K=0, 是抖动MOV A, SCJNE A, #10, L1SJMP MainTAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0HDelay10: MOV R4, #10 ; 10*1ms=10ms ; 延时10msDe1: MOV R5, #250 ; 250*4us=1msDe2: DJNZ R5, De2 ; 4us,设f = 6MHzDJNZ R4, De1RETEND例题2:采用外部中断方式的倒计数程序。
K BIT P3.2S EQU 20H P0ORG 0000HMain: MOV S, #09H KMOV P0, #0FFH ; 显示‘空’P3.2 +5VL1: SETB KJB K, L1 ; K=1, 无键入MOV A, S ; K键按下的处理:显示数值S(9~0) ,S←S-1MOV DPTR, #TABMOVC A, @A+DPTR ; 取出数值S对应的LED显示段码MOV P0, A ; 显示数值S(0~9)LCAL Delay ; 延时1sMOV A, SJZ MainDEC SSJMP L1TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0H Delay: MOV R3, #5 ; 5*200ms=1000ms=1sDe0: MOV R4, #200 ; 200*1ms=200msDe1: MOV R5, #250 ; 250*4us=1msDe2: DJNZ R5, De2 ; 4us,设f = 6MHzDJNZ R4, De1DJNZ R3, De0RETEND课堂上机练习题:请把单个LED显示的倒计数例题的按钮输入识别改为中断的方式。
其编程调试步骤如下:①:编写主程序1.编写主程序主程序:ORG 0000HMain: MOV S, #9MOV P0, #0FFH ; 显示‘空’L1: SETB KJB K, L1 ; K=1, 无键入MOV A, S ; K键按下的处理:显示数值S(9~0) ,S←S-1MOV DPTR, #TABMOVC A, @A+DPTR ; 取出数值S对应的LED显示段码MOV P0, A ; 显示数值S(0~9)LCALL Delay ; 延时1sMOV A, SJZ MainDEC SSJMP L1TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0C0HDelay: MOV R2, #5 ; 延时500msDe0: MOV R3, #100 ; (延时100ms)De1: MOV R4, #250 ;De2: DJNZ R4, De2 ; 250*4us=1ms,设f = 6MHzDJNZ R3, De1DJNZ R2,De0RETEND2.输入并调试、运行通过。
②:在初始化中加入(1) 设置中断允许控制寄存器IE (EA=0)。
(2) 设置中断优先级控制寄存器IP。
(3) 对于外部中断,还要设置中断请求触发方式IT0 / IT1。