栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

实验三 定时器实验

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

实验三 定时器实验

电信19-2  翁大弟

一、实验目的

  1. 熟练掌握Keil和Proteus软件的C51设计与仿真操作
  2. 熟悉C51编程的变量、存储等概念及使用方法
  3. 掌握74LS245或74LS373的扩展方法
  4. 熟悉定时计数器、外部中断的编程设计,初步掌握串行通信编程方法

二、实验要求

  1. D级别要求:
    1. 机制1:南北:红5秒,红 3  秒,绿5秒,黄闪3秒,在南北向亮灯的同时,东西方向的状态:绿5秒,黄闪3秒,红5秒,红  3 秒
    2. 或机制2:可以按照四个路口方向逐次亮起红灯24秒,绿灯5秒,黄灯3秒。
    3. 有一个外部中断,下降沿触发,触发后,四个方向全红,再次触发后,恢复正常

注:a) 和 b) 是两种不同的红绿灯控制机制,选择实现其一即可

  1. C级别要求:
  1. 实现D级别的功能
  2. 有设置键,可设置绿灯时间为其他秒数(红灯对应)
  3. 可切换D级别的两种红绿灯机制,用设置键切换
  1. B级别要求:
  1. 用2个单片机分别作为南北方向和东西方向的灯的控制
  2. 2个单片机之间通过串行通信发送数据,实现同步,功能现象如D级要求
  1. A级别要求:
  1. 实现B级别的功能
  2. 某一个单片机上有设置键,能实现绿灯时间的设置(红灯对应)。

三、实验实现的功能说明

主函数:调用交通灯切换子程序:

被调用的交通灯子程序:

1、状态一:东西,绿5秒;南北,红5秒

 

2、状态二:南北,红3秒 ;东西,黄闪3秒

3、状态三:南北,绿5秒;东西,红5秒

 

4、状态四:南北,黄闪3秒;东西,红3秒

 5、状态五:外部中断,下降沿触发,触发后,四个方向全红,再次触发后,恢复正常

 6、具体的外部中断程序

四、实验实现的原理及仿真电路设计

实验原理:

  1. 对于交通灯的状态1至状态4,用sbit来定义灯对应的单片机上的引脚,设置为共阳极,低电平有效。
  2. 对于外部中断的程序,设置EXT=1,设置外部中断请求的标志位。并实现下降沿有效,即IT0=1。结束中断后,让状态码变为1,重新开始运行。

实验原理电路图:

 五、实验流程图:

 六、实验主要功能代码

七、实验过程及实验情况

在该实验中主要遇到了两个问题:1、设置的状态码不能自动跳转,导致交通灯不能顺利运行下去。

2、另一个是进入外部中断后,再启动外部中断,不能有效退出外部中断,导致实验无法运行。

解决方法:

  1. 经过检查,原来是设置了多个延时函数,导致程序无法获得最新的状态码,改善程序后解决了改问题。
  2. 对于外部中断这个问题,我设置了一个标志位,等结束外部中断后,能及时设置状态码为1,重新执行程序。

八、实验小结,

经过该实验,进一步让我熟悉了Keil和Proteus软件的使用。更重要的是让我熟悉了外部中断的具体应用,实现了定时器的应用,也能灵活使用状态码这个编程小技巧。让我所学的知识得到了实践,提高了动手能力。也让我明白了自己的不足,今后仍会继续加强自身的学习。

链接:https://pan.baidu.com/s/1IoHf5DWfI8mEyEUPn9bzDA?pwd=42ux 
提取码:42ux 
 

搜索

复制

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/968249.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号