单片机课程设计--交通灯多功能任务设计(共21页)_第1页
单片机课程设计--交通灯多功能任务设计(共21页)_第2页
单片机课程设计--交通灯多功能任务设计(共21页)_第3页
单片机课程设计--交通灯多功能任务设计(共21页)_第4页
单片机课程设计--交通灯多功能任务设计(共21页)_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 单片机原理(yunl)与接口技术课程设计报告(bogo)课题(kt):以交通灯为主的多功能任务设计 班级 电气3113 学号 1111221108 学生姓名 尹志勇 指导教师 白秋产 郑蓉建 淮阴工学院电子与电气工程学院2014-12 目 录TOC o 1-3 h u HYPERLINK l _Toc12043 一、 设计(shj)目的 PAGEREF _Toc12043 2 HYPERLINK l _Toc1620 二、 设计(shj)要求 PAGEREF _Toc1620 2 HYPERLINK l _Toc31962 1 总体(zngt)要求 PAGEREF _Toc31962 2 H

2、YPERLINK l _Toc8599 2 具体要求 PAGEREF _Toc8599 2 HYPERLINK l _Toc25124 3 系统硬件总框图 PAGEREF _Toc25124 3 HYPERLINK l _Toc32030 1)AT89C52单片机 PAGEREF _Toc32030 4 HYPERLINK l _Toc7042 2)DS1302模块 PAGEREF _Toc7042 5 HYPERLINK l _Toc8912 3)数码管显示电路 PAGEREF _Toc8912 5 HYPERLINK l _Toc5155 4)LED灯显示 PAGEREF _Toc5155

3、 6 HYPERLINK l _Toc24166 5)键盘扫描模块 PAGEREF _Toc24166 6 HYPERLINK l _Toc18716 6)蜂鸣器电路 PAGEREF _Toc18716 7 HYPERLINK l _Toc32751 三、 硬件电路的设计及描述 PAGEREF _Toc32751 7 HYPERLINK l _Toc15427 1 硬件总框图及原理图 PAGEREF _Toc15427 7 HYPERLINK l _Toc21450 2 主程序流程图 PAGEREF _Toc21450 9 HYPERLINK l _Toc6878 3 各模块流程图 PAGER

4、EF _Toc6878 10 HYPERLINK l _Toc796 1)时间显示程序流程图 PAGEREF _Toc796 10 HYPERLINK l _Toc7840 2)流水灯程序流程图 PAGEREF _Toc7840 10 HYPERLINK l _Toc26956 3)利用蜂鸣器的音乐流程图 PAGEREF _Toc26956 11 HYPERLINK l _Toc9170 4)交通灯控制 PAGEREF _Toc9170 11 HYPERLINK l _Toc3598 四、 源程序代码 PAGEREF _Toc3598 12 HYPERLINK l _Toc1443 五、 设计

5、心得 PAGEREF _Toc1443 18 HYPERLINK l _Toc12537 六、 参考文献 PAGEREF _Toc12537 18设计(shj)目的单片机原理及应用课程设计是一项重要的实践性教育环节,是学生在校期间(qjin)必须接受的一项工程训练。在课程设计过程中,在教师指导下,应用工程的方法,通过一个简单课题的设计练习,可使学生初步体验单片机应用系统的设计过程、设计要求、完成的工作内容和具体的设计方法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。通过课程设计,应该能加强(jiqing)学生如下能力的培养:(1)独立工作能力和创造力;(2

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

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

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

9、 Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称(s chn)单片机。1)AT89C52单片机设计中所用的单片机型号为AT89C52 ,其主要(zhyo)功能为:AT89C52是低功耗、高性能的CMOS 8位单片机。片内带有8KB的Flash存储器,且允许在系统内改写或用编程器编程。另外,AT89C52的指令系统和引脚与80C52完全兼容,所以,近几年AT89C52单片机应用极为广泛。AT89C52单片机除了含有8KB的Flash存储器外,片内还有256 B的RAM,32条I/O口线,3个16位定时/计算器、6

10、个中断源、1个全双工串行口等。同时,与80C52一样,有空闲和掉电两种节电运行方式。AT89C52引脚如下图所示:图2 AT89C52引脚AT89C52单片机为40脚双列直插封装的8 位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52 相同,其主要用于会聚调整时的功能控制。功能包括对会聚主IC 内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。2)DS1302模块(m kui)DS1302的RST是复位/片选线,通过把RST输入驱动(q dn)置高电平来启动所有的数据传送。当RST为

11、高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。其管脚图如下(rxi): 图3 DS1302管脚图各引脚功能:Vcc1为后备电源,VCC2为主电源,X1和X2是振荡源,SCLK为输入端RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。3)数码管显示(xinsh)电路图4 数码管显示(xinsh)电路数码显示电路设计中采用四位共阳极扫描型数码管即其公共端接正极(zhngj), 扫描型是指数码管的段选都是并联的。其位选位控制哪

12、一位的数码管亮,在设计中由单片机AT89C52的P1口控制其位选,以达到动态显示的效果,再通过P0口,控制其段选以显示相应的数值。所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。4)LED灯显示图5 LED显示模块本次(bn c)课程设计中,“程序语言”通过(tnggu)“翻译(fny)”软件“翻译”成单片机所需的二进制代码,单片机可工

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

14、C键:其功能是当该键按下时,数码管动态扫描程序工作;KEYD键:其功能是当该键按下时,交通灯程序工作。6)蜂鸣器电路 图7 蜂鸣器电路蜂鸣器单元电路是通过一个PNP三极管来放大驱动蜂鸣器,蜂鸣器的正极接到5V电源上面,蜂鸣器的负极接到三极管的发射极,三极管的基极经过(jnggu)限流电阻后由单片机的P3.4控制。当输出高电平时,三极管截止(jizh),蜂鸣器的两引脚间的直流电压接近于0V,没有电流流过线圈,蜂鸣器不发声;当输出低电平时,三极管导通,使蜂鸣器的两个引脚间获得将接近+5V的直流电压,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制IO口输出的电平来控制蜂鸣器是否发出声

15、音,实现各种可能音响的产生。硬件电路的设计(shj)及描述硬件总框图及原理图图8 硬件总框图图9 硬件(yn jin)总原理图主程序流程图 各模块(m kui)流程图1)时间显示(xinsh)程序流程图2)流水(lishu)灯程序流程图3)利用(lyng)蜂鸣器的音乐流程图4)智能(zh nn)交通灯源程序代码(di m)/* 文件名 : 4个功能(gngnng)由按键控制.c* 描 述 : 按下A键,实现(shxin)蜂鸣器动作。 按下B键,实现LED流水灯循环显示。 按下C键,实现数码管动态扫描显示。 按下D键,实现交通灯功能。* 创建人 : */#include#include #def

16、ine 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=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f; / 0 1 2 3 4 56 7 8 9unsigned char code weima6=0 xfe

17、,0 xfd,0 xfb,0 xf7,0 xef,0 xdf;/ 选择哪个数码管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=P1

18、2;/* 名称(mngchng) : Delay_1ms()* 功能(gngnng) : 延时子程序,延时时间为 1ms * x* 输入(shr) : x (延时一毫秒的个数)* 输出 : 无*/void Delay_1ms(unsigned int t)unsigned char x,y;for(x=t;x0;x-)for(y=110;y0;y-); /* 名称 : Main()* 功能 : 实现蜂鸣器,流水灯,数码管,交通灯*/void main() DIOLA=0;/流水灯锁存器关 流水灯未选通 wei=0;/位选关 duan=1; P0=0; duan=0; csda=0; while

19、(1)if(key_A=0 | key_B=0 | key_C=0| key_D=0) if(key_A=0) /A键按下 buzz_key(); /调用蜂鸣器子程序else if(key_B=0) /B键按下 led_key(); /调用(dioyng)流水灯子程序else if(key_C=0) /C键按下时 tube_key(); /调用(dioyng)数码管显示子程序 else /D键按下时 traffic(); /调用(dioyng)交通灯子程序 i=35; k=30; l=5; return; /* 名称 : buzz_key(void) * 功能 : 蜂鸣器子程序*/void b

20、uzz_key(void) DIOLA=0;wei=0; buzz=0;/蜂鸣器响 while(key_B&key_C&key_D&!key_A); buzz=1;/关蜂鸣器 /* 名称 : led_key(void) * 功能 : 流水灯子程序*/void led_key(void)DIOLA=1;b=0 xfe; P1=b;/11111110while(key_B=0)b=_crol_(b,1); /左移11111101Delay_1ms(500);P1=b;/111111011Delay_1ms(500); while(key_A&key_B&key_C&key_D);P1=0 xff;

21、 /* 名称(mngchng) : tube_key(void) * 功能(gngnng) : 数码管子程序*/void tube_key(void)DIOLA=0; /流水(lishu)灯使能端置0while(key_C=0) unsigned int i; for(i=0;i0)DIOLA=1; b=0 xfe; P1=b;/11111110for(j=0;j0) DIOLA=1; b=0 xfd; P1=b;/11111110 for(j=0;j0) DIOLA=1; b=0 xfb; P1=b;/11111110 for(j=0;j40;j+)P0 = 0;wei=1; /消隐P0 =

22、 weima0;wei=0; duan=1; /第1位数码管显示P0 = duanma(l / 10)%10; /在这里取 i 的个位数Delay_1ms(40); /延时3毫秒后显示下一个数P0 = 0;wei=1; /消隐P0 = weima1;wei=0; duan=1; /第2位数码管显示(xinsh)P0 = duanmal % 10; /在这里(zhl)取 i 的个位数Delay_1ms(40); /延时3毫秒后显示(xinsh)下一个数l-; 设计心得通过两个星期的实验,我的设计虽然有一些毛病,但总体上还是成功的。两周的时间虽然短暂,但我从中受益匪浅,毕竟在课堂学习到的东西真真正正的用到实际中还是有很大困难的,要把理论运用于实践确实并非一件易事。我从最初的设想设计一个什么样的数字电路到绘制电路图,然后打印排版,最后矫正设计中的漏洞与不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论