通用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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果手机成耳机模式了怎么办 华为mate8耳机声音小怎么办 移动sim卡丢了怎么办 蓝牙耳机开不开机怎么办 苹果手机蓝牙不匹配怎么办 苹果6蓝牙坏了怎么办 蓝牙密钥不正确不匹配怎么办 华为p6开不了机怎么办 华为c199手机不停重启怎么办 华为手机用户数据被锁定怎么办 朵唯手机丢了怎么办 网件r6220穿墙差怎么办 无线网打王者卡怎么办 酷翼x9忘了密码怎么办 楼上的路由器楼下不好使怎么办 电信4g网络不好怎么办 农村只有2g网怎么办 电信卡4g网速慢怎么办 小米手机触屏失灵怎么办 荣耀v10电信网速很慢怎么办 华为路由器掉线了怎么办 三星s6只识别一张卡怎么办 华为手机卡不显示了怎么办 华为账号手机卡丢了怎么办 荣耀8耗电量太快怎么办 vivo卡2不显示怎么办 电信宽带玩王者荣耀卡怎么办 联通4g玩游戏卡怎么办 华为悦盒遥控器丢了怎么办 6s不能用电信卡怎么办 iphone6电信卡无服务怎么办 魅族手机电信卡怎么办 小米手机读不出sim卡怎么办 魅蓝note6耗电快怎么办 oppo手机下载密码忘了怎么办 华为v9玩飞车卡怎么办 苹果7耳机转换器不支持怎么办 华为mate10耳机声音小怎么办 200打一年到期了怎么办 手机欠费变成2g怎么办 手机4g网用不了怎么办