四川工程职业技术学院 单片机应用技术课程电子教案 第9讲 指令功能及汇编语言程序设计(三) Copyright Http:llmcu. scetc. net
四川工程职业技术学院 单片机应用技术课程电子教案 Copyright © Http://mcu.scetc.net 第 9 讲 指令功能及汇编语言程序设计(三)
本讲主要内容: 9-1.设计范例——按键及数码显示 9-2.独立式按键与单片机的接口设计 9-3.控制转移类指令(2) 9-4.查表程序设计的基本方法 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 2 Copyright © Http:// mcu.scetc.net 本讲主要内容: 9-1. 设计范例——按键及数码显示 9-2. 独立式按键与单片机的接口设计 9-3. 控制转移类指令(2) 9-4. 查表程序设计的基本方法
9-1.设计范例——按键及数码显示 ◇要求利用按键控制数码管的显示內容,按键K每按一下使最 左侧的数码管显示加1,从0-9依次循环。 P3.5 P33|P34 P1.3 P1.2 P1.1 P1.0 当吕三 ALED P0口 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 3 Copyright © Http:// mcu.scetc.net 9-1. 设计范例——按键及数码显示 要求利用按键控制数码管的显示内容,按键K1每按一下使最 左侧的数码管显示加1,从0—9依次循环。 P0口 P3.2 P3.3 P3.4 P3.5 P1.3 P1.2 P1.1 P1.0
9-1.设计范例——按键及数码显示 ◇范例分析: ◇设计中要求用按键控制数码管的显示,此处涉及到按键的部分包含以 下工作 ◇如何得知按键是否按下。 ◇按键按下后如何使数码管的显示内容加1。 准备内容1 ◇设计中要求在数码管上循环显示数字0~9。根据上一课题的讲解,此 处应采用循环程序的设计方法。 准备内容2 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 4 Copyright © Http:// mcu.scetc.net 9-1. 设计范例——按键及数码显示 范例分析: 设计中要求用按键控制数码管的显示,此处涉及到按键的部分包含以 下工作: 如何得知按键是否按下。 按键按下后如何使数码管的显示内容加1。 设计中要求在数码管上循环显示数字0~9。根据上一课题的讲解,此 处应采用循环程序的设计方法。 准备内容1 准备内容2
9-2.独立式按键与单片机的接口设计 ◇独立式按键与单片机的接口 O +5V P1.7 P1.6 P1.5 P1.4 DDD P1.2 D6 P1.0 Q8 D8 80C51 74LS373 芯片内有上拉电阻 芯片内无上拉电阻 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 5 Copyright © Http:// mcu.scetc.net 9-2. 独立式按键与单片机的接口设计 独立式按键与单片机的接口 芯片内有上拉电阻 芯片内无上拉电阻 80C51 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 74LS373 D1 D2 D3 D4 D5 D6 D7 D8 +5V Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 0 1 2 3 4 5 6 7
9-2.独立式按键与单片机的接口设计 ◇键盘查询 ◇按键在闭合和断开时,触点会存在抖动现象 理想波形 234567 INTI INTO EA/VP 实际波形 RXD 按下抖动/稳定闭合释放抖动 TXD PSEN 8051 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 6 Copyright © Http:// mcu.scetc.net EA/VP 31 X1 19 X2 18 RESET 9 RD 17 W R 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 U1 8051 R 1K K1 VCC GND 2 1 A U2 9-2. 独立式按键与单片机的接口设计 键盘查询 按键在闭合和断开时,触点会存在抖动现象 按下抖动 释放抖动 理想波形 实际波形 稳定闭合 +5V +5V A B 无抖动 有抖动
9-2.独立式按键与单片机的接口设计 ◇硬件消抖 P14 012345 1 P07 INTI INTO P23 P24 EA/VP P26 按下 P27 RESET RXD TXD ALE PSEN 按下 GND 硬件消抖在很大程度上可以降低抖动,但不能彻底根除。 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 7 Copyright © Http:// mcu.scetc.net EA/VP 31 X1 19 X2 18 RESET 9 RD 17 W R 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 U1 8051 R 1K K1 VCC GND C + 1uF 2 1 U2A 74LS14 9-2. 独立式按键与单片机的接口设计 硬件消抖 硬件消抖在很大程度上可以降低抖动,但不能彻底根除
9-2.独立式按键与单片机的接口设计 ◇软件消抖 注意此处所查的 P30=0 电平状态要取决 于电路特点。这 点十分重要。 用什么指令实现呢 延时 P3.0=0 按键按下按键没按下 上图所用的软件消抖方法 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 8 Copyright © Http:// mcu.scetc.net 9-2. 独立式按键与单片机的接口设计 软件消抖 P3.0=0 延 时 P3.0=0 按键按下 按键没按下 Y Y N N 上图所用的软件消抖方法 用 什 么 指 令 实 现 呢 ? 注意此处所查的 电平状态要取决 于电路特点。这 一点十分重要
9-3.控制转移类指令(2) ◇位控制转移指令组 注意:指令 JBc和JB是 ◇ Jc rel;如果(Cy)=1,跳到目标 不同的。 ◇ JNC rel;如果Cy)=0,跳到目标 ◇ unb bit,rl:如果(bi-0.到目标; ◇ Jb bit,rel;如果(bit)=1,跳到目标语句 ◇ Jbc bit,rel;:如果(bit)=1,跳到目标语句 ;同时将bi位清0 例:JBP1.0,LOOP JBC PI.1. LOOP1 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 9 Copyright © Http:// mcu.scetc.net 9-3. 控制转移类指令(2) 位控制转移指令组 JC rel ;如果(Cy)=1,跳到目标语句 JNC rel ;如果(Cy)=0,跳到目标语句 JNB bit, rel ;如果(bit)=0,跳到目标语句 JB bit, rel ;如果(bit)=1,跳到目标语句 JBC bit, rel ;如果(bit)=1,跳到目标语句 ; 同时将bit位清0 例: JB P1.0 , LOOP JBC P1.1 , LOOP1 注意:指令 JBC和JB是 不同的
9-2.独立式按键与单片机的接口设计一例1 例1:电路如下图所示,编程实现用按键K1控制数码管的显示, 通过按下按键使数码管交替显示H和L。 PlOT PIl/T GND 330*8 INTI INTO P21 RESET RXD TXD PSEN 8031 SiChuan Engineering Technical College-1959 Copyright c Http: // mcu.scete. net
SiChuan Engineering Technical College-1959 10 Copyright © Http:// mcu.scetc.net 9-2. 独立式按键与单片机的接口设计——例1 例1:电路如下图所示,编程实现用按键K1控制数码管的显示, 通过按下按键使数码管交替显示H和L。 1 2 3 4 5 6 7 a b c d e f g 8 dp 9 GND a f b c g d e dp LED1 GND 1 2 3 4 5 6 7 8 16 15 14 13 12 11 10 9 R 330*8 R1 1K K1 C1 VCC GND EA/VP 31 X1 19 X2 18 RESET 9 RD 17 W R 16 INT0 12 INT1 13 T0 14 T1 15 P10/T 1 P11/T 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 U1 8031