




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉理工大学专业课程设计2(微处理器与微控制器原理)课程设计说明书目录1技术要求22.1方案流程32.2方案原理33 实现方案33.1基本原理43.1.1 AT89C5143.1.2发光二级管53.1.3数码管53.2电路原理说明53.2.1LED灯控制电路53.2.2数码管显示电路原理64模块功能分析或源程序代码85调试过程及结论96心得体会107参考文献10附录11模拟交通指示灯1技术要求假设十字路口有东南两个方向的交通信号指示灯,每个方向各有3个指示灯(用发光二极管模拟),这三个指示灯分别用来标识前行、暂停、左拐,要求如下:A、每个方向的指示灯按照要求点亮不同的时间,前行指示灯点亮10秒熄灭,接着暂停指示灯点亮2秒熄灭,然后左拐指示灯点亮8秒熄灭,按照这种方式进行循环;B、当向东方向的前行指示灯点亮的时候,向南方向的前行指示灯熄灭,暂停指示灯和左拐指示灯分别点亮;C、当向南方向的前行指示灯点亮的时候,向东方向的前行指示灯熄灭,暂停指示灯和左拐指示灯点亮;2设计方案及原理2.1方案流开始程初始化南北向绿灯亮2秒,东西向黄灯亮2秒。南北向绿灯亮8秒,东西向红灯亮8秒。东西向绿灯亮2秒,南北向黄灯亮2秒。东西向绿灯亮8秒,南北向红灯亮8秒。 图1程序流程图2.2方案原理P0口的前六个接口分别控制六个发光二极管。绿灯表示前行,黄灯表示暂停,红灯表示左拐。首先东向绿灯南向黄灯亮2秒,然后东向绿灯和南向红灯亮8秒,从而使得东向绿灯亮10秒时,南向黄灯亮2秒后红灯亮8秒。南向的类似,先南向绿灯东向黄灯亮2秒,然后南向绿灯东向红灯亮8秒,低电平使二极管发亮。3 实现方案 在实现方案中,我加了计时牌显示路口通行转换剩余时间的功能。利用的是计时牌每跳转一个数都需要一段延时,通过跳转数字的数目来实现交通灯分别亮不同的时间。3.1基本原理3.1.1 AT89C51AT89C51是一种带4K字节闪烁可编程可擦除只读存储器,低电压,高性能CMOS8位微处理器,俗称单片机。P0口为一个8位漏级开路双向I/O口,P1口是一个内部提供上拉电阻的8位双向I/O口,P2口为一个内部上拉电阻的8位双向I/O口,P3口管脚是8个带内部上拉电阻的双向I/O口。其中的一些特殊功能口:P3.2/INT0(外部中断0), P3.3/INT1(外部中断1), P3.4T0(记时器0外部输入), P3.5T1(记时器1外部输入)。中央处理器:中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。数据存储器(RAM)80C51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。程序存储器(ROM):8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。定时/计数器(ROM):8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。并行输入输出(I/O)口:8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。全双工串行口:8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。中断系统:8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。时钟电路:8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。图2 80C51管脚图3.1.2发光二级管LED是英文light emitting diode(发光二极管)的缩写,它是半导体二极管的一种,可以把电能转化成光能,常用的是发红光、绿光或黄光的二极管。3.1.3数码管通过其电平的高低来控制数码管的高低位工作。3.2电路原理说明3.2.1LED灯控制电路P0口的前6个接口控制6个灯,每个接口控制一个灯。初始化先将各引脚赋以不同的高低电平以控制其亮暗,便于下面的程序赋值。然后写四个状态语句STATE1 STATE2 STATE3 STATE4分别代表6个小灯的四组不同状态。然后用单片机内部定时器来控制每个小灯亮多长时间。首先用MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0H语句给80C51单片机的定时器赋50ms的初值。然后用循环来控制具体多长时间。这样就可以分别控制每组状态的显示时间了。图3 硬件原理图3.2.2数码管显示电路原理数码管显示电路所用的数码管我是用的8421BCD数码管,通过赋予P1口和P2口不同的值就可以将其显示出来。比如MOV R0,#7MOV R1,#7MOV P1,R0MOV P2,R1这样数码管就如图显示了。因为数码管是要显示每个亮着的等的剩余时间,所以定时器每减一秒就要调用一次DISPLAY显示程序。程序如下: DISPLAY:MOV A,R0 MOV B,#10DIV AB SWAP A ADD A,BMOV P1,AMOV A,R1 MOV B,#10 DIV AB SWAP A ADD A,BMOV P2,A每次通过R0,R1不同的值数码管就可以显示不同的值了。在每个状态的每次循环中加入 DEC R0 DEC R1语句就可以循环一次数码管减1了。然后到不同的状态时再重新给R0,R1赋以不同的值就可以了。图4 硬件原理图4模块功能分析或源程序代码LED_R1 BIT P0.0LED_Y1 BIT P0.1LED_G1 BIT P0.2LED_R2 BIT P0.3LED_Y2 BIT P0.4LED_G2 BIT P0.5通过BIT位定义伪指令将P0的6个口用LED_R LED_G 和 LED_Y的形式代替。这样可以在程序中更清楚的每个口代表的灯。ORG 0000HMAIN:CLR TF0MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 CLR EA为定时器赋初值定时器循环一次耗时50ms,并开启定时器T0MOV R2,#20 LCALL DISPLAY STATE1:CLR LED_G2 SETB LED_R2SETB LED_Y2CLR LED_Y1SETB LED_G1SETB LED_R1 WAIT1:JNB TF0,WAIT1 CLR TF0 MOV TH0,#3CH MOV TL0,#0B0H DJNZ R2,WAIT1 DEC R0 DEC R1 LCALL DISPLAY MOV TH0,#3CH MOV TL0,#0B0H MOV R2,#20 DJNZ R3,WAIT1 MOV R3,#2首先显示状态一,然后给R2赋值20是让定时器循环20次,此程序作用是为了维持状态一2秒,并且数码管2秒倒计时,通过DEC R0,DEC R1来完成倒计时功能 。DISPLAY:MOV A,R0 MOV B,#10 DIV AB SWAP A ADD A,BMOV P1,AMOV A,R1 MOV B,#10 DIV AB SWAP A ADD A,BMOV P2,A显示程序,每次调用时显示R0,R1的值5调试过程及结论在调试的过程当中遇到了很多问题。在我第一次编写完程序时小灯怎么也不循环,我把程序仔细检查了好几遍也没有发现问题。最后还是同学提醒了下才发现自己大意了,我在每组状态循环完毕后都没有为定时器在赋一次初值,这样的话就导致了在下一次循环的时候,定时器没有了初值也就没法计时循环了。当把这个问题解决后发现小灯还是只显示一个状态不能循环。不过由于错误和第一个类似的我还是很快就发现了问题的所在,原来第一次循环完毕后没有为R2和R3再一次赋值,所以导致小灯还是不能循环。当把这些全部改好后小灯就顺利的实现循环了。当我去实现数码管显示的时候也遇到了一些问题。当运行程序时小灯顺利的循环,不过数码管还是停留在第一次给他赋的值而没有倒计时。原来我的错误时错以为用DJNZ的功能区实现每循环一次让R0和R1减一从而实现倒计时了。用DJNZ时每次减一的是紧接着的Rn而跟程序中的R0和R1没关系,每次循环的时候R0和R1的值并没有发生改变。改正也很简单就是在每组状态的程序中全部加入DEC R0和DEC R1两条语句就好了。这样就可以顺利实现倒计时的功能了。然后在每1秒循环完毕之后调用一次DISPLAY语句。这样就可以顺利的实现数码管的倒计时显示了。结论:这次课程设计的任务是用80C51单片机模拟实现交通灯的功能。总的来说并不是很困难。用到的原理也很简单,只有P0口P1口和P2口的简单运用和定时器的定时循环,都是一些很简单的内容,很容易实现。通过这次课程设计还使书上的理论知识在与实际结合的时候有了更好的把握,以前光是在书上看懂的知识,现在完全明白了他的意义及原理,启蒙了我对深入学习单片机的兴趣,这次寒假回家正是一个很好的契机,回去我想更加深入的学习单片机了。6心得体会为时两周的专业课程设计三到这里已经接近尾声。在这两周里我们历经一个从不懂到懂得,从彷徨到清醒的过程。有过思考,有过疑问,有过失望,有过郁闷,但也有过知晓,有过喜悦。通过这两周的学习,我们也收获不少。这是第三次做课程设计,有过两次经验,基本的步骤还是比较清楚的。在拿到课程设计任务书后,对本次课程设计的要求有了一定的了解。我开始了实验方案的设计。首先进行了资料的查阅,对这次的课程设计,我对它的内容还是比较熟悉。可以用C语言和汇编语言进行编译程序,我在本次课程设计中选择了C语言。我试着想了几个方案,从中选择了三个方案进行实现。对同一个问题,都想了很多种不同的方法。就拿方案一和实现方案来说,方案一利用的是延时,实现方案则是利用的是计时牌每跳转一个数都需要一段延时,通过跳转数字的数目来实现交通灯分别亮不同的时间。通过这次课程设计,加强了我们动手、思考和解决问题的能力,查阅了很多课本、资料书,增强了自己对知识的理解,很多以前不是很懂的问题现在都有了更高层次的理解。我想这次的课程设计也是一种锻炼自己学习能力的过程,这一过程弥补了被动教学的不足,对我们的个人能力的提升也有很大的作用。课程设计即将告一段落,我们学到了不少东西,也有了深刻的体会。课程设计不仅让我们学到了一些知识,它更加要告诉我们的是一种方法,是一种精神。它体现了我们自主学习,自主分析,自我督促的态度;教会了我们自主寻找问题解决问题的方法;告知了我们一种积极探索,永不放弃的精神。7参考文献1 高锋.单片微型计算机原理与接口技术.科学出版社,2003年2月2 揣锦华.面向对象程序设计与VC+实践.西安电子科技大学出版社,2005年2月 3 彭伟. 单片机 C 语言程序设计实训 100 例基于 8051+Proteus 仿真 .电子工业出版社,2009年7月4李继灿.微型计算机系统与接口M.清华大学出版社,2005年版附录源程序:LED_R1 BIT P0.0LED_Y1 BIT P0.1LED_G1 BIT P0.2LED_R2 BIT P0.3LED_Y2 BIT P0.4LED_G2 BIT P0.5ORG 0000HMAIN:CLR TF0MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 CLR EA MOV R0,#10 MOV R1,#2 MOV R2,#20 MOV R3,#2 MOV R4,#8 LCALL DISPLAY STATE1:CLR LED_G2 SETB LED_R2SETB LED_Y2CLR LED_Y1SETB LED_G1SETB LED_R1 WAIT1:JNB TF0,WAIT1 CLR TF0 MOV TH0,#3CH MOV TL0,#0B0H DJNZ R2,WAIT1 DEC R0 DEC R1 LCALL DISPLAY MOV TH0,#3CH MOV TL0,#0B0H MOV R2,#20 DJNZ R3,WAIT1 MOV R3,#2 STATE2:MOV R0,#8 MOV R1,#8 LCALL DISPLAY CLR LED_G2 SETB LED_Y2 SETB LED_R2 CLR LED_R1 SETB LED_G1 SETB LED_Y1 WAIT2:MOV TH0,#3CH MOV TL0,#0B0H LP: JNB TF0,LP CLR TF0 DJNZ R2,WAIT2 MOV R2,#20 DEC R0 DEC R1 LCALL DISPLAY MOV TH0,#3CH MOV TL0,#0B0H MOV R2,#20 DJNZ R4,WAIT2 MOV R4,#8 STATE3:MOV R1,#10 MOV R0,#2LCALL
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 天津市静海一中2025年数学高三上期末达标测试试题
- 医疗招聘模拟试题及答案
- 危重患者护理考试试题及答案
- 2025南昌公交运输集团保育院招聘4人考试参考试题及答案解析
- 2025重庆市万州区沙河街道办事处公益性岗位招聘1人备考练习试题及答案解析
- 2025青海时代新能源科技有限公司专场招聘考试参考试题及答案解析
- 2025年阜阳颍上县开源水务有限公司公开招聘劳务派遣工作人员12名备考练习题库及答案解析
- 2025年广西贵港市荷城初级中学招募高校毕业生就业见习人员50人备考练习题库及答案解析
- 2025江西吉安市永丰县县直机关事业单位第一批面向社会招聘编外人员4人备考练习题库及答案解析
- 2025云南曲靖市麒麟区珠街街道社区卫生服务中心招聘编外专业技术人员7人备考练习试题及答案解析
- 神经退行性疾病治疗药物讲课件
- 2025年全国新高考I卷高考全国一卷真题英语试卷(真题+答案)
- (干货)虚拟股权激励方案设计及协议
- YC/T 593-2023打叶复烤加工服务能力评价办法
- 医美员工制度管理制度
- 大棚搭建用工合同范本
- T/CGAS 026.2-2023瓶装液化石油气管理规范第2部分:平台建设
- T/CCS 059-2023智能化煤矿运维技术架构与流程
- 2025至2030年中国窗户胶行业投资前景及策略咨询研究报告
- 《高中化学知识竞赛》课件
- 2025人教部编版语文四年级上册教学计划(含进度表)
评论
0/150
提交评论