华中师范大学武汉传媒学院
传媒技术学院
传媒技术学院
电子信息工程2011
仅发布百度文库,版权所有.
要求:A.使用单片机实现汽车尾灯控制的设计
B。当按不同的按键时,显示不同的转向,并可以显示停止
一 设计框图:
处理器
LED灯模拟汽车尾灯
数码管模拟汽车仪表
按键模拟汽车尾灯控制杆
二 方案设计:
模拟汽车尾灯的设计,硬件制作比较简单,用LED灯就可以很好的模拟汽车尾灯。而信号的输入也可以用简单的案件来处理。但汽车在行驶时,灯的处理的实时性急稳定性很重要,如果出现误操作,就很容易出现交通事故。所以本次设计的重点是在编写程序上,想要出现满意的效果必须要对C编程熟悉,并对按键的输入的实时性以及更重要的稳定性有着高的要求。
三 硬件原图设计:
1最小系统:
2按键部分:
3尾灯和仪表部分:
四 程序流程图:
中断程序
主程序
入中断
开始
初始化
按键扫描
LED灯控制
退中断
五 仿真图:
六 制作:
调试:
程序设定在中断函数里扫描按键,再通过标志位来改变灯的状态.在实际里按键后灯会有一直亮的情况,再改变扫描的时间,以及改变防抖动处理的时间都得不到理想的状态。最后发现是中断计数时间过短导致在处理按键时函数已经在中断里按键无法改变标志位,导致灯常亮的情况.通过延长了进入中断时间,这个情况就完全解决了没有再出现常亮情况。
心得体会:
通过这次课程设计,是我对C语言处理实际问题的能力。输入输出通过哟个好的程序框架才能很好的协作。这也是C语言在处理硬件的好处.也让我对单片机中断的理解,对程序的整体设计方面的学习正是我欠缺的地方。通过这次让我很好的锻炼了自己.
这次课程设计也让我懂得了团队合作的实际意义。特别是在程序出现了大问题,起初无法解决的,我们一起讨论一起查质料一起学习.最后终于解决的了的喜悦真的很爽.
七 原程序:
#include 〈REG52。H>
#include 〈intrins.h〉
汽车尾灯unsigned char const discode[] ={0x30,0x06,0x00,0x73};
#define const_key_time1 20 //按键去抖动延时的时间
#define const_key_time2 20 //按键去抖动延时的时间
#define const_key_time3 20 //按键去抖动延时的时间
#define const_key_time4 20 //按键去抖动延时的时间
#define const_key_time5 20 //按键去抖动延时的时间
#define const_display_time1 60 //闪烁
#define const_display_time2 120
void initial_myself();
void initial_peripheral();
//void delay_short(unsigned int uiDelayShort);
void delay_long(unsigned int uiDelaylong);
void T0_time(); //定时中断函数
void key_service(); //按键服务的应用程序
void key_scan();//按键扫描函数 放在定时中断里
发布评论