单片机课程设计方案大学论文_第1页
单片机课程设计方案大学论文_第2页
单片机课程设计方案大学论文_第3页
单片机课程设计方案大学论文_第4页
单片机课程设计方案大学论文_第5页
已阅读5页,还剩7页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机 课 程设计论文微电子学0802小组成员:陈伟伟0806080208王文娟0806080202胡日强0806080216单片机交通灯设计摘要:在通讯、交通、工业等方面单片机的已经成为必不缺少的一部分,为了更好的适应社会的需求,我们通过对单片机的有关设计,了解并且掌握单片机的用途和作用,和制作原理.系统由单片机系统、LED显示、交通灯演示系统组成。系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理及根据具体情况手动控制等功能。关键词:单片机;交通灯;控制四个方向车辆行进;倒计时计数:1、方案比较、设计与论证1.1单片机概述单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和并行I/O接口、中断系统、时钟电路等.因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统.单片机经过1、2、3、三代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗.1.2芯片简介 1.2.1MSC-51芯片简介(1)MCS-51单片机内部结构8051是MCS—51系列单片机的典型产品,我们以这一代表性的机型进行系统的讲解。8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:•中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作.•数据存储器(RAM)8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。•程序存储器(ROM):8051共有4KB个8位掩膜ROM,用于存放用户程序,原始数据或表格。•定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。•并行输入输出(I/O)口:8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。•全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用.•中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择.•时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。INTEL的MCS—51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构.1.3单片机选择方案我们选择80C51单片机为核心,结合单片机课程设计要求,在提高稳定性的前提下,设计并且制作交通灯,实现了能根据东西南北四个方向的指示灯来控制车辆的行进以及在紧急情况时的处理。1.4电源选择方案为使模块稳定工作,须有可靠电源.我们考虑了两种电源方案方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平.

方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。

由于我们所做的交通灯结构简单,由电源直接驱动的元件只有发光二极管,两个数码管用了74LS245来增强驱动,即电源的负载并不是很重。综上所述我们选择第二种方案.

1.5选择界面方案系统要求完成倒计时、状态灯等功能。基于上述原因,我们考虑了三种方案:

方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字符,无法胜任题目要求。

方案二:完全采用点阵式LED显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。

方案三:采用数码管与点阵LED相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息.这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,第三种方案可互补一二方案的优缺,我们决定采用方案三以实现系统的显示功能。

2、理论分析与计算2.1显示时序的理论分析与计算对于一个交通路口来说,能在最短的时间内达到最大的车流量,就算是达到了最佳的性能,我们称在单位时间内多能达到的最大车流为车流量,用公式:车流量=车流/时间来表示。通过80C51芯片的P1口设置红、绿灯燃亮时间的功能;红绿灯循环点亮,倒计时剩6秒时黄灯闪烁警示(交通灯信号通过P1口输出,显示时间通过单片机的P0和P2口经过两个八段数码管显示);在紧急情况下可通过P3口的INT0(P3.2)和INT1(P3。3)的中断来控制现场的情况。2.2亮度问题由于我们所用的数码管和发光二极管的电源都是由单片机的电源来提供的,这样可能会出现显示的亮度不够,因此我们在两个八段数码管的前面加了一个74LS245以增加对它的驱动能力。3、测试、数据及结果分析3.1状态灯显示测试当电路连接完毕后,将写好的测试程序在电脑上的KEIL软件生成HEX文件.

3.2数码管的测试将串口的和电路板上的接口连接,将写好的测试程序通过串口连接线刷写到单片机的ROM中,然后给单片机上电即可。

3.3整体电路测试系统上电,刷写好程序即可开始测试,观测数码管和发光二极管的显示是否按所编程序的要求进行,灯的显示亮度和数码管的亮度是否正常,同时观察倒计的计数是否正常.

4、总结由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的组合.但是在我们设计和调试的过程中,也发现了一些问题,譬如红灯和绿灯的切换还不够迅速等等,这需要在实践中进一步完善。还有在焊接电路板的过程中也出现了不少问题。如74LS245的管脚中的18引脚控制输入端低电平有效,刚开我们没有管这个引脚,导致信号输不进去.参考文献:1.张毅坤单片微型计算机原理及应用,西安电子科技大学出版社19982.柴钰单片机原理应用,西安电子科技大学出版社20093.谭浩强单片机课程设计.北京:清华大学出版社,1998设计心得体会陈伟伟的心得体会:此次设计我负责的主要是软件方案的设计部分和写报告,从考试前知道有课程设计这件事我就开始准备了,所以我并没有感觉到时间紧迫。首先是编程,虽然我们设计的交通灯功能结构都比较简单,但这是我第一次编这么长的程序,心理很没底。先找了一个类似的程序根据我门的实际情况进行反复的修改,同时和实际情况相对比设置参数,终于在电脑上把源程序没有错误的生成了。此时心里就有一股成功的喜悦。经过查阅资料,我把交通灯的系统电路图设计出来,用Keil和Proteus软件成功的仿真出来,此时我想我们已经成功了一半。剩下的环节就是这一周做实物了.实物焊完之后,调试的是时候出现了一些问题,主要是驱动管没连好,经过检查发现驱动管的输入控制引脚没有接。通过这次课设,让我明白了凡事不能眼高手低,理论上的东西只有通过实际的操作,在实际的操作中才能进一步深刻的领悟,同时也加深了对课本的理解,激发了我们对单片机的学习兴趣.我想这是这次课设的最重要的目的.此外,这次课设让我明白了团队合作的重要性,三人一组,各有分工,想互合作,发挥每个人的特长为团队做贡献,这是我们设计成功的最重要的原因。王文娟的心得体会:我是负责焊接的.我刚开始我们先把各种元件在电路板上分布好,如何能给人良好的视觉效果,以及对于74LS245、八段数码管这些元件的管脚的标号确定出来,为焊接做准备.我们以前做过单片机的焊接,只用焊接管脚就可以了,但这次要自己动手布线,连线,感觉很不适应。我和搭档胡日强瞻前顾后,还是百密一疏,免不了出现考虑不到的地方。我是主焊,胡日强检查有没有焊错误的地方.我们商量着先焊哪一个,后焊哪一个.这里面得重点和难点就是74LS245的焊接,我们两个把管脚先在纸上标记号,对应着实物步步为营,就这样把整个电路的所有元件焊到了板子上。我以为我们这么认真仔细,保守的做法做出来的东西会一次成功,但运行时只有不按确定灯就不亮,而且数码管没有倒计时,经过请教别人和仔细检查发现没有给电,我们驱动管的输入控制引脚没有接,修改之后,两个都显示正常了.回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在接近2星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识.通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,从而提高自己的实际动手能力和独立思考的能力。胡日强的心得体会:我是负责硬件模拟的,电脑上软件模拟正确后就是硬件模拟了。经过一个学期的单片机课程的学习,我对51单片机的基本结构、工作原理及其程序设计有了一定程度的掌握和了解,并且学会按照一定的要求来编写程序。这次单片机课程设计我们历时一个星期,我们组有三个同学,其中一个做软件,一个焊接,而我主要做硬件模拟.按照预先设计的程序,我们在试验板上模拟,中间遇到问题:在模拟电路板上,只有共阳的数码管,而我们的程序设计要求用共阴极的数码管,开始我们找老师要共阴极的管子,老师考验我们说自己修改程序也可以。这个也没有难倒我们,很快问题就解决了。在实习的第一天,电路板上的红绿黄灯和数码管就按照我们预想的结果正常了。接下来的工作就是实物的制作。此次课程设计中,我学到了很多东西,尤为重要的是,让我一个学期的理论知识得到实践。我们三个默契合作让设计进展顺利,团结就是力量。感谢老师的谆谆教诲。附录一:系统总体原理图图1系统电路图图2系统实物附录二:程序流程图开始开始状态四:东西黄灯闪亮,南北红灯进行初始化设置状态四:东西黄灯闪亮,南北红灯进行初始化设置状态一:东西状态一:东西红灯,南北绿灯调用延时1秒子程序调用延时1秒子程序调用延时调用延时1秒子程序 判断是否到6S N判断是否到6S N判断是否到25S秒判断是否到25S秒跳转到开始 Y跳转到开始状态二:东西红灯,南北黄灯闪亮 Y状态二:东西红灯,南北黄灯闪亮当有紧急情况时调用延时1秒子程序当有紧急情况时调用延时1秒子程序选择外部中断选择外部中断 N判断是否到6S判断是否到6S 0 1显示的时间停止,延时,处理现场东西南北红灯全亮,延时5S Y状态三:东西绿灯,南北红灯显示的时间停止,延时,处理现场东西南北红灯全亮,延时5S状态三:东西绿灯,南北红灯调用延时1调用延时1秒子程序情况结束,继续中断前的状态 情况结束,继续中断前的状态判断是否到25S秒判断是否到25S秒 NY图3流程图附录三:程序清单/*交通灯控制系统C语言源程序*#include〈reg51。h>#defineucharunsignedchar#defineuintunsignedintuchardatabuf[4];uchardatasec_dx=20;//东西数默认uchardatasec_nb=30;//南北默认值uchardataset_timedx=20;uchardataset_timenb=30;intn;uchardatab;//定时器中断次数sbitk1=P1^6;//定义5组开关sbitk2=P1^7;sbitk3=P2^7;sbitk4=P3^0;sbitk5=P3^1;sbitYellow_nb=P2^5; //南北黄灯标志sbitYellow_dx=P2^2; //东西黄灯标志sbitGreen_nb=P2^4;sbitGreen_dx=P2^1;sbitBuzz=P3^7;bitBuzzer_Indicate;bittime=0;//灯状态循环标志bitset=1;//调时方向切换键标志ucharcodetable[11]={ //共阴极字型码0x3f,//——00x06,//——10x5b,//—-20x4f,//——30x66,//-—40x6d,//--50x7d,//—-60x07,//--70x7f,//—-80x6f,//——90x00//—-NULL};//函数的声明部分voiddelay(intms);//延时子程序voidkey();//按键扫描子程序voidkey_to1();//键处理子程序voidkey_to2();voidkey_to3();voiddisplay();//显示子程序voidlogo();//开机LOGOvoidBuzzer();//主程序voidmain(){ TMOD=0X01; TH0=0XD8; TL0=0XF0; EA=1; ET0=1; TR0=1; EX0=1; EX1=1;logo(); P2=0Xc3;//开始默认状态,东西绿灯,南北黄灯sec_nb=sec_dx+5; while(1) { key();//调用按键扫描程序 display();//调用显示程序 Buzzer(); } }//函数的定义部分voidkey() //按键扫描子程序{ if(k1!=1) { delay(10); if(k1!=1) { while(k1!=1) { key_to1(); for(n=0;n<40;n++) {display();} } } } if(k2!=1) { delay(10); if(k2!=1) { while(k2!=1) { key_to2(); for(n=0;n<40;n++) {display();} } } } if(k3!=1) { TR0=1;//启动定时器 Buzzer_Indicate=0; sec_nb=set_timenb; //从中断回复,仍显示设置过的数值 sec_dx=set_timedx; if(time==0) {P2=0X99;sec_nb=sec_dx+5;} else{P2=0xC3;sec_dx=sec_nb+5;} } if(k4!=1){ delay(5); if(k4!=1) { while(k4!=1); set=!set; } } if(k5!=1) { delay(5); if(k5!=1) { while(k5!=1) key_to3(); } }}voiddisplay()//显示子程序{ buf[1]=sec_dx/10;//第1位东西秒十位 buf[2]=sec_dx%10;//第2位东西秒个位 buf[3]=sec_nb/10;//第3位南北秒十位 buf[0]=sec_nb%10;//第4位南北秒个位 P1=0xff; //初始灯为灭的P0=0x00;P1=0xfe; //片选LCD1P0=table[buf[1]]; delay(1); P1=0xff;P0=0x00;P1=0xfd; //片选LCD2P0=table[buf[2]];delay(1); P1=0xff;P0=0x00; P1=0Xfb; //片选LCD3 P0=table[buf[3]]; delay(1); P1=0xff;P0=0x00; P1=0Xf7; P0=table[buf[0]]; //片选LCD4 delay(1);}voidtime0(void)interrupt1using1//定时中断子程序{ b++; if(b==19) //定时器中断次数 { b=0; sec_dx--; sec_nb--; if(sec_nb〈=5&&time==0)//东西黄灯闪 {Green_dx=0;Yellow_dx=!Yellow_dx;} if(sec_dx<=5&&time==1)//南北黄灯闪 {Green_nb=0;Yellow_nb=!Yellow_nb;} if(sec_dx==0&&sec_nb==5) sec_dx=5; if(sec_nb==0&&sec_dx==5) sec_nb=5; if(time==0&&sec_nb==0) {P2=0x99;time=!time;sec_nb=set_timenb;sec_dx=set_timenb+5;} if(time==1&&sec_dx==0) {P2=0Xc3;time=!time;sec_dx=set_timedx;sec_nb=set_timedx+5;} } }voidkey_to1() //键盘处理子程序之+{ TR0=0; //关定时器 if(set==0) set_timenb++;//南北加1S else set_timedx++;//东西加1S if(set_timenb==100) set_timenb=1; if( set_timedx==100) set_timedx=1;//加到100置1 sec_nb=set_timenb; //设置的数值赋给东西南北 sec_dx=set_timedx; }voidkey_to2() //键盘处理子程序之—{ TR0=0;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论