


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、江西理工大学单片机综合课程设计报告设计题目: 交通灯控制器设计者:学 号:班 级: 指导老师:完成时间: 2010年7月设计报告电路设计软件设计平时分总评格式(5)内容(15)原理图(15)板子外观(15)程序(15)调试情况(15)(20)目录第 1 章 MCS-51 单片机概述 11.1 引言 1.1.2单片机概述 1.1.3芯片简介 1.第 2 章 交通灯控制器 22. 1 设计目的 3.2.2 设计要求 3.2.3 设计方案 3.第 3 章 交通灯控制器设计 43.1 交通灯控制器硬件设计 4.3.1.1材料选用 4.3.1.2 交通灯硬件电路连接图 4.3.1.3 数码管的连接 5.
2、3.2 控制器的软件设计 6.3.2.1主程序 6.3.2.2 第一状态程序 6.3.2.3 第二状态程序 7.3.2.4 第三状态程序 8.3.2.5 第四状态程序 9.3.2.6 第五状态程序 1.03.2.7 每秒钟的设定 1.0附录 1.1.致谢 1.8.参考文献 1.9.第1章MCS-51单片机概述1.1 引言当今,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。 但这一技术在 19 世纪就已出现了。1858 年,在英国伦敦主要街头安装了以燃煤气为光源的红, 蓝两色的机械扳手式信 号灯,用以指挥马车通行。这是世界上最早的交通信号灯。 1868 年,英国机械工程师 纳
3、伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。 它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止” ,绿色表示“注意” 。 1869 年 1 月 2 日,煤气灯爆炸,使警察受伤,遂被取消。电气启动的红绿灯出现在美国,这种红绿灯由红绿黄三色圆形的投光器组成, 1914 年始安装于纽约市 5 号大街的一座高塔上。红灯亮表示“停止” ,绿灯亮表示“通行” 。1918 年,又出现了带控制的红绿灯和红外线红绿灯。 带控制的红绿灯,一种是把压 力探测器安在地下, 车辆一接近红灯便变为绿灯; 另一种是用扩音器来启动红绿灯, 司 机遇红灯时按一下嗽叭, 就使红灯变为绿灯。 红外线
4、红绿灯当行人踏上对压力敏感的路 面时,它就能察觉到有人要过马路。 红外光束能把信号灯的红灯延长一段时间, 推迟汽 车放行,以免发生交通事故。信号灯的出现,使交通得以有效管制,对于疏导交通流量、提高道路通行能力,减 少交通事故有明显效果。 1968 年,联合国道路交通和道路标志信号协定对各种信 号灯的含义作了规定。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯, 除非另一种标志禁止某一种转向。 左右转弯车辆都必须让合法地正在路口内行驶的车辆 和过人行横道的行人优先通行。 红灯是禁行信号, 面对红灯的车辆必须在交叉路口的停 车线后停车。黄灯是警告信号, 面对黄灯的车辆不能越过停车线, 但车
5、辆已十分接近停 车线而不能安全停车时可以进入交叉路口。1.2 单片机概述 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件: 中央处理器、存储器和 I/O 接口电路等。 因此,单片机只需要和适当的软件及外部设备 相结合,便可成为一个单片机控制系统。单片机经过 1、2、3、3 代的发展,目前单片机正朝着高性能和多品种方向发 展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。1.3 芯片简介 单片机的结构有两种类型,一种是
6、程序存储器和数据存储器分开的形式,即哈佛(Harvard) 结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为 一的结构,即普林斯顿(Princeton)结构。INTEL的MCS-51系列单片机采用的是哈佛结 构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。下图是MCS-5係列单片机的内部结构示意图TO. tr-FO. 7图1-1 MCS-51结构框图MCS-51的引脚说明:MCS-5係列单片机中的80318051及8751均采用40Pin封装的双列直接DIP结构, 右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线 两根,4组8
7、位共32个I/O 口,中断口线与P3 口线复用。F1. 0 E:Pl. 1 E: P1 2 rPl. 3 C Pl. cPl. 5 匚Fl.6 CPl. 7 CEST C axD/pa o c TWP3. 1 E IWT0/P3. 2 C IWT1/P3. 3 C TO/P?. 4 匚 Tl/F?. 5 C WR/P$. 6 c ED/FS. 7 匸 HTAL2 tXTAL1 CGNU C匸药1039383T3&353433323111301.229n28142T151625172418231勺222021PDIF3 Vcc PO. 0 /ADO3 P0 1/AT1Z1 PO. 2ZA
8、B2 P0. 37AL? TO. 4/AD4 ?0.畀価 PO. P(J. ?/ADT ET/m3 ALEAPMiC PESH P2. 7./A15 F2. 6/114 T2. 5/il9 P2. P2. 3?All P2. 2/1103 P2. i/肋 P2. 0/A8图1-2 MCS-51的引脚图第2章交通灯控制器2.1设计目的(1)掌握单片机定时,计数器的编程应用。(2)通过对交通灯控制程序的编写与调试,掌握中断程序的结构2.2设计要求 东西、南北两干道交于(3)进一步熟练使用开发系统的各种调试方法。个十字路口,各干道有一组红、黄、绿三色的指示灯,指东西道绿灯亮黄灯闪红灯亮红灯亮南北道红
9、灯亮红灯亮绿灯亮黄灯闪挥车辆和行人安全通行。红灯亮禁止通行,绿灯亮允许通行。黄灯亮提示人们注意红、 绿灯的状态即将切换,且黄灯燃 亮时间为东西、 南北两干道的公330S3S 225S3S2.3设计方案设东西道比南北道的车流量大,指示灯燃亮的方案如表2-1表2-1指示灯燃亮图(1)当东西方向为红灯,此道车辆禁止通行,东西道行人可通过;南北道为绿灯, 此道车辆通过,行人禁止通行。时间为 25秒。(2)黄灯闪烁3秒,警示车辆和行人红、绿灯的状态即将切换。(3)当东西方向为绿灯,此道车辆通行;南北方向为红灯,南北道车辆禁止通过, 行人通行。时间为30秒。东西方向车流大 通行时间长。(4 )这样如上表的
10、时间和红、绿、黄出现的顺序依次出现这样行人和车辆就能安 全畅通的通行。系统状态流程图:图2-1系统状态流程图第3章交通灯控制器设计系统总框图如下:图3-1系统总框图3.1交通灯控制器硬件设计3.1.1材料选用:选用设备89V51单片机一片选用设备:89v51弹片机一片,共阴极的两位七段数码 管一个,发光二极管红黄绿灯各四个,开关键盘、连线若干。3.1.2交通灯硬件电路连接图 T-nJC BIVBT.*L .> TE F:也 1 r勺 &?OH 占刊审繭. 1 r-U1&12 ILO-YStJIFQjy.H®F0.l?Ai1,口工貝口PO.TJWPZ.1MPHg2
11、11昱曲它zrrAB.A::A::.na-REp .ge kE*-YEUflW. f.TEPCT.IBT-REp .,::±::P:u P sF1ITRXD ra.i/ro uilrra F3_mmF3.w*TDF3*rnP37|TFHIF图3-2硬件电路连接图3.1.3数码管的连接LED灯的显示原理:通过同名管脚上所加电平的高低来控制发光二极管是否点 量而显示不同的字形。P0.0 P2.6 P2.5 P2.0 P2.1 fla1blg1el Odicidp1控制2管亮g2亮f2亮a2亮b2亮c2亮e2亮dp2亮d2亮P2.3 P2.7 P2.4 P2.2 P0.1 图3-3 7段数
12、码管引脚连接图控制1管亮di亮dpi亮ei亮ci亮bi亮ai亮fi亮gi亮3.2控制器的软件设计图3-4程序流程图3.2.1主程序:void main()P0=0XFF;P仁 0xFF;P2=0xFF;EA=1;打开外部中断EX0=1;允许外部中断0中断IT0=0;/INT0为沿触发方式in it1();while(1)init2();第2个状态init3(); /第3个状态init4(); /第4个状态init5();/第5个状态3.2.2第一状态程序5Svoid in it1()/第一个状态:东西、南北方向均亮红灯uint temp; temp=6;/ 变量赋初值TMOD=0x01;/定时
13、器0工作于方式1 TH0=0x4c;TL0=0x00;/ 定时器赋初值EA=1;/ 开外部中断ET0=1;/ 开定时中断TR0=1;/ 开定时器 0while(1)5SRED_DONGXI=0;/ 第一个状态东西、南北均亮红灯RED_NANBEI=0;GREEN_DONGXI=1;GREEN_NANBEI=1; YELLOW_DONGXI=1;YELLOW_NANBEI=1;if(aa=10)/ 定时 20*50MS=1Saa=0;/ 定时完成一次后清 0 temp-;/ 变量自增 /delay(10);if(temp>250)/ 定时 100S temp=6;/ 变量清 0 break
14、; shi=temp%100/10;/ 显示十位 ge=temp%10;显示个位 display(ge,shi);3.2.3 第二状态程序void init2()第二个状态:东西亮绿灯 30S南北亮红灯uint temp;temp=31;/ 变量赋初值TMOD=0x01;/定时器0工作于方式1TH0=0x4c; TL0=0x00;/ 定时器赋初值EA=1;/ 开外部中断ET0=1;/ 开定时中断TR0=1;/ 开定时器 0 while(1) RED_DONGXI=1; RED_NANBEI=0; GREEN_DONGXI=0; GREEN_NANBEI=1;YELL0W_D0NGXI=1第二个
15、状态:东西亮绿灯 30S、南北亮红灯 YELLOW_NANBEI=1;if(aa=20)/ 定时 20*50MS=1S aa=0;/ 定时完成一次后清 0 temp-;/ 变量自增 if(temp=4)/ 定时 100S temp=30;/ 变量清 0 break; shi=temp%100/10;/ 显示十位 ge=temp%10;显示个位 display(ge,shi); 3.2.4 第三状态程序3Svoid init3() / 第三个状态:东西绿灯闪 3次转亮黄灯、南北亮红灯 uint temp; temp=4;/ 变量赋初值TM0D=0x01;/定时器0工作于方式1 TH0=0x4c;
16、TL0=0x00;/ 定时器赋初值EA=1;/开外部中断ET0=1;/ 开定时中断 TR0=1;/ 开定时器 0 while(1)RED_NANBEI=0; GREEN_D0NGXI=1; /YELL0W_D0NGXI=YELL0W_D0NGXI; if(aa=20)/ 定时 20*50MS=1S aa=0;/ 定时完成一次后清 0 temp-;/ 变量自增 YELL0W_D0NGXI=YELL0W_D0NGXI; if(temp>200)/ 定时 100Stemp=4;/ 变量清 0 break; shi=temp%100/10;/ 显示十位 ge=temp%10;/ 显示个位 dis
17、play(ge,shi);3.2.5 第四状态程序void init4()/ 第四个状态:东西亮红灯、南北亮绿灯 25S uint temp; temp=26;/ 变量赋初值TMOD=0x01;/定时器0工作于方式1 TH0=0x4c;TL0=0x00;/ 定时器赋初值 EA=1;/ 开外部中断ET0=1;/ 开定时中断TR0=1;/ 开定时器 0 while(1) RED_DONGXI=0; RED_NANBEI=1;YELLOW_DONGXI=1第一个状态东西、南北均亮红灯 5S GREEN_NANBEI=0;if(aa=20)/ 定时 20*50MS=1Saa=0;/ 定时完成一次后清
18、0 temp-;/ 变量自增 if(temp=4)/ 定时 100S temp=25;/ 变量清 0 break; shi=temp%100/10;/ 显示十位ge=temp%10;显示个位 display(ge,shi);3.2.6 第五状态程序void init5()/ 第五个状态:东西亮红灯、南北绿灯闪 3 次转亮黄灯 3S uint temp; temp=4;/ 变量赋初值TMOD=0x01;/定时器0工作于方式1 TH0=0x4c;TL0=0x00;/ 定时器赋初值EA=1;/ 开外部中断ET0=1;/ 开定时中断TR0=1;/ 开定时器 0while(1)RED_NANBEI=1;
19、RED_DONGXI=0;GREEN_DONGXI=1;GREEN_NANBEI=1; /YELLOW_NANBEI=YELLOW_NANBEI;if(aa=20)/ 定时 20*50MS=1Saa=0;/ 定时完成一次后清 0 temp-;/ 变量自增 YELLOW_NANBEI=YELLOW_NANBEI; if(temp>200)/ 定时 100S temp=4;/ 变量清 0 break; shi=temp%100/10;/ 显示十位 ge=temp%10;显示个位 display(ge,shi);3.2.7 每秒钟的设定利用MCS-51内部定时器产生溢出中断来确定 1秒的时间,
20、采用在主程序中设定一 个初值为20的软件计数器和使T0定时50毫秒.这样每当T0到50毫秒时CPU就响应 它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到可以返回到输出时间显示程序。附录: 程序源代码#include<reg51.h>/ 头文件#include<intrins.h>/ 头文件#define uchar unsigned char/宏定义#define uint unsigned int/宏定义sbit RED_DONGXI = P1A0;sbit YELLOW_DONGXI =
21、PM1;sbit GREEN_DONGXI = P1A2;sbit RED_NANBEI = P1A3;sbit YELLOW_NANBEI = P1A4;sbit GREEN_NANBEI = P1A5;uint aa, bai,shi,ge,bb; /定义变量/* 数码管显示 0-9*/uint code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /* 子函数声明 */void delay(uint z);void delay0(uint z);/void init(uint a);void display(uint
22、shi,uint ge);void xtimer0();void init1();void init2();void init3();void init4();void init5();void xint1();void xint0();void LED_ON();void LED_OFF(); /*主函数*/ void main()P0=0XFF;P1=0xFF;P2=0xFF;EA=1;/ 打开外部中断 EX0=1;/ 允许外部中断 0中断IT0=0;/INT0 为沿触发方式init1();while(1) init2();/ 第 2 个状态 init3(); / 第 3 个状态init4
23、(); /init5();/第 4 个状态 第 5 个状态void init1()/ 第一个状态:东西、南北方向均亮红灯 5Suint temp; temp=6;/ 变量赋初值TMOD=0x01;/定时器0工作于方式1 TH0=0x4c;TL0=0x00;/ 定时器赋初值EA=1;/ 开外部中断ET0=1;/ 开定时中断TR0=1;/ 开定时器 0while(1)5SRED_DONGXI=0;/ 第一个状态东西、南北均亮红灯RED_NANBEI=0;GREEN_DONGXI=1;GREEN_NANBEI=1; YELLOW_DONGXI=1;YELLOW_NANBEI=1;if(aa=10)/
24、 定时 20*50MS=1Saa=0;/ 定时完成一次后清 0 temp-;/ 变量自增 /delay(10);if(temp>250)/ 定时 100S temp=6;/ 变量清 0 break; shi=temp%100/10;/ 显示十位 ge=temp%10;显示个位 display(ge,shi);void init2()第二个状态:东西亮绿灯 30S、南北亮红灯uint temp;temp=31;/ 变量赋初值TMOD=0x01;/定时器0工作于方式1TH0=0x4c;TL0=0x00;/ 定时器赋初值EA=1;/ 开外部中断ET0=1;/ 开定时中断TR0=1;/ 开定时器
25、 0while(1) RED_DONGXI=1;RED_NANBEI=0;GREEN_DONGXI=0;GREEN_NANBEI=1;YELLOW_DONGXI=1第二个状态:东西亮绿灯 30S、南北亮红灯 YELLOW_NANBEI=1;if(aa=20)/ 定时 20*50MS=1Saa=0;/ 定时完成一次后清 0 temp-;/ 变量自增 if(temp=4)/ 定时 100S temp=30;/ 变量清 0 break;shi=temp%100/10;/ 显示十位 ge=temp%10;显示个位 display(ge,shi);3Svoid init3() / 第三个状态:东西绿灯闪
26、 3次转亮黄灯、南北亮红灯 uint temp;temp=4;/ 变量赋初值TMOD=0x01;/定时器0工作于方式1TH0=0x4c;TL0=0x00;/ 定时器赋初值EA=1;/开外部中断ET0=1;/ 开定时中断TR0=1;/ 开定时器 0while(1)RED_NANBEI=0;GREEN_DONGXI=1;/YELLOW_DONGXI=YELLOW_DONGXI; if(aa=20)/ 定时 20*50MS=1Saa=0;/ 定时完成一次后清 0temp-;/ 变量自增 YELLOW_DONGXI=YELLOW_DONGXI; if(temp>200)/ 定时 100Stemp
27、=4;/ 变量清 0break;shi=temp%100/10;/ 显示十位ge=temp%10;/ 显示个位display(ge,shi);void init4()/ 第四个状态:东西亮红灯、南北亮绿灯 25Suint temp;temp=26;/ 变量赋初值TMOD=0x01;/定时器0工作于方式1TH0=0x4c;TL0=0x00;/ 定时器赋初值EA=1;/ 开外部中断ET0=1;/ 开定时中断TR0=1;/ 开定时器 0while(1)RED_DONGXI=0;RED_NANBEI=1;YELLOW_DONGXI=1第一个状态东西、南北均亮红灯 5SGREEN_NANBEI=0;if
28、(aa=20)/ 定时 20*50MS=1Saa=0;/ 定时完成一次后清 0temp-;/ 变量自增if(temp=4)/ 定时 100Stemp=25;/ 变量清 0break;shi=temp%100/10;/ 显示十位ge=temp%10;/ 显示个位 display(ge,shi);void init5()/ 第五个状态:东西亮红灯、南北绿灯闪3 次转亮黄灯 3Suint temp; temp=4;/ 变量赋初值TMOD=0x01;/定时器0工作于方式1 TH0=0x4c;TL0=0x00;/ 定时器赋初值EA=1;/ 开外部中断ET0=1;/ 开定时中断TR0=1;/ 开定时器 0
29、while(1)RED_NANBEI=1;RED_DONGXI=0;GREEN_DONGXI=1;GREEN_NANBEI=1; /YELLOW_NANBEI=YELLOW_NANBEI;if(aa=20)/ 定时 20*50MS=1Saa=0;/ 定时完成一次后清 0 temp-;/ 变量自增 YELLOW_NANBEI=YELLOW_NANBEI;if(temp>200)/ 定时 100S temp=4;/ 变量清 0 break; shi=temp%100/10;/ 显示十位ge=temp%10;显示个位 display(ge,shi);/* 显示子函数 */void display(uint shi,uint ge)P0=0xfd;P2=tableshi;/ 显示十位delay0(5);P0=0xfe;P2=tablege;/ 显示个位delay0(5);void xint0() interrupt 0 / 外部中断 0, 这里用 2 是 INT1 的优先级为 0 LED_ON();void LED_ON()/ 外部中断 0 显示子程序RED
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2031年中国厢体用门锁行业投资前景及策略咨询研究报告
- 2025至2031年中国卧式混合机行业投资前景及策略咨询研究报告
- 2025中国石油化工股份有限公司安庆分公司招聘20人笔试参考题库附带答案详解
- 2025年中国艺术造型架市场调查研究报告
- 警用设备采购合同
- 计划变更补充协议
- 实时验证性能分析-全面剖析
- 报关行业监管趋势解析-全面剖析
- 适应动态变化的协调算法-全面剖析
- 2024年松原市教育局直属学校招聘师范生笔试真题
- 《出师表》与《杜正献公》对比阅读训练
- 五年级语文下学期期中知识点归纳复习年级联考习题〔有答案〕
- 广州黄埔区招聘事业单位工作人员考试真题2024
- 基金从业人员资格历年真题答案2024
- 特发性面神经麻痹的护理
- 2025年中考英语考点单选题100道及答案
- 2025年贵州国企:贵州茅台酒股份有限公司招聘笔试参考题库含答案解析
- 桩基行业企业宣传
- 吸痰护理操作课件
- 全球制造能力评估-深度研究
- 第六章学习法治思想提升法治素养讲解
评论
0/150
提交评论