按键控制LED灯

合集下载

键盘控制LED灯数码管

键盘控制LED灯数码管

代码编写
总结词
代码编写是实现键盘控制LED灯数码管功能的核心环节,需要遵循一定的编程规范和逻 辑。
详细描述
在编写代码时,需要遵循良好的编程规范,如变量命名规范、注释清晰等,以提高代码 的可读性和可维护性。同时,需要确保代码逻辑正确,能够实现预期的功能。在键盘控 制LED灯数码管的实现中,需要编写代码以读取键盘输入,并根据输入控制LED灯数码
•·
• 数码管损坏:可能是数 码管本身损坏,需要更 换新的数码管。 • 程序错误:可能是程序 中存在错误,导致数码 管显示异常,需要检查 程序代码并修正错误。
• 连接问题:检查数码管 的连接线是否牢固,确 保连接线没有短路或断 路。
按键无响应
•·
• 按键损坏:可能是按键本身损 坏,需要更换新的按键。
管的显示。
代码测试
总结词
代码测试是确保键盘控制LED灯数码管功能正常的重要步骤,通过测试可以发现和修复潜在的错误。
详细描述
在完成代码编写后,需要进行充分的测试,以验证功能的正确性和稳定性。测试过程中应涵盖各种可 能的输入情况,包括正常输入和异常输入。通过测试可以发现潜在的错误并及时修复,从而提高整个 项目的质量。
输入。
硬件组装
将各元件按照设计好 的电路图进行连接。
将微控制器与电源连 接,为微控制器供电。
检查连接是否正确, 确保没有任何短路或 断路。
03
软件编程
编程语言选择
总结词
编程语言选择是键盘控制LED灯数码管的关键步骤,需要根据项目需求和开发者技能选择合适的编程语言。
详细描述
在实现键盘控制LED灯数码管的功能时,有多种编程语言可供选择,如C、C、Python等。这些语言各有优缺点, 需要根据项目需求和开发者的编程技能进行选择。例如,C语言具有高效、可控性强的优点,适用于对性能要求 较高的场合;Python则易于学习、语法简洁,适合初学者和快速开发。

单片机独立按键控制led灯实验原理

单片机独立按键控制led灯实验原理

主题:单片机独立按键控制LED灯实验原理目录1. 概述2. 单片机独立按键控制LED灯实验原理3. 实验步骤4. 结语1. 概述单片机在现代电子设备中起着至关重要的作用,它可以通过编程实现各种功能。

其中,控制LED灯是单片机实验中常见的任务之一。

本文将介绍单片机独立按键控制LED灯的实验原理及实验步骤,希望对初学者有所帮助。

2. 单片机独立按键控制LED灯实验原理单片机独立按键控制LED灯的实验原理主要涉及到单片机的输入输出端口及按键和LED的连接方式。

在单片机实验中,按键与单片机的输入端口相连,LED与单片机的输出端口相连。

通过按键的按下和松开来改变单片机输出端口电平,从而控制LED的亮灭。

3. 实验步骤为了完成单片机独立按键控制LED灯的实验,需要按照以下步骤进行操作:步骤一:准备材料- 单片机板- 按键- LED灯- 连线- 电源步骤二:搭建电路- 将按键与单片机的输入端口相连- 将LED与单片机的输出端口相连- 连接电源步骤三:编写程序- 使用相应的单片机开发软件编写程序- 程序中需要包括按键状态检测和LED控制的部分步骤四:烧录程序- 将编写好的程序烧录到单片机中步骤五:运行实验- 按下按键,观察LED的亮灭情况- 确保按键可以正确控制LED的亮灭4. 结语通过上述实验步骤,我们可以实现单片机独立按键控制LED灯的功能。

这个实验不仅可以帮助学习者了解单片机的输入输出端口控制,还可以培养动手能力和程序设计能力。

希望本文对单片机实验初学者有所帮助,谢谢阅读!实验步骤在进行单片机独立按键控制LED灯实验时,需要按照一定的步骤进行操作,以确保实验能够顺利进行并取得预期的效果。

下面将详细介绍实验步骤,帮助读者更好地理解和掌握这一实验过程。

1. 准备材料在进行单片机独立按键控制LED灯实验前,首先需要准备相应的材料。

这些材料包括单片机板、按键、LED灯、连线和电源。

在选择单片机板时,需要根据具体的实验需求来确定,常见的有51单片机、Arduino等,不同的单片机板具有不同的特性和使用方法,因此需要根据实验要求来选择适合的单片机板。

使用按键控制LED灯亮—按键控制LED灯亮灭程序编写

使用按键控制LED灯亮—按键控制LED灯亮灭程序编写

9课Βιβλιοθήκη 任务编写由一个按键按制一个 LED 灯,当 按键按下时,LED 灯亮再按时 LED 灯 灭的 C 语言程序。
单片机技术及应用
单片机技术及应用
1
工作任务
任务要求:
当独立按
键 key 按下时, 发光二极管
LED 点亮,松 开按键 key 时 发光二极管
LED 熄灭。
任务分析:
按下
P3.0端口为“0”


按键Key
序 控
松开
P3.0端口为“0”


2
程序设计流程
一、流程图
二、按键软件延时消抖
1.延时程序编写
void delay(uint x)//ms延时函数 { uchar i; while(x--) for(i=0;0<i<123;i++)
下载程序及硬件调试
1.下载程序
2.连接电路
电路连接表
控制端口
连接位置
P1.0
VD26
P3.0
KEY1
3.硬件调试
7
成果展示及评价
•学生进行作品展示
8
任务小结
•学生小结:小组代表总结本组的学习心得,学会了什么, 还有什么没有理解等等。 •教师小结:教师对每组的成果进行点评,并对本节课的知识 点进行总结。
while(1) {
if(key==0) { delay(10); if(key==0) { 灯亮;} } } else {灯灭;} }
4 程序仿真调试
一、利用Proteuse软件绘制电路图
步骤: 打开Protues 软件 创建工程 创建文件 放置元件 连接电路 保存
二、装载Hex文件并仿真

使用按键手动控制LED灯亮灭—独立按键及C语言相关知识

使用按键手动控制LED灯亮灭—独立按键及C语言相关知识
关系运算符将两个表达式连接起来的式子,称为关系表达式。
表达式
关系运算符
表达式
二、选择语句
1.if 语句
基本形式
if(表达式) {语句;}
流程图
功能
如果表达式 的值为真, 则执行语句, 否则不执行。
做一做
当x=-1 时,执行下列语句, 其结果为?if(x>0) y=3;
单片机技术及应用
基本形式
流程图
if(表达式 1) {语句 1;}
else if(表达式 2) {语句 2;}
else if(表达式 3) {语句 3;} ……
else if(表达式 m) {语句 m;}
else {语句 n;}
功能
如果表达式的1的结 果为“真”,则执行 语句 1,并退出 if 语句; 否则去判断表达式 2, 如果表达式2为 “真”,则执行语句 2, 并退出 if 语句;否则 去判断表达式3.……最 后表达式 m 也不成立, 就去执行 else 后面的 语句 n。
单片机技术及应用
情境引入:
在我们的教室都装了一个开关来控制 电灯的亮灭,今天我们利用独立按键来控 制单片机LED灯的亮灭。
1 独立按键 2
:在哪些家用电器中会用到这种按键?
2
独立按键工作原理
一、硬件电路
二、按键工作原理
消抖的方法: 硬件消抖 软件消抖
2 C语言相关知识
一、关系运算符和关系表达式
2.if......else......语句
基本形式
流程图
if(表达式) {语句1;} else {语句2;}
功能
如果表达式 的值为真, 则执行语句 1,否则执 行语句 2。
做一做
当x=-1 时,执行下列语句,其 结果为?if(x>0)y=3;else y=x+1;

按钮控制LED灯教学设计

按钮控制LED灯教学设计

按钮控制LED灯教学设计1. 引言按钮控制LED灯是一种基本的电子电路设计,本文将介绍如何使用按钮控制LED灯的原理和步骤,以便初学者能够快速掌握这一基础知识。

2. 设备清单在开始设计之前,我们需要准备以下设备:- Arduino开发板- 面包板- LED灯- 跳线3. 原理介绍按钮控制LED灯的原理很简单,当按钮按下时,电流会经过按钮,然后流入LED灯,从而点亮LED灯。

当按钮松开时,电流断开,LED灯熄灭。

在这个过程中,Arduino开发板起到控制电流流动方向的作用。

4. 连接步骤接下来,我们将详细介绍按钮和LED灯的连接步骤:步骤1:将Arduino开发板连接到面包板上,确保线路连接正确并稳定。

步骤2:将一个跳线连接到Arduino开发板的数字引脚2上,并将另一端连接到面包板的一侧。

这将是我们的按钮引脚。

步骤3:将另一个跳线连接到面包板的相邻位置上,并将其另一端连接到LED的正极。

这将是我们的LED正极引脚。

步骤4:将第三个跳线连接到面包板的另一侧,并将其另一端连接到LED的负极。

这将是我们的LED负极引脚。

5. 代码编写在连接完成后,我们需要编写一段简单的Arduino代码来控制按钮控制LED灯的开关。

```int buttonPin = 2; //将按钮连接到数字引脚2int ledPin = 13; //将LED连接到数字引脚13void setup() {pinMode(ledPin, OUTPUT); //设置LED引脚为输出pinMode(buttonPin, INPUT); //设置按钮引脚为输入}void loop() {int buttonState = digitalRead(buttonPin); //读取按钮状态if (buttonState == HIGH) { //如果按钮按下digitalWrite(ledPin, HIGH); //点亮LED灯} else {digitalWrite(ledPin, LOW); //熄灭LED灯}}```6. 实验结果当我们上传了上述代码到Arduino开发板后,即可通过按钮控制LED灯的开关状态。

按键控制LED灯

按键控制LED灯
(1) 共阴极接法。把发光二极管的阴极连在一起构成公共阴极, 使用时公共阴极接低电平。每个发光二极管的阳极通过电阻与输 入端相连。如图 5-3(b)所示。当笔画(字段)接高电平时被点亮。
(2) 共阳极接法。把发光二极管的阳极连在一起构成公共阳极, 使用时公共阳极接高电平,每个发光二极管的阴极通过电阻与输 入端相连。如图 5-3(c)所示。当笔画(字段)接低电平时被点亮。
2、模拟开关灯
参考程序如下: ORG 0000H L1: JB P3.2,L2
转到L2 CLR P0.0
SJMP L1 L2: JB P3.3,L1
SETB P0.0
SJMP L1 END
;如果P3.2的状态为1(1号键未按),则跳 ;1号键按下,P0.0清0,输出低电平,LED
发光
;如果P3.3的状态为1(2号键未按),则跳 转到L1
;2号键按下,P0.0置1,输出高电平,LED 熄灭
按下1号键时,P3.2=0,程序从L1顺序执 行,P0.0被清0,输出低电平,LED发光, 1号键未按下,程序跳转到L2,检测2号 键,即P3.3的状态,如果P3.3的状态为1 (2号键未按),则跳转到L1,完成一个 循环;如果P3.3的状态为0(2号键被按 下),程序从L2顺序执行,P0.0置1,输 出高电平,LED熄灭。最后执行 SJMP L1,回到开始处继续执行。
分析该程序,我们发现,当按下P3口外接的按 键时,与之连接的引脚变成低电平,单片机执 行MOV A,P3指令时,该引脚的状态输入到A中。 在执行MOV P0,A时,输出到P0口,与之对应 的P0口引脚为低电平,点亮相应的LED灯。 P3.2、P3.3、P3.4、P3.5分别控制P0.2、P0.3、 P0.4、P0.5引脚连接的LED灯。

单片机实验报告范文

单片机实验报告范文

单片机实验报告范文一、实验目的本实验的目的是通过学习单片机的基本原理和使用方法,掌握单片机在各个实际应用中的基本技能。

二、实验器材及原理1.实验器材:STC89C52单片机、电源、晶振、按键、LED灯、蜂鸣器等。

2.实验原理:单片机是一种微处理器,能够完成各种复杂的功能。

通过学习单片机的工作原理和编程方法,可以控制各种外围设备,实现不同的功能。

三、实验内容及步骤1.实验一:点亮LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)编写程序,点亮LED灯。

2.实验二:按键控制LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)将按键和LED灯与单片机相连。

(3)编写程序,实现按下按键控制LED灯亮灭。

3.实验三:数码管显示步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)将数码管与单片机相连。

(3)编写程序,将数字输出到数码管上显示。

4.实验四:定时器应用步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)编写程序,实现定时器功能。

四、实验结果及分析1.实验一:点亮LED灯LED灯成功点亮,证明单片机与外部设备的连接正常。

2.实验二:按键控制LED灯按下按键后,LED灯亮起,松开按键后,LED灯熄灭。

按键控制LED 灯的效果良好,说明单片机的输入输出功能正常。

3.实验三:数码管显示数码管成功显示数字,说明单片机能够实现数字输出功能。

通过程序设计,可以实现数码管显示不同的数字。

4.实验四:定时器应用定时器正常运行,能够实现精确的定时功能。

通过调节定时器的参数,可以实现不同的定时功能。

五、实验总结通过本次实验,我们学习了单片机的基本原理和使用方法。

通过掌握单片机的编程技巧,我们能够实现各种复杂的功能,如控制LED灯、按键控制、数码管显示等。

这些技能对于日常生活和工程设计都具有很大的实用性。

在实验过程中,我们遇到了各种问题,如电路连接错误、程序编写错误等。

通过按键实现LED灯的亮灭(含两种情况)

通过按键实现LED灯的亮灭(含两种情况)

通过按键实现LED灯的亮灭(含两种情况)1 #include "stm32f10x.h"// 相当于51单⽚机中的 #include <reg51.h>2 #include "stm32f10x_gpio.h"3/*通过按键实现LED灯的亮灭4*本项⽬是两个效果,烧程序时注意分开5*1、LED实现的效果实是K1⼀直按下LED⼀直亮,直到K1松开LED熄灭6*2、按⼀下key实现LED亮,再按⼀下实现LED灭7*8*/910/*配置GPIO11*step1配置时钟12*结构体:Speed、Mode、Pin13*初始化14*/15int main(void)16 {17//点亮红⾊灯18//step1:使能1920 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);21//结构体22 GPIO_InitTypeDef a;23 a.GPIO_Speed=GPIO_Speed_50MHz;24 a.GPIO_Pin=GPIO_Pin_5;25//推挽输出26 a.GPIO_Mode=GPIO_Mode_Out_PP;27//调⽤GPIO初始化函数28 GPIO_Init(GPIOB,&a);29//设置PB5为低点平30//GPIO_ResetBits(GPIOB,GPIO_Pin_5);31//GPIO_SetBits(GPIOB,GPIO_Pin_5);32333435/**************按键初始*************/3637//step1:时钟使能38 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);39//step2:定义GPIO初始化结构体变量40 GPIO_InitTypeDef b;41 b.GPIO_Speed=GPIO_Speed_50MHz;42 b.GPIO_Pin=GPIO_Pin_0;43//浮空输⼊44 b.GPIO_Mode=GPIO_Mode_IN_FLOATING;45//stept3:调⽤GPIO初始化函数46 GPIO_Init(GPIOA,&b);47/************************1********************************/48/*49*知识点:读取电平的函数:GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);50*详细见后⾯截图51*/5253/*LED实现的效果实是K1⼀直按下LED⼀直亮,直到K1松开LED熄灭*/5455while(1)//死循环随时检测按键的情况56 {57//读取引脚的点平并赋值给i58int i = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);59if(i==0)//判断K1的电平是否为060 {61//为0时,设置PB5为⾼电平,62 GPIO_SetBits(GPIOB,GPIO_Pin_5);63 }64else65 {6667//设置PB5为低点平68 GPIO_ResetBits(GPIOB,GPIO_Pin_5);69 }70 }717273/***************************2*********************************/74/*********以下代码实现按键按⼀下LED亮,再按以下LED灭*********/75int pre=0;//上⼀次循环按键的点平76while(1)77 {78//读取引脚的点平79int states = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_0);80if(states==0&&pre==1)//states是循环时检测的电平,难点在这81 {82//按键刚松开那⼀刻,states马上变为0,但是上⼀次循环中给pre赋的值还是183if(GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_5)==0)//再判断是否为低电平84 {85//给GPIOB端⼝5赋值为⾼电平,实现LED亮86 GPIO_SetBits(GPIOB,GPIO_Pin_5);87 }88else89 {90//给GPIOB端⼝5赋值为低电平,实现LED灭91 GPIO_ResetBits(GPIOB,GPIO_Pin_5);92 }93 }94 pre=states;//把本次循环按键的电平赋值给上⼀次95 }96/*******************************************************************/97 }。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。



把这段程序在WAV6000中编辑、汇编,用软件 仿真运行、调试无误,把得到bin格式或者hex 格式的目标文件,通过烧录器或者下载线,保 存到单片机的程序存储器中。把单片机插入实 验板插座里,上电运行,按下按键,观察LED 灯的亮灭。 分析该程序,我们发现,当按下P3口外接的按 键时,与之连接的引脚变成低电平,单片机执 行MOV A,P3指令时,该引脚的状态输入到A中。 在执行MOV P0,A时,输出到P0口,与之对应 的P0口引脚为低电平,点亮相应的LED灯。 P3.2、P3.3、P3.4、P3.5分别控制P0.2、P0.3、 P0.4、P0.5引脚连接的LED灯。
82H 92H
0A2H 0B2H
81H 91H
0A1H 0B1H
80H 90H
0A0H 0B0H
【实训内容与步骤】
1.按键控制对应LED灯点亮
参考程序如下: ORG 0000H ;定位伪指令,指定下一条指令的地 址, 第一条指令必须放在0000H L1:MOV A,P3 ;把P3口的状态读入累加器A 中 MOV P0,A ;把A中的数据送到P0口,控制P0口 输出 电平,控制LED亮灭 SJMP L1 ;返回L1,循环执行程序 END ;结束伪指令

位处理指令操作的对象是可直接寻址位,其寻址范围 是00H—0FFH,共256位。其中低128位的地址是连续 的,地址范围是00H—7FH。地址在80H以上的位都是 特殊功能寄存器里的可直接寻址位,这些特殊功能寄 存器的共同特点是其地址(注意:是特殊功能寄存器 自己的字节地址,不是位地址)能被8整除,这样的特 殊功能寄存器有12个,共有93个可直接寻址位(有3个 位IP.7、IP.6、IE.6没有定义)。因此80H以上的位地 址并不连续。详见任务三的相关部分。下表中列出了 P0~P3口字节地址与位地址的关系。
字节 地址 PX.7 PX.6 PX.5
位地址
PX.4
PX.3
PX.2
PX.1
PX.0
P0 P1
P2 P3
80H 90H
0A0H 0B0H
87H 97H
0A7H 0B7H
86H 96H
0A6H 0B6H
85H 95H
0A5H 0B5H
84H 94H
0A4H 0B4H
83H 93H
0A3H 0B3H
任务五 按键控制LED灯
在单片机应用系统中,通常都要求单片机有人机对 话功能。需要输入信息,实现对系统的控制,这时就需 要键盘。单片机的端口除了做输出外也可用做输入。本 任务通过制作一个使用按键控制LED灯,来学习单片机 端口输入的使用方法,同时学习常用的输出设备:LED 数码管。
硬件知识
1、硬件电路原理图
2、模拟开关灯

参考程序如下: ORG 0000H L1: JB P3.2,L2 转到L2 CLR P0.0
SJMP L1 L2: JB P3.3,L1 SETB P0.0 SJMP L1 END
;如果P3.2的状态为1(1号键未按),则跳 ;1号键按下,P0.0清0,输出低电平,LED 发光 ;如果P3.3的状态为1(2号键未按),则跳 转到L1 ;2号键按下,P0.0置1,输出高电平,LED 熄灭
2、89S51单片机端口的输入方法


89S51单片机的外部端口均为双向端口,即:既 可以用做输出,也可以用做输入。用做输入揣口 时应当注意以下问题。 (1)端口用于输入前必须向端口写“1” (2)P0口中无上拉电阻,用做开关输入时必 须外加上拉电阻,而其他端口内部含有上拉电阻 阻,用做开关输入时可不必外接上拉电阻。
3、按键控制任意LED灯点亮


参考程序如下: ORG 0000H ;定位伪指令,指定下一条指令的地址,第 一条指令必须放在0000H L1: MOV A,P3 ;把P3口的状态读入累加器A中 RL A ;A中的内容循环左移 RL A MOV P0,A ;把A中的数据送到P0口,控制P0口输出电平,控 制LED亮灭 SJMP L1 ;返回L1,循环执行程序 END ;结束伪指令 在以上的这段程序中,加了两条RL A指令,实现了两次左移,这 样P3.2、P3.3、P3.4、P3.5分别控制P0.4、P0.5 、P0.6、P0.7引 脚连接的LED灯。由于P0口的排列顺序问题,在实验板上看起来 灯是右移了。
端口在上拉电阻的作用下保持为高电平 按键按下端口为低电平状态,输入逻辑“0” 输入逻辑“1”
图5-2 独立式按键输入

89S51单片机中各端口用做输入时除P0 端口外,其他端口内部都具有上拉电阻, 因此使用这些端口做开关输入时可不用 外接上拉电阻。由于实验板上的按键使 用了P3口的4根I/O口线,因此可以省略 外接上拉电阻。
4、LED数码管

LED 数码显示器是一种由 LED 发光二极管组合显示字符的显示器 件。它使用了 8 个LED 发光二极管,其中 7个发光二极管构成字 形“8”的各个笔画(段)a~g,另1 个用于显示小数点dp,故通 常称之为 8 段发光二极管数码显示器。其内部结构如图 5-3(a)所 示。LED 数码显示器有两种连接方法: (1) 共阴极接法。把发光二极管的阴极连在一起构成公共阴极, 使用时公共阴极接低电平。每个发光二极管的阳极通过电阻与输 入端相连。如图 5-3(b)所示。当笔画(字段)接高电平时被点亮。 (2) 共阳极接法。把发光二极管的阳极连在一起构成公共阳极, 使用时公共阳极接高电平,每个发光二极管的阴极通过电阻与输 入端相连。如图 5-3(c)所示。当笔画(字段)接低电平时被点亮。
【拓展训练】

编写程序实现按键显示另外6个数字中的 4个。
MOV A, P3
把P3中8个端口的状态送到 累加器A中
JB P0.1, L1
如果P0.1为状态“1”,则 转移至L1,如果P0.1 为状态“0”,则顺序 执行 如果P1.6为状态“0”,则 转移至L2,如果P1.6 为状态“1”,则顺序 执行
JNB bit,标 号

JNB P1.6, L2
2、其他指令
举 例
功 能 指 令 指令 MOV C,P0.0 功 能 把C的值传送到P0.0端口输出
把Cy的内容传送给 指定位
MOV bit ,C
把指定位清0 把指定位置1
CLR bit SETB bit
CLR P0.0 SETB P0.1
P0.0清0,输出低电平 P0.1置1,输出高电平
把立即数送内部存 储单元
4、用LED数码管显示1、2、3、4
按下按键时,点亮正确的字段,就可以显示出数字,下表是实验板上使用的 共阳极LED数码管显示1、2、3、4的字型代码。
数字
1 2
dp
1 1
g
1 0
f
1 1
e
1 0
d
1 0
c
0 1
b
0 0
a
1 0
字段
0F9H 0A4H
3
4
1
1
0
0
1
0
1
1
0
1
0
0
0
0
0
1
0B0H
99H
3、开关输入的连接方法


当需要使用的开关数量较少时,一般直接使用 独立式按键输入,每个开关占用一个端口,其 优点是编程简单,缺点是占用端口资源多。当 需要的开关数量较多,CPU端口不够用时,使 用矩阵式输入,其优点是占用端口资源少,缺 点是编程比较复杂。本任务中使用独立式按键 输入方法。 图5-2所示为一个独立式按键输入的常用连接 方法,当按键按下时CPU端口为“0”,当按键 松开时CPU端口为“1”。通过程序读取端口状 态就能知道开关的状态。

按下1号键时,P3.2=0,程序从L1顺序执 行,P0.0被清0,输出低电平,LED发光, 1号键未按下,程序跳转到L2,检测2号 键,即P3.3的状态,如果P3.3的状态为1 (2号键未按),则跳转到L1,完成一个 循环;如果P3.3的状态为0(2号键被按 下),程序从L2顺序执行,P0.0置1,输 出高电平,LED熄灭。最后执行 SJMP L1,回到开始处继续执行。


LED 数码显示器的结构与显示段码
【软件知识】

1、用于输入的指令
举 例 功 能 指 令 MOV C,bit 指令 MOV C, P3.2 功 能 把P3.2端口的状态送到C
读取一个端 口的状 态 读取一组端 口的状 态 根据端口状 态进行 转移操 作
MOV A,dir ect JB bit,标 号
MOV direct,#data
MOV P0,#0F9H
把立即数0F9H送给P0端口输出
3、位操作与字节操作

从上表中可以看出:指令MOV C,P3.2 与MOV A,P3有一个很大的不同就是操 作的对象不同。MOV C,P3.2一次操作 一位,而MOV A,P3一次操作一个字节。 类似的以位作为操作对象的指令一共有 17条,称为位处理指令。例如JB P0.1, L1,就是一条位处理指令。
相关文档
最新文档