通过按键控制IO口操作

发布者:skyshoucang最新更新时间:2015-06-29 来源: 51hei关键字:按键控制  IO口操作 手机看文章 扫描二维码
随时随地手机看文章
今天对单片机按键有了一定的认识,单片机分为独立式键盘和矩阵式键盘,独立式占用IO口资源比较大,适合按键少的控制操作,其优点是设计编程一目了然,比较简单,矩阵式占用IO口比较少,适合对按键要求比较高而IO口资源比较宝贵的操作,这两者各有其优点和缺点,以后应用时要根据需要进行设计,特别是矩阵式的要利用行线,和列线的高低电平检测和处理数据信息的原理要记住。

下面把今天学的一个简单的通过按键控制IO口LED灯工作的程序写一下,呵呵,可以加深我对按键操作(ELSE语句)的理解。

#include
#define uint unsigned int
#define uchar unsigned char
sbit DIPswitch1=P3^0;
sbit DIPswitch2=P3^1;
sbit redLED1=P1^0;
sbit blueLED1=P1^1;
sbit greenLED1=P1^2;
sbit yellowLED1=P1^3;
sbit redLED2=P1^4;
sbit blueLED2=P1^5;
sbit greenLED2=P1^6;
sbit yellowLED2=P1^7;
void delay(void)
{ uint i;
 for(i=0;i<35530;i++);
}
void main(void)
{
  P1=0XFF;
  P3=0XFF;//置位
 while(1)
 {
  if(DIPswitch1==0)
  {
  redLED1=~redLED1;
  yellowLED2=~yellowLED2;//判断按钮1是否为低电平,如果是的话,实现P0口的1脚和7脚按位取反
  delay();}//延时操作
  else if(DIPswitch2==0)
  {
  P1=~P1;//按键2取低时,P0口所有位按位取反闪烁
  }
  else
  {
  P1=0X00;//如果按键1VS2都为高,则所有灯亮
  }
  
 }
}

工作原理是当按键1为低电平时,P1口的1脚和7脚按位取反,实现LED灯的闪烁。当按键2为低电平的时候,P1口所有的灯实现按位取反功能,所有灯闪烁。当按键1和2都为高电平时,P1口为低电平,所有灯亮。

这个硬件电路是P3^0和P3^1控制按键1和2;P1口控制八个LED灯。

呵呵,数码管的动态和静态还在学习当中,现在基本的静态控制应该是会了,动态的争取这两天把它学完。加油。
由于时间关系,在这就不写上单片机的工作系统了。
 


有了这个程序和原理图,我们也可以根据需要适当得改写程序,达到我们想要的目的。

关键字:按键控制  IO口操作 引用地址:通过按键控制IO口操作

上一篇:单片机中断定时程序的应用
下一篇:通过38译码器控制数码管显示数字

推荐阅读最新更新时间:2024-03-16 14:23

avrstudio 5 按键控制led移位
关键点: 1.按键的释放判断为if(PINC!=flag)这个flag存有先前的按键值 2.i=(i-/+1)&0x07巧妙的利用了无符号溢出的作用 3.在我们设置了pc口的输入时,在按键按下后再释放的之后我们会发现我们的pinc的值为0xff,是因为我们设置了上拉电阻,和pc口的数据为0xff; 源代码: #include avr/io.h #include util/delay.h #define F_CPU 8000000UL char i,j; void move_step(); int main(void) { char flag=0x00; DDRE = 0xff;DDRF = 0xff; DDRC
[单片机]
avrstudio 5 <font color='red'>按键</font><font color='red'>控制</font>led移位
51实验9:独立按键控制led的亮灭,按一次亮,按一次灭
#include reg52.h typedef unsigned int u16; typedef unsigned char u8; sbit led=P2^0; sbit K1=P3^1; void delay(u16 i) { while(i--); } void keypros() { if(K1==0) { delay(1000); if(K1==0) { led=~led; } while(!K1); } } void main() { while(1) { keypros(); } }
[单片机]
STM8-利用外部中断编写两个按键控制灯的亮灭
目的:熟悉外部中断的使用。(两个按键控制灯的亮灭) #include stm8s.h #include stm8s_exti.h #define uchar unsigned char #define uint unsigned int #define ulong unsigned long void delay(uint i) { while(i--); } void main() { GPIO_DeInit(GPIOD); GPIO_Init(GPIOD, GPIO_PIN_0, GPIO_MODE_OUT_PP_LOW_FAST);//输出 GPIO_Init(GPIOD, GPIO_PIN_1, GP
[单片机]
基于arm开发板四个按键控制四个灯亮
基于s5pv2410,cortex a8的四个按键每一个按键点了对应的灯 对于用汇编来编程的话不难,重点在于数据手册,电路图,管脚的看懂 直接上代码 .globl _start _start: ldr r0,=0xe0200c40 @按键控制寄存器的地址 ldr r1, bic r1,r1,#0xff @bic一次只能清8为每四位控制一个按键 bic r1,r1,#0xff 8 @把16位清为零控制四个按键为输入方式 str r1, @配置按键为输入方式 ldr r0,=0xe0200280 @led灯控制寄存器的地址 ldr r1,=0x1111 str r1, @配置led灯为输出方式 loop: @循环读取按键的值 ldr
[单片机]
AVR128的程序——独立按键控制数码管0~99递增
#include iom128v.h #define uchar unsigned char #define uint unsigned int void Delayus(uint US); void Delayms(uint MS); void display(uchar FirstBit,uchar Num); uchar TempData ; uchar WeiMa = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; uchar led_discode ={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,
[单片机]
STM32按键控制LED(不用固件库)
用的是STM32F407ZET6。控制的LED灯的四个引脚分别是LED0 - PF9,LED1 - PF10,LED2- PE13,LED3 - PE14。按键的四个引脚分别是KEY0-- PA0,KEY1-- PE2,KEY2-- PE3,KEY3-- PE4。 在循环里判断按键是否按下(对应的引脚输入会变为0),如果按下,则对应的LED引脚输出低电平,即可点亮。 1,分别初始化LED灯和按键的寄存器。 初始化LED灯(设置各个寄存器):设置GPIO的时钟,配置模式寄存器(通用输出类型),配置输出类型(设为输出推免),设置控制输出速率的寄存器,最后配置输出数据寄存器(让LED灯默认是熄灭的) 初始
[单片机]
基于51单片机按键控制喇叭发出多种声音
具体实现功能: 51单片机按键控制喇叭发出多种声音。 设计介绍 51单片机简介 51单片是一种低功耗、高性能CMOS-8位微控制器,具有8K可编程Flash存储器,使得其为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 51系列单片机具有以下标准功能: 8k字节Flash,512字节RAM, 32位I/O口线,看门狗定时器, 内置4KB EEPROM, MAX810复位电路, 三个16位定时器/计数器, 一个6向量2级中断结构, 全双工串行口。 另外, 51系列在空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机停止工作,直到下一个中
[单片机]
基于51单片机<font color='red'>按键</font><font color='red'>控制</font>喇叭发出多种声音
LPC2124--GPIO按键控制LED灯的闪烁
实例目的 实例目的:掌握Proteus软件的使用及调试方法,学习IO编程。 实例内容:  学习使用Proteus、ADS、Keil for ARM软件,掌握绘制原理及编译程序。  键盘输入,当检测到有按键输入时,对发光二极管进行取反控制。使用 I/O口输入方式对按键进行扫描。 实例步骤:  在Proteus中绘制原理图。  在Keil for ARM中输入程序,并编译通过。  加载ELF程序,观察仿真结果。  采用KEIL for ARM与PROTEUS的整合方式联调。 知识点概括 LPC2000系列作为 “微控制器”,其GPIO特性就显得很重要。它具有如下的特性: ①可以独立控制每个GPIO口的方向(输入
[单片机]
LPC2124--GPIO<font color='red'>按键</font><font color='red'>控制</font>LED灯的闪烁
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved