一 、单片机IO实验 您所在的位置:网站首页 汇编io程序设计实验总结 一 、单片机IO实验

一 、单片机IO实验

2024-04-06 09:25| 来源: 网络整理| 查看: 265

一开始自我拟了一道题:做一个十字路口交通灯,带倒计时功能,有暂停功能,绿灯时长控制功能。且暂停时倒计时灯熄灭,十字路口红灯全亮;绿灯时长的控制由另一个单片机进行控制(串口通信)。

实验时:

①我先通过Proteus搭建一个只有十字路口交通灯的电路。搭建完电路后,通过代码编程,实现基本的交通灯功能。具体为按照四个路口方向逐次亮起红灯24秒,绿灯5秒,黄灯3秒。

②搞完交通灯的显示问题后,我去proteus中继续添加一部分电路,用于实现十字路口交通灯的倒计时的显示。这时发现单片机引脚不太够用,毕竟交通灯就占了12个引脚,若倒计时的显示全部直接用单片机的引脚作为控制,则要用到16个引脚。这明显(12+16=28)会用到P3口的引脚。但我又不想用P3口来做这些事,P3口我打算用于功能按键的控制。这时我想起动态数码管的位选其实可以用138译码器来进行,这样只需3个端口用于选择地址,而剩下的5个端口则省下来了。相关电路添加完毕后,我继续通过代码编程,实现基本的交通灯功能+倒计时功能。

③在单片机A中,加了个外部中断0,并在proteus中修改了对应电路。并通过在while(1)死循环中,用if….else….进行分支选择,成功把交通灯暂停功能添加上去了。

④在单片机B中,通过两个按键,并在代码中,实现了绿灯时长的加减,且通过串口发送给了单片机A中。至此完成了自拟题目的功能要求。

最后的最后就是,修改了一些小bug,例如增加了绿灯、红灯时长范围,防止绿灯时间过长等。并且在不影响功能的前提下,优化了下代码,尽量节约单片机的内存空间(虽说是实验而已,没必要,但还是要有一个好习惯),简化代码,使之既层次分明、通俗易懂,又简单直了。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有