基于单片机的交通灯设计.docx

上传人:b****5 文档编号:4519318 上传时间:2022-12-01 格式:DOCX 页数:22 大小:220.80KB
下载 相关 举报
基于单片机的交通灯设计.docx_第1页
第1页 / 共22页
基于单片机的交通灯设计.docx_第2页
第2页 / 共22页
基于单片机的交通灯设计.docx_第3页
第3页 / 共22页
基于单片机的交通灯设计.docx_第4页
第4页 / 共22页
基于单片机的交通灯设计.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

基于单片机的交通灯设计.docx

《基于单片机的交通灯设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的交通灯设计.docx(22页珍藏版)》请在冰豆网上搜索。

基于单片机的交通灯设计.docx

基于单片机的交通灯设计

 

单片机技术课程设计说明书

单片机控制交通灯

专业

电气工程及其自动化

学生姓名

朱宇恒

班级

电气141

学号

1410060444

指导教师

吴冬春

完成日期

2017年5月19日

 

1.概述................................................................................................................................3

1.1项目设计要求...........................................................................................................3

3.系统方案硬件设计..........................................................................................................3

3.1系统总框图...............................................................................................................3

3.2各模块原理说明.......................................................................................................4

3.2.1单片机简介.....................................................................................................4

3.2.2单片机最小系统.............................................................................................5

3.3.3显示模块功能.................................................................................................6

3.3.4按键模块功能.................................................................................................7

4.系统方案软件设计..........................................................................................................8

4.1主程序设计流程.......................................................................................................8

4.2子程序设计流程.......................................................................................................8

4.3C语言程序...............................................................................................................9

5.心得体会..........................................................................................................................9

参考文献...........................................................................................................................10

附录...........................................................................................................................12

附录1程序清单..........................................................................................................12

附录2Proteus仿真图..................................................................................................20

附录3元器件清单......................................................................................................21

 

1.概述

当今,红绿灯已经安装在各个道路口上,成为疏导车辆最常见并且最有效的手段。

但这一技术在19世纪就已出现了。

交通灯的出现改变了交通路况,也在人们日常生活中占据了重要地位。

随着经济的发展,人们的生活水平日益上升,汽车数量急剧增加,城市道路日渐拥挤,交通灯更加显示出了它的功能,使得交通得到有效的控制,在交通疏导,提高道路导通能力,减少交通事故方面有显著的效果。

近年来,随着单片机芯片的发展,单片机在各个领域的应用越来越多。

交通信号灯控制方式很多。

本系统采用STC89C52单片机以及单片机最小系统设计一个基于单片机的交通灯设计。

设计通过两位一体共阴极数码管显示,并能通过按键对系统进行控制。

1.1项目设计要求

1、用单片机设计一个交通灯系统,并用数码管显示时间,LED指示通行。

2、按键功能:

复位功能、夜间模式(黄灯均亮)、紧急通行(东西向南北向均为红灯)。

3.系统方案硬件设计

3.1系统设计总框图

 

 

单片机

 

图1.系统设计总框图

 

3.2各模块原理说明

单片机是在集成电路芯片上集成了各种元件的微型计算机,这些元件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时/计数器、中断系统、时钟部件的集成和I/O接口电路。

由于单片机具有体积小、价格低、可靠性高、开发应用方便等特点,因此在现代电子技术和工业领域应用较为广泛,在智能仪表中单片机是应用最多、最活跃的领域之一。

在控制领域中,现如今人们更注意计算机的底成本、小体积、运行的可靠性和控制的灵活性。

在各类仪器、仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,提高计算机的运算速度,简化仪器仪表的硬件结构,提高其性能价格比。

3.2.1单片机简介

 

图2.STC89C52单片机

VCC:

STC89C52电源正端输入,接+5V。

GND:

电源地端。

XTAL1:

单芯片系统时钟的反相放大器输入端。

XTAL2:

系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。

其引脚分配如下:

P3.0:

RXD,串行通信输入。

P3.1:

TXD,串行通信输出。

P3.2:

INT0,外部中断0输入。

P3.3:

INT1,外部中断1输入。

P3.4:

T0,计时计数器0输入。

P3.5:

T1,计时计数器1输入。

P3.6:

WR:

外部数据存储器的写入信号。

P3.7:

RD,外部数据存储器的读取信号。

RST:

复位输入。

当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

3.2.2单片机最小系统

图3.单片机最小系统图

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

单片机最小系统原理说明:

4.5V电源:

给系统供电。

晶振:

给单片机运行提供脉冲。

EA接高电平:

表示运行内部程序存储器下载的程序。

主要管脚说明:

VCC(40脚):

供电电压

GND(20脚):

接地。

RST:

复位输入。

/EA/VPP(31脚):

当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

只选用偏外存储器,否则单片机上电或复位后选用片内程序存储器。

XTAL1(19脚):

反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2(18脚):

来自反向振荡器的输出。

3.2.3显示模块

显示,分别由码管显示和LED显示,数码管倒计时显示信号灯颜色发生改变的时间,LED显示信号灯的颜色以传达通行和停止的指令。

LED交通灯利用发光二极管来显示不同颜色的信号指示灯。

图4.二极管显示仿真电路图

数码管是一种半导体发光器件,其基本单元是发光二极管。

数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管:

按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。

共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管,共阳数码管在应用时应将公共极COM接到+5V,当某一字段发光二极管的阴极为低电平时,相应字段就点亮,当某一字段的阴极为高电平时,相应字段就不亮。

共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管,共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮,当某一字段的阳极为低电平时,相应字段就不亮。

 

图5.数码管显示仿真图

3.3.4按键模块

本系统要求的按键控制不多,且I/0口足够,所以直接采用独立式按键。

按键可以设置系统的运行状态,在此系统中,共有三个按键:

紧急状态即南北向东西向均为红灯,为数码管均显示“00”,红灯全亮;复位按键可以将整个系统复位;夜间模式为数码管显示“00”,四个方向黄灯闪烁。

通过无数次的实验检测控制,整个系统具有灵活性,实用性、可靠性。

图6.复位按键图7.夜间模式与紧急模式按键

 

4.系统方案软件设计

4.1主程序设计流程

全部控制程序实际上分为若干模块:

键盘设置处理程序,状态灯控制程序,LED显示程序,消抖动延时程序,次状态判断及处理程序,紧停或违规判断程序,中断服务子程序,车流量计数程序,红绿灯时间调整程序等。

整个软件程序方面主要分两大部分:

按键处理程序和50ms扫描程序。

 

图8.系统设计总流程图

4.2子程序设计流程

按键模块的控制是调用中断来实现控制的,独立式键盘的实现方法是利用单片机I/O口读取口的电平高低来判断是否有键按下。

将常开按键的一端接地,另一端接一个I/O口,程序开始时将此I/O口置于高电平,平时无键按下时I/O口保护高电平。

当有键按下时,此I/O口与地短路迫使I/O口为低电平。

按键释放后,单片机内部的上拉电阻使I/O口仍然保持高电平。

我们所要做的就是在程序中查寻此I/O口的电平状态就可以了解我们是否有按键动作了。

定时中断子程序是本设计的重点,定时器一但启动,它便在原来的数值上开始加1计数,若在程序开始时,我们没有设置TH0和TL0,它们的默认值都是0,假设时钟频率为12MHz,12个时钟周期为一个机器周期,那么此时机器周期为1us,记满TH0和TL0就需要216-1个数,再来一个脉冲计数器溢出,随即向CPU申请中断。

因此溢出一次共需65536us,约等于65.6ms,如果我们要定时50ms的话,那么就需要先给TH0和TL0装一个初值,在这个初值的基础上记50000个数后,定时器溢出,此时刚好就是50ms中断一次,当需要定时1s时,我们写程序时当产生20次50ms的定时器中断后便认为是1s,这样便可精确控制定时时间啦负责完成数码管输出数据刷新和各个状态的处理切换。

中断子程序包括数码管输出数据刷新程序和各状态处理程序。

中断程序的流程图如图所示。

 

 

图9.定时中断流程图

 

4.3C语言程序

见附录1

5.心得体会

时光匆匆如流水,转眼两周已经过去。

在这次的单片机课程设计中,我学到很多。

看似简单的东西,其中还是有很多小细节需要注意,不能马虎。

就如焊接单片机板时,要把握好焊锡的量,导线的焊接也要小心不能把绝缘皮烫化,零件正负极的区分尤为重要,这直接影响后面调试的结果。

在设计前期我在网上找了大量的资料确定了初步的设计方案,然后在参考书上搜集到所需要的程序,以为这样就能顺利完成任务。

然而在调试的过程中我才发现,因为所用的程序的地址会发生冲突,或者那些子程序并不适合我们所选的元件,错误总是不断。

在这种情况下,我只得静下心来,重新分析硬件电路的工作原理,直到完全搞懂了各个组成模块的工作原理及工作过程后,才从整体上把握该设计所要实现的功能及其工作方式。

一开始我对单片机这门课的认识并不是很深,但是通过这次课程设计,我在实践中学到了许多平时不了解的知识,例如对硬件和软件的设计思想有了深刻的理解。

本次课程设计,不仅丰富了我们的理论知识,并且极大地提高了我们的实践能力,单片机领域对我今后学习电气自动化方面有极大的帮助。

在设计中遇到了很多编程问题,最后在老师的辛勤指导下,在同学的热情帮助下,终于迎刃而解。

最后,感谢老师在本次课程设计中对我的热心帮助与辛勤指导,同时也要感谢给予我帮助的同学们!

参考文献

[1]李建忠.单片机原理及应用[M].西安电子科技大学出版社

[2]胡辉.单片机原理及应用设计[M].中国水利水电出版社

[3]徐爱钧.8051单片机实践教程[M].北京电子工业出版社

[4]楼然苗,李光飞.51系列单片机设计实例[M].北京航空航天大学出版社

[5]邱关源.电路[M].北京:

北京高等教育出版社

[6]全国大学生电子设计竞赛组委会.北京:

北京理工大学出版社[7]韩全立.赵德申编著.微机控制技术[M].北京:

机械工业出版社

[8]王守中,聂元铭.51单片机开发入门与典型实例[M].北京:

人民邮电出版社

[9]钟富昭,张晨.8051单片机典型模块设计与应用[M].北京:

人民邮电出版社

[10]胡学海.单片机及应用系统设计[M].北京:

北京电子工业出版社

[11]陈小忠,黄宁.单片机接口技术实用子程序[M],北京:

北京人民邮电出版社

[12]李广弟.单片机基础.北京:

北京航空航天大学出版社

[13]何立民.单片机应用技术大全.北京:

北京航空航天大学出版社

附录

附录1:

程序清单

#include

#defineucharunsignedchar

#defineuintunsignedint

uchardatabuf[4];

uchardatasec_dx=15;

uchardatasec_nb=20;

uchardataset_timedx=15;

uchardataset_timenb=20;

intn;

uchardatacountt0,countt1;

sbitk4=P3^7;

sbitk1=P3^5;

sbitk2=P3^6;

sbitk3=P3^4;

sbitk5=P3^1;

sbitk6=P1^5;

sbitRed_nb=P2^6;

sbitYellow_nb=P2^5;

sbitGreen_nb=P2^4;

sbitRed_dx=P2^3;

sbitYellow_dx=P2^2;

sbitGreen_dx=P2^1;

bitset=0;

bitdx_nb=0;

bitshanruo=0;

bityejian=0;

ucharcodetable[11]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};

voiddelay(intms);

voidkey();

voidkey_to1();

voidkey_to2();

voidkey_to3();

voiddisplay();

voidlogo();

voidBuzzer();

voidmain()

{

TMOD=0X11;

TH1=0X3C;

TL1=0XB0;

TH0=0X3C;

TL0=0XB0;

EA=1;

ET0=1;

ET1=1;

TR0=1;

TR1=0;

EX0=1;

EX1=1;

logo();

P2=0Xc3;

sec_nb=sec_dx+3;

while

(1)

{key();

display();

}

}

voidkey(void)

{if(k1!

=1)

{

display();

if(k1!

=1)

{

TR0=0;

shanruo=0;

P2=0x00;

TR1=0;

if(set==0)

set_timedx++;

else

set_timenb++;

if(set_timenb==100)

set_timenb=1;

if(set_timedx==100)

set_timedx=1;

sec_nb=set_timenb;

sec_dx=set_timedx;

do

{

display();

}

while(k1!

=1);

}

}

if(k2!

=1)

{

display();

if(k2!

=1)

{

TR0=0;

shanruo=0;

P2=0x00;

TR1=0;

if(set==0)

set_timedx--;

else

set_timenb--;

if(set_timenb==0)

set_timenb=99;

if(set_timedx==0)

set_timedx=99;

sec_nb=set_timenb;

sec_dx=set_timedx;

do

{

display();

}

while(k2!

=1);

}

}

if(k3!

=1)

{

display();

if(k3!

=1)

{

TR0=1;

sec_nb=set_timenb;

sec_dx=set_timedx;

TR1=0;

if(set==0)

{

P2=0X00;

Green_dx=1;

Red_nb=1;

sec_nb=sec_dx+3;

}

else

{

P2=0x00;

Green_nb=1;

Red_dx=1;

sec_dx=sec_nb+3;

}

}

}

if(k4!

=1)

{

display();

if(k4!

=1)

{

TR0=0;

set=!

set;

TR1=0;

dx_nb=set;

do

{

display();

}

while(k4!

=1);

}

}

if(k5!

=1)

{

display();

if(k5!

=1)

{

TR0=0;

P2=0x00;

Red_dx=1;

Red_nb=1;

TR1=0;

sec_dx=00;

sec_nb=00;

do

{

display();

}

while(k5!

=1);

}

}

if(k6!

=1)

{

display();

if(k6!

=1)

{

TR0=0;

P2=0x00;

TR1=1;

sec_dx=00;

sec_nb=00;

do

{

display();

}

while(k6!

=1);

}

}

}

voiddisplay(void)

{

buf[1]=sec_nb/10;

buf[2]=sec_nb%10;

buf[3]=sec_dx/10;

buf[0]=sec_dx%10;

P1=0xff;

P0=0x00;

P1=0xfe;

P0=table[buf[1]];

delay

(1);

P1=0xff;

P0=0x00;

P1=0xfd;

P0=table[buf[2]];

delay

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1