单片机课程设计报告7491713.docx
《单片机课程设计报告7491713.docx》由会员分享,可在线阅读,更多相关《单片机课程设计报告7491713.docx(9页珍藏版)》请在冰点文库上搜索。
单片机课程设计报告7491713
(此文档为word格式,下载后您可任意编辑修改!
)
目录
一、课程设计的目的………………………………………………
二、课程设计用的仪器和器件……………………………………………
三、课程设计的具体内容…………………………………………………
1、总体报告…………………………………………………………………
2、硬件设计…………………………………………………………………
3、软件流程和程序…………………………………………………………
4、调试结果…………………………………………………………………
四、课程设计的体会和发生的问题……………………………………
参考文献………………………………………………………………………
一、课程设计的目的
单片机系统课程设计是《单片机原理与接口技术》课程与实验结束后的一门综合性实践课。
所选题目《交通灯控制系统》紧密结合所学的主要内容,加深巩固所学知识,同时对所学内容进行扩展,有一定的深度和广度,能充分发挥学生的能动性和想象力。
通过电路设计、安装、调试等一系列环节的实施,提高学生的单片机应用系统的设计能力。
二、课程设计用的仪器和器件
实验设备:
试验台、电烙铁、焊锡丝、支架、吸枪、剪刀、PC机一台、仿真仪一台
实验材料:
电路板(12*8cm1块)、发光二级管(红、黄、绿各4只)、发光二级管插座(4只)、接线排座(7针)、电阻(300Ω12只)、导线(红、黄、绿各0.5米)
三、课程设计的具体内容
1、总体报告
本次单片机课程设计的任务是以单片机为核心设计一个完整的交通灯模拟系统,用P1.0、P1.1、P1.2控制南北通道的红、黄、绿灯;用P1.3、P1.4、P1.5控制东西通道的红、黄、绿灯。
开始时,南北红灯亮并保持25秒,同时东西绿灯亮,保持20秒,20秒钟到了之后,东西绿灯闪亮3次(每周期1秒)后熄灭。
继而东西黄灯亮并保持2秒,到2秒后,东西黄灯灭,东西红灯亮并保持25秒,同时南北红灯灭,南北绿灯亮20秒,20秒到了之后,南北绿灯闪亮3次(频率为0.5秒)后熄灭。
继而南北黄灯亮并保持2秒,到2秒后,南北黄灯灭,南北红灯亮,同时东西红灯灭,东西绿灯亮。
到此完成一个循环。
紧急状况由按键产生,两个方向的交通灯全为红(10S),急救车通过后恢复正常信号。
此次设计中,我重新熟悉了用PROTEL99SE画系统原理图的步骤与方法,重点复习了用汇编语言编程的相关细节与法则。
硬件部分要画出电路的原理图和仿真图,软件部分要细心编程,实现交通灯的基本功能和紧急情况,学会如何调试、运行程序,发现其中的错误并进行修改,通过这次课程设计,加强了动手、思考和解决问题的能力。
2、硬件设计
设计出单片机最小控制系统,在12*8CM的万用版上,布局好格局,并且将发光二极管插座焊接到万用版上,然后将12个发光二极管,其中红色4个、黄色4个、绿色4个插入其中。
每个发光二极管与电源之间接一个阻值300欧姆的电阻,作为限流,以防止因电流过大烧毁发光二极管。
发光二极管的控制输入由XL400开发板提供,倒计时时间显示在XL400的8位数码管上,紧急按键由XL400提供。
硬件电路中交通灯的连接方式:
相同方向的相同颜色的灯并联在一起,即东西方向的绿色LED灯并联在一起,LED灯的正极接电压为+5V的电源,负极串联一个300Ω的电阻与排针的其中一根针脚串联起来,东西方向实际用3个电阻。
其他方向,其他颜色连接方法相同。
在只有红黄绿三种颜色LED灯的情况下,需用6个IO端口来控制LED灯的亮灭。
Protel硬件原理图
Proteus仿真图
3、软件流程和程序
(1)软件流程图
软件流程图
(2)源程序
#includeucharcodeled[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};共阳0~9字型码
voidint_0()interrupt0紧急情况中断
{
uchar)
{
case0:
P2=0x01;P0=led[c10];n++;break;十位
case1:
P2=0x02;P0=led[c%10];n++;break;个位
default:
break;
}
if(n==2)n=0;
}
voidmain()主函数
{
EA=1;开总中断允许位
EX0=1;开外部中断0中断允许位
IT0=1;设置外部中断0为下降沿触发
ET0=1;允许T0中断
TR0=1;启动T0
TMOD=0x11;设置T0、T1为方式1
IP=0x02;设置定时器T0中断优先于外部中断0
while
(1)死循环
{
ucharx,y;定义变量x、y控制绿灯闪烁次数
P1=0xde;南北红灯、东西绿灯亮20秒
delay_t1(20);
for(x=0;x<3;x++)南北红灯亮、东西绿灯闪亮3次(每周期1秒)
{
P1=0xfe;南北红灯亮、东西绿灯灭
delay0_5s1();
P1=0xde;南北红灯亮、东西绿灯亮
delay0_5s1();
}
P1=0xee;南北红灯亮、东西黄灯亮2s
delay_t1
(2);
P1=0xf3;东西红灯、南北绿灯亮20秒
delay_t1(20);
for(y=0;y<3;y++)东西红灯亮、南北绿灯闪亮3次(每周期1秒)
{
P1=0xf7;东西红灯亮、南北绿灯灭
delay0_5s1();
P1=0xf3;东西红灯亮、南北绿灯亮
delay0_5s1();
}
P1=0xf5;东西红灯亮、南北黄灯亮2s
delay_t1
(2);
}
}
voiddelay0_5s1()用T1的工作方式1实现0.5s延时
{
for(t0=0;t0<0x0a;t0++)设置10次循环次数
{
TH1=0x3c;设置定时器初值为3CB0H
TL1=0xb0;
TR1=1;启动T1
while(!
TF1);查询计数是否溢出,即定时50ms时间到,TF1=1
TF1=0;50ms定时时间到,将T1溢出标志位TF1清零
}
}
voiddelay_t1(uchart)实现1s*t延时
{
for(t1=0;t1{
delay0_5s1();
delay0_5s1();
}
}
4、调试结果
检测步骤:
第一步:
目测。
检查外部的各种元件或者是电路是否有断点。
第二步:
用万用表测试。
先用万用表复核目测中有疑问的连接点,再检测各种电源线与地线之间是否有短路现象。
第三步:
加电检测。
给板加电,检测所有插座或是器件的电源端是否符合要求的值
第四步:
联机检查。
因为只有用单片机开发系统才能完成对用户系统的调试。
在Keil中编写C语言程序,并进行单步调试,以便于找出编程中的错误;结合proteus,进行模拟仿真,运行以检查程序是否正确;首先检测硬件电路是否有短路、断路、虚焊等并参照原理图,检查各个器件之间的连接是否连接正确,然后将模拟仿真通过的程序烧写至单片机中,将XL400、焊接的交通灯电路板、电源,结合起来进行调试控制,仿真实验实现南北方向车道和东西方向车道两条交叉道路的车辆交替运行,南北、东西方向每次禁行时间设为25秒,南北、东西方向通行时间设为20秒,3秒绿灯闪烁时间,2秒黄灯时间。
同时能够实现红灯、黄灯、绿灯状态转换,可以准确显示每个状态所剩余的时间,当紧急状况出现时,按下紧急开关,可实现南北、东西方向全部禁止通行,允许紧急车辆安全通行。
通过软件仿真显示,系统基本能完成要求。
四、课程设计的体会和发生的问题
经过两周的努力工作,单片机课程设计最终圆满结束,同时也让我获益匪浅。
对于一名理工科的学生来说,单片机的课程设计是很有意义的,它为我们提供了良好的实践平台,得以把我们所学的专业基础课理论知识运用到实践中去,锻炼我们的实践能力。
要做好一个课程设计,就必须做到:
在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
在焊接过程中,我们应先合理布局,线的布局上既要美观又要实用和走线简单,并认真检查每个元器件,确保无误后再焊接,不能急于求成。
在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
通过查阅书本和参考以往的实验程序,同学之间互相讨论,交流经验,使自己学到了不少知识。
通过这次课程设计我也发现了自身存在的不足之处,了解到理论知识与实践相结合的重要意义,课程设计结束了,但我自学能力,解决实际问题的能力得到提高。
设计过程,好比是我们的成长的历程,常有一些不如意,难免会遇到各种各样的问题,只要不畏艰难,努力克服障碍,就能走出一条平坦大道。
参考文献
(1)《单片机应用技术(C语言版)》王静霞编著电子工业出版社
(2)《单片机原理与应用及C51程序设计》谢维成编著清华大学出版社