自学单片机第二十三篇:混合输入

小微 科技自学单片机第二十三篇:混合输入已关闭评论109字数 1691阅读模式
摘要我们通过学习,基本掌握了一般的按键输入检测,也了解了在检测时的注意事项,对于输入的程序,算是入门了。接下来我们就输入方法,再说下混合型输入,就是不同输入方式的结合。其实就混合而言,...

咱们通过学习,基本掌握了一般的按键输入检测,也了解了在检测时的注意事项,对于输入的程序,算是入门了。接下来咱们就输入办法,再说下混合型输入,就是不同输入方式的结合。

其实就混合而言,前边已经做了讲授,多点以及单点的结合,已经算是比较繁杂的了,对于初学者,这种处理办法,可以完成不少实际利用的处理了。然而斟酌到一个端口的复用以及其他缘由,咱们会就这种按键的操作,再做一次详细的讲授。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17492.html

在单片机中,P3口一般都有第二功能,例如咱们的P3.0/P3.1就是程序刷写的端口,使历时,非必要情况下,不用这两个,防止造成干扰。P1就比较单纯了,标准的输入输出,P2有时会作为总线使用,P0咱们很少使用,不是不用,是由于这个端口没有上拉电阻,使历时需要自己添加,所以一直没有用,添加之拉电阻后,也是可使用的。今天,咱们就P1来说解怎么通过一个端口,既可以节制输入,又可以节制输出。为之后的实际利用做打算。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17492.html

咱们假定,P1口的前四位是输入,后四位是输入输出通用。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17492.html

由于输入输出的复用,就需要对端口的操作做出一些扭转,由于尚无说到中止,所以咱们就延时函数来解决这些问题,相对于于繁杂高速场合,后期的中止讲授完会更为利便处理。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17492.html

遇到问题,先分析处理思路,然后再上手。就这个利用而言,P1八位都是可以进行输入检测的,然后高四位又同时可以输出,咱们明白,一个io就一根线,确定是没法完成输出的同时进行输入操作的,那怎么完成呢?这就需要引入一个思想,分时复用,就是在整个时间段中,假定有两分钟,前一分钟检测输入,后一分钟完成输出。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17492.html

以前咱们已经说过,动态显示的刷新时间在10ms之内就比较完善了,人眼基本看不出闪烁,那么这个刷新时间,就能够成为咱们输入检测的空档期。这是咱们的操作思路,接下来咱们依据这个思路来写下程序。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17492.html

咱们的处理方式是,先置1,然后把按键值送给新的变量,判断此时按键是不是按下,若按下,则端口的值就不会全为1,此时执行处理函数,判断当前的键值相符什么输出,若相符某一前提,则将输出送给变量m,然后跳出判断,m把数值送给p1完成输出,为了让人眼可以看到,此时需要延时一段时间,咱们延时了6ms,小于10ms,完整可以,然后会继续从头开始,往复循环判断键值,如果此时全为1,则就不进入按键处理程序,所以此时m的值不会扭转,于是就在收场时继续赋值给P1,这样P1就能够显示咱们需要输出的结果,同时,可以作为按键使用。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17492.html

然后先用软件仿真试一下效果,尽管软件仿真有诸多不便,然而好在省劲不是。可以随时查看自己显明犯错之处。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17492.html

对电路稍作修改,把四个LED灯泡接到了P1的高四位上。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17492.html

打开仿真,首先看到,所有端口都是低电位,咱们从程序中可以看出,咱们定义了输出变量m,在定义时,变量m的初始值是全为零的。于是就输出了0x00.咱们按下P1.0测试下。文章源自微观生活(93wg.com)微观生活-https://93wg.com/17492.html

察看发现,没有反映,莫非是由于咱们两端都是低电位,所以无响应?那咱们直接测试咱们设置好的开关位试一下。咱们处理函数的第一个开关是:0xf7,也就是1111 0111,就是P1.3这个io,输出响应为:0x7f,也就是0111 1111,就是P1.7为低电位。

当按下P1.3时,P1.7熄灭,其他灯点亮,接着咱们测试下复用的io,咱们按下P1.7试试,程序结果是0x6f,就是0110 1111,如果程序扫描的正确,那么即便现在P1.7是低电位,其实在某个很短的时间内,它是被拉到了高电位的,咱们程序中有那么一瞬间将其置1了。

程序响应相符预期,说明咱们的操作时可以的。这样通过这类操作咱们可以节省端口的数量,以到达更多的功能。无非需要说明的是,对于高速场合,或对响应请求是实时响应的场合,此操作不合用,建议使用中止来进行。一般的装备还是没有问题的。

咱们这个仅是提供一种方案,说明下单片机有不少种利用手法,限制咱们使用的不是硬件,而是咱们的思想。咱们开发硬件以及软件,一方面要严格遵照规则,另外一方面又要有天马行空的想象力,这样才能创造出更多更好的东西。死板教条是没有出路的。

以上就是微观生活(93wg.com)关于“自学单片机第二十三篇:混合输入”的详细内容,希望对大家有所帮助!

继续阅读
 
小微
  • 版权声明: 本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:81118366@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
  • 转载请务必保留本文链接:https://93wg.com/17492.html