交通灯单片机课程设计

上传人:第*** 文档编号:57162064 上传时间:2018-10-19 格式:DOC 页数:19 大小:396KB
返回 下载 相关 举报
交通灯单片机课程设计_第1页
第1页 / 共19页
交通灯单片机课程设计_第2页
第2页 / 共19页
交通灯单片机课程设计_第3页
第3页 / 共19页
交通灯单片机课程设计_第4页
第4页 / 共19页
交通灯单片机课程设计_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《交通灯单片机课程设计》由会员分享,可在线阅读,更多相关《交通灯单片机课程设计(19页珍藏版)》请在金锄头文库上搜索。

1、 单片机原理与接口技术课程设计报告单片机原理与接口技术课程设计报告课题:课题:以交通灯为主的多功能任务设计以交通灯为主的多功能任务设计 班级班级 学号学号 学生姓名学生姓名 指导教师指导教师 淮阴工学院淮阴工学院电子与电气工程学院电子与电气工程学院2015-62015-6目目 录录一、 课程设计目的2 二、 设计要求2 1 总体要求.2 2 具体要求.2 3 系统硬件总框图.3 1)AT89C52 单片机.4 3)数码管显示电路5 4)LED 灯显示.6 5)键盘扫描模块6 6)蜂鸣器电路7 三、 硬件电路的设计及描述7 1 硬件总框图及原理图.7 2 主程序流程图.9 3 各模块流程图.10

2、 1)时间显示程序流程图10 2)流水灯程序流程图10 3)利用蜂鸣器的音乐流程图11 4)交通灯控制11 四、 源程序代码12 六、调试情况 六、 设计心得18 七、 参考文献181、设计目的设计目的单片机原理及应用课程设计是一项重要的实践性教育环节,是学生在校期间必须接受的一项工程训练。在课程设计过程中,在教师指导下,应用工程的方法,通过一个简单课题的设计练习,可使学生初步体验单片机应用系统的设计过程、设计要求、完成的工作内容和具体的设计方法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。通过课程设计,应该能加强学生如下能力的培养:(1) 独立工作能力和

3、创造力;(2) 综合运用专业及基础知识,解决实际工程技术问题的能力;(3) 查阅图书资料、产品手册和各种工具书的能力;(4) 工程绘图的能力;(5) 编写技术报告和编写技术资料的能力。2、设计要求设计要求1总体要求总体要求(1)独立完成设计任务(2)绘制系统硬件总框图(3)绘制系统原理电路图(4)制定编写设计方案,编制软件框图,完成详细完整的程序清单和注释(5)制定编写调试方案,编写用户操作使用说明书(6)写出设计工作小结。对在完成以上文件过程所进行的有关步骤如设计思想、指标论证、方案确定、参数计算、元器件选择、原理分析等作出说明,并对所完成的设计作出评价,对自己整个设计工作中经验教训,总结收

4、获和今后研究方向。2具体要求具体要求本次工程实践的校内部分主要以单片机为基础,进行单片机软件编程,目的是为了提高学生的软件编程和系统设计能力,整个设计系统包括两个部分,硬件及软件部分,硬件部分已经制作成功,学生只需要掌握其原理和焊接相应的元器件,掌握元器件的辨别和元器件的作用以及应用场所即可,另外对所焊接的电路还需要进行仔细的检查,判断是否有焊接错误的地方或者短路的地方,对出现的异常情况要能够根据现象判别原因,并具备解决问题的能力,从而切实提高学生的硬件电子电路的分析、判断能力。软件编程是本次课程设计的重要环节。在为期两周的工程实践中,将占据主要时间,完成的软件编程任务主要包括以下几点:1)

5、、熟悉 Keil C51 编程平台及相关编程软件2) 、编写、调试蜂鸣器、继电器动作、方波程序并进行软硬件联调3) 、编写、调试 LED 流水灯(循环显示)程序并进行软硬件联调4) 、编写、调试键盘扫描子程序并进行软硬件联调5) 、编写、调试数码管动态扫描程序并进行软硬件联调6) 、基于交通灯的多功能控制设计其中前五个内容是后两个内容的基础,主要是编制一些子程序,为后继的整个系统设计打下基础。交通灯控制是在五个课题中选做的一个设计,是一个简单的单片机编程设计,来实现智能交通灯的多功能作用。3系统硬件总框图系统硬件总框图图 1 系统设计总框图此次课程设计,AT89C52 是一种带 2K 字节闪烁

6、可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS 8 位微处理器,俗称单片机。1)AT89C52 单片机单片机设计中所用的单片机型号为 AT89C52 ,其主要功能为:AT89C52 是低功耗、高性能的 CMOS 8 位单片机。片内带有 8KB 的 Flash存储器,且允许在系统内改写或用编程器编程。另外,AT89C52 的指令系统和引脚与 80C52 完全兼容,所以,近几年 AT89C52 单片机应用极为广泛。AT89C52 单片机除了含有 8KB 的 Flash 存储器外,片内还

7、有 256 B 的RAM,32 条 I/O 口线,3 个 16 位定时/计算器、6 个中断源、1 个全双工串行口等。同时,与 80C52 一样,有空闲和掉电两种节电运行方式。AT89C52 引脚如下图所示:图 2 AT89C52 引脚AT89C52 单片机为 40 脚双列直插封装的 8 位通用微处理器,采用工业标准的 C51 内核,在内部功能及管脚排布上与通用的 8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主 IC 内部寄存器、数据 RAM 及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号 IR 的接收解码及与主板 CPU 通信等。2)DS1302

8、模块模块DS1302 的 RST 是复位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。当 RST 为高电平时,所有的数据传送被初始化,允许对 DS1302进行操作。如果在传送过程中 RST 置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。其管脚图如下:图 3 DS1302 管脚图各引脚功能:Vcc1 为后备电源,VCC2 为主电源,X1 和 X2 是振荡源,SCLK 为输入端RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。3)数码管显示电路)数码管显示电路图 4 数码管显示电路设

9、计中采用六位共阴极数码管,通过单片机 STC89C52 的 P0 口控制其位选和段选,以达到动态显示相应数值的效果。在其位选控制部分,采用了一个 9012型三极管,要求当 P0 口输出低电平时,位选成功。 所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的 COM 端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约 1ms) ,但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。4)LED 灯显示灯显示图 5 LED 显示模块本次课程设计中, “程序语言

10、”通过“翻译”软件“翻译”成单片机所需的二进制代码,单片机可工作。要用外加电源和分压电阻来控制低电平驱动点亮,因为单片机不能直接高电平驱动 LED 灯。如图 D1-D8 和 R1、R2 以及 R6-R11连接到单片机 IO 口,当 P1 口某脚变低时相应 LED 发光。实现 LED 灯的闪烁,只需利用编程方法依次从低位到高位逐个变为低电平,等待少许时刻再变高即可。5)键盘扫描模块)键盘扫描模块图 6 按键输入电路本模块四个开关分别用于控制流水灯控制电路,时间显示电路,音乐蜂鸣器电路,交通灯四部分功能。当按下其中一个开关时,该部分电路导通,给单片机发出地址信号,实现其中一项功能的运做,如图 4

11、所示。KEYA 键:其功能是当该键按下时,蜂鸣器程序工作;KEYB 键:其功能是当该键按下时,流水灯程序工作;KEYC 键:其功能是当该键按下时,数码管动态扫描程序工作;KEYD 键:其功能是当该键按下时,交通灯程序工作。6)蜂鸣器电)蜂鸣器电路路图 7 蜂鸣器电路蜂鸣器单元电路是通过一个 PNP 三极管来放大驱动蜂鸣器,蜂鸣器的正极接到5V 电源上面,蜂鸣器的负极接到三极管的发射极,三极管的基极经过限流电阻后由单片机的 P3.4 控制。当输出高电平时,三极管截止,蜂鸣器的两引脚间的直流电压接近于 0V,没有电流流过线圈,蜂鸣器不发声;当输出低电平时,三极管导通,使蜂鸣器的两个引脚间获得将接近

12、+5V 的直流电压,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制 IO 口输出的电平来控制蜂鸣器是否发出声音,实现各种可能音响的产生。 3、硬件电路的设计及描述硬件电路的设计及描述1硬件总框图及原理图硬件总框图及原理图图 8 硬件总框图图 9 硬件总原理图2主程序流程图主程序流程图3各模块流程图各模块流程图1)时间显示程序流程图)时间显示程序流程图2)流水灯程序流程图)流水灯程序流程图3)利用蜂鸣器的音乐流程图)利用蜂鸣器的音乐流程图4)智能交通灯)智能交通灯4、源程序代码源程序代码/* * 文件名 : 4 个功能由按键控制.c * 描 述 : 按下 A 键,实现蜂鸣器动作。

13、按下 B 键,实现 LED 流水灯循环显示。按下 C 键,实现数码管动态扫描显示。按下 D 键,实现交通灯功能。 * 创建人 : */ #include #include #define uint unsigned int / 无符号整形习惯的定义 #define uchar unsigned char /无符号字符型习惯的定义 void buzz_key(void); /子函数声明 void led_key(void); void tube_key(void); void traffic(void); unsigned char code duanma10=0x3f,0x06,0x5b,0x

14、4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; / 0 1 2 3 4 56 7 8 9 unsigned char code weima6=0xfe,0xfd,0xfb,0xf7,0xef,0xdf;/ 选择哪个数码管 unsigned char temp6; uchar i=35; uchar k=30; uchar l=5; uchar j; uchar b; /定义变量 sbit duan=P26;/定义管脚 sbit wei=P27; sbit key_A=P34; sbit key_B=P35; sbit key_C=P36; sbit key_D=P37; sbit buzz=P23; sbit DIOLA=P25; sbit csda=P32; sbit red=P10;/交通灯管脚定义 sbit green=P11; sbit yellow=P12;/* * 名称 : Delay_1ms() * 功能 : 延时子程序,延时时间为 1ms * x * 输入 : x (延时一毫秒的个数) * 输出 : 无 */void Delay_1ms(unsigned int t) unsigned char x,y; for(x=t;x0;x-) for(y=110;y0;y-); /* * 名称 :

展开阅读全文
相关资源
相关搜索

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

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号