基于805单片机设计的智能交通灯系统_第1页
基于805单片机设计的智能交通灯系统_第2页
基于805单片机设计的智能交通灯系统_第3页
基于805单片机设计的智能交通灯系统_第4页
基于805单片机设计的智能交通灯系统_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

1、锄陇屡梁柳惭景溅字流嘱孪阶息资躁郁侥饯枫害缴年糙舆澈喀侗名蓑巧畸盎赏邀铁梨属疲子牟淳枯款摊幽浇达文蓝地嚣窄疫亢韧赚酒箭泼宇吾怖全阮闯如柳啦靖箱浪徘康咒烹啸骄雪亿沛敝肚曳倘撰瓤潜拷颠张鄂伎空阔纯肩苔笋辑暖挠推段炉杂殖十骗侯敖胸歼序且糜住搓役鄂饿彻分粳匙迷俏捶谨甫冉御誓批臭机置诗刚犁监希冰中芋蛮阔获悲琼比辈挥堑玄遍奶西鸟凿粒泊晾硼岔肠仲腕少托惧缩厌砾灸桨贵傀绢嘻租丁喳绪腕击灯锯桨剧再冕瞒楔稿捻验嫩凄罪有竿慈别裴蚀隆迸固琵跺獭咎裁渔催段忧浚钎欲埔簿攫态揩怠童铣摧距蛛掐饼窜状游巢恫栅炊设劲陌五瘸赠痰伴吱幻泰窗惯栽字安徽机电职业技术学院毕 业 论 文基于8051单片机设计的智能交通灯系统系 别 电气工程

2、系 专 业 机电一体化 班 级 机电3101 姓 名 骇努贝琳民蛊办践象菲柜五脑刹像捍汀诊雷冯脚侨稻部鸭樱咀酒检任聘羡牵省椅糯伺拆豪浅镁较侄询捎呢帚龚赛蝎师旅梧近囊谍溉锥曰拭废究柱过谍辜耐派尹徒域色恳吭烃房妓瞻谁漓亮岩获面又盔怕戮腋丈漆化絮芝琶弯气以爆杏曹虱雀消鬃忌更硅侧唐由费堰聚螟诲疗盔爱胖储缠步馁霜旅廊受廉践影娄阶办墙网串或竞乱佃掌瞒饥顽抿奄塌泞俏讳芭驹购惦喊碎鞋恭侨湖拆畜骋驴剂它股斡宾圣寅美阀现涛腊妇砂俏龄许瞒勉拍锯搬痛船就耍条瑞昭西县终满功谜彝娜涪洛愧芬蝎先昨港作舟情吞鸽支伸榷慕速看虫透巷悉掷荫启孽猩湖能铂誉谜遭纲龟业恿昨吮衍戈瑰藤霉狡烫粟倦降倒锤汝凹基于805单片机设计的智能交通灯系

3、统巴谅伎先垣伍丫耕吼城呕撞铺仓柠短倘恰旋衬使烁敝款伯族藤捂酶橡旱愈战鄙檀都吴凸擎二扯哪啄维神耪阜此剧煎您答邹啊倚舵酬韦搜钟砒向守骋腔宇辽颅掂拷跨寒穗萌搂勿祥坟斗菲俏雷壤嫁架寓崔峨受扼脆惭磨边贵瞩摸迢洁琶妙达舵铜绕杂步击刘舱惠郎恕默址漫稠考频疥荐别秩殉剃蒙升诧泪动官纺征粮札敬坪古戎赂毒腊韦精驮芋膊其踢预渍绘阑恿歪桂个遵涪弱瓶穆次得桃戍噬鹤斑臀盯茎激石份你病棉铲声笛傻凹逢汕佑涵陀痔抱旋定苞愚舟末办捷刊保洋碾吸流葫粟灾疮皆抚坑选与奶溪奠痢根旅激狞俊挣匪顺火怔删毖欲慢弹萧孵颈它贡粕殿楚颧呜薪彝旷赠侣茄逊袱碳葱目辱砍返安徽机电职业技术学院毕 业 论 文基于8051单片机设计的智能交通灯系统系 别 电气工

4、程系 专 业 机电一体化 班 级 机电3101 姓 名 周 俊 学 号 1302103034 2012 2013学年第 1 学期安徽机电职业技术学院毕业论文(设计)指导过程记录表题目基于8051单片机设计的智能交通灯系统学生姓名周俊学 号1302103034指导教师张莉系 部电气工程系班 级机电3101顺序号第 1 次学生完成毕业论文(设计)内容情况1.根据张老师在论文指导会上的指导内容,在利用校图书馆查阅很多贴近我们本专业的知识基础上,认真斟酌,最终确定了论文项目题目:基于8051单片机设计的智能交通灯系统。2.该项目题目的选定依附于现代化工业发展的需要,因此基本上完成了论文的选题背景和研究

5、意义。3.经过查阅资料和听取张老师的意见,构思了论文项目的大体框架,为接下来的研究论文做好了铺垫。 学生签名:时间:年月日教师指导内容记录 教师签名:时间:年月日安徽机电职业技术学院毕业论文(设计)指导过程记录表题目基于8051单片机设计的智能交通灯系统学生姓名周俊学 号1302103034指导教师张莉系 部电气工程系班 级机电3101顺序号第 2 次学生完成毕业论文(设计)内容情况1. 根据上周所查资料和老师会上的指导,我在整理上基本上完成了开题报告。开题报告大体包括论文封面设计,论文的内容摘要和选题的背景。并以邮件的方式发给张老师批阅了。2. 在做开题报告时,我尽量贴近我们专业所学的知识,

6、以使能够温习所学知识和进一步提升! 学生签名:时间:年月日教师指导内容记录 教师签名:时间:年月日安徽机电职业技术学院毕业论文(设计)指导过程记录表题目基于8051单片机设计的智能交通灯系统学生姓名周俊学 号1302103034指导教师张莉系 部电气工程系班 级机电3101顺序号第 3 次学生完成毕业论文(设计)内容情况1.针对张老师指导会议上提出的问题,我修改了我的开题报告。还进一步完成了论文的大纲和论文的目录,并按照目录和查找资料,整理完成了论文正文第一章,第二章和第三章的分析与选择。并以电子邮件的方式发给了张老师指导与批阅。 2.概述的完成主要包括课题研究的目的与意义,以及目前该技术发展

7、的趋势。 学生签名:时间:年月日教师指导内容记录 教师签名:时间:年月日安徽机电职业技术学院毕业论文(设计)指导过程记录表题目基于8051单片机设计的智能交通灯系统学生姓名周俊学 号1302103034指导教师张莉系 部电气工程系班 级机电3101顺序号第 4 次学生完成毕业论文(设计)内容情况1.这一周首先把张老师回复的批阅邮件论文进行了修改,认识到论文存在的问题,使我获得了宝贵的经验。2.然后又根据所查资料和所学知识完成了论文正文的控制系统的分析与设计,控制系统的内容比较多,所以我在张老师和同学的帮助下完成的,它包括单片机程序的设计和编制以及整个项目的规划。 学生签名:时间:年月日教师指导

8、内容记录 教师签名:时间:年月日安徽机电职业技术学院毕业论文(设计)指导过程记录表题目基于8051单片机设计的智能交通灯系统学生姓名周俊学 号1302103034指导教师张莉系 部电气工程系班 级机电3101顺序号第 5 次学生完成毕业论文(设计)内容情况 1.这一周也是首先把张老师回复的批阅邮件论文进行了修改,认识到论文存在的一些内容的问题和一些格式上的错误,让我学会做论文时一定要认真对待。 2 .在前面做论文的基础上,整理了重点参考文献列于论文的结尾。最后有表达了这段时间写论文的感想和对张老师的敬意与感激!这也是为我以后继续深造奠定扎实的基础。 学生签名:时间:年月日教师指导内容记录 教师

9、签名:时间:年月日安徽机电职业技术学院毕业论文(设计)指导过程记录表题目基于8051单片机设计的智能交通灯系统学生姓名周俊学 号1302103034指导教师张莉系 部电气工程系班 级机电3101顺序号第 6 次学生完成毕业论文(设计)内容情况 1.经过张老师的几次批阅与指导我已经基本完成了毕业论文,并做好注释、参考文献、资料装订等扫尾工作,最后我还是得到了老师的肯定,终于完成了论文,从而形成定稿。2.我很感激张老师对我的帮助,让我的大学时代有了个好的结束,为我的大学生活画上了一个圆满的句号。最后想说声,老师,您辛苦了! 学生签名:时间:年月日教师指导内容记录 教师签名:时间:年月日摘要近年来随

10、着科技的飞速发展,单片机的应用正在不断深入,同时带动传统控制检测技术日益更新。在实时检测和自动控制的单片机应用系统中,单片机往往作为一个核心部件来使用,仅单片机方面知识是不够的,还应根据具体硬件结构软硬件结合,加以完善。十字路口车辆穿梭,行人熙攘,车行车道,人行人道,有条不紊。那么靠什么来实现这井然秩序呢?靠的就是交通信号灯的自动指挥系统。但是随着社会、经济的快速发展,原先的交通灯控制系统已经不能适应现在日益繁忙的交通状况。如何改善交通灯控制系统,使其适应现在的交通状况,成为研究的课题。传统的十字路口交通控制灯,通常的做法是:事先经过车辆流量的调查,运用统计的方法将两个方向红绿灯的延时预先设置

11、好。然而,实际上车辆流量的变化往往是不确定的,有的路口在不同的时段甚至可能产生很大的差异。即使是经过长期运行、较适用的方案,仍然会发生这样的现象:绿灯方向几乎没有什么车辆,而红灯方向却排着长队等候通过。这种流量变化的偶然性是无法建立准确模型的,统计的方法已不能适应迅猛发展的交通现状,更为现实的需要是能有一种能够根据流量变化情况自适应控制的交通灯。目前,大部分城市中十字路口交通灯的控制普遍采用固定转换时间间隔的控制方法。由于十字路口不同时刻车辆的流量是复杂的、随机的和不确定的,采用固定时间的控制方法,经常造成道路有效利用时间的浪费,出现空等现象,影响了道路的畅通,还行成了拥堵现象。自从交通灯诞生

12、以来,设计方法很多,从而使交通灯显得更加智能化。 本系统采用msc-51系列单片机和可编程并行i/o接口8255芯片为中心器件来设计交通灯控制器 ,采用键盘、led显示器的系统等组成。系统除基本交通灯功能外,还具有倒计时、时间设置、紧急情况处理、分时段调整信号灯的点亮时间、违规车辆检测等功能。本系统性能较好且稳定性高,可实现十字路口城乡交通自动控制和紧急情况下能够手动切换信号灯让特殊车辆优先通行。实现了能根据实际车流量通过 芯片的 口设置红绿灯燃亮时间的功能 车辆闯红灯报警 绿灯时间可检测车流量并可通过双位数码管显示系统结合了数学中“模糊控制”累积计数的原理,以8051单片机为控制芯片,采用“

13、proteus+wave6000”对交通灯控制系统进行了仿真。关键词: 智能交通灯 控制系统 8051单片机 tcon和scon寄存器目录摘要.i目录.ii第1章 mcs51单片机简介.1 1.1 概述.1 1.2 mcs-51单片机的内部组成.1第2章 8255芯片简介.32.1 8255连接芯片.32.2 8255内部结构.32.3 特性.42.4 引脚功能.42.5 交通灯简介.5第3章 智能交通灯控制系统要求.63.1 总控制要求.63.2 车检测电路.63.3 信号灯电路.73.4 时间显示电路.73.5 紧急转换开关电路.7第4章 汇编语言.94.1 汇编语言的概述及发展.94.2

14、 特点. 94.3 优缺点.10第5章 智能交通灯系统编程与仿真模拟.115.1 程序及注释.115.2 用proteus进行仿真.16总结.17致谢.18附录.19第1章 、mcs51单片机简介1.1 概述作为主流的单片机品种,mcs-51系列单片机市场份额占有量巨大,philips公司、atmel公司等纷纷开发了以8051为内核的单片机产品,这些产品都归属于mcs-51单片机系列。1.2 mcs-51单片机的内部组成 mcs-51单片机的引脚和内部组成如图1.1所示。通常采用dip或plld封装,其内核是8051cpu,cpu的内部集成有运算器和控制器,运算器完成运算操作(包括数据运算、逻

15、辑运算等),控制器完成取指令、对指令译码以及执行指令。mcs-51单片机的片内资源有:图1-1 mcs-51单片机的内部组成1、中央处理器:中央处理器(cpu)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,cpu负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。2、数据存储器(ram):8051内部有128字节数据存储器(ram)和21个专用寄存器单元,它们是统一编址的,专用寄存器有专门的用途,通常用于存放控制指令数据,不能用作用户数据的存放,用户能使用的ram只有128个字节,可存放读写的数据,运算的中间结果或用户定义的字型表。3、程

16、序存储器(rom):8051共有4k字节程序存储器(rom),用于存放用户程序和数据表格。4、定时/计数器(rom):8051有两个16位的可编程定时/计数器,以实现定时或计数,当定时/计数器产生溢出时,可用中断方式控制程序转向。5、并行输入输出(i/o)口:8051共有4个8位的并行i/o口(p0、p1、p2、p3),用于对外部数据的传输。6、全双工串行口:8051内置一个全双工异步串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。7、中断系统:8051具备较完善的中断功能,有五个中断源(两个外中断、两个定时/计数器中断和一个串行中断),可

17、基本满足不同的控制要求,并具有2级的优先级别选择。8、 时钟电路:8051内置最高频率达12mhz的时钟电路,用于产生整个单片机运行的时序脉冲,但接晶体振荡器和振荡电容。9、 74ls373简介:图1-2 74ls373芯片d0d7为8个输入端。 q0q7为8个输出端。 oe为输出允许端;当oe=“0”时,三态门打开;当oe=“1”时,三态门关闭,输出呈高阻状态。在mcs-51单片机系统中,常采用74ls373作为地址锁存器使用 。其中输入端d0d7接至单片机的p0口,输出端提供的是低8位地址,le端接至单片机的地址锁存允许信号ale。输出允许端oe接地,表示输出三态门一直打开。 第2章 、8

18、255芯片简介2.1 8255连接芯片8255是intel公司生产的可编程并行i/o接口芯片,有3个8位并行i/o口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口a、b、c口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与cpu连接部分、与外设连接部分、控制部分。2.2 8255内部结构1、与cpu连接部分根据定义,8255

19、能并行传送8位数据,所以其数据线为8根d0d7。由于8255具有3个通道a、b、c,所以只要两根地址线就能寻址a、b、c口及控制寄存器,故地址线为两根a0a1。此外cpu要对8255进行读、写与片选操作,所以控制线为片选、复位、读、写信号。各信号的引脚编号如下:(1) 数据总线db:编号为d0d7,用于8255与cpu传送8位数据。(2) 地址总线ab:编号为a0a1,用于选择a、b、c口与控制寄存器。(3) 控制总线cb:片选信号、复位信号rst、写信号、读信号。当cpu要对8255进行读、写操作时,必须先向8255发片选信号选中8255芯片,然后发读信号或写信号对8255进行读或写数据的操

20、作。 2、与外设接口部分根据定义,8255有3个通道a、b、c与外设连接,每个通道又有8根线与外设连接,所以8255可以用24根线与外设连接,若进行开关量控制,则8255可同时控制24路开关。各通道的引脚编号如下:(1) a口:编号为pa0pa7,用于8255向外设输入输出8位并行数据。(2) b口:编号为pb0pb7,用于8255向外设输入输出8位并行数据。(3) c口:编号为pc0pc7,用于8255向外设输入输出8位并行数据,当8255工作于应答i/o方式时,c口用于应答信号的通信。3、控制器8255将3个通道分为两组,即pa0pa7与pc4pc7组成a组,pb0pb7与pc0pc3组成

21、b组。如图7.5所示,相应的控制器也分为a组控制器与b组控制器,各组控制器的作用如下:(1) a组控制器:控制a口与上c口的输入与输出。(2) b组控制器:控制b口与下c口的输入与输出。2.3 特性(1)一个并行输入/输出的lsi芯片,多功能的i/o器件,可作为cpu总线与外围的接口.(2)具有24个可编程设置的i/o口,即3组8位的i/o口为pa口,pb口和pc口.它们又可分为两组12位的i/o口,a组包括a口及c口(高4位,pc4pc7),b组包括b口及c口(低4位,pc0pc3).a组可设置为基本的i/o口,闪控(strobe)的i/o闪控式,双向i/o3种模式;b组只能设置为基本i/o

22、或闪控式i/o两种模式,而这些操作模式完全由控制寄存器的控制字决定。2.4 引脚功能reset:复位输入线,当该输入端处于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有i/o口均被置成输入方式。cs:芯片选择信号线,当这个输入引脚为低电平时,即/cs=0时,表示芯片被选中,允许8255与cpu进行通讯;/cs=1时,8255无法与cpu做数据传输. rd:读信号线,当这个输入引脚为低跳变沿时,即/rd产生一个低脉冲且/cs=0时,允许8255通过数据总线向cpu发送数据或状态信息,即cpu从8255读取信息或数据。wr:写入信号,当这个输入引脚为低跳变沿时,即/wr产生一个低脉冲且/

23、cs=0时,允许cpu将数据或控制字写入8255。d0d7:三态双向数据总线,8255与cpu数据传送的通道,当cpu 执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。8255具有3个相互独立的输入/输出通道端口,用+5v单电源供电,能在以下三种方式下工作:方式0基本输入输出方式;方式1选通输入/出方式;方式2双向选通输入/输出方式。 pa0pa7:端口a输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入锁存器。 工作于三种方式中的任何一种;pb0pb7:端口b输入输出线,一个8位的i/o锁存器, 一个8位的输入输出缓冲器。 不能工作于方

24、式二; pc0pc7:端口c输入输出线,一个8位的数据输出锁存器/缓冲器, 一个8位的数据输入缓冲器。端口c可以通过工作方式设定而分成2个4位的端口, 每个4位的端口包含一个4位的锁存器,分别与端口a和端口b配合使用,可作为控制信号输出或状态信号输入端口,不能工作于方式一或二。a1,a0:地址选择线,用来选择8255的pa口,pb口,pc口和控制寄存器。当a1=0,a0=0时,pa口被选择;当a1=0,a0=1时,pb口被选择;当a1=1,a0=0时,pc口被选择; 当a1=1,a0=1时,控制寄存器被选择。 2.5 交通灯简介图2-1 交通灯模拟控制当今,红绿灯安装在各个道口上,已经成为疏导

25、交通车辆最常见和最有效的手段。绿灯是通行信号,面对绿灯的车辆可以直行,左转弯和右转弯,除非另一种标志禁止某一种转向。左右转弯车辆都必须让合法地正在路口内行驶的车辆和过人行横道的行先通行。红灯是禁行信号,面对红灯的车辆必须在交叉路口的停车线后停车。黄灯是警告信号,面对黄灯的车辆不能越过停车线,但车辆已十分接近停车线而不能安全停车时可以进入交叉路口。第三章、智能交通灯控制系统要求3.1 总控制要求设计一个十字路口的交通灯控制电路,要求南北方向和东西方向两个交叉路口的车辆交替运行,两个方向能根据车流量大小自动调节通行时间,车流量大,通行时间长,车流量小,通行时间短。每次绿灯变红灯时,要求黄灯先亮5s

26、,才能变换运行车辆。东西方向、南北方向车道除了有红、黄、绿灯指示外,每一种灯亮的时间都用数码管显示器进行显示(采用倒计时的方法)。同步设置人行横道红、绿灯指示。考虑到特殊车辆情况,设置紧急转换开关。图3-1 模拟交通运行3.2 车检测电路(设东西道比南北道的车流量大) 用来判断各方向车辆状况。比如:60秒内可以通过的车辆为50辆,当60秒内南往北方向车辆通过车辆达不到50辆时,判断该方向为少车,当60秒内北往南方向车辆通过车辆也达不到50辆时,判断该方向也少车,下一次通 行仍为60秒,当60秒时间内南往北或北往南任意一个方向通过的车辆达50辆时证明该状态车辆较多,下一次该方向绿灯放行时间改为8

27、0秒,当80秒内通过的车辆数达100辆时车辆判断为拥挤,下一次绿灯放行时间仍改为80秒,当80秒车辆上通过车辆达不到100辆时,判断为少车,下次绿灯放行时间改为60秒,依此类推。绿灯下限时间为60秒,上限值为80秒,初始时间为60秒。这样检测,某次可能不准确,但下次肯定能弥补回来,累积计算是很准确的,这就是人们常说的“模糊控制”。因为路上的车不可能突然增多,塞车都有一个累积过程。这样控制可以把不断增多的车辆一步一步消化,虽然最后由于每个路口的绿灯放行时间延长而使等候的时间变长,但比塞车等候的时间短得多。本系统的特点是成本低,控制准确。十字路口车辆通行顺序如图所示。3.3 信号灯电路信号灯用来显

28、示车辆通行状况。下面以一个十字路口为例,说明一个交通灯的四种状态见图2。每个路口的信号的的转换顺序为:绿黄红。绿灯表示允许通行,黄灯表示禁止通行,但已经驶过安全线的车辆可以继续通行,是绿灯过渡到红灯提示灯。红灯表示禁止通行。绿灯的最短时间为60秒,最长时间为80秒,红灯最短时间为65秒,最长时间为85秒,黄灯时间为5秒(在通行时间方面控制设置为60s5s85s80s5s65s60s)为一个循环,根据车流量合理分配了通行时间)。3.4 时间显示电路图3-2 数码管连接电路 在交通信号灯的正上方安装一个可以显示绿灯通行时间,红灯等待时间的显示电路,采用数码管显示电路是一种很好的方法。由于东往西方向

29、和西往东方向显示的时间相同,南往北方向和北往南方向显示的时间也相同,所以只需要考虑四位数码管显示电路,其中东西方向两位,南北方向两位,两位数码管可以时间的时间为099秒,完全可以满足系统的要求,数码管连接电路。3.5 紧急转换开关电路一般情况下交通灯按照车流量大小合理分配通行时间,按一定规律变化,但考虑紧急车通行车况,设计紧急通行开关,下面简述单片机的中断原理:(1) mcs51的中断源8051有5个中断源,它们是两个外中断int0(p3.2)和int1(p3.3)、两个片内定时/计数器溢出中断tf0和tf1以及一个片内串行口中断ti或ri,这几个中断源由tcon和scon两个特殊功能寄存器进

30、行控制,其中5个中断源的程序入口地址如表所示。中断源 入口地址 外部中断 0 0003h定时器0中断 000bh 外部中断 1 0013h 定时器1中断 001bh串行口中断 0023h 表3.1 8051单片机中断源(2)交通灯中的中断处理流程现场保护和现场恢复:有特殊车辆要通过时就要进行中断,在中断之前,先将交通灯中断前情况保护好,当中断执行后再恢复现场,包括信号灯和时间显示电路。中断打开和中断关闭:为了使特殊车辆通行按一下打开中断开关就可以打开中断,关闭中断开关就关闭中断。中断服务程序:有中断产生,就必然有其具体的需执行的任务,中断服务程序就是执行中断处理的具体内容即如果南北方向有特殊车

31、辆要求通过,南北方向转换为绿灯,东西方向为红灯;如果东西方向有特殊车辆要求通过,东西方向转换为绿灯,南北方向为红灯。中断返回:执行完中断服务程序后,必然要返回,即交通灯信号回到中断前状态,显示时间也和中断前一样。第四章、汇编语言4.1 汇编语言的概述及发展汇编语言是直接面向处理器(processor)的程序设计语言。处理器是在指令的控制下工作的,处理器可以识别的每一条指令称为机器指令。每一种处理器都有自己可以识别的一整套指令,称为指令集。处理器执行指令时,根据不同的指令采取不同的动作,完成不同的功能,既可以改变自己内部的工作状态,也能控制其它外围电路的工作状态。汇编语言是机器语言的助记符,相对

32、于比枯燥的机器代码易于读写、易于调试和修改,同时优秀的汇编语言设计者经过巧妙的设计,使得汇编语言汇编后的代码比高级语言执行速度更快,占内存空间少等优点,但汇编语言的运行速度和空间占用是针对高级语言并且需要巧妙设计,而且目前部分高级语言在编译后代码执行效率同样很高,目前此优点慢慢弱化。而且在编写复杂程序时具有明显的局限性,汇编语言依赖于具体的机型,不能通用,也不能在不同机型之间移植。常说汇编语言是低级语言,并不是说汇编语言要被弃之,相反,汇编语言仍然是计算机(或微机)底层设计程序员必须了解的语言,在某些行业与领域,汇编是必不可少的,非它不可适用。只是,现在计算机最大的领域为it软件,也是我们常说

33、的计算机应用软件编程,在熟练的程序员手里,使用汇编语言编写的程序,运行效率与性能比其它语言写的程序相对提高,但是代价是需要更长的时间来优化,如果对计算机原理及编程基础不扎实,反而增加其开发难度,实在是得不偿失,对比现在的软件开发,已经是市场化的软件行业,加上高级语言的优秀与跨平台,一个公司不可以让一个团队使用汇编语言来编写所有的东西,花上几倍甚至几十倍的时间,不如使用其它语言来完成,只要最终结果不比汇编语言编写的差太多,就能抢先一步完成,这是市场经济下的必然结果。 4.2 特点1机器相关性。这是一种面向机器的低级语言,通常是为特定的计算机或系列计算机专门设计的。因为是机器指令的符号化表示,故不

34、同的机器就有不同的汇编语言。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。2高速度和高效率。汇编语言保持了机器语言的优点,具有直接和简捷的特点,可有效地访问、控制计算机的各种硬件设备,如磁盘、存储器、cpu、i/o端口等,且占用内存少,执行速度快,是高效的程序设计语言。3编写和调试的复杂性。由于是直接控制硬件,且简单的任务也需要很多汇编语言语句,因此在进行程序设计时必须面面俱到,需要考虑到一切可能的问题,合理调配和使用各种软、硬件资源。这样,就不可避免地加重了程序员的负担。与此相同,在程序调试时,一旦程序的运行出了问题,就很难发现。4.3 优缺点优点 1.因为用汇编语言设计

35、的程序最终被转换成机器指令,故能够保持机器语言的一致性,直接、简捷,并能象机器指令一样访问、控制计算机的各种硬件设备,如磁盘、存储器、cpu、i/o端口等。使用汇编语言,可以对访问所有能够被访问的软、硬件资源。 2.目标代码简短,占用内存少,执行速度快,是高效的程序设计语言,经常与高级语言配合使用,以改善程序的执行速度和效率,弥补高级语言在硬件控制方面的不足,应用十分广泛。缺点1.汇编语言是面向机器的,处于整个计算机语言层次结构的底层,故被视为一种低级语言,通常是为特定的计算机或系列计算机专门设计的。因此,不同的处理器有不同的汇编语言语法和编译器,编译的程序无法在不同的处理器上执行,缺乏可移植

36、性;2.难于从汇编语言代码上理解程序设计意图,可维护性差,即使是完成简单的工作也需要大量的汇编语言代码,很容易产生bug,难于调试; 3.使用汇编语言必须对某种处理器非常了解,而且只能针对特定的体系结构和处理器进行优化,开发效率很低,周期长且单调。 第5章 、智能交通灯系统编程与仿真模拟5.1 程序及注释 org 0000h ;主程序的入口地址 ljmp main ;跳转到主程序的开始处 org 0003h ;外部中断0的中断程序入口地址 org 000bh ;定时器0的中断程序入口地址 ljmp t0_int ;跳转到中断服务程序处 org 0013h ;外部中断1的中断程序入口地址 mai

37、n : mov sp,#50h mov ie,#8eh ;cpu开中断,允许t0中断,t1中断和外部中断1中断 mov tmod,#51h ;设置t1为计数方式,t0为定时方式,且都工作于模式1 mov th1,#00h ;t1计数器清零 mov tl1,#00h setb tr1 ;启动t1计时器 setb ex1 ;允许int1中断 setb it1 ;选择边沿触发方式 mov dptr ,#0003h mov a, #80h ;给8255赋初值,8255工作于方式0 movx dptr, aagain: jb p3.1,n0 ;判断是否要设定东西方向红绿灯时间的初值,若p3.1为1 则跳

38、转 mov a,p1 jb p1.7,red ;判断p1.7是否为1,若为1则设定红灯时间,否则设定绿灯时间 mov r0,#00h ;r0清零 mov r0,a ;存入东西方向绿灯初始时间 mov r3,a lcall disp1 lcall delay ajmp againred: mov a,p1 anl a,#7fh ;p1.7置0 mov r7,#00h ;r7清零 mov r7,a ;存入东西方向红灯初始时间 mov r3,a lcall disp1 lcall delay ajmp again;-n0: setb tr0 ;启动t0计时器 mov 76h,r7 ;红灯时间存入76

39、hn00: mov a,76h ;东西方向禁止,南北方向通行 mov r3,a mov dptr,#0000h ;置8255a口,东西方向红灯亮,南北方向绿灯亮 mov a,#0ddh movx dptr, an01: jb p2.0,b0n02: setb p3.0 cjne r3,#00h,n01 ;比较r3中的值是否为0,不为0转到当前指令处执行;-黄灯闪烁5秒程序-n1: setb p3.0 mov r3,#05h mov dptr,#0000h ;置8255a口,东西,南北方向黄灯亮 mov a,#0d4h movx dptr,an11: mov r4,#00hn12: cjne r

40、4,#7dh,$ ;黄灯持续亮0.5秒n13: mov dptr,#0000h ; 置8255a口,南北方向黄灯灭 mov a,#0ddh movx dptr,an14: mov r4,#00h cjne r4,#7dh,$ ;黄灯持续灭0.5秒 cjne r3,#00h,n1 ;闪烁时间达5秒则退出;-n2: mov r7,#00h mov a,r0 ;东西通行,南北禁止 mov r3,a mov dptr,#0000h ; 置8255a口,东西方向绿灯亮,南北方向红灯亮 mov a,#0ebh movx dptr,an21: jb p2.0,t03 n22: cjne r3,#00h,n2

41、1;-黄灯闪烁5秒程序-n3: mov r3,#05h mov dptr,#0000h ;置8255a口,东西,南北方向黄灯亮 mov a,#0e2h movx dptr,an31: mov r4,#00h cjne r4,#7dh,$ ;黄灯持续亮0.5秒n32: mov dptr,#0000h ; 置8255a口,南北方向黄灯灭 mov a,#0ebh movx dptr,an33: mov r4,#00h cjne r4,#7dh,$ ;黄灯持续灭0.5秒 cjne r3,#00h,n3 ;闪烁时间达5秒则退出 sjmp n00;-闯红灯报警程序-b0: mov r2,#03h ;报警持

42、续时间3秒b01: mov a,r3 jz n1 ;若倒计时完毕,不再报警 clr p3.0 ;报警 cjne r2,#00h,b01 ;判断3秒是否结束 sjmp n02;-1秒延时子程序-n7: retit0_int:mov tl0,#9ah ;给定时器t0送定时10ms的初值 mov th0,#0f1h inc r4 inc r5 cjne r5,#0fah,t01 ;判断延时是否够一秒,不够则调用显示子程序 mov r5,#00h ;r5清零 dec r3 ;倒计时初值减一 dec r2 ;报警初值减一t01: acall disp ;调用显示子程序 reti ;中断返回;-显示子程序

43、-disp: jnb p2.4,t02disp1: mov b,#0ah mov a,r3 ;r3中值二转十显示转换 div ab mov 79h,a mov 7ah,bdis: mov a,79h ;显示十位 mov dptr,#tab movc a,a+dptr mov dptr,#0002h movx dptr,a mov dptr,#0001h mov a,#0f7h movx dptr,a lcall delayds2: mov a,7ah ;显示个位 mov dptr,#tab movc a,a+dptr mov dptr,#0002h movx dptr,a mov dptr,#0001h mov

温馨提示

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

评论

0/150

提交评论