ImageVerifierCode 换一换
格式:DOCX , 页数:22 ,大小:184.61KB ,
资源ID:13585586      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-13585586.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机课程设计交通灯多功能任务设计说明.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

单片机课程设计交通灯多功能任务设计说明.docx

1、单片机课程设计交通灯多功能任务设计说明 单片机原理与接口技术课程设计报告课题:以交通灯为主的多功能任务设计 班级 电气3113 学号 1111221108 学生 志勇 指导教师 白秋产 蓉建 工学院电子与电气工程学院2014-121、设计目的单片机原理及应用课程设计是一项重要的实践性教育环节,是学生在校期间必须接受的一项工程训练。在课程设计过程中,在教师指导下,应用工程的方法,通过一个简单课题的设计练习,可使学生初步体验单片机应用系统的设计过程、设计要求、完成的工作容和具体的设计方法,了解必须提交的各项工程文件,也达到巩固、充实和综合运用所学知识解决实际问题的目的。通过课程设计,应该能加强学生

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

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

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

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

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

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

8、制其段选以显示相应的数值。所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个显示器轮流点亮。在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。4)LED灯显示图5 LED显示模块本次课程设计中,“程序语言”通过“翻译”软件“翻译”成单片机所需的二进制代码,单片机可工作。要用外加电源和分压电阻来控制低电平驱动点亮,因为单片机不能直接高电平驱动LED灯。如图D1-D8和R1、R2以及R6-R11连接到单片机

9、IO口,当P1口某脚变低时相应LED发光。实现LED灯的闪烁,只需利用编程方法依次从低位到高位逐个变为低电平,等待少许时刻再变高即可。5)键盘扫描模块图6 按键输入电路本模块四个开关分别用于控制流水灯控制电路,时间显示电路,音乐蜂鸣器电路,交通灯四部分功能。当按下其中一个开关时,该部分电路导通,给单片机发出地址信号,实现其中一项功能的运做,如图4所示。KEYA键:其功能是当该键按下时,蜂鸣器程序工作;KEYB键:其功能是当该键按下时,流水灯程序工作;KEYC键:其功能是当该键按下时,数码管动态扫描程序工作;KEYD键:其功能是当该键按下时,交通灯程序工作。6)蜂鸣器电路 图7 蜂鸣器电路蜂鸣器

10、单元电路是通过一个PNP三极管来放大驱动蜂鸣器,蜂鸣器的正极接到5V电源上面,蜂鸣器的负极接到三极管的发射极,三极管的基极经过限流电阻后由单片机的P3.4控制。当输出高电平时,三极管截止,蜂鸣器的两引脚间的直流电压接近于0V,没有电流流过线圈,蜂鸣器不发声;当输出低电平时,三极管导通,使蜂鸣器的两个引脚间获得将接近+5V的直流电压,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制IO口输出的电平来控制蜂鸣器是否发出声音,实现各种可能音响的产生。3、硬件电路的设计及描述1硬件总框图及原理图图8 硬件总框图图9 硬件总原理图2主程序流程图 3各模块流程图1)时间显示程序流程图2)流水

11、灯程序流程图3)利用蜂鸣器的音乐流程图4)智能交通灯4、源程序代码/* 文件名 : 4个功能由按键控制.c* 描 述 : 按下A键,实现蜂鸣器动作。 按下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);voi

12、d traffic(void);unsigned char code duanma10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; / 0 1 2 3 4 5 6 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_

13、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

14、-); /* 名称 : Main()* 功能 : 实现蜂鸣器,流水灯,数码管,交通灯*/void main() DIOLA=0; /流水灯锁存器关 流水灯未选通 wei=0; /位选关 duan=1; P0=0; duan=0; csda=0; while(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(); /调用流水灯子程序 else if(key_C=0) /C键按下时 tube_key(); /调用数码管显

15、示子程序 else /D键按下时 traffic(); /调用交通灯子程序 i=35; k=30; l=5; return; /* 名称 : buzz_key(void) * 功能 : 蜂鸣器子程序*/void buzz_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=0xfe; P1=b;/11111110 while(key_B=0)

16、 b=_crol_(b,1); /左移11111101 Delay_1ms(500); P1=b; /111111011 Delay_1ms(500); while(key_A&key_B&key_C&key_D); P1=0xff; /* 名称 : tube_key(void) * 功能 : 数码管子程序*/ void tube_key(void) DIOLA=0; /流水灯使能端置0 while(key_C=0) unsigned int i; for(i=0;i0) DIOLA=1; b=0xfe; P1=b; /11111110 for(j=0;j0) DIOLA=1; b=0xfd;

17、 P1=b; /11111110 for(j=0;j0) DIOLA=1; b=0xfb; P1=b; /11111110 for(j=0;j40;j+) P0 = 0; wei=1; /消隐 P0 = 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位数码管显示 P0 = duanmal % 10; /在这里取 i 的个位数 Delay_1ms(

18、40); /延时3毫秒后显示下一个数 l-; 5、设计心得通过两个星期的实验,我的设计虽然有一些毛病,但总体上还是成功的。两周的时间虽然短暂,但我从中受益匪浅,毕竟在课堂学习到的东西真真正正的用到实际中还是有很大困难的,要把理论运用于实践确实并非一件易事。我从最初的设想设计一个什么样的数字电路到绘制电路图,然后打印排版,最后矫正设计中的漏洞与不足,整个过程我翻阅了大量的资料。这次交通灯的课程设计,也使我得到了一次用专业知识、专业技能分析和解决现实问题的能力。使我在单片机的基本原理、单片机应用学习过程中,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为一名合格的应用型人才打下良

19、好的基础。综合课程设计让我把以前学习到的知识得到巩固和进一步的提高认识,对已有知识有了更深层次的理解和认识。在此,由于自身能力有限,在课程设计中碰到了很多的问题,我通过查阅相关书籍、资料以及和周围同学交流得到解决。还有交通灯是我们生活中非常常见的一种东西,对于我们学以致用的这种能力得到了很好锻炼,能够为我们以后的工作于学习打下基础。6、参考文献1.单片机原理及接口技术 朝青 北京航空航天大学,20042.单片机原理及应用 全力 高等教育,20013.电子系统设计与实践 刚,周群 电子工业出,19974.单片机微型计算机技术 国荣 机械工业,19975.数字电子技术 志忠 高等教育,20036.电子技术 胡宴如 高等教育,20017.电子线路CAD 王延才 机械工业,20018.单片机应用技术选编 何利民 北京航空航天大学,19969.单片机应用技术 吴国经 中国电力,200410.单片机及接口技术实践教程 胡健 北京机械工业,200211.使用接口技术 广军 电子科技大学,1998

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2