欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    单片机模拟交通灯毕业设计.doc

    • 资源ID:79044750       资源大小:574KB        全文页数:36页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机模拟交通灯毕业设计.doc

    设计任务书设计题目:模拟交通灯设计要求:1.在十字路口的两个方向上各设一组红绿黄灯,显示顺序为: 其中一个方向是绿灯、黄灯、红灯,另一个方向是红灯、绿灯、黄灯。2.设置一组数码管,以倒计时的方式显示允许通过或禁止通行的时间,其中左转灯、绿灯、黄灯、红灯的持续时间分别是15S、30S、3S、48S。3.当各条路上任意一条出现特殊情况,例如消防车、救护车或其他需要优先放行的车辆时,各方向上均是红灯亮,倒计时停止,且显示数字在闪烁,当特殊运行状态结束后,控制器恢复原来状态,继续正常运行。摘要设计以单片机为核心部件的模拟交通灯,利用74LS244作为断码驱动器,74LS07作为位码驱动,LED七断数码管作为计时显示用,用发光二极管指示交通的通行,用按键进行紧急事件的发生,使两个方向都亮红灯,绿灯亮通行,红灯亮停止通行。本设计利用定时器进行定时,使定时器工作于方式一定时50ms,配合软件计数器,调用中断程序使定时器定时20此,达到定时1S的目的,同时调用显示程序,显示到计时的时间,用单片机Intel89S51作为核心部件,8路74ls244总线驱动器作为字形驱动芯片和6路驱动74ls07位选码作为中心器件来设计交通灯控制器,实现了交通灯的控制,显示时间直接通过89S51的P0、P1口输出;交通灯信号通过P3口输出;按件通过p3口输入,本交通灯系统简单,实用性强,成本低,使用维护方便,软件功能强,运行稳定可靠等优点。关键词:单片机,交通灯,位码,段码,显示目录摘要II1 单片机的发展及应用11.1 单片机的发展11.2单片机的应用12 总体方案设计32.1系统框图32.2 计时控制方案32.3 显示控制方案32.4 键盘控制方案43 硬件设计53.1 89S51单片机的简介53.2 89S51单片机的引脚63.3 89S51单片机复位方式73.4 74LS244的功能73.5 74LS07的功能83.6 键盘接口工作原理93.7 七段LED显示工作原理103.8 电路原理114 软件设计134.1 定时秒的方法134.2 定时器初值计算134.3 主程序模块134.4 中断服务程序模块154.5 显示程序模块165 系统调试186 结 论20致谢21参考文献22附录A231 单片机的发展及应用1.1 单片机的发展单片微型计算机是微型计算机的一个重要分支,也是一种非常活跃和颇具有生命力的机种。单片微型计算机简称单片机,特别适用于工业控制领域,因此又称为微控器。 1971年微处理器研制成功不久,就出现了单片微型计算机即单片机,但最早的单片机是1位的,处理能力有限。单片机的发展分为4个阶段: 第一阶段(197476年):单片机初级阶段。因为受工艺限制,单片机采用单片的形式而且功能比较简单。例如美国仙童公司生产的F8单片机,实际上只包括了8位CPU,64个字节的RAM和2个并行接口 第二阶段(197678年):低性能单片机阶段。以Intel公司生产的MCS48系列单片机为代表,该系列单片机片内集成有8位CPU,8位定时器/计数器,并行I/O接口,RAM和ROM等,但是最大的缺点就是无串行接口,中断处理比较简单而且片内RAM和ROM容量较小,且寻址范围不大与4KB。第三阶段(197883)高性能单片阶段这个阶段推出的单片机普遍带有串行接口。多级中断系统,16位定时器/计数器,片内ROM,RAM容量加大,且寻址范围可达64KB,有的片内还带有A/D转换器。第四阶段(1983年至今)8位单片机巩固发展以及16位单片机,32 位单片机推出阶段。此阶段的主要特征是:一方面发展16位单片机,32位单片机及专用型单片机;另一方面不断完善高档8位单片机,改善其结构,增加片内器件,以满足不同的客户要求。2 总体方案设计2.1系统框图 交通灯控制的总体设计框图如图2.1所示。 图2.1 系统框图2.2 计时控制方案利用MCS-51内部的定时器/计数器进行定时,配合软件延时实现到计时。该方案节省硬件成本,切能够使读者在定时器/计数器的使用、中断及程序设计方面得到锻炼与提高,2.3 显示控制方案显示分为静态示和动态显示静态显示由于占用较多的接口,在单片机设计中常采用串行扩展来完成。该方案占用接口资源多,显示亮度由保证,但硬件开销大,电路复杂,信息刷新速度慢,实用于并行接口资源较少以及对显示没有要求的场合。LED动态显示硬件连接简单,但动态扫描的显示方式需占用CPU较多的时间,在该系统中由于单片机除了扫描89S51芯片外没有太多的实时测控任务,故选用动态扫描方式。 2.4 键盘控制方案键盘分为独立式键盘和行列式键盘,独立式键盘接口电路配置灵活,硬件结构简单,工作可靠但每个按键必须占用一跟I/O接口线,I/O接口线浪费较大,在单片机应用系统中,有时只需要几个简单的按键向系统输入信息,可将按键直接在一根I/O接口线上,故只在按键数量不多时采用。而行列式键盘每条行线与列线在交叉处不直接相通,而是通过一个按键加以连接,当按键较多时可采用行列式键盘以节省I/O接口。本设计采用两个按键,所以这里选用独立式键。盘3 硬件设计3.1 89S51单片机的简介 89S51是MCS-51系列单片机的典型产品,我们就这一代表性的机型进行系统的讲解。89S51单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:图3.1 单片机内部结构示意图1、中央处理器    中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。2、数据存储器(RAM)    89S51内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。3、程序存储器(ROM)89S51共有4KB掩膜ROM,最大可扩展64K字节,用于存放用户程序,原始数据或表格。4、定时/计数器:89S51有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。5、并行输入输出(I/O)口:89S51共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。6、中断系统89S51具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。3.2 89S51单片机的引脚89S51单片机内部总线是单总线结构,即数据总线和地址总线是公用的. 89S51有40条引脚, 与其他51系列单片机引脚是兼容的. 这40条引脚可分为I/O接口线、电源线、控制线、外接晶体线4部分. 89S51单片机为双列直插式封装结构, 如图3.2所示.图3.2 89S51引脚分配图 89S51单机的电源线有以下两种:(1) VCC:+5V电源线。电源线 (2) GND:接地线。89S51单片机的外接晶体引脚有以下两种: (1)XTAL1:片内振荡器反相放大器的输入端和内部时钟工作的输入端。采用内部振荡器时,它接外部石英晶体和微调电容的一个引脚。(2) XTAL2:片内振荡器反相放大器的输出端,接外部石英晶体和微调电容的另一端。采用外部振荡器时,该引脚悬空。外接晶体引脚。 控制线 89S51单片机的控制线有以下几种:(1) RST:复位输入端,高电平有效。(2) ALE/PROG:地址锁存允许/编程线。(3) PSEN:外部程序存储器的读选通线。(4) EA/Vpp:片外ROM允许访问端/编程电源端。 3.3 89S51单片机复位方式单片机在开机时或在工作中因干扰而使程序失控,或工作中程序处于某种死循环状态,在这种情况下都需要复位. 复位的作用是使中央处理器CPU以及其他功能部件都恢复到一个确定的初始状态,并从这个状态重新开始工作.(2) 89S51单片机的复位靠外部电路实现,信号由RESET(RST)引脚输入,高电平有效,在振荡器工作时,只要保持RST引脚高电平两个机器周期,单片机即复位. 复位后,PC程序计数器的内容为0000H,片内RAM中内容不变. 复位电路一般有上电复位、手动开关复位和自动复位电路3种,如图3.3所示. a.上电复位电路 b. 手动复位电路 c. 自动复位电路图3.3 单片机复位电路3.4 74LS244的功能74LS244是原码三态输出的8缓冲数码驱动器,其管脚分布图如图3.4所示,G为控制端,又称为使能端其工作原理如下: 当G=0时,A输入为低电平时,Y输出也为低电平。当G=0时,A输入为高电平时, Y输出为高电平。当G=1时,A不论输入高电平还是低电平Y为高阻状态功能表如表3.1所示:表3.1 74LS244的功能表 图3.4 74LS244管脚图3.5 74LS07的功能74LS07是六缓冲的数码驱动器,它是有6个集电极开路的非门所组成,管脚分布如图3.5所示,其工作原理如下,当使能端为低电平时,输入为高电平时输出也为高电平,当输入为低电平时输出也为低电平,其逻辑表达式为:Y=A 图3.5 74LS07管脚图3.6 键盘接口工作原理在单片机应用系统中,常用键盘作为输入设备,通过它将数据、内存地址、命令及指令等输入到系统中,来实现简单的人机通信。3.6.1 按键开关的去除抖动功能目前,MCS51单片机应用系统上的按键常采用机械触点式按键,它在断开、闭合时输入电压波形如图3.6所示.可以看出机械触点在闭合及断开瞬间均有抖动过程,时间长短与开关的机械特性有关,一般为510ms。由于抖动,会造成被查询的开关状态无法准确读出。例如,一次按键产生的正确开关状态,由于键的抖动,CPU多次采集到底电平信号,会被误认为按键被多次按下,就会多次进行键输入操作,这是不允许的。为了保证CPU对键的一次闭合仅在按键稳定时作一次键输入处理,必须消除产生的前沿(后沿)抖动影响。 图3.6 按键过程3.6.2 独立式键盘的接口电路独立式键盘的接口电路:在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。这时,可将每个按键直接接在一根I/O接口线上,这种连接方式的键盘称为独立式键盘。如图3.7所示,每个独立按键单独占有一根I/O接口线,每根I/O接口线的工作状态不会影响到其他I/O接口线。这种按键接口电路配置灵活,硬件结构简单,但每个按键必须占用一根I/O线,I/O接口线浪费较大。故只在按键数量不多时采用这种按键电路。在此电路中,按键输入都采用低电平有效。上拉电阻保证了按键断开时,I/O接口线有确定的高电平。当I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻。图3.7 独立式键盘电路3.7 七段LED显示工作原理LED显示器是由发光二极管显示字段的MCS-51单片机输出设备。单片机应用系统常采用七段LED数码管作为显示器,这重显示器具有耗电低、配置灵活、线路简单、安装方便、耐转动、价格低廉且寿命长等优点。因此应用比较广泛。LED数码管显示器可以分为共阴极和共阳极两种结构。(1)共阴极结构:如果所有的发光二极管的阴极接在一起,称为共阴极结构,则数码显示段输入高电平有效,当某段输入高电平该段便发光,如图3.8a所示。(2)共阳极结构:如果所有的发光二极管的阳极接在一起,称为共阳极结构,则数码显示段输入低平有效,当某段输入低电平该段便发光,如图3.8b所示。 a .共阴极 b .共阳极图3.8 七段LED显示器 (3)LED动态显示接口:LED动态显示就是利用单片机依次输出每一位数码管的段选码和对应于该位数码管的位选控制信号,一位一位轮流点亮各七段数码管。对每位数码管来说,每隔一段时间点亮一次,如此循环。利用人眼的“视觉暂留”效应,只要每位显示间隔足够短就可以给人以同时显示的感觉。在动态显示方式中,同一时刻,只有一位LED数码管在显示,其他各位是关闭的。在段选码和位选码每送出一次后,应保持1ms左右,这个时间应根据实际情况而定。不能太小,因而发光二极管从导通到发光有一定的延时,导通时间太小,发光太弱人眼无法看清。但也不能太大,因为毕竟要受限于临界闪烁频率,而且此时间越长,占用CPU时间也越多。采用动态显示方式比较节省I/O接口,硬件电路也较静态显示方式简单,但其亮度不如静态显示方式,而且在显示位数较多时,CPU要依次扫描,占用CPU较多的时间。用MCS-51单片机构建七段数码管动态显示系统时,4数位码管均采用共阴极LED,p0接口作为段选码输出口,8路驱动采用74LS244总线驱动器作为字形驱动芯片,经过8路驱动电路后接至数码管的各段,字形驱动输出0时发光。P2接口作为位选码输出口,4路驱动采用74LS07(OC门驱动器),当C接口线输出1时,选通相应位的数码管工作。3.8 电路原理电路的核心是89S51单片机,其内部带有4KB的FlashROM,无须扩展程序存储器;电脑没有大量的运算和暂存数据,现有的128B片内RAM已能满足要求,也不必扩展片外RAM,系统配备4位LED显示和2个单接口键盘,采用P0接口外接8路反相三态缓冲器74LS244作LED动态扫描的段码控制驱动信号,用P1接口的P1.0-P1.3外接一片集电极开路反相门电路74LS07做为4位LED的位选信号驱动口, LED共阴极端与74LS07的输出端相连;按键接口,由P2.0,P2.1来完成。P3口接交通指示灯,整个系统采用查表的方发,将交通灯的显示情况和数码管的计时情况,分别以代码的形式送到指示灯和LED数码管,启动定时器,同时调用显示程序,和查询按键。利用软件计数器的方法计时一秒,利用中断的方法使计时时间循环,当按下应急按键时停止定时器,送一个代码使两个方向都亮红灯,按下一个按键时启动定时器,恢复循环。如图3.9所示图3.9 电路原理图4 软件设计4.1 定时秒的方法定时方法我们采用软硬件结合的方法,在主程序中设定一个初值为20的软件计数器使定时器0工作于方式1定时50毫秒,这样每当T0到50毫秒时CPU就响应它的溢出中断请求,进入他的中断服务子程序。在中断服务子程序中,CPU先使软件计数器减1,然后判断它是否为零。为零表示1秒已到。4.2 定时器初值计算定时器工作时必须给计数器送初值,将这个值送到TH和TL中。他是以加法记数的,并能从全1到全0时自动产生溢出中断请求。因此工作于方式1,定时器为16位计数器其定时时间由下式计算:定时时间=(216X)×振荡周期×12(或)X=216定时时间振荡周期×12式中x为T0的初始值,该值和计数器工作方式有关。如单片机的主脉冲频率为,经过分频方式0定时时间213× 1微秒8.192毫秒方式1定时时间216 × 1微秒65.536毫秒秒钟已经超过了计数器的最大定时间,所以我们只有采用定时器和软件相结合的办法才能解决这个问题,定时器需定时50毫秒,故0工作于方式1,定时20次,就可定时一秒。 4.3 主程序模块主程序初始化和按键控制,首先将时间、中断、次数、和显示分别进行初始化,然后启动定时器对时间进行判断,将时间送数据缓冲区,调用显示程序,同时扫描按键程序,用无条件跳转指令返回, 再调用显示程序,如此周而复始的循环,如图4.1所示图4.1 主程序流程图主程序:初值:X=216定时时间振荡周期×1221650ms/1us=15536=3CB0H,TH0=3CH , TL0=0B0H。 ORG 0000H AJMP START ORG 0030HSTART: MOV TMOD, #01H; 令0为定时器方式 MOV TH0, #3CH ;装入定时器初值 MOV TL0, #0B0H SETB EA ;开0中断 SETB TF0 SEBT T0 ;启动0计数器 MOV R0, #20H ;软件计数器赋初值 LJMP $ ;等待中断4.4 中断服务程序模块进入中断程序后,先保护现场,判断一秒钟到了吗?如果没有到将定时器重装初值恢复现场,返回主程序,如果一秒钟到了,将软件计数器重初值;判断指示灯循环显示完了吗?如果没完,将保地址重新送入程序计数器中,然后再查表下一地址,显示下一组指示灯状态和显示时间,保存下一组程序数据地址,将定时器重装初值,恢复现场,返回主程序,如果完了,查表首地址,查时间地址,保存下一地址,将定时器重装初值,恢复现场,返回主程序。同时一秒到了应先判断个位是否为0,如果个位是0,判断十位是不是0,如果十位也是0,判断交通灯是否安黄、绿、红的顺序循环完必,如果没循环完应查下一组数据继续循环,如果循环完必,应查表首地址,周而复始的循环,如果十位不是0,应将十位先减1,个位送9,然后返回,再进行中断定时一秒,然后再判断,如果个位不是0,应将个位减1,将定时器重装初值,恢复现场。重新周而复始的循环,如图4.2所。示图4.2 中断程序流程图 4.5 显示程序模块显示程序采用动态显示,由位码控制那一个数码管显示,由段码控制数码管显示什么数值,根据中断程序显示时间来查表显示数值,从第一位到第四位逐个点亮,同时每显示一位判断一次四位显示完了吗?没有显示完进行显示下一位,显示完了从头开始再循环。如图4.3所示 图4.3 显示程序流程图 DESPLAY: MOV R2 , #01H ;将位码送R2MOV R0 , #30 ;将段码送R0NEXT3: MOV A , R0 MOV DPTR , #TAB2MOVC A , A+DPTRMOV P0 , A ;将段码送R0MOV P1 , R2 ;将位码送R2LCALL DELAY1 ;调用延时程序MOV A , R2JB ACC.3 , U2 ;显示完转U2RL A ;未显示完,将未码左移MOV R2 , A ;将位码重送、R2中INC R0 ;指向31HLJMP NEXT3 U2: RET ;显示返回5 系统调试完成了硬件的设计、制作和软件编程之后,要使系统能够按设计意图正常运行,必须进行系统调试。系统调试包括硬件调试和软件调试两个部分。不过,作为一个单片机系统,其运行是软硬件相结合的,因此,软硬件的调试也是绝对不可能分开的。 程序的调式应一个模块一个模块地进行,单独调试各功能子程序,检验程序是否能够实现预期的功能,接口电路的控制是否正常等;最后逐步将各个子程序连接起来总调。联调需要注意的是,各程序模块间能否正确传递参数,特别要注意各子程序的现场保护与恢复。调试的基本步骤如下: 将所要调试的程序输入道伟福6000中,然后进行编译,根据系统的提示查找原因将出错的地方调整正确,例如:有的时标号未定义,有的时少标点符号等。最后以ASM扩展名保存。将在伟福中调试好的程序方入keil内,将单片机实验相与计算机连接,然后在keil中进行编译程序,运行程序,根据单片机所显示的结果分析程序,修改程序直到程序正常。在调试过程中出现的问题:(1)指示灯显示不正常,经分析原因在与灯的表格列的不对,指示灯输出低电瓶时亮,结果程序中都是以高电瓶输出,经修改后正常(2)数码管从15到计时,当减到11时直接变成了9,而没有经过10,经过对整个程序的分析也没能够找到问题,后经老师的讲解分析最后发现是程序设计的错误,在计时时间到时,必须先判断个位是否为0,如果个位是0,判断十位是不是0,如果十位也是0,判断交通灯是否安黄、绿、红的顺序循环完必,如果没循环完应查下一组数据继续循环,如果循环完必,应查表首地址,周而复始的循环,如果十位不是0,应将十位先减1,个位送9,然后返回,再进行中断定时一秒,然后再判断,如果个位不是0,应将个位减1,而不能先减1再判断,而我开始设计的正好与此相反,我先减1后进行判断,然后又减1所以就出现了这种现象,经改正数码管能够按设定的数据变化。(3)紧急事件发生时,按下急停按键时两个方向都亮红灯,而数码管不会闪烁,经老师帮助当按键按下时,在按键服务程序中向数据缓冲器中送入#16H即可。6 结 论依据本论文设计以89S51单片机为核心的交通灯,经过近4个月的设计,最后按设计要求终于在单片机实验箱上试验成功,选择不同的单片机,可以组成具有较强抗干扰能力和运行可靠性的产品,其抗干扰能力虽然不如PLC,但PLC价格较贵,用单片机运行效果仍然令人满意,同时证明了本方案的正确性。这种交通灯比较适合应用于中小型城市的十字路口,如果将本方案加上定时器和传感器比较适合应用于大种型城市,它能根据时间的变化自动调节交通灯的时间,或根据车流量的大小自动调节时间的长短,效果会更佳。附录A ORG 0000H START: MOV R0,#01H ;延时次数置初值 MOV R1,#00H MOV R2,#B ;灯控制字置初值 MOV R3,#B LOOP: MOV P0,R2 ;从暗到亮时输出"0",亮灯;从亮到暗时输出"1",灭灯 MOV A,R0 ;延时次数暂存于A LOOP1: MOV R4,#10 ;延时 DJNZ R4,$ DJNZ R0,LOOP1 INC A ;延时次数递增 MOV R0,A MOV P0,R3 ;从暗到亮时输出"1",灭灯;从亮到暗时输出"0",亮灯 MOV A,R1 ;延时次数暂存于A LOOP2: MOV R4,#10 ;延时 DJNZ R4,$ DJNZ R1,LOOP2 DEC A ;延时次数递减 MOV R1,A JNZ RTN ;达到最亮或最暗时,反转灯控制字 MOV A,R2 CPL A MOV R2,A MOV A,R3 CPL A MOV R3,A RTN: SJMP LOOP END 致谢本课题在选题及研究过程中得到*老师的悉心指导。*老师多次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人,虽历时三载,却给以终生受益无穷之道。对郭老师的感激之情是无法用言语表达的。通过这次毕业设计,使我得到了一次用专业知识、专业技能分析和解决问题全面系统的锻炼。使我在单片机的基本原理、单片机应用系统开发过程,以及在常用编程设计思路技巧的掌握方面都能向前迈了一大步,为日后成为合格的应用型人才打下良好的基础。我在指导老师*老师的精心指导和严格要求下,获得了丰富的理论知识,极大地提高了实践能力,并对当前电子领域的研究状况和发展方向有了一定的了解,这对我今后进一步学习单片机方面的知识有极大的帮助。在此,我忠心感谢*指导和支持。在未来的工作和学习中,我将以更好的成绩来回报老师。在此,我还要感谢在一起愉快的度过大学生生活的机电系全体老师和同门,正是由于你们的帮助和支持,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。 在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!最后我还要感谢培养我长大含辛茹苦的父母,谢谢你们!参考文献1 王玉龙.数字逻辑.北京.高等教育出版社,19872 傅承义.地球物理学基础.北京.科学出版社,1985,4473 华罗庚,王元.论一致分布与近似分析. 北京.中国科学,1973(4):3393574 张筑生.微分半动力系统的不变集研究.学位论文.北京.数学系统学研究所,1983 ORG 0000H LJMP START ORG 000BH LJMP CTC0 ORG 0030HSTART: MOV TMOD , #01H ;定时器T0初始化 MOV TH0 , #3CH ;定时器T0初始化 MOV TL0 , #0B0 ;定时器T0初始化 MOV R3 , #20 ; 定时器次数初始化MOV R5 , #03 ; 循环次数初始化MOV 30H , #16H ;数据缓冲区初始化MOV 31H , #16H ;数据缓冲区初始化MOV 32H , #16H ;数据缓冲区初始化MOV 33H , #16H ;数据缓冲区初始化 SETB EA ;总允许中断 SETB ET0 ;T0允许中断 SETB TR0 ;启动T0 MOV DPTR ,#TAB ;置表格TAB起始值 CLR A MOVC A ,A+DPTR MOV P3 , A ;查表将结果送P3口INC DPTRCLR AMOVC A ,A+DPTRMOV R4 , A ;查表下一地址,结果送寄存器R4MOV 30H ,A ;将结果送30HINC DPTRCLR AMOVC A , A+DPTRMOV R6 , A ;查表下一地址,将结果送R6MOV 31H , A ;将结果送31H INC DPTRCLR AMOVC A , A+DPTRMOV R7 , A ;查表下一地址,将结果送R7MOV 32H , A ;将结果送32H INC DPTR CLR AMOVC A , A+DPTRMOV R2 , A ;查表下一地址,将结果送R7MOV 33H , A ;将结果送32HINC DPTRMOV 50H , DPH ;将下一地址送50H和51H MOV 51H, DPLLOOP: LCALL DISPLAY ;调用显示程序 JB P1.0 , LOOP1 ;K1键未按下,转LOOP1 LCALL DELAY1 ;延时10ms消除抖动 JB P1.0 , LOOP1 ;K1键未按下,转LOOP1LOOP2 JNB P1.0 , LOOP2 ;K1键按下,顺序执行K1键功能 MOV A , P0 MOV P0 , #11H ;送11H到P0口,使两个方向的灯都亮红灯CLR TR0 ;定时器停止计数MOV 30H , #16HMOV 31H , #16HMOV 32H , #16HMOV 33H , #16HANJIAN: JB P1.1 , LOOP ;K2键未按下,转LOOPLCALL DELAY ;延时10ms消除抖动JB P1.1 , LOOP ;K2键未按下,转LOOPL2 : JNB P1.1, L2 ;K2键按下,顺序执行K2键功能SETB TR0 ;重新启动定时器MOV P0 , A ;将状态送P0口LJMP LOOPCTCO: PUSH ACC ;保护现场 PUSH PSWDJNZ: R3 , NEXT2 ;定时器一秒未到转NEXT2MOV R3, #20 ;定时一秒到,送20到R3MOV A,R4CJNE A, #0FF , L15 ;(主干道)判断个位,个位不等0,转L15MOV A, R6 ;个位等0顺续执行CJNE A,#0FFH , L16 ; 判断十位,十位不等0,转L16LJMP L17 ; 十位等0,转L17L16: DEC R6 ; 十位减1MOV R4 , #09 ; 个位送9LJMP L8L15 : DJNZ R4, L8 ;个位不为0时,个位减1L17; DJNZ R5 , LL1 ;未循环完,转LL1MOV R5 , #05 ;循环寄存器重装初值MOV DPTR , #TAB1 ;将TAB1首地址送DPTRLJMP LL2L8: MOV A, R7CJNE A,#0FFH ,L11 ;(直干道)判断个位,个位不等0,转L11MOV A,R2 ;个位等0顺续执行CJNE A,#0FFH ,L18 ; 判断十位,十位不等0,转L18 LJMP L18L12 : DEC R2 ;十位减1 MOV R7 , #09 ;个位送9 LJMP NEXT1L11: DJNZ R7 , NEXT1 ;个位不为0时,个位减1 L18: DJNZ R5 , LL1 ;未循环完,转LL1 MOV R5 , #05 ;循环寄存器重装初值 MOV DPTR , #TAB1 ;将TAB1首地址送DPTR LJMP LL2LL1: MOV DPL, 50H ;重保存地址送DPTRMOV DPH , 51HLL2: CLR A MOVC A , A+DPTRMOV P3 , A ;查表将结果送P3口INC DPTRCLR AMOVC A , A+DPTRMOV R4 , A ;查表下一地址,结果送寄存器R4MOV 30H,A ;将结果送30HINC DPTRCLR AMOVC A , A+DPTRMOV R6 , A ;查表下一地址,结果送寄存器R6MOV 31H,A ;将结果送31HINC DPTRCLT AMOVC A , A+DPTRMOV R7 , A ;查表下一地址,结果送寄存器R6MOV 32H ,A ;将结果送31HINC DPTR CLR A MOVC A , A+DPTRMOV R2 , A ;查表下一地址,结果送寄存器R6MOV 33H ,A ;将结果送33H INC DPTRMOV 50H , DPH ;重保存地址送DPTRMOV 51H , DPLNEXT1: MOV 30H , R4 MOV 31H , R6MOV 32H , R7MOV 33H , R2NEXT2: MOV TH0 , #3CH ;重装定时器初值 MOV TL0 , #0B0H POP PSW POP ACC ; 恢复现场 RETI

    注意事项

    本文(单片机模拟交通灯毕业设计.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开