下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、;交通灯控制器实例;功能:使用6只LED模拟交通灯控制器 ;SOUTH_RED EQU P1.0 SOUTH_YELLOW EQU P1.1 SOUTH_GREEN EQU P1.2 EAST_RED EQU P1.3 EAST_YELLOW EQU P1.4 EAST_GREEN EQU P1.5 SECOND_FLAG BIT 00H TIME_COUNT0 DATA 30H TIME_COUNT1 DATA 31H STATUS_FLAG DATA 32H SECOND_COUNT DATA 33HORG 0000H;伪指令,指定程序从0000H开始存放LJMP MAIN;跳转指令,程序
2、跳转到MAIN处ORG 000BH;伪指令,指定程序从T0入口地址000BH开始存放LJMP T0_INT;跳转指令,程序跳转到T0_INT处ORG 0100HMAIN:MOV SP,#60H;给堆栈指针赋初值LCALL INIT;调用状态初始化子程序LCALL T0_INIT ;调用定时器中断初始化子程序LOOP:JNB SECOND_FLAGLOOP ;根据 SECOND_FLAG 值判断 0.5 秒是否到LCALL STATUS_CHANGE ;每0.5秒调用交通灯状态转换子程序CLR SECOND_FLAG ;清零 SECOND_FLAGSJMP LOOP;跳转,程序继续STATUS_
3、CHANGE:; 交通灯状态转换子程序;MOV A,STATUS_FLAG ;根据 STATUS_FLAG 值进行散转ADD A,STATUS_FLAGMOV DPTR,#STATUS_PROC_TABLEJMP A+DPTRSTATUS_PROC_TABLE:AJMP STATUS1AJMP STATUS2AJMP STATUS3AJMP STATUS4AJMP STATUS5AJMP STATUS6STATUS1:;散转子程序1;状态1:南北绿灯,东西红灯,持续20秒;然后转到状态2;DJNZ SECOND_COUNT,STATUS1_EXITMOV SECOND_COUNT,#6 ;20
4、秒定时到,转换到状态2MOV STATUS_FLAQ#01HSTATUS1_EXIT:RETSTATUS2:;散转子程序2;状态2:南北绿灯闪,东西红灯,持续3秒;然后转到状态3;DJNZ SECOND_COUNT,STATUS2_EXITMOV SECOND_COUNT,#4 ;3秒定时到,转换到状态3MOV STATUS_FLAQ#02HSETB SOUTH_RED ;南北红灯灭CLR SOUTH_YELLOW ;南北黄灯亮SETB SOUTH_GREEN ;南北绿灯灭CLR EAST_RED ;东西红灯亮SETB EAST_YELLOW ;东西黄灯灭SETB EAST_GREEN ;东西
5、绿灯灭RETSTATUS2_EXIT:CPL SOUTH_GREEN ;南北绿灯闪RETSTATUS3:;散转子程序3;状态3:南北黄灯,东西红灯,持续2秒;然后转到状态4;DJNZ SECOND_COUNT,STATUS3_EXITMOV SECOND_COUNT,#40 ;2秒定时到,转换到状态4MOV STATUS_FLAG#03HCLR SOUTH_RED ;南北红灯亮SETB SOUTH_YELLOW ;南北黄灯灭SETB SOUTH_GREEN ;南北绿灯灭SETB EAST_RED ;东西红灯灭SETB EAST_YELLOW ;东西黄灯灭CLR EAST_GREEN ;东西绿灯
6、亮STATUS3_EXIT:RETSTATUS4:; 散转子程序4;状态4:南北红灯,东西绿灯,持续20秒;然后转到状态5;DJNZ SECOND_COUNT,STATUS4_EXITMOV SECOND_COUNT,#6 ;20秒定时到,转换到状态5MOV STATUS_FLAG#04HSTATUS4_EXIT:RETSTATUS5:;散转子程序5;状态5:南北红灯,东西绿灯闪,持续3秒;然后转到状态6;DJNZ SECOND_COUNT,STATUS5_EXITMOV SECOND_COUNT,#4 ;3秒定时到,转换到状态6MOV STATUS_FLAG#05HCLR SOUTH_RED
7、 ;南北红灯亮SETB SOUTH_YELLOW ;南北黄灯灭SETB SOUTH_GREEN ;南北绿灯灭SETB EAST_RED ;东西红灯灭CLR EAST_YELLOW ;东西黄灯亮SETB EAST_GREEN ;东西绿灯灭RETSTATUS5_EXIT:CPL EAST_GREEN ;东西绿灯闪RETSTATUS6:散转子程序6;状态6:南北红灯,东西黄灯,持续2秒;然后转到状态1;DJNZ SECOND_COUNT,STATUS6_EXITMOV SECOND_COUNT,#40 ;2秒定时到,转换到状态1MOV STATUS_FLAQ#00HSETB SOUTH_RED ;南
8、北红灯灭SETB SOUTH_YELLOW ;南北黄灯灭CLR SOUTH_GREEN ;南北绿灯亮CLR EAST_RED ;东西红灯亮SETB EAST_YELLOW ;东西黄灯灭SETB EAST_GREEN ;东西绿灯灭STATUS6_EXIT:RETINIT:;状态初始化子程序;SETB SOUTH_RED ;南北红灯灭SETB SOUTH_YELLOW ;南北黄灯灭CLR SOUTH_GREEN ;南北绿灯亮CLR EAST_RED ;东西红灯亮SETB EAST_YELLOW ;东西黄灯灭SETB EAST_GREEN ;东西绿灯灭MOV TIME_COUNT0,#250 ;变量
9、 TIME_COUNT0 赋初值 250MOV TIME_COUNT1,#8 ;变量 TIME_COUNT1 赋初值 8MOV SECOND_COUNT,#40 变量 SECOND_COUNT 赋初值 40MOV STATUS_FLAQ#00H ;变量 STATUS_FLAG 赋初值 00HCLR SECOND_FLAG ;清零位变量 SECOND_FLAGRETT0_INT:; T0中断服务程序;每 0.5 秒置一 SECOND_FLAG;DJNZ TIME_COUNT0,T0_INT_EXITMOV TIME_COUNT0,#250DJNZ TIME_COUNT1,T0_INT_EXITM
10、OV TIME_COUNT1,#8SETB SECOND_FLAG ;定时 0.5 秒到,置一 SECOND_FLAG T0_INT_EXIT:RETIT0_INIT:; 定时器T0的初始化;MOV TMOD,#00000010B ;定时器T0工作在方式2MOV TL0,#06H;设定定时器T0的初始值MOV TH0,#06H;设定定时器T0的自动重装入值MOV TCON,#00010000B ;定时器 T0 使能SETB EA;中断允许总控制位使能SETB ET0 ;T0中断使能RETEND数码管倒计时的汇编程序:NUM DATA 10HORG 0000HSTART:MOVNUM,#9HMOVR1,#255HMOVR2,#250HLOOP:MOVA,NUMMOVDPTR,#TABLEMOVCA,A+DPTRMOVP1,ALCALLDELAYDJNZNUM,LOOP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人职业规划图解指南
- 医生未来三年职业前景
- 公考考点消防安全工作手册
- 安全生产规章建立讲解
- 供电安全集中管理讲解
- 养老机构安全标语讲解
- 康复科健康参考模板
- AI在信息工程中的应用
- 焊接核心公式技术参考手册
- AI在卫生信息管理中的应用
- 计算机操作系统知到智慧树章节测试课后答案2024年秋青岛大学
- DLT 593-2016 高压开关设备和控制设备
- 防抢、防盗、防骗培训知识
- JBT 9214-2010 无损检测 A型脉冲反射式超声检测系统工作性能测试方法
- 苏教版四年级数学下册第七单元《三角形平行四边形和梯形》测试卷(含答案)
- 健康生活预防癌症智慧树知到期末考试答案2024年
- 《车险基础知识培训》
- 《外科实习作》课件
- 通用电子嘉宾礼薄
- 珠宝回购协议
- 2023年山东财经大学燕山学院教师招聘考试笔试题库及答案
评论
0/150
提交评论