还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
单片机综合实验交通灯设计报告51班级:学生姓名:学号:指导教师:EW_Yellow=EW_Yellow;}count=0;vo id mai nvo idIT0=1;〃INTO负跳变触发TMOD=0x01;〃定时器工作于方式1THO二65536-50000/256;〃定时器赋初值TLO=65536-50000%256;EA=1;〃开中断总允许ET0=1;〃开定时中断EX0=1;〃开外部INTO中断TROn;//启动定时whi Ie1/*******状态1**********/Flag_EW_Ye II ow=0;//EW关黄灯显示信号T i me_EW=EW;T i me_SN=SN;wh iIe T i me_SN0{P1=S
[0]//SN通行,EW红灯Display0;/*******状态2**********/Flag_SN_Ye II ow=0;//SN关黄灯显示信号T i me_SN=SNL;wh iIeT i me_SN0{P1=S
[2];〃SN左拐绿灯亮,EW红灯Display0;}/*******状态3**********/P1=OxOO;wh iIe T i me_EW0{FI ag_SN_Ye II ow=1;〃SN开黄灯信号位EW_Red=1;〃SN黄灯亮,等待停止信号,EW红灯//SN LED仁EW LED1;〃SN_LED2=EW_LED2;Display0;/***********赋值**********/EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;/*******状态4**********/Flag_SN_Yel low=0;//SN关黄灯显示信号T ime_EW=SN;T ime_SN=EW;wh iIe T ime_EW0{P1=S
[4]〃EW通行,SN红灯Display0;}/*******状态5**********/Flag_EW_YeI Iow=0;//EW关黄灯显示信号T ime_EW=EWL;wh iIeT ime_EW0{P1=S
[6];〃EW左拐绿灯亮,SN红灯Display0;}/*******状态6**********/P1=0X00;wh iIe Time_SN0{FI ag_EW_Ye II ow=1;//EN开黄灯信号位SN_Red=1;〃EW黄灯亮,等待停止信号,SN红灯Display;}/***********赋值**********/EW=EW1;SN=SN1;EWL=EWL1;SNL=SNL1;一实验题目交通灯控制系统设计二实验目的
1、学会用8051单片机开发简单的计算机控制系统;
2、学会用汇编语言和C语言开发系统软件;
3、学会8051单片机开发环境wave或Keil uVision3软件的使用;
4、学会Proteus软件的使用方法,会用Proteus单片机系统进行仿真;
5、学会Protel软件的使用方法,会用Protel绘制电气原理图和印制板图;
6、熟悉七位数码管显示的使用方法;
7、了解交通灯控制系统的基本组成三实验要求交通灯处在十字路口上它有红、黄、绿三种颜色的灯组成红灯亮时道路上的车辆停止运行;黄灯是一种过渡用的信号灯,当它亮时,表示道路上的红绿色信号灯即将进行转换下面拿东西南北四个方向来说明当东西方向允许行车(或者左转)的时候,南北方向就禁止行车,即此时东西方向的绿灯亮红灯灭,而南北方向的绿灯灭红灯亮反之当南北方向允许行车(或者左转)的时候,东西方向就禁止行车,即此时南北方向的绿灯亮红灯灭,而东西方向的绿灯灭红灯亮交通灯配置示意图如图1所示同时当有特殊的情况发生时,能手动控制各个方向的信号灯设计任务就是将这一电路用单片机来实现具体的控制北0000B绿绿黄红数直左灯灯码Z-4-4-/.B/-K.XZ南图十字路口交通灯配置示意图1四设计内容与原理为了在后面的分析中便于说明,将南北方向允许直行命名为状态1,南北方向允许左转命名为状态2,南北方向行车到东西方向行车的转换阶段命名为状态3,将东西方向允许直行命名为状态4,东西方向允许左转命名为状态5,东西方向行车到南北方向方向行车的转换阶段命名为状态6o假定直行绿灯点亮的时间为25s,左转绿灯点亮的时间为20s,黄灯点亮的时间为5s,则对方红灯的点亮时间为50秒黄灯每隔500ms亮一次,之后灭500ms(亮灭一次叫作闪烁一次),一共闪烁5次,持续5s各个状态之间的变换情况如下状态1—►状态2—>状态3—►状态4—►状态5—►状态6—►状态1具体显示周期如下:25s20s5s50s状态1状态2状态3状态4状态5状态6直行绿灯左转绿灯黄灯亮缓南北路口红灯亮禁行亮亮行直行绿灯亮左转绿灯亮黄灯亮缓行东西路口红灯亮禁行50s25s20s5s图2交通信号灯点亮时间图设计电路中每个路口的控制信号灯应有四个,即绿灯两个、黄灯、红灯各一个,同时需要七段数码管一个因此,本电路的设计中应用到绿灯八个,黄灯四个,红灯四个,七段数码管两个(东西方向相同,南北方向相同,为节省空间可省略一对)五电路设计分析根据前面的设计内容与原理分析,电路设计中应有控制模块(单片机电路)、显示模块(十六个信号灯和两个七段数码管)本电路的设计,将发光二极管作为16个信号灯的材料电源将采用5V的直流电源东西两个方向的绿灯是同时亮的,为了简化电路可以让这两个灯接同一个引脚同理,东西方向的黄灯、红灯也可以分别接同一个引脚南北方向同上这样我们可以用一个8位口控制16盏信号灯各信号灯均是共阴极接法,LED负极均接地,正极通过保护电阻接单片机P1口这样单片机引脚的输出一个高电平时,相应的信号灯就被点亮七段数码管经过8位排阻RESPACK-8连接单片机中应包括复位电路和晶振电路本设计中,采用上电复位形式,由于本系统应用的机器周期为Ws,所以晶振选择为12MHz,根据调试电容选择30pF.R
17..1k....YTEXTA•图3复位电路XTAL2XTAL1图4晶振电路六硬件原理图交通灯系统南北万向,•左转•直行黄灯・红灯南::北••D“le P7Id显-^nptr-东・小R8•川曾小』:R§
6.|
8.iM西显•D4DI3JJ■R R13东示JJIM左转」HIR3RH西JJ裔18直行」loir am方专直行•黄灯」,」pjT«tr向TTT红灯一力,电左转I“,»•orF31F叱x」»■1IRiT■心w出gTXTM.2如如PtJMJ XTMl皿06七程序流程本程序的程序流程图如图所示八心得体会这次系统实验历时一个月的时间,在这实验过程里我们巩固了从编程、软件使用到调试的专业知识,逻辑思维和动手能力都得到了很大的提高要解决的主要问题就是程序的设计和仿真,虽然初期在设计和布局、编程时思路比较清晰,但是到了细节处,也出了不少问题,而且很难被检查出来,如在定时器使用方面出了一些错误但是最后经过不断努力,还是写出来正确的代码通过这次系统实验,对以前学过的知识进行了巩固,加深了理解,提高了应用的能力,而且提高了我们的发现、分析、解决问题的能力,同时提高了对专业的认识及兴趣,对于我们工科生来说,对以后就业很有帮助附录程序代码:#def ine ucharuns igned char#def ine ui ntuns igned int#i ncIudereg
52.h/*****定义控制位**********************/sb it EW_LED2=P2-3;〃东西数码管个位sb itEW_LED1=P
2、;〃东西数码管十位sb itSN_LED2=P21;〃南北数码管个位sb itSN_LED1=P2^0;〃南北数码管十位—sb itSN_Ye II ow=Pr6;〃南北黄灯sb itEW_Ye II ow=P「2;〃东西黄灯sb itEW_Red=P广3;〃东西红灯sb itSN_Red=P「7;〃南北红灯sb itBusy_Btton=P34;bitFlag_SN_Yel low;〃南北黄灯标志位bitFlag_EW_Yel low;〃东西黄灯标志位charchar Time_EW;//东西方向倒计时单元uchar Time_SN;〃南北方向倒计时单元uchar EW=50,SN=25,EWL=20,SNL=20;〃程序初始化赋值EW1=50,SN1=25,EWL1=20,SNL仁20;〃用于存放修改值的变量1-9段选码ucharcode table
[10]={0xc0,0xf9,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90};uchar codeS
[8]={0X28,0X48,0X18,0X48,0X82,0X84,0X81,0X84};〃交通信号灯控制代码/■II]//下不干下个不下不不下个个不下不不干不个不不干/「/丁不不不不不不不不不下不不下不下下下下下下不下不下/AIIvo id De I ayuchar auchari;i=a;wh iIe i-{;},}_/slz six six xlx xlx xlzxlx sixxlx xlzxlx sixxlx VJT/T xlx xlx vizxlx sL*sixsixxlxxlxxlx sixxlx xlzxlz sixxlxxlx vizxlxxlxsL*xlx/G rpjq/不不不不不不不不不不不不不不不不不讦不不亭亭亭亭不不亭亭亭不不举亭亭亭不不不不不亭亭亭不/vo id Displayvo idchar h,I;h=Time_EW/10;l=Time_EW%10;PO=table[l];EW_LED2=1;De lay200;EW_LED2=0;P0=tab Ie[h];EW_LED1=1;De Iay200;EW_LED1=0;h=Time_SN/10;l=Time_SN%10;P0=table[l];SN_LED2=1;De Iay200;SN_LED2=0;P0=table[h];SN_LED1=1;DeIay200;SN_LED1=0;/**********************TQ中断月艮务程序*******************/vo id timerOvoidinterrupt1us ing1stat ic ucharcount;THO=65536-50000/256;TLO二65536-50000%256;count++;if count二二10i fFI ag_SN_Ye II ow==1〃南北黄灯标志位{SN_Yellow=^SN_Yellow;}if Flag_EW_YeI Iow==1〃东西黄灯标志位{EW_Yel low^EW_Yel low;}i fcount二二20Time_EW—;T ime_SN一;if Flag_SN_YeI Iow=1〃南北黄灯标志位{Time_SN=Time_EW;SN_Yellow=SN_Yellow;}〜if Flag_EW_YeI Iow=1〃东西黄灯标志位{Time EW二Time SN;。
个人认证
优秀文档
获得点赞 0