基于单片机的交通灯控制系统设计--课程设计.doc_第1页
基于单片机的交通灯控制系统设计--课程设计.doc_第2页
基于单片机的交通灯控制系统设计--课程设计.doc_第3页
基于单片机的交通灯控制系统设计--课程设计.doc_第4页
基于单片机的交通灯控制系统设计--课程设计.doc_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

河南理工大学单片机课程设计报告交通灯控制系统设计摘要这次设计的主要任务是设计一个单片机控制的交通灯控制系统的设计。首先设计出各个功能模块,再搭建出完整的硬件系统,选好合适的单片机型号并依照硬件连接图设计出相应的软件系统,通过编译软件(WAVE6000)编译出可执行的目标文件,最后作出原理图并在仿真软件(PROTEUS)上仿真出设计结果。其实编译软件有很多种,比如配硬件仿真软件PROTEUS本身就可以进行编译,这也是我后来才知道的。设计的具体要求主要有以下几点:1A道和B道上均有车辆要求通过时,A、B道轮流放行。A放行5分钟(调试时改成5秒钟),B道上放行4分钟(调试时改成4秒钟)。2一道有车而另一道无车(实验时用开关K0和K1控制),即当A道有车B道无车,按K0键可以控制交通灯系统让A道立即放行B道禁止;当B道有车A道无车,按K1键可以控制交通灯系统让B道立即放行A道禁止。 3有紧急车辆通过时,按开关K2可以控制系统能禁止普通车辆通行,即A、B道均为红灯。4绿灯转换成红灯时黄灯亮一秒钟。 以上的各种要求我都已经完成(在上个学期),后来因有时间重做了,有了充分的时间思考程序的改进工作,我就又加上了时间调整模块,加上了三个键,一个时间调整切换键、一个加一键还有一个减一键。能够方便的进行时间的调整,显示多长的计时时间都可以。一来有更高的实用性,二来又锻炼了自己英勇单片机的能力。 新加的有三个键,那就是K3、K4、K5。当K3第一次按下式,系统置于调时状态,这是可以调整南北红东西绿的时间,第二次按下时可以调整东西红南北绿的时间,第三次按下时,就推出了调时模块了。 目录1概述31.1单片机的结构31.2单片机的产生和发展31.3单片机的应用领域42系统总体方案及硬件设计62.1 系统总体方案62.2单片机选择62.3时钟电路模块72.4复位电路模块82.5交通灯连灭控制电路模块82.6时间显示模块92.7键盘扫描控制模块102.8时间调时模块113软件设计133.1主程序133.2中断服务程序153.3显示子程序163.4其他程序段164 PROTEUS仿真174.1交通灯转换状态174.2调时状态185课程设计体会19参考文献19附1:程序原代码20附2:系统原理图301概述本次设计主要是利用单片机制作一个交通灯控制系统并由此加深我们对单片机的各种模块的理解和应用能力。比如这次设计就用到了单片机的数码管显示模块,键扫描模块,单片机的中断服务系统(包括定时器中断合外部中断),四个并行I/O口的输入/输出功能等。而要想灵活的应用这些这些功能,不仅要对软件要有一定的理解能力,还有对硬件有一定的了解。首先说说单片机。1.1单片机的结构单片机实际上是微型计算机的一种,自从它问世以来,人们对它不断地改进,应用在现代化社会的各个方面。单片机有体积小价格低廉,开发较为容易,可根据需要制作成各种智能控制器以代替人工操作,实现自动化和智能化。单片机实际上是小型简单化的个人计算机(Pc),它由这样几个部分构成:CPU(进行运算和控制)、RAM(进行数据存储)、ROM(进行程序存储)、输入/输出设备(例如串行口、并行口等)。在个人计算机上,这些部分被分成若干块芯片,安装在一个称之为主板的印刷线路板上。而在单片机,这边部分(甚至还有A/D利D/A等),全部被集成到一块电路芯片中了所以就称为为单片机。器节后框图如下1所示: 图1 1.2单片机的产生和发展单片机(MicroController Unit,MCU)是一种能进行数学和逻辑运算,根据不同使用对象完成不同控制任务的面向控制而设计的集成电路。由intel公司发明,后来把核心技术转让给了世界上的许多小公司。在我国流行的是ATMEL公司的89C51、89C52、89S51等,它们都是SISC(复杂指令集单片机)的结构。AVR是atmel公司生产的8位单片机,采用RISC(精简指令集单片机)的结构,而PIC是microchip公司的产品。80年代,世界各大公司均竞相研制出品种多功能强的单片机,约有几十个系列,300多个品种,此时的单片机均属于真正的单片化,大多集成了CPU、RAM、ROM、数目繁多的I/O接口、多种中断系统,甚至还有一些带A/D转换器的单片机,功能越来越强大,RAM和ROM的容量也越来越大,寻址空间甚至可达64kB,可以说,单片机发展到了一个全新阶段,应用领域更广泛,许多家用电器均走向利用单片机控制的智能化发展道路。九十年代以后,单片机获得了飞速的发展,世界各大半导体公司相继开发了功能更为强大的单片机。美国Microchip公司发布了一种完全不兼容MCS-51的新一代PIC系列单片机,引起了业界的广泛关注,特别它的产品只有33条精简指令集吸引了不少用户,使人们从INTEL的111条复杂指令集中走出来。PIC单片机获得了快速的发展,在业界中占有一席之地。现在可以说单片机是百花齐放,百家争鸣的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,有与主流C51系列兼容的,也有不兼容的,但它们各具特色,互成互补,为单片机的应用提供广阔的天地。 纵观单片机的发展过程,可以预示单片机的发展趋势,大致有:低功耗COMS化,微型单片化,主流化和多样化。1.3单片机的应用领域单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴:1.在智能仪器仪表上的应用单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。2.在工业控制中的应用用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。3.在家用电器中的应用可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。4.在计算机网络和通信领域中的应用现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。5.单片机在医用设备领域中的应用单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。3由单片机控制的交通灯 锁着现代社会的发展,和交通设施的日益健全,对交通的维持交通秩序的功能有了越来越高的要求,要求交通灯必须有一定的反馈能力,和时间计时能力。本设计是用单片机控制交通灯的亮灭,并用数码管显示交通灯的亮灭时间,通过P2、P3口的输入/输出功能设计键扫描程序,利用键盘来模拟不同的外部情况,进行相应的控制,完成交通灯的不同亮灭状态的转变和进行调时。2系统总体方案及硬件设计2.1 系统总体方案单片机控制交通灯系统总共可分为四个环节,分别是单片机控制系统、时间显示模块、控制键盘块和交通灯闪烁模块。通过这四个模块的协调工作就可以完成相应的交通灯控制和显示功能。这四个模块的相互连接如下图2所示: 图22.2单片机选择这次设计用到了AT89C52单片机(如图3),AT89C52系列单片机是由Atmel公司生产,而这家公司得到了Intel公司MCS51系列单片机内核生产授权,所以,它与MCS51系列单片机指令兼容,同时它的内部包含有用作程序存储器的4KB的基于FLASH技术的只读存储器。采用这款芯片及克服了采用8031需要添加外部外部程序存储器导致电路复杂的缺点,又克服了采用8751导致电路制作成本高的缺点。AT89C52单片机芯片具有以下特性:1)指令集合芯片引脚与Intel公司的8051兼容;2)4KB片内在系统可编程FLASH程序存储器;3)时钟频率为033MHZ;4)128字节片内随机读写存储器(RAM);5)6个中断源,2级优先级;6)2个16位定时/记数器;7)全双工串行通信接口;8)监视定时器;9)两个数据指针;图32.3时钟电路模块 为达到振荡周期是12MHZ的要求,这里要采用12MHZ的晶振,另外有两个22P的独石电容,两晶振引脚分别连到XTAL1和XTAL2振荡脉冲输入引脚。具体连接图如图4所示: 图42.4复位电路模块 单片机系统的复位电路在这里采用的是上电+按钮复位电路形式,其中电阻R采用510的阻值,电容采用电容值为22的电解电容。具体连接电路如图示5: 图52.5交通灯连灭控制电路模块在交通灯闪烁模块我用到了专用的交通灯发光二极管,并通过线路连到P1口。其具体的连接图如图6所示:图6我们知道交通灯总共有四种状态的来回变换,即南北红灯东西绿灯、南北红灯东西黄灯、南北绿灯东西红灯、南北黄灯东西红灯。有这四种状态按照特定的时间延迟循环变换就会形成我们在大街上时常看到的交通灯的来回变换。按上图所示的连接电路,这四种状态可以通过单片机P1口的四种不同的输出状态来表示,具体请看下表1: B道A道P1.5P1.4P1.3P1.2P1.1P1.0控制码状态说明时间间隔绿黄红绿黄红10000121HB道放行,A道禁止5S01000111HB道警告,A道禁止1S0011000DHA道放行,B道禁止4S0010100AHA道警告,B道禁止1S00100109HA道禁止B道禁止无限时表1当这四种不同的P1输出状态不停的循环输出是就会控制交通灯按次序不停的闪烁着知道有紧急情况或者是特殊情况。其中特殊情况就是表格的最后一行,两边都是红灯或是一路一直红一路一直绿。2.6时间显示模块时间显示模块具体采用7段码数码管显示数字,从P0口输出代码信号,从P1口输出片选信号。在这里我总共用到了16个7段码数码管,因为双数码管只有红色和蓝色,所以这里我在每一路都按了4个数码管,红数码管显示的是红灯点亮的时间,蓝数码管显示的是绿灯点亮的时间,而黄灯点亮的时间则由这两个数码管共同显示。具体到各灯的显示时间可以在软件设计时具体设定。 其具体电路如下图7所示: 图7在上图中我用了标号来代替线路的连接以避免线路太复杂难以辨识,另外有电路的结构可知,总共有8个不同的数码管轮流或共同显示,所以需要8根不同的片选线,为了节省I/O口,在这里我用了三八译码器来控制片选信号的输出。2.7键盘扫描控制模块在这里首先说明一下,这里所说的键扫描模块,和上文所提到的时间显示模块中,都不包括我后来又加上的调时功能模块。而这一块既用到了数码管显示模块,也涌到了键扫描模块,其工作原理和这里所说的是几乎完全相同的。所以即不再一一赘述了,等到了介绍时间调整模块时在在详细的说明其具体的工作过程。因为在交通灯变换的时候要判断两方向的有无车情况,在建盘扫描控制模块我总共用了三个按钮,分别模拟A道有车B到无车K0、A到无车B到有车(K1)和紧急情况(K2)三种状态。其中在这三种状态中K0,K1两个按键是按照建扫描的方式,在数码管动态显示中每扫描一次都会判断各键状态,然后根据各键状态进行不同的显示。而K3键则是利用中断的方式,利用中断服务程序完成紧急情况的显示。其具体连接图8如下: 图82.8时间调时模块交通灯的亮灭时间要想能够随时改变就需要有时间调整功能,虽然任务要求上没有这一要求,但笔者认为这也是交通灯也应该具备的能力。所以时间调整模块还是有必要家的。时间调整模块其实也是相当简单,为了能产生两个标示位(一个是进入时间调整的标示位,一个是条南北时间/东西时间的标示位),要用到另一个外部中断入口,也就是外部中断0。但进入外部中断0时,首先停定时器TO这就是是否进入时间调整模块的标示为,然后根据连接P3.3口的键的按下的次数修改标示位27H,由此来区别进行哪一道时间的调时。在时间调整是也有数码管显示计数,为了使调整时间的范围能扩大到0到99,所以就需要再加一个两位一体的数码管。数码管的字形码输出口,可以与前述的数码管显示模块的字形码输出口公用。而为了两种状态下,数码管能该亮的亮,不在量的灭。位选输出就要与以前的有所区别了。其具体电路连接图如下图9所示: 图93软件设计3.1主程序整个程序最主要的就是四个显示状态的来回转换,其中以K0,K1,K4,K5是扫描的形式进行的。其流程图如下图10在主程序执行到相应模块时只要键扫描模块的扫描结果,符合其中之一的跳转条件就会马上产生跳转动作到相应的地址,去执行相应的模块程序(如调时模块)。当判断到一道有车一道无车时,程序就会跳转到相应的入口执行。当判断结果是两道都有车或两道都没有车是程序还是会按顺序继续执行下去。在主程序中就是这四个状态的来回顺序的转变,同时判断着这个标示位的情况,当标示位符合条状条件时,发生跳转,到相应的程序段去执行。另外K1中断程序里的,只要有中断请求就会马上保存中现场,跳转靠中断服务程序里去执行。这个中断程序我设计的是一个死循环,因为紧急情况时谁也不知道他会持续多长时间,所以当执行中断和系统就会陷入死循环一直到有人按到复位键,程序才会从0000H开始执行程序。在主程序中,还有一部分程序段虽然完成了数码管显示的工的能,但是并没有调用数码管显示字程序段。比如有一段程序段如下: 31 LOOP1: MOV A, R3 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0F0H MOV P0,A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0F1H MOV P0,A LCALL DELAY MOV A, R4 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0F6H MOV P0,A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0F7H MOV P0,A LCALL DELAY开始程序初始化南北红东西绿4FH=1? TR0=1? 键按下情况寄存器数减一R4=FFH?ynyK0=0,k1=1nK0=1,k1=0K0=0,k1=0yn南北红东西黄4FH=1? TR0=1? 键按下情况寄存器数减一R3=FFH?ynyK0=0,k1=1nK0=1,k1=0K0=0,k1=0yn南北绿东西红4FH=1? TR0=1? 键按下情况寄存器数减一R4=FFH?ynyK0=0,k1=1nK0=1,k1=0K0=0,k1=0yn南北黄东西红4FH=1? TR0=1? 键按下情况寄存器数减一R3=FFH?ynyK0=0,k1=1nK0=1,k1=0K0=0,k1=0yn调时模块TR0=0?Y n图103.2中断服务程序 本设计用到了两个中断服务程序,INT0、INT1。其中INT0是完成标示位的改变,以使主程序能根据标示位的不同进行相应的程序块的操作。标示位就是27H,每按一下K3键,27H就会加一,直到加到2时停止,因为27H赋的处置时FFH,所以27H只有0、1、2这三个状态。其程序快如下:INT0:PUSH ACC PUSH PSW MOV C,P3.2 ;按键消振 JC PPP ACALL DELAY MOV C,P3.2 JC PPPSTOP3: MOV C,P3.2 JNC STOP3 ACALL DELAY MOV C,P3.2 JNC STOP3 CLR TR0 MOV A,27H CJNE A,#01H,PPP MOV A,#0FFH MOV 27H,A SETB TR0 AJMP PP1PPP: INC 27HPP1: POP PSW POP ACC RETIINT1中断服务程序是模拟紧急情况时,东西南北都是红灯的情况。 INT1: PUSH ACC PUSH B PUSH PSW MOV P1,#0CH SETB P1.0 CLR P1.1 CLR P1.2 SETB P1.4; 紧急情况,东西(B道)方向,南北(A道)方向都是红灯亮,其余灯灭 CLR P1.5 CLR P1.6TAB3: MOV P0,#0FFH MOV P2,#0 MOV P2,#1 MOV P2,#4 MOV P2,#5 LCALL TAB3 POP PSW POP ACC RETI3.3显示子程序在调时模块中有用到了显示字程序。显示子程序用到了30H、31H两个缓存区,它就是完成将显示缓存区的数据用数码管显示出来的功能。其程序段如下:DISP: MOV DPTR,#DSEG1 MOV A,30H MOVC A,A+DPTR MOV P2,#0EFH MOV P0,A LCALL DL1 MOV DPTR ,#DSEG1 MOV A,31H MOVC A,A+DPTR MOV P2,#0DFH MOV P0,A LCALL DL1 RET3.4其他程序段 除此之外,还又T0中断服务程序,主要完成的是标示位4FH的置位。以次使得计时显示模块能进行下去。由于程序太简单就不再在摘录了。延迟子程序是在显示模块中,采用的是动态扫描的方式,每扫描一遍都必须有一定的时间延迟,以便给人留下视觉效果。键扫描程序段,主要包括去抖动部分和判断跳转部分,由此可以判断是南隔间按下,并做出相应的操作。4 PROTEUS仿真4.1交通灯转换状态 用PROTEUS软件进行仿真,各项指标都达到了要求。例如当没有键按下时交通灯的四种状态交替着出现。如下图11就是黄灯亮时的情景。 图11 当有KO或K1键按下时,程序就开始跳转了。如下图12时当键K0按下时的情景。 图124.2调时状态 当进入调时状态是 调时显示管就要亮了。如下图135课程设计体会在这次单片机课程设计中,刚一开始我对程序根本没有系统一个设计方法,老师不知道在程序中闲坐哪一步后坐哪一步。后来我参考了很多单片机方面书籍,其中从中受益最大就是我们的单片机教材和赫建国老师编写的单片机载电子电路设计中的应用一书,让我对交通灯的各个模块,和各种不同程序的设计程序都有了一定的了解。我感觉做设计不动手不尝试是不行的,又是后以各路走不同可以走另一条路,这样在你不明白的时候可能路就走通了。就像我,在建扫描一块我花了大约三四天的时间,其中的子程序的调用老师出现乱码,无论我真么该扫描程序都不行,后来在宿舍停电之后我突然想到我子程序放到主程序中去估计跳转就不会乱码,第二天早上来电一试结果就行了,但让我说原因还真不知道。总而言之,这次让我学到了很多东西。 参考文献1 胡汉才单片机原理及其接口技术,北京,清华大学出版社。2 徐仁贵,廖哲智单片微型计算机应用技术,机械工业出版社。3孙育才主编,MCS-51系列单片微型计算机及其应用,东南大学出版社。4余发山主编,单片机原理及应用技术,北京 中国矿业大学出版社。5赫建国主编,单片机载电子电路设计中的应用,北京,清华大学出版社。附1:程序原代码ORG 0000H LJMP START ORG 0003H LJMP INT0 ORG 000BH LJMP T0 ORG 0013H LJMP INT1 ORG 001BH START: MOV SP, #60H MOV 40H, #5 ;在南北红灯缓存区南北红灯时间 MOV 41H, #3 ;在南北绿灯缓存区南北绿灯时间 MOV 42H, #4 ;在东西红灯缓存区东西红灯时间 MOV 43H, #4 ;在东西绿灯缓存区东西绿灯时间 MOV 27H,#0FFH ;标示位 MOV 30H,#05H MOV 31H,#00H MOV TMOD, #01H ;定时器初始化 MOV TH0, #3CH MOV TL0, #0AFH MOV 60H, #20 CLR 4EH CLR 4FH SETB EA SETB EX1 SETB EX0 SETB ET0 SETB TR0DISPLAY1:MOV P1, #0CCH ;显示南北红灯与东西绿灯时间 MOV R3, 40H MOV R4, 43H LOOP1: MOV A, R3 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0F0H MOV P0,A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0F1H MOV P0,A LCALL DELAY MOV A, R4 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0F6H MOV P0,A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0F7H MOV P0,A LCALL DELAY JNB TR0,SETIN1 JB P2.6,WAY1 ;判断两通道是否都有车 LCALL DELAY JB P2.6,OUT1 JNB P2.7,OUT1 LJMP DISPLAY2WAY1: JB P2.7,OUT1 LCALL DELAY JB P2.7,OUT1 LJMP DISPLAY1OUT1: JMP E1 SETIN1: LJMP SETT E1: JNB 4FH,LOOP1 CLR 4FH DEC R3 DEC R4 CJNE R4,#0FFH,LOOP1 MOV P1, #0CAH ;东西绿灯灭黄灯亮LOOP2: MOV A, R3 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0F4H MOV P0,A LCALL DELAY MOV P2,#0F0H MOV P0,A LCALL DELAY MOV P2, #0F6H MOV P0, A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0F5H MOV P0,A LCALL DELAY MOV P2,#0F1H MOV P0,A LCALL DELAY MOV P2, #0F7H MOV P0, A LCALL DELAY JNB TR0,SETIN2 JB P2.6,WAY2 ;判断两通道是否都有车 LCALL DELAY JB P2.6,OUT2 JNB P2.7,OUT2 LJMP DISPLAY2WAY2: JB P2.7,OUT2 LCALL DELAY JB P2.7,OUT2 LJMP DISPLAY1OUT2: JMP E2 SETIN2:LJMP SETT E2: JNB 4FH,LOOP2 CLR 4FH DEC R3 CJNE R3,#0FFH,LOOP2DISPLAY2: MOV P1, #0E1H ;南北红灯时间到,南北绿灯亮,东西红灯亮 MOV R3, 41H ;显示南北绿灯,东西红灯时间 MOV R4, 42H LOOP3: MOV A, R3 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0F2H MOV P0,A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0F3H MOV P0,A LCALL DELAY MOV A, R4 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0F4H MOV P0,A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0F5H MOV P0,A LCALL DELAY JNB TR0 ,SETIN3 JB P2.6,WAY3 ;判断两通道是否都有车 LCALL DELAY JB P2.6,OUT3 JNB P2.7,OUT3 LJMP DISPLAY2WAY3: JB P2.7,OUT3 LCALL DELAY JB P2.7,OUT3 LJMP DISPLAY1OUT3: JMP E3 SETIN3: LJMP SETT E3 : JNB 4FH,LOOP3 CLR 4FH DEC R3 DEC R4 CJNE R3,#0FFH,LOOP3 MOV P1, #0D1HLOOP4: MOV A, R4 ;显示东西红灯,南北黄灯时间 MOV B, #0AH DIV AB MOV DPTR,#TAB MOVC A,A+DPTR MOV P2,#0F0H MOV P0,A LCALL DELAY MOV P2,#0F4H MOV P0,A LCALL DELAY MOV P2, #0F2H MOV P0, A LCALL DELAY MOV A, B MOVC A,A+DPTR MOV P2,#0F1H MOV P0,A LCALL DELAY MOV P2,#0F5H MOV P0,A LCALL DELAY MOV P2, #0F3H MOV P0, A LCALL DELAY JNB TR0,SETIN4 JB P2.6,WAY4 ;判断两通道是否都有车 LCALL DELAY JB P2.6,OUT4 JNB P2.7,OUT4 LJMP DISPLAY2WAY4: JB P2.7,OUT4 LCALL DELAY JB P2.7,OUT4 LJMP DISPLAY1OUT4: JMP E4 SETIN4: LJMP SETT E4: JNB 4FH,LOOP4 CLR 4FH DEC R4 CJNE R4,#0FFH,LOOP4 SETOUT : LJMP DISPLAY1 SETT: JB TR0,SETOUT ACALL DISP JB P3.0,M1M1: MOV C,P3.0 ;按键消振 JC M2M2: LCALL DELAY MOV C,P3.0 JC ML10STOP1: MOV C,P3.0 JNC STOP1 LCALL DELAY MOV C,P3.0 JNC STOP1 MOV R6,27H CJNE R6,#00H,RRRR MOV R5,43H INC R5 MOV 43H,R5 ;加一 MOV R5,40H INC R5 MOV 40H,R5 CJNE R5, #99,DSS MOV 40H,#0 MOV 43H,#0 LJMP DSS RRRR: MOV R5,41H INC R5 MOV 41H ,R5 MOV R5,42H INC R5 MOV 42H,R5 CJNE R5,#99,DSS MOV 42H,#0 MOV 41H,#0 DSS: MOV A,R5 MOV B,#0AH DIV AB MOV 31H,A MOV 30H,B ACALL DISPML10: JB P3.1,M3M3: MOV C,P3.1 ;按键消振 JC M4M4: LCALL DELAY MOV C,P3.1 JC SETTSTOP2: MOV C,P3.1 JNC STOP2 LCALL DELAY MOV C,P3.1 JNC STOP2 MOV R6,27H CJNE R6,#00H,RRRR1 MOV R5,43H DEC R5 MOV 43H,R5 MOV R5,40H DEC R5 MOV 40H,

温馨提示

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

评论

0/150

提交评论