课程设计单片机课程设计(2PLC技术交通灯设计).doc
永城职业学院单片机课程设计论文题目:交通灯课程设计班 级: 082班专 业: 矿山机电2010年06月03号目录摘要- 2 -1 认识单片机- 3 -1.1单片机的特点- 4 -1.2单片机的基本组成- 4 -1.3 MCS-51 的寻址方式:- 6 -1.4 指令:- 6 -1.5中断响应- 7 -2 本实验的目的- 7 -3 硬件- 7 -3.1 硬件介绍- 7 -3.2 本设计的主要任务- 8 -4 软件流程图:- 8 -5 参考程序- 9 -6 心得体会- 13 -摘要随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的自动控制系统开始进入了人们的生活,以单片机为核心的各种系统也越来越多。同时也标志了自动控制领域成为了数字化时代的一员。它实用性强,功能齐全,技术先进,使人们相信这是科技进步的成果。它更让人类懂得,数字时代的发展将改变人类的生活,将加快科学技术的发展。单片微机(Single-Chip Microcomputer)简称为单片机。它在一块芯片上集中成了中央处理单元CPU、随机存储器RAM、只读存储器ROM、定时/计数和多功能输入/输出I/O口,如并行口I/O、串行口I/O和转换A/D等。就其组成而言,一块单片机就是一台计算机。其典型结构如图所示。由于它具有体积小、功能强和价格便宜等优点,因而被广泛地应用于产品智能化和工业控制单片机系统的开发应用,给现代工业测控领域带来了一次新的技术革命。现代产品如汽车、机床、家电等的更新换代大多是由电子技术特别是单片机技术在各类产品上的应用带来的。单片机技术是一门应用性很强的课程,其理论与实践技能是从事电类、机类、机电类和计算机类工作的专业技术人员所不可缺少的。MCS-51系列单片机在我国得到了广泛的应用,是单片机的主流系列,软硬件应用设计资料丰富齐全。为了提高指令的执行速度和效率,采用了面向控制的结构和指令系统的独立CPU,即选择MSC-51系列中的8031单片机。关键词:单片机,交通灯,模块,程序1 认识单片机单片机是近代计算机技术发展的一个分支嵌入式计算机系统。它是将计算机的主要部件:CPU、RAM、ROM、定时器/计数器、输入/输出接口电路等集成在一块大规模的集成电路中,形成芯片级的微型计算机,称为单片微型计算机(Single Chip Mpcrocom-puter),简称单片机单片机出现的历史并不长,但是发展 十分迅猛。单片机技术发展过程可分为三个主要阶段:(1)低性能初级阶段以1976年Intel公司推出的MCS-48系列为代表,采用将8位CPU、8位并行I/O接口、8位定时器/计数器、ROM和RAM等集成于一块半导体芯片上的单片结构,虽然其寻址范围有限(不大于4KB),也没有串行I/O,而且RAM、ROM容量小,中断系统较简单,指令系统功能也不强,但功能可满足一般工业控制和智能化仪器、仪表等需要。(2)高性能提高阶段以Intel公司的MCS-51系列为代表,这一阶段推出的单片机普遍带有串行I/O接口,有多级中断处理系统及16位定时器/计数器。片内RAM/ROM容量加大,且寻址范围可达64KB,有的片内还带有A/D转换接口。接口体系逐步完善,性能也大大提高,面向控制的特点进一步突出增强了单片机的控制功能。(3)8位机巩固发展以及多品种共存阶段1983年,Inter推出MCS-96系列单片机是具有代表性的,片内集成16位CPU,RAM和ROM的容量也进一步增大,并带有I/O部件,带有多通道A/D转换器,8级中断处理能力使其具有更强的的实时处理功能。单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。单片机与现代微型计算机一样,系统结构均采用冯·诺依曼提出的“存储程序”思想,即程序和数据都被存放内存中,采用二进制代替十进制进行运算和存储程序。人们将计算机要处理的数据和运算方法、步骤,事先按计算机要执行的操作命令和有关原始数据编制成程序(二进制代码),存放在计算机内部的存储中,计算机在运行时能够自动地、连续地从存储中取出并执行,不需要人工加以干预。通常一个基本的单片机由以下几部分组成:(1)中央处理器CPU,包括运算器、控制器和寄存器;(2)存储器,包括ROM和RAM;(3)输入输出(I/O)接口,它与外部输入输出设备连接。1.1单片机的特点 (1) 、具有优异的性能价格比 (2)、集成度高、体积小、可靠性高 (3) 、控制功能强 (4) 、低电压、低功耗 1.2单片机的基本组成 它由 CPU 、存储器(包括 RAM 和 ROM )、 I/O 接口、定时 / 计数器、中断控制功能等均集成在一块芯片上,片内各功能通过内部总线相互连接起来。 输入 / 输出引脚 P0 、 P1 、 P2 、 P3 的功能 :P0.0P0 。 7 : P0 口是一个 8 位漏极开路型双向 I/O 端口。在访问片外存储器时,它分时作低 8 位地址和 8 位双向数据总线用。在EPROM 编程时,由 P0 输入指令字节,而在验证程序时,则输出指令字节。验证程序时,要求外接上拉电阻。 P0 能以吸收电流的方式驱动8个LSTTL 负载。 P1. 0 -P1. 7 ( 1-8 脚): P1 是一上带内部上拉电阻的 8 位双向 I/O 口。在 EPROM 编程和验证程序时,由它输入低 8 位地址。 P1 能驱动 4 个 LSTTL 负载。 在 8032/8052 中, P1. 0 还相当于专用功能端 T2 ,即定时器的计数触发输入端; P1. 1 还相当于专用功能端T2EX ,即定时器 T2 的外部控制端。P2.0P2.7 ( 2128 脚): P2 也是一上带内部上拉电阻的 8 位双向 I/O 口。在访问外部存储器时,由它输出高 8 位地址。在对 EPROM 编程和程序验证时,由它输入高 8 位地址。 P2 可以驱动 4 个 LSTTL 负载。P3. 0 P3. 7 ( 1017 脚): P3 也是一上带内部上拉电阻的双向 I/O 口。在 MCS-51 中,这 8 个引脚还用于专门的第二功能。 P3 能驱动 4 个 LSTTL 负载。 P3. 0 RXD (串行口输入) P3. 1 TXD (串行口输出) P3. 2 INT0 (外部中断 0 输入) P3. 3 INT1 (外部中断 1 输入) P3. 4 T0 (定时器 0 的外部输入) P3. 5 T1 (定时器 1 的外部输入) P3. 6 WR (片外数据存储器写选通) P3. 7 RD (片外数据存储器读选通)1.3 MCS-51 的寻址方式: (1) 、立即寻址 如: MOV A , #40H (2)、直接寻址 如: MOV A , 3AH (3) 、寄存器寻址 如: MOV A , Rn (4) 、寄存器间接寻址 如: MOV A , Rn (5) 、基址加变址寻址 如: MOVC A , A+DPTR (6) 、相对寻址 如: SJMP 08H (7) 、位寻址 MOV 20H , C 1.4 指令: MOV : 片内 RAM 传送 MOVX : 片外 RAM 传送 MOVC : ROM 传送 XCH : 交换(和 A 交换) SWAP : A 内半字节交换 ADD :不带进位加 ADDC :带进位加 SUBB :带进位减 INC :加 1 DEC :减 1 MUL :乘法 DIV :除法 DAA :调整 1.5中断响应 CPU 响应中断的条件有: (1)有中断源发出中断请求; (2)中断总允许位 EA=1 ,即 CPU 开中断; (3)申请中断的中断源的中断允许位为 1 ,即没有被屏蔽。 2 本实验的目的1、了解模拟交通灯的显示原理2、掌握交通灯显示程序的编码方法。3、熟悉单片机的应用及编语言3 硬件3.1 硬件介绍本实验采用以AT89C51单片机为核心芯片的电路来实现,主要由AT89C51芯片、时钟电路、复位电路、列扫描驱动电路、8X8LED点阵5部分组成,其中,AT89C51是一种带4KB字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS型8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,单片机的可擦除只读存储器可以反复擦除1000次。ATMEL的AT89C51是一种高效微控制器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。因此,现在许多智能化的电子产品设计与制作过程中经常用到AT89C51芯片。时钟电路由AT89C51得18、19脚的时钟端(XATLL 1及XTAL 2)以及12 MHz晶振X、电容C1、C2组成,采用片内振荡方式。复位电路采用简易的上电复位电路,主要由R1、R2,电容C,开关组成,分别接至AT89C51的RST复位输入端上。3.2 本设计的主要任务本次设计为十字路口交通灯控制系统设计,硬件部分它以8031单片机为核心,并在此基础上扩展了程序存储器(EPROM)2764、静态数据存储器(SRAM)6264,利用地址锁存器74LS373扩展I/O并行接口芯片8255A。软件部分它结合定时/计数等知识进行程序编译。先了解交通灯的变化规律,假设一个十字路口为东西南北走向。初始状态0为东西红灯;然后转状态1南北绿灯通车,东西红灯。过一段时间转状态2,南北绿灯闪几次转黄灯,延时几秒,东西仍然红灯。再转状态3,东西绿灯通车,南北红灯。过一段时间转状态4,东西绿灯闪几次转亮黄灯,延时几秒,南北仍然红灯,最后回到状态1,不断循环。4 软件流程图:S0状态:东西红灯,南北红灯S1状态:南北绿灯,东西红灯红灯,南北红灯S2状态:南北黄灯,东西红灯S3状态:东西绿灯,南北红灯S4状态:东西黄灯,南北红灯5 参考程序1:打开单片机演示文件,新建工程。2:输入下面的参考程序LEDEQUP1ORG0000HLJMPSTARTORG0030HSTART:MOVSP,#60HLCALLS0;初始状态(都是红灯)LCALLS1;南北绿灯,东西红灯LCALLS2;南北绿灯闪转黄灯,东西红灯LCALLS3;南北红灯,东西绿灯LCALLS4;南北红灯,东西绿灯闪转黄灯LJMPSTARTS0:MOVA,#00100001B;南北红灯,东西红灯MOVLED,AMOVR2,#20;延时2m秒LCALLDELAYRETS1:MOVA,#10000001B;南北绿灯,东西红灯MOVLED,AMOVR2,#200;延时20秒LCALLDELAYRETS2:MOVR3,#03H;南北绿灯闪3次FLASH:MOVA,#00000001B;南北绿灯灭,东西红灯亮MOVLED,AMOVR2,#03HLCALLDELAYMOVA,#10000001B;南北绿灯,东西红灯MOVLED,AMOVR2,#03HLCALLDELAYDJNZR3,FLASHMOVA,#01000001B ;南北转黄灯,东西红灯MOVLED,AMOVR2,#20;延时2秒LCALLDELAYRETS3:MOVA,#00100100B;南北红灯,东西绿灯MOVLED,AMOVR2,#200;延时20秒LCALLDELAYRETS4:MOVR3,#03H;东西绿灯闪3次FLASH1:MOVA,#00100000B;南北红灯亮,东西绿灯灭MOVLED,AMOVR2,#03HLCALLDELAYMOVA,#00100100B;南北红灯亮,东西绿灯亮MOVLED,AMOVR2,#03HLCALLDELAYDJNZR3,FLASH1MOVA,#00100010B;南北红灯,东西黄灯MOVLED,AMOVR2,#20;延时2秒LCALLDELAYRETDELAY:PUSH02H;延时子程序PUSH01HPUSH00HDELAY1:MOVR1,#00HDELAY2:MOVR0,#0C2HDJNZR0,$DJNZR1,DELAY2;延时100msDJNZR2,DELAY1 POP00HPOP 01HPOP02HRETEND2:将输入的程序另存为新的文件夹并命名为(.a51)并将文件保存。打开如下图所示的文件;将上述文件打开点击添加、关闭3.右键点击Target1点击第二页。更改文件中的数据4.除错。5.运行所输入的程序。6 心得体会单片机作为我们的主要专业课之一,虽然在大二开学初我对这门课并没有什么兴趣,觉得那些程序枯燥乏味,但在这次课程设计后我发现自己在一点一滴的努力中对单片机的兴趣也在逐渐增加。一个学期也就没有做过几次实验,在后来的制作过程中遇到了很多困难,所以这次这个课程设计完全是在没有任何单片机制作经验甚至是没有做过任何相关电路的基础上开始的。选题的时候其实只上了几个星期的课,对单片机能做什么或者说以我们的水平能让单片机做什么根本没有一个清晰的认识,很担心自己的选题最后做不出来,所以当时选题时的原则是尽量的简单可行,因为毕竟我们没有实验课,一学期下来必定会比物理系的同学在具体的实验方面落后不少 这次单片机课程设计我们历时几个星期,但经过这两个星期的实践和体验下来,我们又怎么会去在乎那个先后问题呢,因为对我来说学到的不仅是那些知识,更多的是团队和合作。现在想来,也许学校安排的课程设计有着它更深层的意义吧,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能!通过这次课程设计,使我得到了一次用专业知识,专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理,单片机应用系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的掌握方面都能向前迈了一大步。本次课程设计的过程是艰辛的,不过收获却是很大的。在设计的过程中,我遇到了一些问题,不过都是些小的问题,在老师和同学的的帮助下很快的就得到了解决,如:代码中双引号的使用并不是在英语书写状态下,输入字母出错等,在调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解决,顺利完成,并实现了其功能。综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更进一步的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍,资料以及和周围同学的交流得以解决!由于使用的是单片机作为核心的控制元件,使得电路的可靠性比较高,功能比较强大,而且可以随时的更新系统,进行不同状态的组合,但是在我们设计和调试的过程中也发现了一些问题,譬如红灯和绿灯的切换还不够迅速,红绿灯规则不效率还不是很高,这需要进一步的完善!挫折是一份财富,经历是一份拥有。这次实习必将成为我人生旅途上一个非常美好的回忆通过这样的实训,有利于我们更好的掌握理论知识,有利于我们更好了解单片机的结构和理解单片机工作原理,也有利于我们更好的提高动手能力和创新思维能力。让我体会到了同学之间的互帮互助以及老师的耐心指导,因此我们每一位同学都非常珍惜这次设计的机会。努力的做好每一份设计这次课程设计,我认为是非常必要的,他锻炼了我们很多方面的能力,也是我们增长了知识。在此感谢老师的支持和帮助!参考文献【1】 李明、毕万新;单片机原理与接口技术;大连理工出版社【2】 胡健;单片机原理及接口技术实践教程;机械工业出版社【3】 张迎新;单片机初级教程单片机基础;北京航空航天大学出版社【4】 李广弟;单片机基础;北京航空航天大学出版社【5】 张友德、赵志英、涂时亮;单片微型机原理、应用与试验上海复旦大学出版社【6】 郑文峰、刘小坤、冯一兵、金丽霞;TMC3开放式单片机实验开发系统指导书清华大学科教仪器厂【7】 张毅坤;单片微型计算机原理及应用西安电子科技大学出版社余锡存、曹国华;单片机原理及接口技术西安电子科技大学出版社