交通灯控制与设计实验报告.doc
文本预览下载声明
陕西工业职业技术学院
2010/2011学年第学期
课程名称: 班 级: : 教学周数: 周地 点:指导教师: 一、课程设计目的、要求与思路 3
1.1 设计目的 3
1.2 设计要求 3
1.3 设计思路 3
二、系统总体方案及硬件设计 3
2.1 系统总体方案 3
2.2 硬件设计 4
三、软件系统的设计 8
3.1 主程序 8
3.2 T0中断服务程序 12
3.3 外部中断零服务程序 14
四、 Proteus软件仿真 15
4.1 系统原理图 15
4.2 初始状态1仿真图 16
4.3 状态2仿真图 16
4.4 状态3仿真图 17
五、 元件清单 18
六、 课程设计体会 18
附1: 源程序代码 19
交通灯的控制与设计
一、课程设计目的、要求与思路
1.1 设计目的
(1) 加强对单片机和汇编语言的认识,充分掌握和理解设计各部分的工作原理、设计过程、选择芯片器件、模块化编程等多项知识。
(2) 用单片机模拟实现具体应用,使个人设计能够真正使用。
(3) 把理论知识与实践相结合,并且提高自己的实践动手能力。
(4) 提高利用已学知识分析和解决问题的能力。
1.2 设计要求
设计个单片机控制的交通灯控制系统,可以实现以下功能:
(1) A道和B道上均有车辆要求通过时,A,B道轮流放行。A道放行36秒钟,B道放行36秒钟。
(2) 一道有车而另一道无车(实验时用开关K0和K1控制),交通灯控制系统能立即让有车道放行。
(3) 绿灯转换为红灯时黄灯亮4秒钟。
1.3 设计思路
硬件设计部分,为实现所要求的功能,首先参考多种参考资料,选用AT89C51单片机为硬件设计的核心器件。它具有128*8位内部RAM32根可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 AT89C51
(2)128*8位内部RAM32根可编程I/O线两个16位定时器/计数器个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路P2.1口控制北边和东边剩余时间的十位数的显示,P2.0控制北边和东边剩余时间的个位数的显示。用P1端口作为输出端口,用P1.2到P1.7端口分别控制东和北两组灯的状态,低电平点亮,用数码管显示黄、红、绿灯。通过中断扩展实现交通灯系统特殊情况的转换。
(3)软件设计部分
软件设计部分,分为一个主程序和两个中断子程序,一个用于有紧急车辆通过时,系统要能禁止普通车辆通行,实行中断可使A、B两道均亮红灯;另一个用于一道有车而另一道无车时,通过控制交通灯系统能立即让有车道放行,假如A道有车B道无车,长按K0可以控制交通灯系统能立即A道放行,假如B道有车A道无车,长按K1可以控制交通灯系统能立即B道放行。
2.2 硬件设计
(1)AT89C51简介
● 功能
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压高性能CMOS8位微处理器,俗称单片机。128*8位内部RAM32根可编程I/O线两个16位定时器/计数器·5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路管脚说明VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选
显示全部