




已阅读5页,还剩16页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目 录第一章 设计说明31.1 设 计 内 容 31.2 主 要 设 备 与 器 材31.3设计要求3第 二 章 硬 件 方 案32.1 设 计 思 路32.2 原 理 电 路 图32.3 主 要 元 件 功 能 说 明42.3.1 8255A的 主 要 功 能 52.3.2 ADC0809的 主 要 功 能52.4 工 作 原 理 阐 述5第 三 章 软 件 方 案3.1分析论证63.2程序流程图63.3交通灯硬件线路图63.2交通灯主程序7第 四 章 设 计 总 结20 参考文献20第 一 章 设 计 说 明1.1 设计内容设计用单片机控制的十字路口交通灯及撞红灯报警控制系统,并实现这些功能。1.2 主要设备与器材计算机、51单片机最小系统板、并行接口芯片8255A一片或8155(自选),发光二极管红、绿、蓝各4只,2只LED数码管,显示时间秒,ADC0809一片)其他器件任选。1.3 设计要求(1)设计接口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接图。1、 (2)编写程序实现下列功能:用红、绿、黄三支共两组发光二极管表示交通信号灯,利用单片机模拟有时间显示的定时交通信号灯控制管理。信号灯的变化规律可如下: 放行线:绿灯亮放行25秒,黄灯亮警告5秒,然后红灯亮禁止。 禁示线:红灯亮禁止30秒,然后绿灯亮放行。 当某一方向的红灯亮时,若该方向有车通过,则用扬声器声报警。(撞红灯信号可用3-5V模拟量表示) 同时用2位数码管进行30秒钟递减时间显示。第 二 章 硬 件 方 案2.1 设计思路本系统硬件上采用8051单片机和并行接口芯片8255A,分别控制图2所示的四个组合。8051单片机具有MCS-51内核,片内有128字节的SRAM作为片内数据存储器使用,字节地址为00H7FH.。还有21个特殊功能寄存器用于各种编程控制。它还有4KB的片内程序存储器(掩膜ROM),地址为0000H0FFFH。最高工作频率可达24MHz,完全可以满足本系统的需要 ;与其他控制方法相比,所用器件可以说是比较简单经济的。1、 电源提供方案为使模块稳定工作,须有可靠电源。我们考虑了两种电源方案方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,我们选择第二种方案。2、 显示界面方案该系统要求完成。基于上述原因,我们考虑了三种方案:方案一:完全采用数码管显示。这种方案只显示有限的符号和数码字苻,无法胜任题目要求。方案二:完全采用点阵式LED 显示。这种方案实现复杂,且须完成大量的软件工作;但功能强大,可方便的显示各种英文字符,汉字,图形等。方案三:采用数码管与点阵LED 相结合的方法因为设计既要求倒计时数字输出,又要求有状态灯输出等,为方便观看并考虑到现实情况,用数码管与LED灯分别显示时间与提示信息。这种方案既满足系统功能要求,又减少了系统实现的复杂度。权衡利弊,第三种方案可互补一二方案的优缺,我们决定采用方案三以实现系统的显示功能。3、 输入方案:题目要求系统能手动设灯亮时间、紧急情况处理,我们讨论了两种方案:方案一:采用8155扩展I/O 口及键盘,显示等。该方案的优点是:使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O 口,但操作起来稍显复杂。方案二: 直接在IO口线上接上按键开关。因为设计时精简和优化了电路,所以剩余的口资源还比较多,我们使用四个按键,分别是K1、K2、K3、K4。由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用,故选择方案二。2.2 原理电路图说明:8255A由个8为的并行的I/O端口,分别是PA口、PB口、PC口,这些端口可以通过控制软件编程来改变它们的工作方式,并且8255A可以与MCS-51单片机直接接口。用8255A驱动3种颜色的12只发光二极管,用软件使它们模拟十字路口交通灯的功能。而某一辆车的撞红灯,则用一个输入脉冲来实现。用ADC0809实现撞红灯信号的采集并转换成数字量。图1是一个十字路口示意图。分别用1、2、3、4表明四个流向的主车道,用A、B、C、P分别表示各主车道的左行车道、直行车道、右行车道以及人行道。用a、b、c、p分别表示左转、直行、右转和人行道的交通信号灯,如图2所示。交通灯闪亮的过程:路口1的车直行时的所有指示灯情况为:3a3b2p绿3c红+4a4b4c 3p全红+1c 绿1a1b4p红+2c绿2a2b1p红路口2的车直行时的所有指示灯情况为:4a4b3p绿4c红+ 1a1b1c 4p全红+ 2c绿2a2b1p红+3c绿3a3b2p红故路口3的车直行时的所有指示灯情况为:1a1b4p绿1c红+ 2a2b2c 1p全红+3c绿 3a3b2p红+4c 绿4a4b3p红故路口4的车直行时的所有指示灯情况为:2a2b1p绿2c红+3c3a3b2p全红+4c绿4a4b3p红+1c绿1a1b4p红图1:十 字 路 口 交 通 示 意 图 图2:十 字 路 口 通 行 顺 序 示 意 图图3:十 字 路 口 交 通 指 示 灯 示 意 图2.3 主要元件功能说明2.3.1 8255A的 主 要 功 能8255引脚图和引脚功能资料8255引脚功能:单片机系统里常用的8255芯片是一个典型的可编程通用并行接口芯片,用来扩展单片机的端口,它具有3个8位的并行口,有三种工作方式,可作为单片机与各种外部设备连接的接口电路! 下面介绍8255的引脚图及引脚功能。PA3- 1 40 -PA4 GND- 7 34 -D0 PA2- 2 39 -PA5 A1- 8 33 -D1PA1- 3 38 -PA6 A0- 9 32 -D2PA0- 4 37 -PA7 PC7- 10 31 -D3RD- 5 36 -WR PC6- 11 30 -D4 PC5- 12 29 -D5 PC4- 13 28 -D6 PC0- 14 27 -D7 PC1- 15 26 -VCC PC2- 16 25 -PB7 PC- 17 24 -PB6 PB0- 18 23 -PB5 PB1- 19 22 -PB4 PB2- 20 21 -PB3 8255引脚功能说明: RESET:复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。 PA0PA7:端口A输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 PB0PB7:端口B输入输出线,一个8位的I/O锁存器, 一个8位的输入输出缓冲器。 PC0PC7:端口C输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口C可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。CS:片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。 RD:读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。 WR:写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写8255。 D0D7:三态双向数据总线,8255与CPU数据传送的通道,当CPU 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。表4 8255芯片的引脚信号说明引脚信号 引脚号 引脚名称 Vcc 26 电源的+5V端 GND 7 电源的0端 RESET 35 复位信号输入端。使内部各寄存器清除,置A,B,C口为输入口 36 写信号输入端,使CPU输出的数据或者控制字到8255A 5 读信号输入端。使8255A输出数据或者状态信息到CPU 6 片选端 A1,A0 8,9 地址总线的最低2位。用于决定断口地址:如A1A0为00,是A口:A1A0 为01,是B口:A1A0为10,是C口:A1A0 是11,是控制字寄存器 D7D0 2734 双向数据总线 PA7PA0 3740 14 A口的8位I/O引脚 PB7PB0 2518 B口的8位I/O引脚 PC7PC0 1013 1714 C口的8位I/O引脚 数据总线缓冲器:是一个8位的双向三态驱动器,用于与单片机的数据总线相连。读/写控制逻辑:根据单片机的地址信息(A1 A0 )与控制信息(RD WR RESET),控制片内的数据,CPU控制字,外设状态信息的传送。控制电路:根据CPU送来的控制字所管I/O 口按一定的方式工作。对C口甚至可按位实现置位或者复位。控制电路分为两组:A组控制电路控制A口及C口的高四位(PC7PC4),B组控制电路控制B口及C口的低四位(PC3PC0)。三个并行I/O端口:A口可编程为8位输入,或者8位输出,或者双向输出:B 口可编程为8位输入,或者8位输出,但是不可以双向传输;C口分为两个4位口,用于输入或者输出,也可以用作A口,B口的状态控制信号。3.4.2 8255的操作方式1)读/写控制逻辑操作选择由单片机输出的地址A1,A0及控制信号,来选择口的操作状态。口的操作状态如表5所示表5 8255的口操作状态A1 A0 输入操作(读) 0 0 0 1 0 A口数据总线 0 1 0 1 0 B口数据总线 1 0 0 1 0 C口数据总线 输出操作(写) 0 0 1 0 0 数据总线A口 0 1 1 1 0 数据总线B口 1 0 1 0 0 数据总线C口 1 1 1 0 0 数据总线控制口 禁止操作 1 数据总线为三态 1 1 0 1 0 非法状态 0 1 0 数据总线为三态 2)8255的三种工作方式方式0(基本输入/输出方式):这种工作方式不需要任何选通信号。A口,B口及C口的两个4位口中任何一个端口都可以由程序设定为输入或者输出。作为输出口时,输出数据被锁存:作为输入口,输入数据不锁存。方式1( 选通输入/输出方式):在这种工作方式下,A,B,C三个口分为两组。A组包括A口和C口的高四位,A口可由编程设定为输入口或者输出口,C口的高四位则是用来作为A口输入/输出操作的控制和同步信号:B组包括B口和C口的低四位,B口可由编程设定为输入口或者输出口,C口的低四位则是用来作为B口输入/输出操作的控制和同步信号。A口和B口的输入或者输出的数据都被锁存。方式2( 双向传送方式)在这种方式下,A口可以用于双向传送,C口的PC3PC74用来作为输入/输出的控制同步信号。应该注意的是,只有A口允许用作双向传送,这时B口和PC0PC2则可编程为方式0或者方式1工作。3)编程控制字 8255A 的编程选择是通过对控制口输入控制字的方式实现的。控制字有方式选择控制字和C口置位/复位控制字。方式选择控制字:其格式如下表6所示:C口置位/复位控制字:C口具有位操作功能,把一个置位/复位控制字送入送入8255A的控制寄存器(控制口)就能把C口的某一位置1或者清0而不影响其他位的状态。C口置位/复位控制的格式与定义如表7所示。表6 方式选择控制字D7 D6 D5 D4 D3 D2 D1 D0 A组 B组 控制字标志1=方式控制字 方式选择 00=方式0 01=方式11*=方式2 A口1=输入0=输出 上C口1=输入0=输出 方式选择00=方式0,01=方式1 B口1=输入0=输出 下C口1=输入0=输出 8051单片机与8255的接口逻辑简单,其接口电路为图15所示,因为8255A芯片内部没有地址锁存能力,所以图中8255A 的片选信号及口地址选择线A1,A0分别由8051的P0.7 和P0.1 经由地址锁存器后提供。如果没有参入选址的地址的状态都看作“1 ”状态,则8255的A,B,C口及控制口地址为FF7CH,FF7DH,FF7EH,FF7FH。当然各口都有重复的地址,8255的复位端与8051的复位端相连,都接到8051的复位电路。2.3.2 ADC0809的主要功能 ADC0809的主要特性1)8路8位AD转换器,即分辨率8位。 2)具有转换起停控制端。 3)转换时间为100s4)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准。 6)工作温度范围为-4085摄氏度 7)低功耗,约15mW。 2内部结构 ADC0809是CMOS单片型逐次逼近式AD转换器,内部结构如图1322所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型DA转换器、逐次逼近寄存器、三态输出锁存器等其它一些电路组成。因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。输入输出与TTL兼容。外部特性(引脚功能) ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。下面说明各引脚功能。 IN0IN7:8路模拟量输入端。2-12-8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动信号,输入,高电平有效。 EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一5V。 GND:地。ADC0809引脚图如下 ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。2.3.3 2817A的主要功能2.4 工作原理阐述(1) 开关键盘输入交通灯初始时间,通过8051单片机P1输入到系统 (2) 由8051单片机的定时器每秒钟通过P0口向8255的数据口送信息,由8255的PA 口显示红、绿、黄灯的燃亮情况;由8255的PC口显示每个灯的燃亮时间。 (3)8051通过 设置 各个信号等的燃亮时间、通过8031设置,绿、红时间分别为60秒、80秒循环由8051的 P0口向8255的数据口输出。(4) 通过8051单片机的P3.0位来控制系统是工作或设置初值,当.牌位0就对系统进行初始化,为1系统就开始工作。(5) 红灯倒计时时间,当有车辆闯红灯时,启动蜂鸣器进行报警,3S后然后恢复正常。(6) 增加每次绿灯时间车流量检测的功能,并且通过查询P2.0端口的电平是否为低,开关按下为低电平,双位数码管显示车流量,直到下一次绿灯时间重新记入。(7) 绿灯时间倒计时完毕,重新循环第三章 软件方案3.1 分析论证此十字路口电子交警的设计与实现,主要采用了12只发光二极管,并行接口8255A,E2PROM存储器2817A,还有ADC0809等芯片,包括了显示模块和采集数据模块两大功能模块。软件调试是通过对拥护程序的汇编、连接、执行来发现程序中存在的语法错误与逻辑错误并加以排除纠正的过程。程序后,编辑,查看程序是否有逻辑的错误。 3.2 交通信号灯模拟控制系统设计程序流程图3.3 交通灯硬件线路图3.4 交通灯主程序/*交通灯控制系统C语言源程序*/*Author:ZhaoWenjie All Rights Reserved*/*2009/10/18*/#include #define uchar unsigned char#define uint unsigned intuchar data buf4;uchar data sec_dx=25;/东西数默认uchar data sec_nb=25;/南北默认值uchar data set_timedx=25;uchar data set_timenb=25;int n;uchar data b;/定时器中断次数sbit k1=P16;/定义5组开关sbit k2=P17;sbit k3=P27;sbit k4=P30;sbit k5=P31; sbit Yellow_nb=P25;/南北黄灯标志sbit Yellow_dx=P22;/东西黄灯标志sbit Green_nb=P24;sbit Green_dx=P21;sbit Buzz=P37;bit Buzzer_Indicate;bit time=0;/灯状态循环标志bit set=1;/调时方向切换键标志uchar code table11= /共阴极字型码0x3f, /-00x06, /-10x5b, /-20x4f, /-30x66, /-40x6d, /-50x7d, /-60x07, /-70x7f, /-80x6f, /-90x00 /-NULL;/函数的声明部分void delay(int ms);/延时子程序void key();/按键扫描子程序void key_to1();/键处理子程序void key_to2();void key_to3();void display();/显示子程序void logo(); /开机LOGOvoid Buzzer();/主程序void main()P34=0x01;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();/函数的定义部分void key()/按键扫描子程序 if(k1!=1)delay(10);if(k1!=1)while(k1!=1) key_to1(); for(n=0;n40;n+) display(); if(k2!=1)delay(10);if(k2!=1)while(k2!=1) key_to2(); for(n=0;n40;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(); void display() /显示子程序buf1=sec_dx/10; /第1位 东西秒十位buf2=sec_dx%10; /第2位 东西秒个位buf3=sec_nb/10; /第3位 南北秒十位buf0=sec_nb%10; /第4位 南北秒个位 P1=0xff; / 初始灯为灭的 P0=0x00; P1=0xfe; /片选LCD1 P0=tablebuf1; delay(1); P1=0xff; P0=0x00; P1=0xfd; /片选LCD2 P0=tablebuf2; delay(1); P1=0xff; P0=0x00; P1=0Xfb; /片选LCD3P0=tablebuf3; delay(1);P1=0xff; P0=0x00;P1=0Xf7;P0=tablebuf0; /片选LCD4 delay(1);void time0(void) interrupt 1 using 1 /定时中断子程序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;void key_to1()/键盘处理子程序之+TR0=0; /关定时器if(set=0) set_timenb+; /南北加1Selse set_timedx+; /东西加1Sif(set_timenb=100) set_timenb=1;if(set_timedx=100) set_timedx=1; /加到100置1sec_nb=set_timenb ; /设置的数值赋给东西南北sec_dx=set_timedx;void key_to2() /键盘处理子程序之-TR0=0; /关定时器if(set=0)set_timenb-; /南北减1Selseset_timedx-; /东西减1Sif(set_timenb=0)set_timenb=99;if(set_timedx=0 )set_timedx=99; /减到1重置99sec_nb=set_timenb ; /设置的数值赋给东西南北sec_dx=set_timedx;void key_to3() /键盘处理之紧急车通行 TR0=0; P2=0Xc9; sec_dx=00; sec_nb=00; Buzzer_Indicate=1;void int0(void) interrupt 0 using 1 /只允许东西通行TR0=0;P2=0Xc3;Buzzer_Indicate=0;sec_dx=00;sec_nb=00;void int1(void) interrupt 2 using 1 /只允许南北通行 TR0=0;P2=0X99;Buzzer_Indicate=0;sec_nb=00;sec_dx=00;void logo()/开机的Logo - - - - for(n=0;n50;n+) P0=0x40; P1=0xfe;delay(1); P1=0xfd;delay(1);P1=0Xfb;delay(1);P1=0Xf7
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年影像科医学影像学影像报告书写规范试卷答案及解析
- 企业名称2025下半年ESG报告实践报告治疗类器械
- 企业名称企业公民报告2021-2025年实践报告医疗器械行业
- 软件系统维护合同及收费标准建议
- 国际贸易货物买卖合同双语范本
- 2025年财务共享服务中心运营模式创新与业务拓展可行性研究报告
- 联营(合作)企业贷款合同7篇
- 2025年成人教育终身学习体系构建与平台运营:线上线下融合策略深度报告
- 2026年重庆市初中学业水平考试化学模拟试卷(含答案详解)
- 2025咪咕视讯科技有限公司职业经理人岗位公开选聘1人笔试题库历年考点版附带答案详解
- 供应商黑名单管理办法
- 2023年java程序设计试题库
- 管理养老机构 养老机构的运营
- 建筑工程施工质量验收统一标准培训教程
- 氯溴甲烷安全技术说明书
- 特殊特性管理
- 水泥粉磨企业现场危险源辨识与风险评价表
- GB/T 9813-2000微型计算机通用规范
- 光电及光化学转化原理与应用电化学全册配套课件
- 安全教育7不要离家出走
- 工程项目质量管理手册范本
评论
0/150
提交评论