单片机课程交通灯设计报告1.docx
- 文档编号:2877179
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:24
- 大小:434.33KB
单片机课程交通灯设计报告1.docx
《单片机课程交通灯设计报告1.docx》由会员分享,可在线阅读,更多相关《单片机课程交通灯设计报告1.docx(24页珍藏版)》请在冰豆网上搜索。
单片机课程交通灯设计报告1
目录
1.课程设计目的和功能…………………………………………
2.器件介绍
三硬件电路设计……………………………………3
3.1硬件设计总框图………………………………………………3
3.1.1主控电路…………………………………………………4
3.1.2按键控制扫描模块…………………………………………5
3.1.3数码管显示模块……………………………………………8
3.1.4LED显示模块………………………………………………9
3.1.5扬声器模块…………………………………………………10
3.1.6交通灯模块………………………………………6
3.2硬件原理图…………………………………………………12
四软件流程框图…………………………………12
4.1主程序流程图………………………………………………12
4.2蜂鸣器流程图………………………………………………14
4.3流水灯程序流程图……………………………………………15
4.4时钟显示流程图…………………………………………16
4.5交通灯控制流程图………………………………………17
5.源程序代码及注释………………………………………33
6.课程设计体会…………………………………………34
7.参考文献………………………………………………35
一、课程设计目的和功能
《单片机原理及应用》课程设计是一项重要的实践性教育环节,是学生在校期间必须接受的一项工程训练。
在课程设计过程中,在教师指导下,运用工程的方法,通过一个简单课题的设计练习,其目的使学生初步体验单片机应用系统的设计过程、设计要求、完成工作内容和具体的设计方法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题
。
通过课程设计,应能加强学生如下能力的培训:
(1)独立工作能力和创造力;
(2)查阅图书资料,产品手册和各种工具书的能力;
(3)工程绘图的能力;
(4)编写技术报告和编制技术资料的能力
(5)综合运用专业及基础知识,解决实际工程技术问题的能力;
本次工程实践的校内部分主要以单片机为基础,进行单片机软件编程,目的是为了提高学生的软件编程和系统设计能力,整个设计系统包括两个部分,硬件及软件部分,硬件部分已经制作成功,学生只需要掌握其原理和焊接相应的元器件,掌握元器件的辨别和元器件的作用以及应用场所即可,另外对所焊接的电路还需要进行仔细的检查,判断是否有焊接错误的地方或者短路的地方,对出现的异常情况要能够根据现象判别原因,并具备解决问题的能力,从而切实提高学生的硬件电子电路的分析、判断能力。
软件编程是本次工程实践的重要环节。
在为期两周的工程实践中,将占据主要时间,学生要完成的软件编程任务主要包括以下几点:
1)、熟悉KeilC51编程平台及相关编程软件
2)、编写、调试蜂鸣器、继电器动作、方波程序并进行软硬件联调
3)、编写、调试LED流水灯(循环显示)程序并进行软硬件联调
4)、编写、调试键盘扫描子程序并进行软硬件联调
5)、编写、调试数码管动态扫描程序并进行软硬件联调
9)、交通灯控制设计
二.器件介绍
AT89C52:
本次课程设计中主要是设计一个以交通灯控制为主的多功能控制系统。
该设计中我们主控电路部分采用了单片机AT89C52芯片来实现这些功能。
AT89C52是一个低电压,高性能CMOS的8位单片机,片内含8KB的可反复擦写的Flash只读程序存储器和256B的随机存取数据存储器(RAM)。
按键:
用于控制数码显示、LED显示、扬声器等模块的工作。
通过扫描按键是否按下,来设定各模块的工作情况,使各模块可以在按键的控制下,有序地进行工作。
设计中使用单个按键实现单个功能,属于较为简单的控制方式.
数码管:
设计中采用六位共阳极数码管,共阳极是指其公共端接正极,通过单片机AT89C52的P0口控制其位选和段选,以达到动态显示相应数值的效果。
在其位选控制部分,采用了一个9012型三极管,要求当P0口输出低电平时,位选成功。
LED(LightEmittingDiode):
发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。
LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极
蜂鸣器:
是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。
三、硬件电路设计
3.1硬件设计总框图
原理说明:
本电路以单片机AT89C52为主控电路,分别连接按键控制扫描模块、扬声器模块、LED显示模块、数码显示模块、交通灯模块。
首先,按键扫描模块的四个按键分别用来控制数码显示、LED显示和扬声器工作,P1口作为输出口,用来控制LED的亮灭,要使其亮只需要让P1.0-P1.7口保持低电平就可以使8个灯亮起来。
同时通过P2.3端控制蜂鸣器发生,当P2.3输出低电平时候使蜂鸣器发出声音,按下按键1时使蜂鸣器发声。
P0口用来控制数码管段选和位选,以显示相应的数值。
在其位选控制部分,采用了9012型的三极管,要求当对应端口输出低电平时,位选成功,使得该位选的数码管亮,数码管显示时分通过按键3控制。
最后通过按按键4实现交通灯控制的功能。
3.1.1主控电路
本次课程设计中主要是设计一个以交通灯控制为主的多功能控制系统。
该设计中我们主控电路部分采用了单片机AT89C52芯片来实现这些功能,AT89C52是一个低电压,高性能CMOS的8位单片机,片内含8KB的可反复擦写的Flash只读程序存储器和256B的随机存取数据存储器(RAM)。
其引脚如下图所示:
图1.AT89C52引脚图
VCC:
供电电压。
GND:
接地。
P0口(P0.0-P0.7):
P0口来输出数码管位选及段选数据,以控制相应数码管显示相应数值。
P1口(P1.0-P1.7):
P1口来控制LED的亮灭。
P2口(P2.0-P2.7):
使能相应的模块功能;wela(P2.7):
控制数码管位选;
dula(P2.6):
控制数码管段选。
P3口(P3.0-P3.7):
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(外部数据存储器读选通)。
XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。
RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。
VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源正负端。
P0~P3为可编程通用I/O脚,其功能用途由软件定义。
3.1.2按键控制扫描模块
按键用于控制数码显示、LED显示、扬声器等模块的工作。
通过扫描按键是否按下,来设定各模块的工作情况,使各模块可以在按键的控制下,有序地进行工作。
设计中使用单个按键实现单个功能,属于较为简单的控制方式.
图2.按键输入电路
在多功能系统设计的实验中中我们使用四个按键分别与单片机的P3.4、P3.5、P3.6、P3.7相连,按键1控制蜂鸣器发声、按键2控制LED流水灯、按键3控制数码管显示,按键4交通灯。
通过按下相应的按键来处理相应的程序。
3.1.5数码管显示模块
设计中采用六位共阳极数码管,共阳极是指其公共端接正极,通过单片机AT89C52的P0口控制其位选和段选,以达到动态显示相应数值的效果。
在其位选控制部分,采用了一个9012型三极管,要求当P0口输出低电平时,位选成功。
图5.数码管显示电路
硬件电路中,数码管显示的小时、分、秒,通过键1选择,键2、键3调整。
数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
1静态显示驱动:
静态驱动也称直流驱动。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。
静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多,如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个呢:
),实际应用时必须增加译码
2驱动器进行驱动,增加了硬件电路的复杂性。
②动态显示驱动:
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。
通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。
在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。
3.1.4LED显示模块
LED(LightEmittingDiode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。
LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。
半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。
但这两种半导体连接起来的时候,它们之间就形成一个“P-N结”。
当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。
而光的波长也就是光的颜色,是由形成P-N结的材料决定的。
图6.LED显示电路
本次设计中通过按键2来控制其流水显示,打开电源后按下按键2流水灯模块有效。
由于电路中LED为共阳极,故控制流水灯显示的P1口应为低电平时才有效。
从原理图中可以看出,如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED的点亮和熄灭的方法同LED1。
因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。
我们首先把要显示流水花样的数据建在一个以TAB为标号的数据表中,然后通过查表指令“MOVC A,@A+DPTR”把数据取到累加器A中,然后再送到P1口进行显示。
在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到“流水”效果了。
3..1.3扬声器模块
扬声器模块通过按键1来实现。
要求扬声器能够发出连续,断续的声音及音乐,我们可以选择一个蜂鸣器来实现这些功能。
图7.扬声器电路
蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程 交通灯 设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)