K1,2按下8个led灯依次点亮点亮松开时延长0.5秒k34按下并释放时LED闪烁0.5秒再次按下并释放时熄灭

单片机上电后8个led灯闪烁,按下k1一个灯从左右移动,按下k2两个灯左右移动,_百度知道
单片机上电后8个led灯闪烁,按下k1一个灯从左右移动,按下k2两个灯左右移动,
我有更好的答案
没有具体的电路图,就只以P1口作为基本输驱动口进行说明。主程序需要一个delay函数进行led亮灭的延时。当然你首先要先进行P1口和开关按键的预定义,这个要看你板子的原理图。void delay(int l){
inta,b;for(a=0;a&l;a++){for(b=0;b&10000;b++);}}void main(){
//设置开关为P3.7和P3.8,低有效
while(1){
if(P3.7 ==0)
else if(P3.8 ==0)
if (m == 0)
delay(10);
delay(10);
...//以此类推到P1.7
else if(m ==1)
delay(10);
delay(10);
delay(10);
...//同理以此类推即可
采纳率:73%
楼主写这个干嘛?是不是需要设计些什么?
为您推荐:
其他类似问题
led灯的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。您现在的位置: >> 交通灯实训报告 >> 单片机交通灯实验报告
单片机交通灯实验报告
来源: 时间:
【单片机交通灯实验报告】代码学校代码:11460南京晓庄学院本科生毕业综合设计 南京晓庄学院本科生毕业综合设计 毕业综合交通灯控制系统设计 交通灯控制系统设计Traffic light control system design院系:物理与电子工程学院专业电子信息科学与技术成员:郁艇妹 () ) 周纬璐 () ) 南京晓庄学院 2012 届本科毕业设计交通灯控制系统设计实验一.设计目的 设计目的1. 通过本次课程设计进一步熟悉和掌握单片机的结构及工作原理,巩固和加深“单片机原理与应用”课程的基本知识,掌握电子设计知识在实际中的简单应用。2. 综合运用“单片机原理与应用”课程和先修课程的理论及生产实际知识去分析和解决电子设计问题,进行电子设计的训练。3. 学习电子设计的一般方法, 掌握 AT89C52 芯片以及简单电子设计过程和运行方式,培养正确的设计和分析问题、解决问题的能力,特别是总体设计能力。4. 通过计算和绘制原理图、布线图和流程图,学会运用标准、规范、手册、图册和查 阅有关技术资料等,培养电子设计的基本技能。5. 通过完成一个包括电路设计和程序开发的完整过程,了解开发单片机应用系统全过 程,为今后从事的工作打基础。二.设计要求1.利用单片机的定时器定时,实现道路的红绿灯交替点亮和熄灭。2.以 AT89C52 单片机为核心,设计一个十字路口交通灯控制系统。用单片 机控制 LED 灯模拟交通信号灯显示。假定东西、南北方向方向通行(绿灯)时间 为 25 秒,缓冲(黄灯)时间 5 秒,停止(红灯)时间 35 秒。3.南北方向、东西方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间 都用显示器进行显示(采用计时的方法) 。三.实验原理1.基本原理 基本原理主体电路:交通灯自动控制模块。这部分电路主要由 80C51 单片机的 I/O 端口、定时计 数器、外部中断扩展等组成。本设计先是从普通三色灯的指示开始进行设计,用 P1 口作为输出。程序的初始化是东 西南北方向的红灯全亮。然后南北方向红灯亮,东西方向绿灯亮,60 秒后东西方向黄灯闪 亮 5 秒后南北方向绿灯亮,东西方向红灯亮。重复执行。倒计时用到定时器 T0,用 P2 口作 为 LED 的显示。二位一体的 LED 重复执行 60 秒的倒计时。作为突发事件的处理,本设计 主要用到外部中断 EX0。用一模拟开关作为中断信号。实际中可以接其它可以产生中断信 号的信号源。2.芯片 AT89C52 芯片AT89C52 是一个低电压,高性能 CMOS 8 位单片机,片内含 8k bytes 的可反复擦写 的 Flash 只读程序存储器和 256 bytes 的随机存取数据存储器(RAM),器件采用 ATMEL 的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内置通用 8 位中央 处理器和 Flash 存储单元,功能强大的 AT89C52 单片机可为您提供许多较复杂系统控制应 用场合。1 南京晓庄学院 2012 届本科毕业设计AT89C52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,AT89C52 可以按照常规 方法进行编程,也可以在线编程。其将通用的微处理器和 Flash 存储器结合在一起,特别是 可反复擦写的 Flash 存储器可有效地降低开发成本。主要功能特性? 兼容 MCS51 指令系统 ? 8k 可反复擦写(&1000 次)Flash ROM ? 32 个双向 I/O 口 ? 256x8bit 内部 RAM ? 3 个 16 位可编程定时/计数器中断 ? 时钟频率 0-24MHz ? 2 个串行中断 ? 可编程 UART 串行通道 ? 2 个外部中断源 ? 共 6 个中断源 ? 2 个读写中断口线 ? 3 级加密位 ? 低功耗空闲和掉电模式 ? 软件设置睡眠和唤醒功能四. 实验流程图(一)实现方法(1)在设计中利用软件程序延时的方法来控制红(绿)的亮的时间。考虑延时时间较 长所以先用 T0 产生终端然后通过计数的方法来实现延时。利用P1口的 P1.1、P1.2、P1.3 作为红绿灯控制端口。(2)南北向的绿灯连在一块,东西向的红灯连在一块,他们一块与 P1.1 相连。同样南 北向的红灯连在一块,东西向的绿灯连在一块,他们一块与 P1. 2 相连,四个黄灯连在一块 与 P1.3 相连。(二)流程图2 南京晓庄学院 2012 届本科毕业设计开始南北红东西绿30s 倒计时显示黄灯亮 5s南北绿东西红25s 倒 计 时 显黄灯亮 5s五.硬件设计1.单片机的结构单片微机(Single-Chip Microcomputer)简称为单片机。它在一块芯片上集中成了中央 处理单元 CPU、随机存储器 RAM、只读存储器 ROM、定时/计数和多功能输入/输出 I/O 口,如 并行口 I/O、串行口 I/O 和转换 A/D 等。就其组成而言,一块单片机就是一台计算机。由于 它具有体积小、 功能强和价格便宜等优点, 因而被广泛地应用于产品智能化和工业控制自动 化上。2.主要元器件选择(1). 开关管的选择:BUTTON 按钮 (2). LED 发光二极管 LED-RED, LED-YELLOW ,LDE-GREEN (3). 二位一体数码管 (4). PN4249:驱动三极管 (5). AT89S51 系列单片机 7SEG-MPX2-CAT-RED:共阳数码管(红色)3.设计显示部分LED 数码显示部分。LED 数码显示部分由七数码显示管组成。发光二极管显示原理发光二极管是采用砷化镓、镓铝砷和磷化镓等材料制成,其内部结构为一个 PN 结,具3 南京晓庄学院 2012 届本科毕业设计有单向导电性。发光二极管在制作时,使用的材料不同,那么就可以发出不同颜色的光。当定时器定时为 1 秒, 时程序跳转到时间显示及信号灯显示子程序, 它将依次显示信号 灯时间 ,同时一直显示信号灯的颜色,这时在返回定时子程序定时一秒,在显示黄灯的下 一个时间,这样依次把所有的灯色的时间显示完后在重新给时间计数器赋初值 ,重新进入 循环。六.软件设计1.单片机中断系统基本结构中断是一项重要的计算机技术, 是处理正常工作与紧急状态的好办法, 是实现人机实时 交互的重要途径,在单片机应用系统中,中断技术得到了广泛应用。下面详细介绍单片机中 断系统基本结构、与中断相关的特殊寄存器的设置及中断应用系统编程方法。当 CPU 查询到系统有中断请求时,如果系统处于中断允许状态,CPU 将停止当前的工 作,响应中断请求,转向中断服务,中断服务完成后,返回原程序继续执行当前任务,这叫 单片机中断。8051 系列单片机中断系统结构如图 3.7 所示。能让 CPU 产生中断的信号源叫中断源。8051 单片机有 NT0、INT1、T0、T1、TI、RI 六个中断源,但只有 EX0、ET0、EX1、ET1、 ES 五个向量,下面简要介绍六个中断源。IT0=0 IE0 IT0=1 TF0 IT0=0 1 IT0=1 TF1 TI RI TI RI IE1 EX0 ET0 EX1 ET1 ES EAIP 1 中 断 优 先 级图:单片机中断系统基本结构 INT0、 INT1外部中断源, P3.2 和 P3.2 引脚输入。由 具有低电平和脉冲两种触发方式, 在每个机器周期的 S5P2 采样引脚信号,如有效则由硬件将它的中断请求标志 IE 置 1,请求 中断。当 CPU 响应中断时,由硬件复位。T0、T1:定时/计数器中断,当定时/计数器产生溢出时,置位中断请求标志 TF 请求中 断处理。RI、TI:串行中断,RI 是接收,TI 为发送。单片机串行口接收到一个字符后 RI 置 1,4 南京晓庄学院 2012 届本科毕业设计发送完一个字符 TI 置 1。值得注意的是,RI、TI 在响应中断后,必须由用指令将其复位。中断响应中断响应:CPU 在执行程序的过程中, 在每个机器周期的 S5P2 对中断标志位按中断优先级进行查 询,一旦查询到有中断请求,CPU 只要不在执行同级或高级的中断服务程序和当前指令 (RETI 指令或访问 IE、IP 的指令除外)执行完毕两种情况,则响应中断。如果当前正在执 行的指令是 RETI 或访问 IE、IP 的指令,则当前指令执行完毕后,CPU 才可响应中断。中 断响应时间可以从中断信号被查询开始算起, 中断响应时间在以下三种情况下, 响应时间还 会更长① CPU 正在执行一个比要响应的中断源优先级相等或更高的中断源的中断服务程 序,此时须等到中断服务程序执行完毕才可中断响应。② 正在执行的当前指令不是在最后一个机器周期,只有指令执行完后才响应中断。③ 如果当前执行的是 RETI 或访问 IE、IP 的指令,则当前指令执行完毕后,CPU 需 再执行一条指令才可以中断响应,因此附加等待响应时间不会超过 5 个机器周期。中断入口中断入口:单片机响应中断后,将转向特定的入口进行中断服务,单片机的中断入口地址如表 3.2 所示。中 断 源 IE0(外部中断 0) TF0(定时器 0 溢出中断) IE1(外部中断 1) TF1(定时器 1 溢出中断) RI+TI(串行口中断) 入 口 地 址 BH BH 0023H表 3.2 MCS-51 单片机中断服务程序入口地址表 从表中可以看出,两相邻中断源的入口地址间隔为 8 个单元。这意味着如果要把中断 源对应的中断服务程序从入口地址开始存放, 则程序的长度不能超过 8 个字节, 否则会影响 到下一个中断源的入口地址的使用。而通常的情况下,中断服务程序的长度不止 8 个字节, 因此,常见的处理方法是:在入口地址处存放一条无条件转移指令,通过这条转移指令转向 对应的中断服务程序入口,中断服务程序以 RETI 为结束。中断请求的撤销中断请求的撤销:CPU 响应中断请求,在中断返回(RETI)之前,该中断请求应被撤除,否则会引发另 一次中断。5 南京晓庄学院 2012 届本科毕业设计定时/计数器中断请求撤销:CPU 在响应中断后,由硬件自动清除中断请求标志 TF。外部中断请求撤销:如果采用脉冲触发方式,CPU 在响应中断后,由硬件自动清除中 断请求标志 IE;对于电平触发方式的外部中断请求,中断标志的撤销是自动的,由于造成 中断请求的低电平继续存在, 所以在响应中断后再次会产生中断请求, 为此响应中断后要撤 销外部信号。2.每秒钟的设定延时方法可以有两种一中是利用 MCS-51 内部定时器才生溢出中断来确定 1 秒的时间, 另一种是采用软延时的方法。3.计数器初值计算定时器工作时必须给计数器送计数器初值,这个值是送到 TH 和 TL 中的。我们可以把 计数器记满为零所需的计数值设定为 C 和计数初值设定为 TC 可得到如下计算通式TC=M-C七.实验程序#include &reg51.h& #define uchar unsigned char #define uint unsigned int sbit R1=P2^0; //东西红灯 sbit Y1=P2^1; //东西黄灯 sbit G1=P2^2; //东西绿灯 sbit R2=P2^3; //南北红灯 sbit Y2=P2^4; //南北黄灯 sbit G2=P2^5; //南北绿灯 sbit Z1=P2^6; //南北人行道绿灯 sbit Z2=P2^7; //东西人行道绿灯 sbit K0=P3^0; //全部禁行开关 sbit K1=P3^2; //主干道通行开关 sbit K2=P3^3; //支道通行开关 sbit JG=P3^6; //全部禁行警报 uchar a=0,m,k,h; uchar code dis[]={ 0Xc0, 0Xf9, 0Xa4, 0Xb0, 0X99, 0X92, 0X82, 0Xf8, 0X80, 0X90, 0Xff}; void delay(uchar x) {6//断码 //延时 南京晓庄学院 2012 届本科毕业设计while(x--) for(j=0;j&120;j++); } xianshi() //显示部分 { while(1) { while(1) { G1=1;R1=0;Y1=1;JG=0; G2=0;R2=1;Y2=1;Z2=0;Z1=1; k=35;h=30; while(1) //主干道通行 35s { if(K0==0) //判断 K0 是否被按下,如果按下跳出本循环 P0=0x01; P1=dis[k/10]; delay(2); P0=0x02; P1=dis[k%10]; delay(2); P0=0x04; P1=dis[h/10]; delay(2); P0=0x08; P1=dis[h%10]; delay(2); if(k==0) if(h==0) { h=5; G2=1; R2=1; Y2=0; } } if(K0==0) //再判断一次 K0,跳出本循环 G1=0;R1=1;Y1=1;JG=0; G2=1;R2=0;Y2=1;Z2=1;Z1=0; k=20;h=25; while(1) //支道通行 25s {7 南京晓庄学院 2012 届本科毕业设计if(K0==0) P0=0x01; P1=dis[k/10]; delay(2); P0=0x02; P1=dis[k%10]; delay(2); P0=0x04; P1=dis[h/10]; delay(2); P0=0x08; P1=dis[h%10]; delay(2); if(h==0) if(k==0) { k=5; G1=1; R1=1; Y1=0; } } if(K0==0) } if(K0==0) { while(1) { G1=1;R1=0;Y1=1;JG=1;P0=0x00; G2=1;R2=0;Y2=1;Z2=1;Z1=1; if(K0!=0) } } } } void zhutong() interrupt 0 { EX0=0; m=P2; if(K1==0) { while(1) //主干道通行,支道禁止通行8 南京晓庄学院 2012 届本科毕业设计{ G1=1;R1=0;Y1=1;JG=0;P0=0x00; G2=0;R2=1;Y2=1;Z2=0;Z1=1; if(K1!=0) } } P2=m; EX0=1; } void zhitong() interrupt 2 //支道通行,主干道禁止通行 { EX1=0; m=P2; if(K2==0) { while(1) { G1=0;R1=1;Y1=1;JG=0;P0=0x00; G2=1;R2=0;Y2=1;Z2=1;Z1=0; if(K2!=0) } } P2=m; EX1=1; } void dss() interrupt 1 //1s 的定时 { a=a+1; if(a==10) { k--; h--; a=0; } TH0=0x3C; TL0=0xB0; } void main() { TMOD=0x01; TH0=0x3C; TL0=0xB0; //6M 晶振,100ms 初值 ET0=1; TR0=1;9 南京晓庄学院 2012 届本科毕业设计EA=1; EX1=1; EX0=1; IT0=0; IT1=0; PX0=1;PX1=1; xianshi(); while(1); } 八.系统仿真 系统仿真D11p1.5D12D13 R10 R1R p2.0 p2.1LED-RED LED-YELLOW LED-GREENP1.4D8p1.0 LED-RED D9 p1.1 LED-YELLOW D10 p1.2 LED-GREEN CRYSTAL 18 22p 22pC1C2P1.6RP1 U119 XTAL1 P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15 P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1 P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 10 11 12 13 14 15 16 17 P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 P2.0 P2.1 P2.2 P2.3 P1.0 LED-RED D3 p3.0 p3.1 p3.2 p3.3 p3.4 p3.5 p3.6 p3.7 p1.1 LED-YELLOW D4 P1.2 LED-GREEN 1 2 3 4 5 6 7 8 9 RESPACK-8X1XTAL2rst9RSTR14 R17 R20 R15 R18 R21 R16 R1R 100R100R 100R 100R100R 100R p3.0 p3.1 p3.2 p3.3 p3.4 p3.5 p3.6 p3.7R12 R1Rvcc 100uPSEN ALE EAD2R110kp1.0 p1.1 p1.2 p1.4 p1.5 p1.6R22 R25R27R29 R23 R26R28 RR 100R 100R 100R100R 100R 100RR30 R3 2 3 4 5 6 7 8P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 AT89C51 SRCFILE=jtd.hexP3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7P2.2 P2.3D5p1.4 p1.5D6p1.6D7LED-RED LED-YELLOW LED-GREENP0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7R35 R3R p2.0 p2.1图 Protues 仿真九.参考文献[1] 张迎新等.单片机初级教程[M].北京:北京航空航天大学出版社,2000。[2] 王幸之等.AT89 系列单片机原理与接口技术[M].北京:北京航空航天大学出版社,2004。[3] 何立民.单片机高级教程[M].北京:北京航空航天大学出版社,2000。[4] 李维,郭强. 液晶显示应用技术[M].北京:电子工业出版社,2000。[5] 戴佳, 戴卫恒.51 单片机 C 语言应用程序设计实例精讲[M].北京电子工业出版社, .2 p2.3C329 30 31
【单片机交通灯实验报告】摘 1. 2. 2.1.要.......................................................................................................3 引言....................................................................................................4 总体设计方案 ...................................................................................5 设计思路 ........................................ 52.1.1.设计目的 ........................................ 5 2.1.2.设计任务和内容 .................................. 6 2.1.3.方案比较、设计与论证 ............................ 6 2.1.4.芯片简介 ........................................ 9 2.2. 3. 3.1. 3.2. 3.3. 设计方框图 ..................................... 15 设计原理分析 .................................................................................16 交通灯显示时序的理论分析与计算 ................. 16 交通灯显示时间的理论分析与计算 ................. 18 电路模块 ....................................... 193.3.1.LED 数码管显示模块 ............................. 19 3.3.2.LED 红绿灯显示模块 ............................. 22 3.3.3.复位电路 ...................................... 25 3.3.4.晶振电路 ...................................... 26 4. 结束语..............................................................................................261 5. 6. 6.1. 6.2. 6.3参考文献 .........................................................................................27 附录..................................................................................................28 附录 1:程序清单 ....................................................................28 附录 2:电路设计总图 ............................................................36 附录 3:实物图 ....................................... 错误!未定义书签。2 摘要交通在人们的日常生活中占有重要的地位, 随着人们社会的 日益频繁,这点更是体现的淋漓尽致。交通信号灯的出现,使交通得 以有效管制,对于疏导交通流量、提高道路通行能力,减少交通事故 有明显效果。近年来随着科技的飞速发展,单片机的应用正在不断深 入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的 单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机 方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。本系统采用单片机 AT89S52 为中心器件来设计交通灯控制器, 系 统实用性强、操作简单、扩展性强。本设计就是采用单片机模拟十字 路口交通灯的各种状态显示以及倒计时时间。本设计系统由单片机 I/O 口扩展系统、 交通灯状态显示系统、 LED 数码显示系统、复位电路等几大部分组成。系统除基本的交通灯功能 外,还具有倒计时等功能,较好的模拟实现了十字路口可能出现的状 况。软件上采用 C51 编程, 主要编写了主程序, 数码管显示程序, LED 中断程序延时程序等。经过整机调试,实现了对十字路口交通灯的模 拟。3 关键字:电子线路 AT89S52 LED 交通灯1. 引言 当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见 和最有效的手段。但这一技术在 19 世纪就已出现了。1858 年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝 两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交 通信号灯。1868 年,英国机械工程师纳伊特在伦敦威斯敏斯特区的 议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两 以旋转式方形玻璃提灯组成,红色表示“停止” ,绿色表示“注意” 。1869 年 1 月 2 日,煤气灯爆炸,使警察受伤,遂被取消。电气启动的红绿灯出现在美国, 这种红绿灯由红绿黄三色圆形的 投光器组成,1914 年始安装于纽约市 5 号大街的一座高塔上。红灯 亮表示“停止” ,绿灯亮表示“通行” 。1918 年,又出现了带控制的红绿灯和红外线红绿灯。带控制的4 红绿灯, 一种是把压力探测器安在地下, 车辆一接近红灯便变为绿灯; 另一种是用扩音器来启动红绿灯,司机遇红灯时按一下嗽叭,就使红 灯变为绿灯。红外线红绿灯当行人踏上对压力敏感的路面时,它就能 察觉到有人要过马路。红外光束能把信号灯的红灯延长一段时间,推 迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高 道路通行能力,减少交通事故有明显效果。1968 年,联合国《道路 交通和道路标志信号协定》对各种信号灯的含义作了规定。绿灯是通 行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标 志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的 车辆和过人行横道的行人优先通行。红灯是禁行信号,面对红灯的车 辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车 辆不能越过停车线, 但车辆已十分接近停车线而不能停车时可以 进入交叉路口。2. 总体设计方案2.1.设计思路 2.1.1. 设计目的(1)加强对单片机和汇编语言的认识,充分掌握和理解设计各部分 的工作原理、设计过程、选择芯片器件、模块化编程等多项知 识。(2)用单片机模拟实现具体应用,使设计能够真正使用。(3)把理论知识与实践相结合,充分发挥个人能力,并在实践中锻 炼。(4)提高利用已学知识分析和解决问题的能力。(5)提高实践动手能力。5 2.1.2.设计任务和内容2.1.2.1. 设计任务 单片机采用用 AT89S52 芯片,使用发光二极管(红,黄,绿)代表 各个路口的交通灯,用 8 段数码管对转换时间进行倒时(东西路口 15 秒,南北路口 25 秒,黄灯时间 5 秒) 。2.1.2.2. 设计内容 (1)设计并绘制硬件电路图 (2)制作 PCB 并焊接好元器件 (3)编写程序并将调试好的程序固化到单片机中 2.1.3. 方案比较、设计与论证2.1.3.1. 电源提供方案 为使模块稳定工作,须有可靠电源,采用单片机控制模块提供电 源。此方案的优点是系统简明扼要, 节约成本; 缺点是输出功率不高。2.1.3.2. 复位方案 复位方式有两种:按键复位与软件复位。由考虑到程序的简洁,避免 冗长,本设计采用按键复位,在芯片的复位端口外接复位电路,通过 按键对单片机输入一个高电平脉冲,达到复位的目的。6 2.1.3.3. 输入方案 方案一采用 89S52 扩展 I/O 口及键盘,显示等。该方案的优点是使用灵活可编程,并且有 RAM,及计数器。若用该方案,可提供 较多 I/O 方案二直接在 IO 口线上接上按键开关。因为设计时精简和优化了电路,所 以剩余的口资源还比较多,我们使用 2 个按键,分别是 K1、K2。由于该系统对于交通灯及数码管的控制,只用单片机本身的 I/O 口 就可实现,且本身的计数器及 RAM 已经够用,故选择方案二 2.1.3.4. 显示界面方案 该系统要求完成倒计时、状态灯等功能。基于上述原因,我们考 虑了三种方案方案一完全采用数码管显示。这种方案只显示有限的符号和数码字符, 无法胜任题目要求。方案二完全采用点阵式 LED 显示。这种方案实现复杂,且须完成大量 的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形 等。7口,但操作起来稍显复杂。 方案三采用数码管与点阵 LED (点阵式和 8 段式 LED)相结合的方法因 为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看 并考虑到现实情况,用数码管与 LED 灯分别显示时间与提示信息。这 种方案既满足系统功能要求, 又减少了系统实现的复杂度。权衡利弊, 第三种方案可互补一二方案的优缺, 我们决定采用方案三以实现系统 的显示功能。设计方框图 整个设计以 AT89S52 单片机为核心, 由数码管显示, 数码管显示, LED 复位电路组成。硬件模块入图 2-1。AT89S52 单 片机数码管显示 LED 数码管 晶振电路 显示复位电路2.1.3.5. 交通管理的方案论证 东西、南北两干道交于一个十字路口,各干道有一组红、黄、绿 三色的指示灯,指挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮 允许通行。黄灯亮提示人们注意红、绿灯的状态即将切换,且黄灯燃 亮时间为东西、南北两干道的公共停车时间。指示灯燃亮的方案如表 2。8 25S5S25S5S??东 西 红 灯 红 灯 绿 灯 黄 灯 ?? 道 亮 亮 亮 亮南 北 绿 灯 黄 灯 红 灯 红 灯 ?? 道 亮 亮 亮 亮 表 2 说明:(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通 过;南北道为绿灯,此道车辆通过,行人禁止通行。时间 为 25 秒。(2)黄灯 5 秒,警示车辆和行人红、绿灯的状态即将切换。(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南 北道车辆禁止通过,行人通行。时间为 25 秒。(4)这样如上表的时间和红、绿、黄出现的顺序依次出现这样 行人和车辆就能安全畅通的通行。2.1.4.芯片简介1.AT89S52 单片机简介 其引 DIP 封装的脚图如下:9 主要性能 与 MCS-51 单片机产品兼容 、8K 字节在系统可编程 Flash 存 储器、 1000 次擦写周期、 全静态操作:0Hz~33Hz 、 三级加 密程序存储器 、 32 个可编程 I/O 口线 、三个 16 位定时器/计 数器 八个中断源 、全双工 UART 串行通道、 低功耗空闲和掉电 模式 、掉电后中断可唤醒 、看门狗定时器 、双数据指针 、掉 电标识符 。功能特性描述 At89s52 是一种低功耗、高性能 CMOS8 位微控制器, 具有 8K 在系统可编程 Flash 存储器。使用 Atmel 公司高密度非 易失性 存储器技术制造,与工业 80C51 产品指令和引脚完 全兼容。片 上 Flash 允许程序存储器在系统可编程,亦适于 常规编程器。在 单芯片上,拥有灵巧的 8 位 CPU 和在系统 可编程 Flash,使得10 AT89S52 为众多嵌入式控制应用系统提 供高灵活、超有效的解决 方案。AT89S52 具有以下标准功能8k 字节 Flash,256 字节 RAM, 32 位 I/O 口线,看门狗定时器,2 个数据指针,三个 16 位 定时器/计数器, 一个 6 向量 2 级中断结构, 全双工串行口, 片 内晶振及时钟电路。另外,AT89S52 可降至 0Hz 静态逻 辑操作, 支持 2 种软件可选择节电模式。空闲模式下,CPU 停止工作,允 许 RAM、定时器/计数器、串口、中断继续工 作。掉电保护方式 下,RAM 内容被保存,振荡器被冻结, 单片机一切工作停止,直 到下一个中断或硬件复位为止。8 位微控制器 8K 字节在系统可 编程 Flash AT89S52 P0 口:P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出 口,每位能驱动 8 个 TTL 逻 辑电平。对 P0 端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0 口也被作为低 8 位地址 /数据复用。在这种模式下, P0 具有内部上拉电阻。在 flash 编程时, 口也用来接收指令字节; P0 在程序校验时, 输出指令字节。程序校验 时,需要外部上拉电阻。P1 口:P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口, p1 输出缓冲器能驱动 4 个11 TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口 拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻 的原因,将输出电流(IIL)。此外,P1.0 和 P1.2 分别作定时器/计数器 2 的外部计数输入 (P1.0/T2)和时器/计数器 2 的触发输入(P1.1/T2EX),具体如下表所示。在 flash 编程和校验时,P1 口接收低 8 位地址字节。引脚号第二功能 P1.0 T2(定时器/计数器 T2 的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器 T2 的捕捉/重载触发信号和方向 控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口, P2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口 拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻 的原因,将输出电流(IIL)。12 在访问外部程序存储器或用 16 位地址读取外部数据存储器 (例如执行 MOVX @DPTR) 时,P2 口送出高八位地址。在这种应用中,P2 口使用很强 的内部上拉发送 1。在使用 8 位地址(如 MOVX @RI)访问外部数据存储器时,P2 口输出 P2 锁存器的内容。在 flash 编程和校验时,P2 口也接收高 8 位地址字节和一些 控制信号。P3 口:P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口, p2 输出缓冲器能驱动 4 个 TTL 逻辑电平。对 P3 端口写“1”时,内部上拉电阻把端口 拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻 的原因,将输出电流(IIL)。P3 口亦作为 AT89S52 特殊功能(第二功能)使用,如下表所 示。在 flash 编程和校验时,P3 口也接收一些控制信号。端口引脚 第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断 0) P3.3 INT1(外中断 1)13 P3.4 TO(定时/计数器 0) P3.5 T1(定时/计数器 1) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通) 此外,P3 口还接收一些用于 FLASH 闪存编程和程序校验的控 制信号。RST――复位输入。当振荡器工作时,RST 引脚出现两个机器 周期以上高电平将是单片机复位。ALE/PROG――当访问外部程存储器或数据存储器时,ALE (地 址锁存允许)输出脉冲用于锁存地址的低 8 位字节。一般情况下, ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对 外输出时钟或用于定时目的。要注意的是:每当访问外部数据存 储器时将跳过一个 ALE 脉冲。对 FLASH 存储器编程期间,该引脚还用于输入编程脉冲 (PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元 的 D0 位置位,可禁止 ALE 操作。该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。此外,该引脚会被微弱拉高,单片机 执行外部程序时,应设置 ALE 禁止位无效。PSEN――程序储存允许(PSEN)输出是外部程序存储器的读 选通信号,当 AT89C52 由外部程序存储器取指令(或数据)时,14 每个机器周期两次 PSEN 有效,即输出两个脉冲,在此期间,当访 问外部数据存储器,将跳过两次 PSEN 信号。EA/VPP――外部访问允许,欲使 CPU 仅访问外部程序存储器 (地址为 0000H-FFFFH),EA 端必须保持低电平(接地)。需注 意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。如 EA 端为高电平(接 Vcc 端),CPU 则执行内部程序存储器 的指令。FLASH 存储器编程时,该引脚加上+12V 的编程允许电源 Vpp, 当然这必须是该器件是使用 12V 编程电压 Vpp。2.2.设计方框图复位晶振源AT89S5215 各路口红绿灯 灯LED 倒计时显示3. 设计原理分析3.1.交通灯显示时序的理论分析与计算 对于一个交通路口来说,能在最短的时间内达到最大的车流量,就 算是达到了最佳的性能,我们称在时间内多能达到的最大车流 为车流量,用公式:车流量= 车流 / 时间 来表示。先设定一些标号如图 2-1 所示。说明此图为直方图,上边为北路口灯,右边为东路口灯,下边为南路 口灯,左边为西路口灯。图 2-2 所示为一种红绿灯的状态图,分别设定为 S1、S2、 S3、S4,交通灯以这四的状态为一个周期,循环执行(见图 2-3) 。16 图 2-1请注意图 2-1b 和图 2-1d,它们在一个时间段中四个方向都可以通 车,这种状态能在一定的时间内达到较大的车流量,效率特别高。依据上述的车辆行驶的状态图,可以列出各个路口灯的逻辑表,由于 相向的灯的状态图是一样的,所以只需写出相邻路口的灯的逻辑表; 根据图 2-3 可以看出,相邻路口的灯它们的状态在相位上相差 180°。因此最终只需写出一组 S1、S2、S3、S4 的逻辑状态表。如表 2-1 所示。17 表 2-1表中的“×”代表是红灯亮(也代表逻辑上的 0) ,“√”是代表绿 灯亮(也代表逻辑上的 1) ,依上表,就可以向相应的端口送逻辑值。3.2.交通灯显示时间的理论分析与计算 东西和南北方向的放行时间的长短是依据路口的各个方向平时的车 流量来设定,并且 S1、S2、S3、S4 各个状态保持的时间之有严格的 对应关系,其公式如下示。18 T-S1+T-S2=T-S3 T-S2=T-S4 T-S1=T-S3 我们可以依据上述的标准来改变车辆的放行时间。按照一般的规则, 一个十字路口可分为主干道和次干道, 主干道的放行时间大于次干道 的放行时间,我们设定值时也应以此为参考 3.3.电路模块 3.3.1.(1)LED 数码管显示模块静态显示方式:静态显示方式是指当显示器显示某一字符时, 发光二极管的位选始终被选中。在这种显示方式下, 每一个 LED 数码管显示器都需要一个 8 位的输出口进行控制。由于单片机 本身提供的 I/O 口有限,实际使用中,通常通过扩展 I/O 口的 形式解决输出口数量不足的问题。静态显示主要的优点是显示稳定,在发光二极管导通电流一定 的情况下显示器的亮度大,系统运行过程中,在需要更新显示 内容时,CPU 才去执行显示更新子程序,这样既节约了 CPU 的 时间,又提高了 CPU 的工作效率。其不足之处是占用硬件资源 较多,每个 LED 数码管需要独占 8 条输出线。随着显示器位数 的增加,需要的 I/O 口线也将增加。(2) 动态显示方式动态显示方式是指一位一位地轮流点亮每 位显示器(称为扫描) ,即每个数码管的位选被轮流选中,多个19 数码管公用一组段选,段选数据仅对位选选中的数码管有效。对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮 度既与导通电流有关,也与点亮时间和间隔时间的比例有关。通过调整电流和时间参数,可以既保证亮度,又保证显示。若 显示器的位数不大于 8 位, 则显示器的公共端只需一个 8 位 I/O 口进行动态扫描 (称为扫描口) 控制每位显示器所显示的字形 , 也需一个 8 位口(称为段码输出) 。数码管显示子程序DISPMOV MOV DIV MOV A,R2 B,#10 AB 60H,A20 MOV MOV MOV DIV MOV MOV MOV MOV MOV LLPMOV MOV MOVC MOV MOV MOV61H,B A,R3 B,#10 AB 62H,A 63H,B 40H,#04H R5,#0FEH R0,#60H A,@R0 DPTR,#TABLE A,@A+DPTR P0,A A,R5 P2,ALCALL DELAY1 MOV 残影 RL MOV INC DJNZ A R5,A R0 40H,LLP21P2, #0FFH;令显示器熄灭,以免产生 RET DELAY1MOV DL2MOV DJNZ DJNZ RET TABLE:DB DB END 3.3.2. LED 红绿灯显示模块 3FH,24H,5dH,75H,66H 73H,7bH,25H,7fH,77H R4,#12 R7,#12 R7,$ R4,DL2 ;延时子程序本实验有四种状态状态 1, 东西绿灯亮,南北红灯亮,此时 P1.0 口―P1.7 口的高低电 平为#0BBH。子程序ST1MOV P1,#0EBH ;第一个状态,主干道亮绿灯、支干道亮红灯; CJNE MOV DEC DEC R1,#0FFH,TZ1 R1,#00H 20H 23H22 TZ1MOV MOVR2,20H R3,23H ;调用显示子程序。LCALL DISP MOV CJNE MOV A,20H A,#00H,ST1 20H,#25状态 2, 东西黄灯亮,南北红灯亮,此时 P1.0 口―P1.7 口的高低电 平为#0BDH。子程序ST2MOV P1,#0EDH ;第二个状态, 主干道亮黄灯、支干道亮红灯; CJNE MOV DEC DEC TZ2MOV MOV R1,#0FFH,TZ2 R1,#00H 21H 23H R2,21H R3,23H ;调用显示子程序。LCALL DISP MOV CJNE MOV A,21H A,#00H,ST2 21H,#05状态 3, 东西红灯亮,南北绿灯亮,此时 P1.0 口―P1.7 口的高低电23 平为#0DEH。子程序ST3MOV P1,#0BEH ;第三个状态, 主干道亮红灯、支干道亮绿灯; CJNE MOV DEC DEC TZ3MOV MOV R1,#0FFH,TZ3 R1,#00H 24H 22H R2,24H R3,22H ;调用显示子程序。LCALL DISP MOV CJNE MOV A,22H A,#00H,ST3 22H,#15状态 4, 东西红灯亮,南北黄灯亮,此时 P1.0 口―P1.7 口的高低电 平为#0EEH。再采用显示子程序与延时子程序可使 LED 显示灯按照要 求点亮。子程序ST4MOV P1,#0DEH ;第四个状态,主干道 亮红灯、支干道亮黄灯; CJNE MOV R1,#0FFH,TZ4 R1,#00H24 DEC DEC TZ4MOV MOV24H 21H R2,24H R3,21H ;调用显示子程序。LCALL DISP MOV CJNE MOV MOV LJMP程序初始化A,21H A,#00H,ST4 21H,#05 24H,#20 ST1状态 1(S1)状态 2 (S2)状态 3(S3)状态 4(S4)3.3.3.复位电路复位方式有多种,本设计采用按键复位。接线图如图程序 3.1 复位电路, 框图25 在设定的定时时间内,89S52 必须在 RST 引脚产生一个由高到低 的电平变化,以清内部定时器. 3.3.4. 晶振电路晶振电路原理图如 3-2:3-2晶振模块原理图选取原则:传统做法,但能够实现所需,即最简单也最是实用。电容选取 30pF,晶振为 30MHz。4. 结束语 通过这次课程设计,使我得到了一次用专业知识、专业技能分析 和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用 系统开发过程,以及在常用编程设计思路技巧(特别是汇编语言)的26 掌握方面都能向前迈了一大步。本次课程设计的过程是艰辛的,不过 收获却是很大的。在设计过程中,会出现了一些问题,但都是常见的小问题,如代码中双引号的使用并不是在英语书写状态下,输入字母出错等,在 调试时出现异常,不过这些都是经常性错误,经过调试修改都一一解 决,程序顺利完成,并实现了其功能。综合课程设计让我把以前学习到的知识得到巩固和进一步的提 高认识,对已有知识有了更进一步的理解和认识。在此,由于自身能 力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资 料以及和周围同学交流。由于使用的是单片机作为核心的控制元件, 使得电路的可靠性比 较高,功能也比较强大,而且可以随时的更新系统,进行不同状态的 组合。但是在我们设计和调试的过程中,也发现了一些问题,譬如红 灯和绿灯的切换还不够迅速,红绿灯规则不效率还不是很高等等,这 需要在实践中进一步完善。当然,通过这次课程设计,我也发现了自身的很多不足之处,在 以后的学习中,我会不断的完善。5. 参考文献 [1].李朝青.单片机原理及接口技术(第 3 版).2005 年 10 月 [2].蔡朝洋.单片机控制与专题制作 [3].楼然苗.单片机课程设计指导 [4].赵广林.电路设计与制版27 6. 附录 6.1.附录 1:程序清单 ORG LJMP ORG LJMP ORG LJMP ORG LJMP ORG TT1MOV 0000H MAIN 0003H INTT0 0013H INTT1 001BH TT1 0100H TH1,#0D8H ;定时器 1,定时 10us28 MOV DJNZ MOV MOV EXITRETI INTT0:MOV JB RETI INTT1:MOV JB RETI ORG MAINMOV MOV MOVTL1,#0F0H R6,EXIT R6,#100 R1,#0FFH ;定时器定时 100 次P1,#0BEH P3.4,$;外部中断 0,P1,#0BBH P3.4,$;外部中断 1,1000H R6,#100 R1,#00H TMOD,#10H ;初始化 ;主程序;29 MOV MOV MOV MOV MOV MOV MOV MOV SETB ST1MOVTH1,#0D8H TL1,#0F0H IE,#8DH 20H,#25 21H,#5 22H,#15 23H,#30 24H,#20 TR1 P1,#0EBH ;第一个状态,主干道亮绿灯、支干道亮红灯; CJNE MOV DEC DEC TZ1MOV R1,#0FFH,TZ1 R1,#00H 20H 23H R2,20H30 MOVR3,23H ;调用显示子程序。LCALL DISP MOV CJNE MOV ST2MOV A,20H A,#00H,ST1 20H,#25 P1,#0EDH;第二个状态, 主干道亮黄灯、支干道亮红灯; CJNE MOV DEC DEC TZ2MOV MOV R1,#0FFH,TZ2 R1,#00H 21H 23H R2,21H R3,23H ;调用显示子程序。LCALL DISP MOV CJNE A,21H A,#00H,ST231 MOV MOV ST3MOV21H,#05 23H,#30 P1,#0BEH ;第三个状态, 主干道亮红灯、支干道亮绿灯; CJNE MOV DEC DEC TZ3MOV MOV R1,#0FFH,TZ3 R1,#00H 24H 22H R2,24H R3,22H ;调用显示子程序。LCALL DISP MOV CJNE MOV ST4MOV A,22H A,#00H,ST3 22H,#15 P1,#0DEH;第四个状态, 主干道亮红灯、支干道亮黄灯;32 CJNE MOV DEC DEC TZ4MOV MOVR1,#0FFH,TZ4 R1,#00H 24H 21H R2,24H R3,21H ;调用显示子程序。LCALL DISP MOV CJNE MOV MOV LJMP DISPMOV MOV DIV A,21H A,#00H,ST4 21H,#05 24H,#20 ST1 A,R2 B,#10 AB;跳转到第一个状态。;显示子程序。33 MOV MOV MOV MOV DIV MOV MOV MOV MOV MOV LLPMOV MOV MOVC MOV MOV60H,A 61H,B A,R3 B,#10 AB 62H,A 63H,B 40H,#04H R5,#0FEH R0,#60H A,@R0 DPTR,#TABLE A,@A+DPTR P0,A A,R534 MOVP2,ALCALL DELAY1 MOV P2, #0FFH; 注意,这里是程序修改的地方,令显示器熄灭,以免产生残影 RL MOV INC DJNZ RET DELAY1MOV DL2MOV DJNZ DJNZ RET TABLE:DB 3FH,24H,5dH,75H,66H35A R5,A R0 40H,LLP;延时子程序 R4,#12 R7,#12 R7,$ R4,DL2 DB END73H,7bH,25H,7fH,77H6.2.附录 2:电路设计总图36 37
【单片机交通灯实验报告】系统实验报告 系统实验报告――基于 ――基于 51 单片机的交通灯设计专业:XX xx XX学 生 姓 名学 号: wwwwwwwwwww指 导 教 师:2000 年 x 月 x 日1 目录1 设计任务和性能指标 ............................................................................................... 1 1.1 设计任务 .............................................................................................................. 1 1.2 性能指标 .............................................................................................................. 1 2 设计方案 ................................................................................................................... 2 2.1 任务分析 .............................................................................................................. 2 2.2 方案设计 .............................................................................................................. 2 3 系统硬件设计 ........................................................................................................... 3 3.1 单片机的最小系统 .............................................................................................. 3 3.2 电源电路 .............................................................................................................. 4 3.3 数码管显示时间电路设计 .................................................................................. 4 3.4 信号灯控制电路设计 .......................................................................................... 5 4 系统软件设计 ........................................................................................................... 5 4.1 主程序设计 ......................................................................................................... 5 5 调试及性能分析 ....................................................................................................... 6 5.1 调试分析 ............................................................................................................ 6 5.1.1 软件调试....................................................................................................... 6 5.1.2 硬件调试....................................................................................................... 6 5.1.3 系统功能调试............................................................................................... 6 6
................................................................................................................... 6 参考文献 ....................................................................................................................... 8 附录 1 系统原理图 ...................................................................................................... 9 附录 3 程序清单 ........................................................................................................ 10 元器件清单 清单………………………………………………………………….14 附录 3 元器件清单2 1 设计任务和性能指标1.1 设计任务北西 东 南利用单片机完成交通信号灯控制器的设计, 该交通信号灯控制器由一条主干道和 一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮 禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用 红、绿、黄发光二极管作信号灯。如图上图所示。设东西向为主干道,南北为支 干道。1.2 性能指标 1. 状态 1:仅亮灯,数码管不工作。按下键 4,红/黄/绿三色灯交替亮红―〉(20 秒)黄(闪烁)―〉(5 秒)绿―〉(20 秒) 黄(闪烁)―〉(5 秒)红 2. 状态 2:灯和数码管相结合,模拟十字路口的交通灯 在以上功能的基础上数码管倒计时显示时间。1 2 设计方案2.1 任务分析 模拟交通灯控制器就是使用单片机来控制一些 LED 和数码管,模拟真实交通灯 的功能。红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路 口的车辆及行人交通,计时牌显示路口通行转换剩余时间等2.2 方案设计根据设计的要求可知,系统的硬件原理框图如下图所示。系统硬件框图 单片机选用 AT89S52,它与 8051 系列单片机全兼容,但其内部带有 4KB 的 FLASH R OM,设计时无需外接程序存储器,为设计和调试带来极大的方便。南北向和东西向各采用 2 个数码管计时,同时需要对该方向的指示灯的点亮时间进行倒计时。键盘系统可以根据系 统的需要设置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的 IO 口不够用 时,可以考虑扩展 8255 或 8155 满足系统的要求。2. 软件方案 根据设计要求,程序框图如图 1 所示。软件可由汇编语言完成,也可由 C 语言完成。软 件设计可以分为以下几个功能模块主程序:初始化及键盘监控。计时程序模块:为定时器的中断服务子程序,完成 0.1 秒(或其他时间)和 1 秒的时间 定时。显示程序模块:完成 60 个发光二极管(实际上只需驱动 30 个)和 8 个 LED 数码管的显 示驱动。程序流程图见下一页:2 开始初始化判断当前状态调用正常 运行子程序 程序流程图调用紧急 状态子程序3 系统硬件设计3.1 单片机的最小系统 ATMEL 公司生产的 AT89S52 单片机它是硬件电路的核心部分,时钟电路晶振 使用 12MHz,复位电路采取按键复位方式。具体连接图 3.1 和图 3.2。单片机系统的时钟电路3 单片机系统的复位电路3.2 电源电路设计 电源用 5V 直流变压器直接供电。3.3 数码管显示电路 显示电路采用 8 个共阳数码管, 口作为数码管的输入, P1 P0.4、 P0.5、 P0.6 P0.7 分别控制东西南北四路数码管的位选端 C1,C2,C3,C4。数码管显示电路(上图是共阴数码管)4 3.4 信号灯控制电路应急电路4 系统软件设计4.1 主程序设计开始参数初始化显示子程序中断处理紧急中断子程序系统程序流程图5 5 调试及性能分析5.1 调试分析5.1.1 软件调试 软件调试主要是利用 proteus 仿真软件完成电路的搭建,运行以发现设计中 的错误及时改正。5.1.2 硬件调试 硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。具体步骤及测 试结果如下(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导 线是否完全连接,对未连接的进行修复。(2)参照原理图,检查各个器件之间的连接是否连接正确,是否存在虚焊, 经测试,各连接不存在问题。(3)以上两项检查并修复完后,给该硬件电路上电,电源指示灯点亮。5.1.3 系统功能调试 通过软件仿真显示,系统基本能完成要求。6 这次系统实验历时两周的时间,在这实验过程里我们巩固了从编程、焊板到 调试的专业知识,逻辑思维和动手能力都得到了很大的提高。对于交通灯这个题目,由于以前学单片机这个课程时,做过类似相关的实验, 觉得这个比较简单而且做出的东西也比较直观,查阅了大量的资料,在老师的讲 解帮助下,我们对如何通过单片机控制交通灯这个题目,有了进一步的理解。要解决的主要问题就是程序的设计了,虽然感觉交通灯程序没什么难的,就 是数码管倒计时显示加几个闪烁的二极管就完事,但是也许是起初想的太简单, 设计时到了细节处,也出了不少问题,而且很难被检查出来,但是最后经过我们 的不断努力,还是写出来正确的代码。上周终于拿到了 PCB 板, 怀着紧张的心情一个器件一个器件的完成板子的焊 接,最后通过串口线把程序下载到板子上,但是板子却没有意料中的效果,而且 没一点现象, 用万用表检查单片机的电压差不多为零, 查出了问题所在松了口气, 后来在网上查资料知道原来变压器的接口那三个引脚,两个 GND 必须短接,要 不就不能正常供电,本以为短接后就正常了,但是数码管还是没反应,二极管基 本可以正常显示,这时候真是一种煎熬,差了很久找不到原因,后来对照着原理 图一个个的检查, 最后发现原来是数码管封装错了, 板子上的数码管公共极是 3、6 8 两个引脚,但是原理图上封装的事 1、6,当时也没有注意,以为只要是共阴管 就没问题了,没想到软件本身就存在错误。通过这次系统实验,对以前学过的知识进行了巩固,加深了理解,提高了应 用的能力,而且提高了我们的发现、分析、解决问题的能力,同时提高了大家对 专业的认识及兴趣,对于我们工科生来说,对以后就业很有帮助。最后,尤其要感谢 xx 和 xx 老师的指导和帮助,我们才得以顺利完成这次系 统试验。参考文献[1] 邹丽新.单片微型机原理及应用苏州大学出版社,] 彭伟.单片机 C 语言程序设计实训 100 例.北京:电子工业出版社,2009。8附录 1 系统原理图1 2 3 4f ga bf ga bf ga bf g DS3 数数数 DPY f e10 9 8 7 610 9 8 7 610 9 8 7 6U2 D LED1 Q7 9013 LED2 Q8 9013 LED3 Q9 9013 LED4 Q10
5 NUMD 6 NUMC 2 NUMB 1 NUMA 7 LT BI/RBO RBI D C B A 74LS47 DOT g f e d c b a 14 15 9 10 11 12 13 R20 R21 R22 R23 R24 150 R25 150 150 R26 R27 150 150 150 150 g f e d c b aDPY f ea g d b cDS1 数数数 DPY f ea ba ba ba bf gf gf gf gDS2数数数10 9 8 7 6 DS4数数数a bVCCDa g d b cDPY f ea g d b ca g d b cvc1vc2vc3vc4e d com c dpe d com c dpe d com c dp 1 2 3 4 5 e d vc3 c dp150 dp1 2 3 4 51 2 3 4 5e d vc1 c dpe d vc2 c dpU1 RP1 VCC 10K排排 1 9 8 7 6 5 4 3 2 KEYA KEYB KEYC KEYD MOSI MISO SCK 1 2 3 4 5 6 7 8 13 12 C5 20p XTAL1 11.0592 VCC 31 C6 VCC RST 9 B C12 22u R10 1K LED1绿RP3 P00 P01 P02 P03 P04 P05 P06 P07 P20 P21 P22 P23 P24 P25 P26 P27 39 38 37 36 35 34 33 32 21 22 23 24 25 26 27 28 NUMA NUMB NUMC NUMD LED1 LED2 LED3 LED4 L1 L2 L3 L4 L5 L6 DOT 2 3 4 5 6 7 8 9 2 3 4 5 6 7 8 9 RP4 RXD TXD ALE/P PSEN 10 RXD 11 TXD 30 29 VCC10K排排 VCC 1 J2 5 4 3 2 1 5芯芯芯 1 D1 J3 3 2 1 3芯芯芯 AC整整整CP10 P11 P12 P13 P14 P15 P16 P17 INT1 INT0 T1 T0 EA/VP X1 X2 RESET RD WR AT89S51J1 VCC GND MOSI MISO SCK 5 4 3 2 1 5芯芯芯 U5 LMU 2 GND + 1 Vin Vout 3 C9 0.1U VCC GND GND RXD TXDe d vc4 c dp1 2 3 4 5e d com c dpC15 14VCCR1 1K LEDPower红红AC20p19 1810K排排17 KEYRESET 16按按BLED2红红LED3黄LED4绿LED5红红LED6黄KEYA K1按按KEYB K2按按KEYC K3按按KEYD K4按按R2 1KR3 1KR4 1KR5 1KR6 1KR7 1KAL1Q1
系统原理图7 附录 2 程序清单;-----------------------------------;程序实现功能 ;西南北路口直行与转弯交替通行,数码管显示直行通行倒计时,红绿黄灯显示包括人行道 在内的道路交通状态。;某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间。;紧急情况时,各路口交通灯显示红灯,数码管保持数据不变。#include&reg51.h& #define uchar unsigned char #define uint unsigned int sbit key1=P1^0; sbit key2=P1^1; sbit key3=P1^2; sbit key4=P1^3; sbit smgwe1=P0^4; sbit smgwe2=P0^5; sbit smgwe3=P0^6; sbit smgwe4=P0^7; sbit smgdot=P2^7; sbit south_green=P2^0; sbit south_red=P2^1; sbit south_yellow=P2^2; sbit east_green=P2^3; sbit east_red=P2^4; sbit east_yellow=P2^5; sbit num_a=P0^0; sbit num_b=P0^1; sbit num_c=P0^2; sbit num_d=P0^3; uchar type=1; uchar south_dispnum=10,east_dispnum=5; void delay_ms(uint z) { uchar x,y;8 for(x=0;x&z;x++) for(y=0;y&123;y++); } void timer0_init() { TMOD=0x01; TH0=()/256; TL0=()%256; ET0=1; EA=1; TR0=1; } void display(uchar south_dispnum,uchar east_dispnum) { uchar south_dispnum1,south_dispnum2; uchar east_dispnum1,east_dispnum2; south_dispnum1=south_dispnum/10; south_dispnum2=south_dispnum%10; east_dispnum1=east_dispnum/10; east_dispnum2=east_dispnum%10; smgwe1=1; smgwe2=0; smgwe3=0; smgwe4=0; num_d=south_dispnum1/8; num_c=south_dispnum1%8/4; num_b=south_dispnum1%4/2; num_a=south_dispnum1%2; delay_ms(1); smgwe1=0; smgwe2=1; smgwe3=0; smgwe4=0; num_d=south_dispnum2/8; num_c=south_dispnum2%8/4; num_b=south_dispnum2%4/2; num_a=south_dispnum2%2; delay_ms(1); smgwe1=0;9 smgwe2=0; smgwe3=1; smgwe4=0; num_d=east_dispnum1/8; num_c=east_dispnum1%8/4; num_b=east_dispnum1%4/2; num_a=east_dispnum1%2; delay_ms(1); smgwe1=0; smgwe2=0; smgwe3=0; smgwe4=1; num_d=east_dispnum2/8; num_c=east_dispnum2%8/4; num_b=east_dispnum2%4/2; num_a=east_dispnum2%2; delay_ms(1); } void traffic_light() { switch(type) { case 1south_red=1; south_green=0; south_yellow=0; east_red=0; east_green=1; east_yellow=0; display(south_dispnum,east_dispnum); if(east_dispnum==0) { east_dispnum=5; south_dispnum=5; type=2; } case 2:south_red=1; south_green=0; // south_yellow=0;10 east_red=0; east_green=0; // east_yellow=0; display(south_dispnum,east_dispnum); if(east_dispnum==0) { south_dispnum=5; east_dispnum=10; type=3; } case 3:south_red=0; south_green=1; south_yellow=0; east_red=1; east_green=0; east_yellow=0; display(south_dispnum,east_dispnum); if(south_dispnum==0) { south_dispnum=5; east_dispnum=5; type=4; } case 4:south_red=0; south_green=0; // south_yellow=0; east_red=1; east_green=0; // east_yellow=0; display(south_dispnum,east_dispnum); if(east_dispnum==0) { south_dispnum=10; east_dispnum=5; type=1; } }11 } void main() { timer0_init(); while(1) { traffic_light(); } } void timer0_isr() interrupt 1 { TH0=()/256; TL0=()%256; count++; if(count==5) { if(type==2) { east_yellow=!east_ } if(type==4) { south_yellow=!south_ } } if(count==20) { count=0; south_dispnum--; east_dispnum--; } }12 附录 1 元器件清单数量 器件类型 原理图符号 封装 Used Part Type Designator Footprint Description ==== =================== ========== =========== ============== 排阻 3 10K 排阻 RP1 RP3 SIP9 RP4 ==== =================== ========== =========== ============== 电阻(1/8w) 8 150 R20 R21 AXIAL0.4 R22 R23 R24 R25 R26 R27 8 1K R1 R2 R3 AXIAL0.4 R4 R5 R6 R7 R10 ==== =================== ========== =========== ============== 电容(耐压 16V) 1 0.1u C9 RAD0.2 2 20p C5 C6 RAD0.2 1 22u C12 RB.2/.4 1 470u C7 RB.2/.4 ==== =================== ========== =========== ============== 晶振 1 11.0592M XTAL1 XTAL1 ==== =================== ========== =========== ============== 三极管 10
Q3 TO-92C NPN Transistor Q4 Q5 Q6 Q7 Q8 Q9 Q10 ==== =================== ========== =========== ============== 集成块 1 74LS47 U2 DIP16 1 AT89S51 U1 DIP40 1 LM7805 U5 TO-220S==== =================== ========== =========== ==============13 按键(四脚扁平,脚距 4.57*7.1) 5 按键 K1 K2 K3 KEY6x6 K4 KEYRESET ==== =================== ========== =========== ============== 发光二极管 3 红灯 LED2 LED5 LED LEDPower 2 黄 LED3 LED6 LED 2 绿 LED1 LED4 LED ==== =================== ========== =========== ============== 0.8&数码管(带小数点) 4 数码管 DS1 DS2 LED08 DS3 DS4 ==== =================== ========== =========== ============== 1 整流桥 D1 BRIDGE_C ==== =================== ========== =========== ============== 9V 变压器14
【单片机交通灯实验报告】单片机系统课程设计报告专业:网络工程 1 班学 生 姓 名学 号:完成日期:2011 年 10 月 28 日1 1 设计任务和性能指标1.1 设计任务北西 东 南利用单片机完成交通信号灯控制器的设计, 该交通信号灯控制器由一条主干道和 一条支干道汇合成十字路口,在每个入口处设置红、绿、黄三色信号灯,红灯亮 禁止通行,绿灯亮允许通行,黄灯亮则给行驶中的车辆有时间停在禁行线外。用 红、绿、黄发光二极管作信号灯。如图上图所示。设东西向为主干道,南北为支 干道。1.2 性能指标 (1)处于常允许通行的状态,支干道有车来时才允许通行。主干道亮绿灯时, 支干道亮红灯;支干道亮绿灯时,主干道亮红灯。(2)干道均有车时,两者交替允许通行,主干道每次放行 60 秒,支干道每次放 行 40 秒,设立 60 秒、40 秒计时、显示电路。1 (3)绿灯亮到红灯亮的转换过程中,要亮 5 秒黄灯作为过渡。黄灯亮时,原红 灯按 1Hz 的频率闪烁。(4)支干道通行时间及黄灯亮的时间均可在 0~99 秒内任意设置。2 设计方案2.1 任务分析 模拟交通灯控制器就是使用单片机来控制一些 LED 和数码管,模拟真实交通灯 的功能。红、黄、绿交替闪亮,利用数码管倒计数显示间隔等,用于管理十字路 口的车辆及行人交通,计时牌显示路口通行转换剩余时间等2.2 方案设计根据设计的要求可知,系统的硬件原理框图如下图所示。键盘单 片 机LED显示三色指示灯系统硬件框图 单片机可选用 AT89C52, 它与 8052 系列单片机全兼容, 但其内部带有 4KB 的 FLASH ROM,设计时无需外接程序存储器,为设计和调试带来极大的方便。南北向和东西向各采 用 2 个数码管计时, 同时需要对该方向的指示灯的点亮时间进行倒计时。键盘系统可以根据 系统的需要设置不同的键的个数,可以选择线式键盘或矩阵式键盘,若单片机的 IO 口不够 用时,可以考虑扩展 8255 或 8155 满足系统的要求。2. 软件方案 根据设计要求,程序框图如图 1 所示。软件可由汇编语言完成,也可由 C 语言完成。软 件设计可以分为以下几个功能模块主程序:初始化及键盘监控。计时程序模块:为定时器的中断服务子程序,完成 0.1 秒(或其他时间)和 1 秒的时间 定时。2 显示程序模块:完成 60 个发光二极管(实际上只需驱动 30 个)和 8 个 LED 数码管的显 示驱动。开始初始化判断当前状态调用正常 运行子程序 程序流程图调用紧急 状态子程序3 系统硬件设计3.1 单片机的最小系统 ATMEL 公司生产的 AT89C52 单片机它是硬件电路的核心部分,时钟电路晶振 使用 12MHz,复位电路采取按键复位方式。具体连接图 3.1 和图 3.2。单片机系统的时钟电路3 单片机系统的复位电路3.2 电源电路设计 电源用 5V 直流变压器直接供电。3.3 数码管显示电路 显示电路采用 8 个共阴数码管, 口作为数码管的输入, P1 P3.4、 P3.5、 P3.6 P3.7 分别作为东西南北四路数码管的位选端。数码管显示电路4 3.4 信号灯控制电路应急电路4 系统软件设计4.1 主程序设计开始参数初始化显示子程序中断处理紧急中断子程序系统程序流程图5 5 调试及性能分析5.1 调试分析5.1.1 软件调试 软件调试主要是利用 proteus 仿真软件完成电路的搭建,运行以发现设计中 的错误及时改正。5.1.2 硬件调试 硬件调试主要是检测硬件电路是否有短路、断路、虚焊等。具体步骤及测 试结果如下(1)检查电源与地线是否全部连接上,用万用表对照电路原理图测试各导 线是否完全连接,对未连接的进行修复。(2)参照原理图,检查各个器件之间的连接是否连接正确,是否存在虚焊, 经测试,各连接不存在问题。(3)以上两项检查并修复完后,给该硬件电路上电,电源指示灯点亮。5.1.3 系统功能调试通过软件仿真显示,系统基本能完成要求,由于设计思路出现问题,键盘没有正确的 做出来,没有键盘电路,紧急情况也可以通过一个按钮来采取相关的动作。6 心得体会这次单片机课程设计历时两个星期的时间,在这次设计过程里我体验了从设 计、画板、编程、焊板到调试的整个过程。对于交通灯这个题目, 由于以前学单片机这个课程时,做过类似相关的实验, 觉得这个比较简单而且做出的东西也比较直观,在确定题目之后,查阅了大量的 资料,初步完成了电路设计方案。接着就是画电路板,这个软件的应用学过了,但是学的时候感觉很简单,但 是到了具体设计的时候,问题不断的出来,比如有的器件库里面没有封装,要自 己花封装,这时候就很容易出问题,比如焊盘的大小,有的器件上焊盘大小不一 样,有个别大的是用来固定的,这个很容易被忽略。接下来就是程序的设计了,虽然感觉交通灯程序没什么难的,就是数码管倒 计时显示加几个闪烁的二极管就完事,但是也许是起初想的太简单,设计时到了 细节处,也出了不少问题,而且很难被检查出来,但是最后经过不断努力,还是 写出来正确的代码。通过这次课设,对以前学过的知识进行了巩固,加深了理解,提高了应用的能力, 而且提高了我们的发现、分析、解决问题的能力。经历了从最初的设计到最后做出产品的开 发过程,提高了对专业的认识及兴趣,对于我来说,对以后就业有及其重大的影响。6 参考文献[1] [2] [3] [4] 徐维祥.单片微型机原理及应用 大连理工大学出版社,2006.12 胡汉才.单片机原理与接口技术[M].北京清华大学大学出版社,. 闫胜利.Altium Designer 6.X中文版使用教程 电子工业出版社 2007.6 李泉溪.单片机原理7 附录 1 系统原理图8 附录 2 系统仿真图9 附录 3 程序清单;-----------------------------------;程序实现功能 ;西南北路口直行与转弯交替通行,数码管显示直行通行倒计时,红绿黄灯显示包括人行道 在内的道路交通状态。;某一方向道路拥挤时,可以人工控制调节东西南北方向通行时间。;紧急情况时,各路口交通灯显示红灯,数码管保持数据不变。;工作寄存器及存储单元分配 ;1.工作寄存器 ;R2 设置为定时器定时中断次数,R6、R7 用于延时程序中的寄存器 ;2.片内存储单元 ;30H、 31H 作为两组数码管显示数据存储单元;32H、 33H 作为交通灯初始状态存储单元;40H、 41H 作为交通灯显示数据存储单元 ;3.标志位 ;00H:南北通行标志位 ; 01H:东西通行标志位;02H:紧急事件标志位 ;----------------------------------SNF EQU 00H ;;;南北通行标志位 EWF EQU 01H ;;;东西通行标志位 URF EQU 02H ;;;紧急事件标志位 ORG 0000H LJMP MAIN ;;;上电转主程序 ORG 000BH ;;;定时中断入口 LJMP DSZD ORG 0003H ;;;紧急中断入口 LJMP URZD ORG 0030H MAINLCALL INIT ;;;调用初始化子程序 LOOPLCALL DIS ;;;循环执行显示子程序 AJMP LOOP ;///////////初始化程序 INITSETB SNF SETB EWF SETB URF MOV R2,#20 ;;;定时器中断 20 次为 1s MOV TMOD,#01H ;;;初始化定时器 MOV TL0,#0B0H MOV TH0,#3CH SETB EA ;;;开定时中断与紧急中断10 SETB SETB SETB SETB MOV MOV MOV MOV MOV MOV 中ET0 TR0 EX0 IT0 DPTR,#TAB 40H,#40 41H,#40 30H,#40 31H,#60 P0,#4CH;;;设置中断程控方式 ;;;数值首地址放入 DPTR 中 ;;;东南西北通行时间设置 ;;;通行时间初始化 ;;;初始化时南北通行并把交通灯状态分别放在 32H 和 33HMOV 32H,#4CH MOV P2,#15H MOV 33H,#15H RET ;////////////显示子程序 DISMOV P3,#0DFH MOV A,30H MOV B,#10 DIV AB MOVC A,@A+DPTR MOV P1,A LCALL D1MS MOV P3,#0EFH MOV A,B MOVC A,@A+DPTR MOV P1,A LCALL D1MS;;;选中南北方向的十位数码管 ;;;把显示数据送人数码管显示;;; ;;;选中南北方向的个位数码管 ;;;送入数码管显示MOV P3,#7FH ;;;选中第东西方向的十位数码管 MOV A,31H ;;;送入数码管显示 MOV B,#10 DIV AB MOVC A,@A+DPTR MOV P1,A LCALL D1MS MOV P3,#0BFH ;;;选中第东西方向的个位数码管 MOV A,B MOVC A,@A+DPTR MOV P1,A LCALL D1MS SETB P3.0 SETB P3.1 JNB P3.0,DIS_S ;;;查询是否第一个按键按下11 JNB P3.1,DIS_E ;;;查询是否第二个按键按下 AJMP DIS_R ;;;没有键按下则返回 DIS_S:LCALL D5MS ;;;按键去抖 JNB P3.0,DIS_SN AJMP DIS_R DIS_SN:MOV 40H,#50 ;;;对通行时间从新分配,南北通行时间加长 MOV 41H,#30 AJMP DIS_R DIS_E:LCALL D5MS ;;;按键去抖 JNB P3.1,DIS_EW AJMP DIS_R DIS_EW:MOV 40H,#30 ;;;东西通行时间加长 MOV 41H,#50 DIS_R:RET ;///////定时中断处理程序 DS_CLJMP DS_R ;;;接力跳转 DSZDPUSH ACC ;;;保护现场 PUSH PSW CLR TR0 ;;;关定时器及中断标志位并重新赋值 CLR TF0 MOV TL0,#0B0H MOV TH0,#3CH DJNZ R2,DS_C ;;;判断 1m 时间是否到达 MOV R2,#20 ;;;到达重新赋值 DEC 30H ;;;南北方向通行时间减一 MOV A,30H ;;;把减一后的时间送入显示存储单元 ;;;;;;;南北通行到达最后 4 秒时黄灯闪烁 DS_10:CJNE A,#4,DS_11 ;;;如果通行时间剩余 4 秒 JNB SNF,DS_11 ;;;判断是否是南北通行 MOV P0,#8AH MOV 32H, #8AH ;;;把交通灯状态存入存储单元(后面类似) DS_11:CJNE A,#3,DS_12 ;;;不是剩余 3 秒,返回 JNB SNF,DS_12 ;;;不是南北通行时间,返回 MOV P0,#88H MOV 32H, #88H DS_12:CJNE A,#2,DS_13 JNB SNF,DS_13 MOV P0,#8AH MOV 32H, #8AH DS_13:CJNE A,#1,DS_14 JNB SNF,DS_14 MOV P0,#88H MOV 32H, #88H ;------------------------12 DS_14:JNZ DS_NE ;;;通行时间没有结束转向改变东西方向的数码管 CPL SNF ;;;如果通行时间结束则对标志位取反 JNB SNF,DS_1 ;;;判断是否南北通行 MOV 30H,40H ;;;是,点亮相应的交通灯 MOV P0,#4CH MOV 32H,#4CH ;;;存储交通灯状态 MOV P2,#15H MOV 33H, #15H ;;;存储交通灯状态 DS_NE:DEC 31H ;;;东西方向通行时间减一 MOV A,31H ;;;把通行剩余时间送入显示存储单元 ;;;;;;;;东西方向通行时间剩余 4 秒钟黄灯闪烁(程序注释与南北方向类似 略) DS_20:CJNE A,#4,DS_21 JB EWF,DS_21 MOV P0,#51H MOV 32H, #51H DS_21:CJNE A,#3,DS_22 JB EWF,DS_22 MOV P0,#41H MOV 32H, #41H DS_22:CJNE A,#2,DS_23 JB EWF,DS_23 MOV P0,#51H MOV 32H, #51H DS_23:CJNE A,#1,DS_24 JB EWF,DS_24 MOV P0,#41H MOV 32H, #41H ;----------------------------DS_24:JNZ DS_R ;;;东西方向时间没有结束,返回 CPL EWF ;;;对通行状态取反 JNB EWF,DS_2 ;;;东西方向通行时间到来,跳转 MOV 31H,#80 ;;;东西方向通行结束,重新显示时间 MOV P0,#89H ;;;点亮相应的交通灯 MOV 32H, #89H MOV P2,#29H MOV 33H, #29H AJMP DS_R DS_1MOV 30H,#80 ;;;南北通行时间结束,重新对显示存储单元赋值 MOV P0,#89H ;;;执行转弯状态 1 MOV 32H, #89H MOV P2,#26H MOV 33H, #26H AJMP DS_NE DS_2MOV 31H,41H ;;;东西方向开始通行,赋值予显示存储单元13 MOV P0,#61H ;;;点亮相应的交通灯 MOV 32H, #61H MOV P2,#15H MOV 33H, #15H DS_RSETB TR0 POP PSW ;;;恢复现场 POP ACC RETI ;/////////////紧急中断处理程序 URZDPUSH ACC ;;;保护现场 PUSH PSW CLR IE0 ;;;清除中断标志位 CLR TR0 ;;;关定时器 CPL URF ;;;紧急事件标志位 JB URF,UR_CON ;;;紧急结束;跳转 MOV P0,#49H ;;;各路口灯全显示红灯亮 MOV P2,#15H AJMP UR_R UR_CON:SETB TR0 ;;;恢复正常交通 MOV A,32H MOV P0,A MOV A,33H MOV P2,A UR_RPOP PSW ;;;恢复现场 POP ACC RETI ;////////////查表指令 TABDB 3FH, 06H, 5BH, 4FH, 66H, 6DH DB 7DH, 07H, 7FH, 6FH ;//////////延时 5ms 与 1ms D5MSMOV R7,#5 D1MSMOV R7,#10 MOV R6,#50 L1DJNZ R6,$ DJNZ R7,L1 RET END14
【单片机交通灯实验报告】【摘要】交通在人们的日常生活中占有重要的地位, 随着人们社会活动的日益频繁, 这点更是体现的淋漓尽致。交通信号灯的出现,使交通得以有效管制,对于疏 导交通流量、提高道路通行能力,减少交通事故有明显效果。本系统采用单片 机 AT89C51 为中心器件来设计交通灯控制器,系统实用性强、操作简单、扩展 性强。本设计就是采用单片机模拟十字路口交通灯的各种状态显示以及倒计时 时间。软件上采用 C51 编程,主要编写了主程序,LED 数码管显示程序,中断 程序延时程序等。经过整机调试,实现了对十字路口交通灯的模拟。关键关键词:显示,单片机,交通灯 Abstract:Traffic in People's Daily life has important position, as people of social activities have become increasingly frequent, this is reflected the incisively and vividly. The emergence of the traffic lights, traffic is effectively controlled, for facilitating traffic flow, improve road capacity, reduce traffic accidents have obvious effect. The system USES AT89C51 single chip for center device to designing traffic light controller, system practical, simple operation and expandability. This design is simulated by single chip microcomputer intersection traffic lights to the various states display, and the countdown time. Software is used on C51 programming, mainly to write the main program, LED digital tube show program, interruption program delay procedures, etc. After the commissioning, realize the intersection of traffic simulation.KEYWORDSTraffic Control, Single Chip Microcomputer , 80C51 目录前言 .......................................................................................................................................................... 1 1 交通灯设计方案的选择与论证 ........................................................................................................... 2 1.1 设计任务及要求论证 ............................................................................................................. 2任务1.1.1 任务........................................................................................................................................... 2 1.1.2 方案选择与论证 ....................................................................................................................... 2 1.2 设计主要内容及设计思路 .......................................................................................................... 3 1.3 方案组成和说明 .......................................................................................................................... 4 1.4 AT89C51 简介 ............................................................................................................................... 5 1.5 两位七段式数码管 ....................................................................................................................... 81.5.1 两位七段式数码管介绍................................................. 82 系统硬件设计与实现 .......................................................................................................................... 9 2.1 简易交通灯基本组成部分 ........................................................................................................... 9 2.2 时钟电路设计 ............................................................................................................................... 9 2.3 复位电路设计 ............................................................................................................................ 10 2.4 按键接口电路设计 .................................................................................................................... 10 2.5 交通灯状态显示电路的设计 ..................................................................................................... 112.5.1 LED 基本结构 .......................................................... 12 2.5.2 LED 译码方式 .......................................................... 13 2.5.3 LED 显示器与单片机接口设计 ............................................ 133 系统软件设计 .................................................................................................................................... 14 3.1 程序流图 .................................................................................................................................... 14 4 系统调试 ............................................................................................................................................ 16 4.1 硬件调试 ..................................................................................................................................... 16 4.2 软件调试 ..................................................................................................................................... 16 4.3 PROTEUS 软件仿真 ........................................................................................................................ 164.3.1 仿真过程 .............................................................. 175 毕业设计体会 ..................................................................................................................................... 19 5.1 心得体会 ..................................................................................................................................... 19 结束语 .................................................................................................................................................... 20 文献 ........................................................................................................................................................ 21 附录一附录一:交通灯硬件电路 .................................................................................................................... 22 附录二附录二:源程序 .................................................................................................................................... 23 附录三附录三:元器件清单及使用说明 ........................................................................................................ 29 前言今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效 的手段。但这一技术在 19 世纪就已出现了。1858 年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械 扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868 年, 英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世 界上最早的煤气红绿灯。它由红绿两块以旋转式方形玻璃提灯组成,红色表示 “停止” ,绿色表示“注意” 。1869 年 1 月 2 日,煤气灯爆炸,使警察受伤,遂 被取消。1914 年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的 投光器组成,安装在纽约市 5 号大街的一座高塔上。红灯亮表示“停止” ,绿灯 亮表示“通行” 。1918 年,又出现了带控制的红绿灯和红外线红绿灯。带控制的红绿灯,一 种是把压力探测器安在地下,当车辆接近时,红灯便变为绿灯;另一种是用扩音 器来启动红绿灯,司机遇红灯时按一下喇叭,就使红灯变为绿灯。红外线红绿 灯当行人踏上对压力敏感的路面时,它就能察觉到有人要过马路。红外光束能 把信号灯的红灯延长一段时间,推迟汽车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行 能力,减少交通事故有明显效果。1968 年,联合国《道路交通和道路标志信号 协定》对各种信号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以 直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必 须让合法地正在路口内行驶的车辆和过人行横道的行人优先通行。红灯是禁行 信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面 对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可 以进入交叉路口。随着经济的发展,交通运输中出现了一些传统方法难以解决的问题。道路 拥挤现象日趋严重,造成的经济损失越来越大,并一直保持大比例的增长。由 于生活水平的提高,人们对交通运输的安全性及服务水平提出了更高的要求。在交通中管理引入单片机交通灯控制代替交管人员在交叉路口服务,有助于提 高交通运输的安全性、提高交通管理的服务质量。并在一定程度上尽可能的降 低由道路拥挤造成的经济损失,同时也减小了工作人员的劳动强度。中国车辆数量不断增加,交通控制在未来的交通管理中起着越来越重要的 作用。1 交通灯设计方案的选择与论证 方案的选择 1 交通灯设计方案的选择与论证1.1 设计任务及要求论证1.1.1 任务:本设计系统是基于单片机的模拟交通灯控制系统,具有一定的实际意义。本 课题的目的是以单片机为核心, 通过 LED 数码管显示和 LED 灯完成了十字路口的 工作状态的模拟,并且通过按键有效的控制等待时间的长短。其运行可靠,操作 方便,适用性强,可以广泛应用于城市路口,具有较大的推广价值。设计好后通 过 PROTUES 软件仿真,并调试。1.1.2 方案选择与论证交通灯控制系统,可由多种电路来构成,我们这里提供三种方案供选择方案一:采用可编程控制器,可编程控制器又称 PLC 是一种数字运算操作 的电子系统,专为在工业环境下的应用而设计。它采用可编程的存储器,存储 执行逻辑运算、顺序控制、定时、计数和算术运算等操作的面向用户的指令, 并能通过数字或模拟输入输出模块,控制各种类型的机械或生产过程。PLC 控 制一般具有可靠性高、易操作、维修、编程简单、灵活性强等特点。PLC的主要特点1) 可靠性:对维修的产品,可靠性包括产品的有效性和可维修性; 2) 易操作性:对 PLC 的操作包括程序输入和更改的操作。大多数 PLC 采用编 程器进行输入和更改的操作。编程器至少提供了输入信息的显示,对大中型的 PLC,编程器采用了 CRT 屏幕显示,因此,程序的输入直接可以显示。更改程序 的操作也可以直接根据所需要的地址编号或接点号进行搜索或顺序寻找,然后 进行更改。更改的信息可在液晶屏或 CRT 上显示。3) 编程方便。PLC 有多种程序设计语言可供使用。4) 灵活性:PLC 采用的编程语言有梯形图,布尔助记符、功能表图、功能模块 和语描述编程语言编程方法的多样性使编程方便,应用面拓展。扩展灵活性 是它的一个重要特点。它可根据应用的规模不同,即可进行容量的扩展、功能 的扩展、应用和控制范围的扩展。但是 PLC 的价格过于昂贵,不易拓展和升级,无法实现大众化,所以控制 系统将向单片机控制系统逐渐过度。方案二:采用 FPGA(现场可编程门阵列)作为系统的控制器。FPGA 可以实 现各种复杂的逻辑功能,规模大,密度高,它将所以器件集中在一块芯片上, 减小了体积,提高了稳定性,并且可一应用 EDA 软件仿真、调试,易于进行功2 能扩展。FPGA 采用并行的输入输出方式,提高了系统的处理速度,适合作为大 规模实时系统的控制核心。但由于本设计对数据处理的速度要求不高,FPGA 的 高速处理优势得不到充分体现,并且由于起集成度高,使其成本偏高,同时由 于芯片的引脚较多,实物硬件电路板布线复杂,加重了电路设计和实际焊接的 工作。方案三:采用单片机编程控制的方式。随着大规模集成电路技术的发展, 微型计算机也在不断的进步,而其中就包含单片机技术。单片机主要应用于控 制领域,用以实现各种测试和控制功能。单片机的特点1) 控制系统在线作用。单片机的控制作用可分为两个方面:一是离线控制, 二是在线控制。2) 软硬件结合。单片机的引入使控制系统大大“软化”,相比其他计算机应 用问题,单片机控制应用中的硬件内容较多,所以单片机控制应用有软硬 结合的特点。3) 应用现场环境恶劣。通常单片机应用现场的环境比较恶劣,电磁干扰、电 源波动、冲击振动、高低温等因素都会影响系统的工作的稳定。此外,无 人值守的环境也会对单片机系统的稳定性和可靠性提出更高的要求。所以 稳定和可靠在单片机的应用中具有格外重要的意义。4) 应用的广泛性。在生活和生产的各个领域中,凡是有自动控制要求的地方 都会有单片机的身影出现。其应用领域包括工业自动化方面、仪器仪表方 面、家用电器方面、信息和通信产品方面以及军事装备方面。5) 综上所述,单片机的稳定性,可靠性都有着很好的保证,它也具有一定的 精度,且低电压、低功耗。从经济方面考虑,也最为合适。所以此次设计 选用单片机为核心控制器。在本系统的开发和设计中,选择 ATMEL 公司的 AT89C52 单片机最合适。1.2 1.2 设计主要内容及设计思路内容:1) 单片机基本系统电路设计; 2) 显示、按键电路设计; 3) 软件设计; 4) Proteus professional 软件的模拟仿真;设计思路:交叉字路口是城市交通运输的咽喉,如何使各种交通流顺畅地通过是城市 交通信号控制系统成功与否的关键。随着现代城市的发展,交通流量的增加,3 现在的大中城市都以六车道居多,本方案即以六车道为控制对象,其结构如图 2-1 所示:图 1-1 交叉路口结构图本设计主要是关于交通灯的智能控制,车辆行驶时共有直行、左转、右转 三个方向,通过数码管对倒计时间的显示和红、绿、黄三色灯的指示,以达到 交通顺畅通行的目的。同时,可以通过按键来控制倒计时的长短,实现智能控 制人流高峰和低谷时,交通灯运行的状态。1.3 方案组成和说明单片机模块是整个系统的核心部分,在这样一个模拟交通灯系统中,需要 有时钟电路模块提供基准震荡频率以及单片机基本系统、指示电路、显示电路、 键盘电路、电源电路、下载线电路设计。系统基本原理方框图如图 1-2

我要回帖

更多关于 8个led灯依次点亮 的文章

 

随机推荐