51单片机交通灯课程设计.docx
《51单片机交通灯课程设计.docx》由会员分享,可在线阅读,更多相关《51单片机交通灯课程设计.docx(6页珍藏版)》请在冰豆网上搜索。
![51单片机交通灯课程设计.docx](https://file1.bdocx.com/fileroot1/2023-6/11/061f30ff-5967-4e98-a694-4f53105a57ce/061f30ff-5967-4e98-a694-4f53105a57ce1.gif)
51单片机交通灯课程设计
第一章单片机概述
单片机是20世纪70年代中期发展起来的一种大规模集成电路器件。
它在一块芯片内芯片内集成了计算机的各种功能部件,构成一种单片式的微型计算机。
20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。
单片机的应用技术是一项新型的工程技术,其内涵随着单片机的发展而发展。
由于MCS-51系列的单片机的模块化结构比较典型、应用灵活,为许多大公司所采纳,使8051系列的单片产品日新月异。
在Intel公司20世纪80年代初推出MCS-51系列单片机以后,世界上许多著名的半导体厂商相继生产和这个系列兼容的单片机,使产品型号不断地增加、品种不断丰富、功能不断加强,在国内外单片机应用中占有重要地位。
由于单片机具有功能强、体积小、价格低等一系列优点,在各个领域都有广泛的应用,有力地推动了各行各业的技术改造和产品更新换代。
20世纪末,电子技术获得了飞速的发展,在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高,同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。
第二章MSC-51芯片简介
8051是MCS-51系列单片机的典型产品。
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
·中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
·数据存储器(RAM)
8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
·程序存储器(ROM):
8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
·定时/计数器(ROM):
8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
·并行输入输出(I/O)口:
8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
·全双工串行口:
8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
·中断系统:
8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
·时钟电路:
8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。
单片机的结构有两种类型,一种是程序存储器和数据存储器分开的形式,即哈佛(Harvard)结构,另一种是采用通用计算机广泛使用的程序存储器与数据存储器合二为一的结构,即普林斯顿(Princeton)结构。
INTEL的MCS-51系列单片机采用的是哈佛结构的形式,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。
第三章设计方案
1.课程设计要求:
1)、以MCS-51系列单片机为核心器件组成交通灯控制系统,采用定时中断实现精确定时;
2)、利用提供单元模块构成硬件系统。
系统完成内容如下:
正常情况下,A、B道(A、B道交叉组成十字路口,A是主道,B是支道)轮流放行,A道放行60秒(两个数码管从60秒开始倒数,其中5秒用于警告),B道放行30秒(两个数码管从30秒开始倒数,其中5秒用于警告)。
3)、一道有车而另一道无车(用按键开关S1、S2模拟)时,使有车车道放行。
4)、有紧急车辆通过(用按键开关S0模拟)时,A、B道均为红灯(两次按下S0后,回复正常状态)。
要求:
3)、编写系统的程序,完成系统的分、秒的计时功能
2.具体编程过程:
根据要求我首先想到
显示界面:
采用数码管和LED灯相结合的方法,因为实际既要求倒计时施主输出,又要求又状态灯输出等,为方便观看并考虑到现实状况,用2个数码管与12个LED分别显示时间和提示信息。
这种方案既满足系统功能要求,又减少了系统实现的复杂度。
考虑到数码显示我采用了动态显示的方法,这是原理图里只有一个数码显示管亮的原因。
按键方面我用了三个,一个用于A道无车,一个用于B道无车,一个用于特殊情况,都红的情况。
主控制方案
采用AT89C51单片机作为控制器,控制整个反感实行通行倒计时及A道、B道、一道有车和特殊情况都为无车情况、通过变成方案设计占用单片机的端口尽量最少,硬件也做到能少最好的地步。
第四章具体实现的程序
#include<>
bitflag;
voidAdao(void);
voidBdao(void);
voidtheshu(void);
#defineuintunsignedchar
#defineucharunsignedchar
voiddelay_ms(uintdelay);
voidjjj(void);
ucharsum=0;
ucharcount=0;
ucharflag3=0;
voidxianshi(void);
bitflag;
sbitp36=P3^6;
sbitp37=P3^7;
sbitp32=P3^2;
ucharcodeLED_Val[]={0xc0,0xf9,0xa4,0x0b0,0x99,0x92,0x82,0x0f8,0x80,0x98};
uchardatanum[4];
uchardataled_point[2]={0xfd,0xfe};
voiddisp(uintdisp_value);
voidbcd(uintbcd_value);
ucharatt;
voidsystem(void);
3c3c后计中到谢李广弟等单片机基础北京航空航天出版社,
2.楼然苗等51系列单片机设计实例北京航空航天出版社,
3.马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2008
原理仿真图