通用IO(二)
来源:互联网 发布:手机流程图中文软件 编辑:程序博客网 时间:2024/05/02 04:18
前言
上期我们讲了通用IO的功能寄存器和方向寄存器的使用。不了解的童鞋可以翻看我的博客,这期我们讲讲配置寄存器的使用。
我们已经可以实现灯的闪烁了,但我们不知道怎么控制它不要一直闪烁。这时候我们需要用到的是按键,我们需要检测按键是否按下去了。这时候我们就需要用到配置寄存器。
配置寄存器PxINP的配置
关于配置,无非就是配置0和1嘛,而配置寄存器配置为0代表上拉/下拉状态。1代表三态
具体配置如下,假设按键是P0_3口,
P0INP |=1<<3;//设置为三态
是不是so easy
那么如何控制灯的闪烁呢?
大体思路是配置LED的初始化,按键的初始化。
/*定义LED1*/#define LED1 P0_1/*定义按键*/#define SW1 P0_3void LEDinit()//LED的初始化{ P0SEL&=~(1<<1);//配置通用IO PODIR |=1<<1;//配置输出模式}void KEYinit(){ P0SEL &=~(1<<3);//配置通用IO P0DIR &=~(1<<3);//配置输入模式 P0INP |=1<<3;//配置为三态}void main(){/*LED的初始化*/ LEDinit(); LED1=0;/*按键的初始化*/ KEYinit(); while(1) { if(SW1==0)//判断按键是否按下 { Delay(100);//去抖操作 if(SW1==0)//再次检测按键是否按下 { while(!SW1);//等待按键释放 LED1=~LED1; } } }}
通过上面的小程序是否很快就掌握了配置寄存器的使用。上面的小程序是利用查询的方式来检测按键是否按下。这样子的毛病是当手不松开时,程序就无法执行下面的代码了,程序的利用率就很低效,那么有解决方法吗?
当然有啦!中断方式嘛!
那么我们该如何设置IO的中断呢?如何让当前程序执行起来比较高效呢?请继续关注我的博客。
授人以鱼不如授人以渔,这里我就不发布源码了,希望大家能靠自己慢慢理解。
0 0
- 通用IO(二)
- 通用IO(一)
- Java IO(二)
- IO(续二)
- IO流(二)
- IO学习(二)
- 说说IO--(二)
- IO总结(二)
- IO流(二)
- IO(二)
- Java--IO(二)
- IO流(二)
- io流(二)
- Java IO(二)
- IO学习(二)
- JAVA IO(二)
- IO(二)
- IO(二)
- 秒杀多线程第十六篇 多线程十大经典案例之一 双线程读写队列数据
- centos安装postgis
- x64传参约定
- ArcGIS Engine基础开发教程之地图查询
- myBatis中,对">"或者"<"的处理
- 通用IO(二)
- iOS中使用swift语言做淘宝的第三方登录
- 数字天堂HBuilder+MUI(一)websql数据库操作
- python tkinter教程-事件绑定
- Mongodb 3.2 SQL到MongoDB映射表 官方
- 新九九乘法表制作
- 【备份脚本】利用七牛qshell备份网站数据
- CTF实验吧-WEB专题-6
- MFC入门