您好,欢迎访问三七文档
课程设计报告题目交通灯模拟控制系统设计学生姓名学号200000000001专业应用电子班级指导教师完成日期2012年11月20日目录一、实训准备1.实训要求2.整体设计分析二、实训程序编写1.交通灯流程图2.交通灯程序三、中断系统1.详细了解中断电路的用处和原理2.中断系统程序编写四、交通灯电路图1.交通灯电路2.中断系统程序编写五、用仿真连接电路1.了解AT89C52及其他重要元件2.连接电路并运行仿真一、实训准备1.实训要求2.整体设计分析二、实训程序编写1.交通灯流程图2.交通灯程序三、中断系统1.详细了解中断电路和的用处和原理2.中断系统程序编写五、实训总结1.心得与体会一、实训准备1.任务描述正文部分。(小四号宋体)用单片机设计以交通灯信号模拟控制系统,晶振采用,12MHZ,具体要求以下:(1)在正常情况下,A道、B道(A、B道交叉组成十字路口,A是主道,B是支道)轮流放行60s(其中5S用于警告),B道放行30s(其中5s用于警告)。(2)一道有车而另一道无车(用键开关so模拟)时,A,B道均为红灯。(3)有紧急车辆通过(用按键开关so模拟)时,A,B道均为红灯。二、交通灯程序编写1.整体设计分析(1)正常情况下运行主程序,采用0.5s延时子程序的反复调用来实现各种定时时间。(2)一道有车而另一道无车时,采用外部中断方式进入与其他服务,并设置中断为最高优先级中断。(3)有紧急车辆通过时,采用外部中断0方式进入相应的中断服务程序,并设置该中断为最优先级中断,实现中断嵌套。2硬件设计过程用6支发光二极管模拟交通灯信号,以单片机的p1口控制这6支发光二极管。在p1口与发光二极管之间采用74LS07作电源驱动电路,口线输出高电平则“信号灯”熄,口线输出低电平则“信号灯”亮。各口线控制功能级相应控制码3软件程序过程主程序采用查询方式定时,由R2寄存器确定调用0.5s延时子程序的次数,从而获取交通灯的各种时间。子程序采用定时器方式,查询定时5ms0循环十次获取0.5秒延时时间。一道有车,一道无车时中断程序服务:首先要保护现场,因需要用到延时子程序和P1口,做需保护的寄存器有R3、P1、TH1和TL1、保护现场还需关中断,以防止高优先级中断出现导致程序混乱,然后开中断,由软件查询P3.0和P3.1口,判断哪一道有车,再根据井底情况执行相应的服务。待交通灯信号出现后,保持5s的延时,然后关中断,恢复现场,再开中断,返回主程序。二、画出交通灯流程图开始置零B道黄灯闪烁2SA道红灯亮B道绿灯闪烁3SA道红灯亮25SB道绿灯亮25SA道黄灯闪烁2SB道红灯亮A道绿灯闪烁3SA道绿灯亮55SB道红灯亮55S二、通过流程图编写出交通灯的程序ORG0000HAJMPMAINORG0003HAJMPAA0ORG0013HAJMPAA1ORG0100HMAIN:SETBEAMOVIP,#01HMOVTCON,#00HMOVIE,#85HMOVP1,#00001100BLOOP:MOVR0,#20L1:ACALLDELAYDJNZR0,L1MOVR0,#6L2:CPLP1.2ACALLDELAYDJNZR0,L2MOVP1,#00001010BMOVR0,#4L3:ACALLDELAYDJNZR0,L3MOVP1,#00100001BMOVR0,#10L11:ACALLDELAYDJNZR0,L11MOVR0,#6L21:CPLP1.5ACALLDELAYDJNZR0,L21MOVP1,#00010001BMOVR0,#4L31:ACALLDELAYDJNZR0,L31AJMPLOOPAA0:PUSH90HPUSH03HPUSHTH1PUSHTL1MOVA,P1MOVP1,#00001001BMOVR0,#10L:ACALLDELAYDJNZR0,LMOVP1,APOPTL1POPTH1POP03HPOP90HRETIAA1:CLREAPUSHP1PUSH03HPUSHTH1PUSHTL1SETBEAMOVA,P1JNBP3.0,BPMOVP1,#00001100BACALLDELAYBP:JNBP3.1,LOOP2MOVP1,#00100001BACALLDELAYLOOP2:MOVP1,ACLREAPOPTL1POPTH1POP03HPOPP1SETBEARETIDELAY:MOVR1,#5LOW2:MOVR2,#100LOW3:MOVR3,#200LOW1:NOPNOPNOPDJNZR3,LOW1DJNZR2,LOW3DJNZR1,LOW2RET////0.5延时子程序//DELAY:MOVR3,#OAH//MOVTH1,#3CH//MOVTL1,#0B0H//SETBTR1//LP1:JBCTF1,LP2//SJMPLP1//LP2:MOVTH1,#3CH//MOVTL1,#0B0HENDImageImageImage下面是数码管的原理图以及引脚接法:图1引脚定义(图标题为五号字体中加粗)表1P3口的备选功能(表标题为五号字体加粗)引脚第二功能信号名称P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXDTXDINT0INT1T0T1WRRD串行数据接收串行数据发送外部中断0请求外部中断1请求定时器/计数器0计数输入定时器/计数器1计数输入外部RAM写选通外部RAM读选通三、中断电路1.了解中断电路和用处和工作原理中断是指由于某种随机事件的发生,计算机暂停现行程序的运行,转去执行另一程序,以处理发生的事件,处理完毕后又自动返回原来的程序继续运行。将能引起中断的事件称为中断源。CPU现行运行的程序称为主程序。处理随机事件的程序称为中断服务子程序。分时操作——CPU可以同多个外设“同时”工作•实时处理——CPU及时处理随机事件•故障处理——电源掉电、存储出错、运算溢出IP寄存器——中断优先级寄存器51单片机有两个中断优先级——高级和低级专用寄存器IP为中断优先级寄存器,用户可用软件设定相应位为1,对应的中断源被设置为高优先级,相应位为0,对应的中断源被设置为低优先级系统复位时,均为低优先级(3) TF0:定时器T0溢出中断请求。(4) TF1:定时器T1溢出中断请求。(5) RI或TI:串行中断请求。(1):外部中断0中断请求,由P3.2脚输入。(2):外部中断1中断请求,由P3.3脚输入。表89S51中断源的矢量地址中断源请求标志位入口地址优先级外部中断0IE00003H最高级最低级定时器T0TF0000BH外部中断1IE10013H定时器T1TF1001BH串行口RI/TI0023H该寄存器可以位寻址INTT0:PUSHACCPUSHDPHPUSHDPLPUSHPSW中断源服务POPPSWPOPDPLPOPDPHPOPACCRETI单片机中有两个中断优先级,即高优先级中断和低优先级中断,前者优先权高于后者(在程序中设置,相应位=1,为高优先级);同一优先级别的中断源按照自然优先级顺序确定优先级别(硬件形成,无法改变)。T1溢出中断标志(TCON.7):T1启动计数后,计满溢出由硬件置位TF1=1,向CPU请求中断,此标志一直保持到CPU响应中断后,才由硬件自动清0。也可用软件查询该标志,并由软件清0。外部中断INT1中断标志位(TCON.3):IE1=1,外部中断1向CPU申请中断外部中断INT1触发方式控制位(TCON.2):IT1=0,电平触发方式IT1=1,下降沿触发方式51单片机有两个中断优先级——高级和低级专用寄存器IP为中断优先级寄存器,用户可用软件设定相应位为1,对应的中断源被设置为高优先级,相应位为0,对应的中断源被设置为低优先级系统复位时,均为低优先级该寄存器可以位寻址中断响应:在满足CPU的中断响应条件之后,CPU对中断源中断请求予以处理。中断响应过程:保护断点地址;中断服务程序从中断子程序入口地址开始执行,直到返回指令RETI为止,这个过程称为中断处理(或中断服务)。中断服务子程序一般包括两部分内容,一是保护和恢复现场,二是处理中断源的请求。CPU响应某中断请求后,在中断返回前,应该撤除该中断请求,否则会引起另一次中断。定时器0或1溢出:CPU在响应中断后,硬件清除了有关的中断请求标志TFO或TF1,即中断请求是自动撤除的。串行口中断:CPU响应中断后,没有用硬件清除T1、R1,故这些中断不能自动撤除,而要靠软件来清除相应的标志。边沿激活的外部中断:CPU在响应中断后,也是用硬件自动清除有关的中断请求标志IE0或IE1低电平触发外部中断撤除方法较复杂。因为在电平触发方式中,CPU响应中断时不会自动清除IE1或IE0标志,所以在响应中断后应立即撤除信号。四、实训总结一、心得与体会单片机实训心得体会最近自己对单片机特别的感兴趣,因为看到它能控制交通灯的闪烁,自己觉得很神奇。就想弄清楚它到底是怎么做到的? 我看到书上讲:单片机可以用两种语言编写,一种是C语言,另外一种是汇编语言。汇编语言是一种机器语言,且代码繁琐,不易记忆。 不过在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎么和电脑相连都不知道,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。 俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。 虽然这次的课程设计算起来在实验室的时间只有五天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止五天。 硬件的设计跟电路接连都要我们自己动手去做,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。 当然,这其中也有很多问题,第一、不够细心比如由于编写程序不够细心,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
本文标题:单片机实训报告.
链接地址:https://www.777doc.com/doc-3263954 .html