遥控器控制的交通灯设计_第1页
遥控器控制的交通灯设计_第2页
遥控器控制的交通灯设计_第3页
遥控器控制的交通灯设计_第4页
遥控器控制的交通灯设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、学 号 单片机原理及接口技术课程设计设计说明书遥控器控制的交通灯设计起止日期: 2014 年 1 月 6 日 至 2014 年 1 月 17 日学生姓名班级成绩指导教师(签字)计算机与信息工程学院2014年 1月 17日天津城建大学课程设计任务书20132014学年 第1学期专业 班级 学号 课程设计名称: 单片机原理及接口技术 设计题目: 遥控器控制的交通灯设计 完成期限:自 2014 年 1 月 6 日至 2014 年 1 月 17 日共 2 周设计依据、要求及主要内容:一设计的目的1.进一步熟悉和掌握单片机系统设计和编程原理。2.掌握单片机的接口技术及相关外围芯片的外特性、控制方法。3.

2、通过设计,掌握以单片机核心的电路设计的基本方法和技术。4.通过实际程序设计和调试,掌握模块化程序设计方法和调试技术。5.通过完成一个包括电路设计和程序开发的完整过程,了解开发单片机应用系统的全过程,为今后从事相应开发打下基础。二设计的基本要求1.认真认识设计的意义,掌握设计工作程序,学会使用工具书和技术参考资料,并培养科学的设计思想和良好的设计作风。2.提高模型建立和设计能力,学会应用相关设计资料进行设计计算的方法。3.提高独立分析、解决问题的能力,逐步增强实际应用训练。4.设计的说明书要求简洁、通顺,电路图内容完整、清楚、规范。三设计主要内容a) 设计实现功能STC12C5A60S2(引脚排

3、序及基本功能同AT89S51)作为主控芯片,设计交通灯控制电路。一是交通灯的正常指示设计;二是扩展遥控接收电路,实现交通灯运行的人为干预(可设有全红灯按键、延长某方向信号按键、快速进入另一方向通行按键、恢复按键等功能);三是根据需要扩展DS12C887、LCD1602等相应的外围电路。b) 原理图设计1.原理图设计要符合项目的工作原理,连线要正确。2.图中所使用的元器件要合理选用,电阻、电容等器件的参数要正确标明。3.原理图要完整,CPU、外围器件、外扩接口、输入/输出装置要一应俱全。c) 程序调计1.根据要求,将总体功能分解成若干个子功能模块,每个功能模块完成一个特定的功能。2.根据总体要求

4、及分解的功能模块,确定各功能模块之间的关系,设计出完整的程序流程图。d) 程序调试1.编写相关程序,并进行仿真。2.将程序下载到单片机,进行运行调试。e) 设计说明书1.原理图设计说明简要说明设计目的,原理图中所使用的元器件功能及在图中的作用,各器件的工作过程及顺序。2.程序设计说明对程序设计总体功能及结构进行说明,对各子模块的功能以及各子模块之间的关系作较详细的描述。3.画出工作原理图,程序流程图并给出相应的程序清单。指导教师(签字): 教研室主任(签字): 批准日期: 2014 年 1 月 2 日目 录第1章 单片机及调试软件的介绍11.1单片机的简介11.1.1单片机的发展历程11.1.

5、2单片机的特点11.1.3 MCS51单片机内部结构11.2 keil 软件介绍21.2.1 keil的概述21.2.2 Keil C51单片机软件开发系统的整体结构3第2章 设计要求及原理32.1 设计实现的功能32.2设计的要求42.3设计的原理42.4 设计流程图4第3章 红外遥控电路的设计63.1 红外通信原理63.2 红外接收部分73.3 红外发射部分8第4章 系统软件程序的设计与调试94.1 程序主体设计思路94.2系统延时设计94.3 系统中断设计94.4红外遥控设计104.5设计的调试11总 结12参考文献13附 录14第1章 单片机及调试软件的介绍1.1单片机的简介1.1.1

6、单片机的发展历程 单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。 在MCS-51系列单片机中,有两个子系列:51子系列和52子系列。每个子系列有诺干中型号。51系列有8051、8751和8031三个型号,后来经过改进产生了80c51、87c51、80c31三个型号;52系列有5021、8752、8032三个型号,改进后的型号是80c52/87c52、80c32。改进后的型号更加省电。52系列比对应的51系列增加了定时器T2并将内部程序存贮器增加到8KB。Inter公司停止生产MCS-51系列单片机之后将生产权

7、转让给了许多其他公司,于是出现了许多与Mcs-51兼容的单片机。现在生产mcs-51兼容单片机的公司对其进行了不同程度的改进和提高。我们现在使用比较的多的是AT89C51/AT89s51等。 通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:中央处理器、存储器和I/O接口电路等。因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。单片机经过1、2、3、3代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引角的多功能化,以及低电压底功耗。1.1.2单片机的特点(1)性价比高,开发周期短,易于产品化,(2)集成度高,

8、可靠性好,抗干扰性强,(3)功能完善,接口多样,(4)低功耗、低电压一般电源供电电压在53V范围内单片机都能正常工作,供电的下限可达12V。(5)总线多样,易于扩展单片机外部的典型三总线结构,方便系统构扩展,构成各种规模的应用系统。外部总线增加了I2C及SPI等串行总线方式, 可根据需要进行并行或者串行扩展。1.1.3 MCS51单片机内部结构 .一个8 位的中央处理器 CPU(又称为微处理器)有 128字节 的片内数据存储器RAM。 .4KB片内 程序存储器ROM或EPROM .片内 18个 特殊功能寄存器(SFR).4个8位 的并行输入输出I/O口(PIO).1个 串行口I/O(SIO/U

9、ART)完成单片机与其他微机的之间的串行通信.2/3个16位 定时器/计数器(TIMER/COUNTER).可处理 5个中断源,两级可程序优先级的中断系统图1 单片机的内部结构图1.2 keil 软件介绍1.2.1 keil的概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到

10、Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种Keil软件图标是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支

11、持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具

12、也会令你事半功倍。1.2.2 Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使

13、用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。使用独立的Keil仿真器时,注意事项* 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。 * 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 * 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。第2章 设计要求及原理2.1 设计实现的功能 STC12C5A60S2(引脚排序及基本功能同AT89S51)作为

14、主控芯片,设计交通灯控制电路。 一是交通灯的正常指示设计; 二是扩展遥控接收电路,实现交通灯运行的人为干预(可设有全红灯按键、延长某方向信号按键、快速进入另一方向通行按键、恢复按键等功能); 三是根据需要扩展DS12C887、LCD1602等相应的外围电路。2.2设计的要求利用AT89C51单片机的P1端口的接LED来模拟交通路口的红绿黄灯,用遥控按键来模拟有突发情况是的情形。P1端口的P1.0到P1.2所接的LED分别表示东西路口的红、黄、绿灯,P1.3到P1.5所接的LED分别表示南北路口的红、黄、绿灯。P3.2接按钮,模拟产生外部中断。正常情况下按照正常指示进行点亮当发生突发情况时外部产

15、生中断,单片机响应中断并转向中断程序,完成后返回原程序。2.3设计的原理 设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。图2 交通灯的正常指示2.4 设计流程图 开 始 东西路口绿灯亮,南北路口红灯亮外部中断初始化置口地址 延时20秒突发情况遥控按键进行相应的处理延时5秒东西路口红灯亮,南北路口黄灯亮延时20秒东西路口红灯亮,南北路口绿灯亮延时5秒东西路口黄灯亮,南北路口红灯亮 NO YES 图 3 流程图中断入口有关寄存器入栈执行相应的程序延时10秒取中断前

16、所保存的数据输入,恢复原始状态有关寄存器出栈 外部中断允许标志置位中断返回 图 4 中断流程图第3章 红外遥控电路的设计3.1 红外通信原理 红外遥控有发送和接收两部分组成。发送端采用单片机将待发送的二进制信号编码调制为一系列的脉冲信号,通过红外发射管发射红外信号。红外接收完成对红外信号的接收,放大,检波,整形,并输出遥控编码脉冲。为了减少干扰,采用的是价格便宜性能可靠地一体化红外接头(HS30038),它接收红外的频率为38KHZ,周期为26 us 接收红外信号,它同时对信号进行放大,检波,整形得到TTL电平的编码。在送给单片机,单片机进行解码并执行控制相关对象。具体实现过程如下: 在这里特

17、别强调:编码与解码是一对逆过程,不仅在原理上是一对逆过程,在码的发收过程也是互反的,即以前发射端原始信号是高电平,那接收头输出的就是低电平,反之亦然。因此为了保证解码过程简单方便,在编码时应该直接换算成其反码。)图 5 码值与电平转换3.2 红外接收部分一体化红外接收头 内部电路包括红外监测二极管,放大器,限副器,带通滤波器,积分电路,比较器等。红外监测二极管监测到红外信号, 然后把信号送到放大器和限幅器,限幅器把脉冲幅度控制在一定的水平,而不论红外发射器和接收器的距离远近。交流 信号进入带通滤波器,带通滤波器可以通过30khz到60khz的负载波,通过解调电路和

18、积分电路进入比较器,比较器输出 高低电平,还原出发射端的信号波形。注意输出的高低电平和发射端是反相的,这样的目的是为了提高接收的灵敏度。 图 6 红外接收示意图3.3 红外发射部分 红外遥控是以调制的方式发射数据,就是把数据和一定频率的载波进行“与”操作,这样既可以提高发射效率又可以降低电源调制载波频率一般在30khz到60khz之间,大多数使用的是38kHz,占空比1/3的方波,如图2所示,这是由发射端所使用的 455kHz晶振决定的。在发射端要对晶振进行整数分频,分频系数一般取12,所以455kHz÷1237.9 kHz38kHz。目前有很多种芯片可

19、以实现红外发射,可以根据选择发出不同种类的编码。由于发射系统一般用电池供电,这就要求芯片的功耗要很低,芯片大多都设计成可以处于休眠状态,当有按键按下时才工作,这样可以降低功耗芯片所用的晶振应该有 足够的耐物理撞击能力,不能选用普通的石英晶体,一般是选用陶瓷共鸣器,陶瓷共鸣器准确性没有石英晶体高,但通常 一点误差可以忽略不计。第4章 系统软件程序的设计与调试4.1 程序主体设计思路 全部控制程序实际上分为若干模块:遥控键盘设置处理程序,状态灯控制程序,LED显示程序紧停程序,中断服务子程序,红绿灯时间调整程序等。 整个软件程序方面主要分两大部分:主程序部分和遥控中断处理程序。

20、设计说明:该智能交通灯控制系统的软件设计采用的是顺序执行并反复循环的方法。智能交通灯控制系统在正常工作的情况下,每20s循环变化一次。每个循环周期在还剩5s时,正在通行路口的黄灯同时点亮并开始闪烁,以提醒路人上的行人及车辆,交通灯即将发生变化。在此期间若中断按键按下则转入中断服务子程序进行相关操作。通过扩展遥控接收电路,当发生突发状况时,实现交通灯运行的人为干预(可设有全红灯按键、延长某方向信号按键、快速进入另一方向通行按键、恢复按键等功能)。4.2系统延时设计MCS-51的工作频率为12MHZ,机器周期与主频有关,机器周期是主频的12倍,所以一个机器周期的时间为12*(1/12MHZ)=1u

21、s。我们可以知道具体每条指令的周期数,这样我们就可以通过指令的执行条数来确定1秒的时间,但同时由于单片机的运行速度很快其他的指令执行时间可以忽略不计。延时子程序模块:void Delay(WORD n) WORD x;while(n-) x=500;while(x-);4.3 系统中断设计本系统主要使用了外部中断,中断信号有引脚INT0和INT1输入,低电平有效,CPU每个时钟周期都会检测INT0和INT1上的信号,8051允许外部中断以电平方式或负边沿方式两种中断方式输入中断请求信号,可由用户通过设置TCON中IT0和IT1位的状态来实现。以IT0为例,IT0=0,为电平触发方式,IT0=1

22、,为负边沿触发方式,本设计采用电平方式,IE0为其中断标志位,有中断信号则置位,中断服务子程序响应后,IE0自动清零。IE中的EA为允许中断的总控制位,为1开启,EX0为外部中断允许控制位,为1开启。 在优先级的允许下,一旦有外部中断信号产生,单片机CPU首先保护断点,PC值进栈,然后执行相应的中断服务子程序,执行完后,用RETI指令返回,此时CPU会从堆栈中取保存的断点地址,送回PC,程序再正常执行。 中断子程序模块:void EX0_ISR (void) interrupt 0 /外部中断0服务函数 static unsigned char i; /接收红外信号处理 /static bit

23、 startflag=1; /是否开始处理标志位/if(startflag) / if(irtime>=33&&irtime<63) /引导码 TC9012的头码,9ms+4.5ms i=0; irdatai=irtime; /存储每个电平的持续时间,用于以后判断是0还是1 irtime=0; i+; if(i=33) irok=1; i=0; /* elseirtime=0;startflag=1; */4.4红外遥控设计子程序模块:红外码值处理void Ircordpro(void)/红外码值处理函数 unsigned char i, j, k; unsigne

24、d char cord,value;k=1; for(i=0;i<4;i+) /处理4个字节 for(j=1;j<=8;j+) /处理1个字节8位 cord=irdatak; /此处去除头码 故从一开始 if(cord>7) /大于某值为1,这个和晶振有绝对关系,这里使用12M计算,此值可以有一定误差 value|=0x80; /2.25>256X7>1.125ms if(j<8) value>>=1; /数据串行发送,低位(bit0)在前,高位(bit7)在后 k+; IRcordi=value; value=0; irpro_ok=1;/处理

25、完毕标志位置14.5设计的调试图 10 设计调试演示总 结经过两周的努力工作,终于完成了自己的单片机课程设计。虽说忙碌了点,但我觉得这样的生活充实且有成就感,当然,也获益匪浅。回顾起这一次的课程设计,至今我仍感慨颇多。在这段日子里,从理论到实践,可以说得是苦多于甜,但是我还是可以学到了很多的内容,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从而提高自己的实际动手能力和独立思考的能力。我在设计的过程中也遇到了不少的问题,可以说得是困难重重,但可喜

26、的是最终都得到了解决。 实验过程中,此次设计也让我明白了思路即出路,有什么不懂不明白的地方要及时请教或上网查询,只要认真钻研,动脑思考,动手实践,就没有弄不懂的知识,收获颇丰。通过本次的课程设计,充分意识到自己所学的东西还是非常有限的,不过通过设计,还是学到了一些书本上没有学到的东西,为自己以后的学习起了很大的帮助。就我个人而言,很深刻地体会到一点,那就是我们在设计过程中一定要有一个整体的清晰的思路,知道自己的设计的对象的基本功能和核心器件的适用及其作用,只要把握住这些主要方面,一些小问题都将围绕着这些主要问题而逐步得到解决。同时我也懂得,在整个设计过程中,生活中也一样,一定要意志坚

27、定,克服自己的畏难情绪,这样才能将事情做好,才能干出一番成就。在此我非常感谢我的指导老师刘毅老师从一开始就耐心的安排我们的进度,和之后多次提醒我们一些重要的注意事项,以及让我对单片机原理这门课程有了更深刻的认识,让我对独立做课程设计有了信心,同时我还要感谢我的同学们,感谢他们帮助,这次课程设计才能顺利完成。参考文献1张毅刚,单片机原理及应用第二版,高等教育出版社,2010.(5)2王为青,邱文勋. 51单片机开发案例精选J.人民邮电出版社,2001,(5):45-47.3张鑫,华臻,陈书谦. 单片机原理及应用J.电子工业出版社,2008(5).4张洪润,张亚凡.单片机原理及应用J. 清华大学出

28、版社,2005,(4).5黄智伟.凌阳单片机课程设计指导J. 北京航空航天大学出版社,2007,(6)6蒋辉平,周国雄. 基于Proteus的单片机系统设计与仿真实例M.机械工业出版社,2009.7张毅坤. 单片微型计算机理及接口技术M.陕西:西安电子科技大学出版社,2000.79雷丽文 等.微机原理与原理及应用,M西安电子科技大学出版社 1998 8余锡存 曹国华.单片机原接口技术M.北京:电子工业出版社,1997.附 录附录一 元器件清单 元器件类型 数 量 STC12C5A60S2芯片 1块 DS12C887芯片 1块 1602液晶显示屏 1块 一体化红外接收头 1个 2 1键红外遥控器

29、 1个 发光二极管 6个 蜂鸣器 1个 排针 3排 导线 电容 电阻 若干附录二 部分程序初始化程序:#include "reg51.h"#include"absacc.h" /#include<1602.h>sbit IR=P32; sbit beep=P16;char code Tab16="0123456789ABCDEF" unsigned char code table='0','1','2','3','4','5',

30、'6','7','8','9'typedef unsigned char BYTE;typedef unsigned int WORD;#define uint unsigned intunsigned char irtime;/红外用全局变量bit irpro_ok,irok; /irpro_ok处理完成标志,接收好了,unsigned char IRcord4;/储存4个红外码的四个字节unsigned char irdata33;/储存32+1位unsigned char TempData16; /定义零时数据主程序:voi

31、d main(void) BYTE dhi,dli,time0,time1,y,flag=0; int miao2=55,miao1,h=5;SP=0x60; EX0init(); /初始化外部中断 TIM0init(); /初始化定时器 lcd_init(); DS_init(); time0=Second; /write_time(); /DS12C887时间设置 while(1) if(irok) /如果接收好了进行红外处理 beep=0; Delay(200); beep=1; Ircordpro();/红外码处理 irok=0; if (DS_C & 0x10) != 0)/显示时间 crt_time(1); time1=Second; if(time0!=time1) time0=time1;/读取当前秒if(flag=0) /红1、绿2亮,并开始倒计时if(miao2>0)/此时miao1>miao2P1=0xff;miao2-; miao1=miao2+h; P1=0xde; /红1、绿2亮else if(miao1>0) /此时miao2=0,miao1继续5秒倒计时P1=0xff;miao1-;miao2=0;P1=0xee; /红1、黄2亮else/当miao1倒计时到0flag=1;/红2、绿1亮miao2=50;mi

温馨提示

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

评论

0/150

提交评论