嵌入式编程 交通灯显示
要求:
实验平台:MDK5 Proteus8 单片机:AT89C51
1、当A、B道均有车时轮流放行。A道放行10秒,B道放行10秒,转换时黄灯亮0.5秒。时间显示采用数码管显示。
2、一道有车时,另一道无车时,立即让有车的道放行。
3、当有紧急车辆时(如警车,救护车)通行时,禁止普通的车辆通行(A、B道皆亮红灯)。
说明:外部中断0 -¬¬¬¬------救护车、警车通行时,全亮红灯
外部中断1 -------只有一个车道有车时,有车车道处亮绿灯,无车车道亮红灯。
定时器1-------A,B两车道轮流放行,红绿黄三色灯按规定点亮
源代码:
;交通信号灯实验程序LED_BIT EQU P1DIG_TUBE EQU P2DIS_RAM EQU 30HCLOCK EQU 40HNUM EQU 20LEN EQU 10HINIT_LED EQU 20HORG 0000HLJMP MAINORG 0003HLJMP EXINT_0 ;外部中断0 救护车服务函数ORG 0013HLJMP EXINT_1 ;外部中断1 只有一车道有车服务函数ORG 001BHLJMP TIMER1 ;定时器1 延时服务函数
MAIN:MOV LEN, #9MOV LED_BIT,#0FFH ; LEDOFF ;熄灭led灯MOV CLOCK, #00H ;软时钟初始化MOV P1, #0EEH ;初始化交通灯MOV DIG_TUBE,#6FH ;初始化数码管读数 高电平点亮 9;定时器1初始化MOV TMOD, #10HMOV TL1, #0B0HMOV TH1, #3CHSETB TR1 ;启动定时器SETB ET1 ;开T1中断 ;外部中断初始化SETB IT0 ;下降沿触发SETB IT1SETB EX0 ;使能INT_0SETB EX1SETB EA ;使能总中断 SJMP $
EXINT_0: ;救护车通行时MOV LED_BIT,#0EDH ;点亮A B的红灯JNB P3.2, $CJNE R6, #00H,TIM2MOV LED_BIT,#0DBH TIM2:CJNE R5, #01H,TIM1MOV LED_BIT,#0EEH RETITIM1:MOV LED_BIT,#0F5HRETI
EXINT_1: ;只有一车道有车时JB P0.6, TIM3 MOV LED_BIT,#0F5H JNB P3.2, TIM4JNB P0.6, $TIM3: JNB P0.7, A_CHRETIA_CH:MOV LED_BIT,#0EEHJNB P3.2, TIM4JNB P0.7, $TIM4:RETI
TIMER1: ;正常的交通模式INC CLOCKMOV A, CLOCKCJNE A, #NUM,GOON ;累加次数未到,进GOON;定时时间到处理 MOV CLOCK,#00H ;软时钟清零 JNB P1.0, SAVE1 ;绿灯1点亮时JNB P1.3, SAVE2 ;绿灯2点亮时JNB P1.2, TRANS ;黄灯点亮时 SAVE1:MOV R5, #1 ;SETB PSW.5 ;PSW.5 第一个绿灯时为1MOV R6, #1SJMP CLOCK_T1SAVE2:MOV R5, #0 ;CLR PSW.5 ;第二个灯点亮时MOV R6, #1SJMP CLOCK_T1TRANS: ;黄灯执行程序MOV R6,#00HCJNE R5,#01H,NEXT2 ;上一次第一个绿灯亮MOV LED_BIT,#0F5H MOV LEN,#9SJMP CLOCK_T1NEXT2: ;第二个灯点亮时 MOV LED_BIT,#0EEH MOV LEN,#9CLOCK_T1:MOV R0, #LENMOV A, @R0MOV DPTR, #TABMOVC A, @A+DPTRMOV DIG_TUBE,A DJNZ LEN,GOONMOV LED_BIT,#0DBHGOON:MOV TL1,#0B0H MOV TH1,#3CH RETI TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND
实验原理图:
注:外部中断1处的电路是为了辅助程序上的较好的实现,并不影响实验现象。
写于 2020.06.25晚 端午节
嵌入式编程 交通灯显示相关推荐
- 现代交通灯的设计C语言编程,交通灯设计_优秀论文.doc
. PAGE .. 毕业论文(设计) 题 目 基于单片机控制的 交通灯的设计 _ 学生姓名 学 号 专业班级 指导教师 完成时间: 201 年 月 日 . PAGE .. 摘 要 交通信号灯的出现,使 ...
- 学习笔记-java编程-交通灯管理器设计流程。
先抛出需求: 异步随机生成按照各个路线行驶的车辆. 例如: 由南向而来去往北向的车辆 ---- 直行车辆 由西向而来去往南向的车辆 ---- 右转车辆 由东向而来去往南向的车辆 ---- 左转车辆 . ...
- 计算机原理实验红绿灯转换,微机原理与应用的5个实验 包含8086扩展,8255交通灯,DEBUG程序,数码显示...
包含8086扩展,8255交通灯,数码显示 实验一:汇编语言程序设计 实验二:查表程序设计 实验三:I/O口扩展实验 实验四:数码显示 实验五:8255模拟交通灯 实验一汇编语言程序设计实验目的 1. ...
- 计算机控制系统课程设计交通灯,太原理工大学数字逻辑课设(交通灯)
<太原理工大学数字逻辑课设(交通灯)>由会员分享,可在线阅读,更多相关<太原理工大学数字逻辑课设(交通灯)(25页珍藏版)>请在人人文库网上搜索. 1.太原理工大学计算机科学与 ...
- 单片机怎么通过按键控制计时器的开始和停止_学习电路仿真:基于proteus电路仿真软件的交通灯控制电路设计...
电路仿真软件是当代重要软件之一,缺乏电路仿真软件,模拟运行环境将无法搭建.对于电路仿真软件,虽然市面上类别众多,但知名电路仿真软件为proteus.本文对于电路仿真软件的介绍,为基于proteus的交 ...
- 设计分享|单片机交通灯仿真(汇编)
具体实现功能 具体功能: (1)东西红灯60S倒计时,南北绿灯40S倒计时,东西向人行道红灯,南北向人行道绿灯: (2)40S后,黄灯闪烁切换,东西右转绿灯20S,左转绿灯20S,南北80S倒计时,右 ...
- 带注释的c51汇编语言,51单片机汇编语言实现交通灯 代码有详细注释
ORG 0000H;程序起始地址 LJMP START;初始化标号 ORG 0003H;外部中断地址--东西紧急按钮触发 LJMP DXJJ;东西紧急标号 ORG 0013H;外部中断地址--南北紧急 ...
- 【Proteus仿真】51单片机汇编数显大型交通灯控制
[Proteus仿真]51单片机汇编数显大型交通灯控制 Proteus仿真 学汇编的人虽然 不多,但是还是有的,分享一个汇编的案例,给需要的人予以参考学习,有些时候我们还是需要懂一些汇编指令比较好. ...
- 基于51单片机的十字路口交通灯系统
1 设计名称 基于51单片机的十字路口交通灯系统(C语言.Proteus开发环境) 2 设计要求 1. 基于51系列单片机设计一个十字路口交通灯控制系统,用于模拟道路十字路口交通灯实际运行的场景. 2 ...
最新文章
- android-async-http使用例子
- python怎么安装jieba库-python环境jieba分词的安装
- mysql的安装、启动和基础配置 —— mac版本
- CSDN创作的markdown语法效果示意图
- linux看硬件配置命令,Linux查看硬件配置命令
- WinForm多线程+委托防止界面假死
- Q140:PBRT-V3,各种渲染算法(Integrator,积分器)汇总
- 秀米svg点击显示另一张图_SVG的雷,你踩过了没?
- Android颜色透明度(不透明度)计算
- 记录使用Kettle导入excel数据心得
- 如何检测文档里含有非英字符_知网检测是算字数还是字符
- cygwin安装gcc/g++
- JVM:Java内存区域和Java内存模型
- Linux系统介绍:内核、shell及软件包管理
- 二战计算机技术,2020二本二战西南交大电子信息(计算机技术)上岸
- python人工智能大全_(自兴人工智能)Python 列表(List)的灵活使用
- 测试开发是什么?为什么现在那么多公司都要招聘测试开发?
- DRM框架(vkms)分析(9)----drm驱动创建fbdevice分析(以rockchip_drm_drv为例)
- SpringBoot+Shiro+JWT+Mybatis-Plus搭建admin-shiro管理系统
- 计算机音乐必须会各种乐器吗,制作电脑音乐需要注意的几点