单片机红绿灯的汇编语言程序设计[文].pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
单片机红绿灯的汇编语言程序设计 单片机红绿灯的汇编语言程序设计是基于单片机的红绿灯控制系统设计,使用汇编语言实现了红绿灯的控制逻辑。本设计包括了红绿灯的控制程序、计时器中断处理程序、外部中断处理程序等几个部分。 1. 主程序入口地址 ORG 0000H ; 主程序的入口地址 LJMP MAIN ; 跳转到主程序的开始处 在这里,程序的入口地址被设置为0000H,并跳转到MAIN标签处。 2. 中断处理程序 ORG 0003H ; 外部中断 0 的中断程序入口地址 ORG 000BH ; 定时器 0 的中断程序入口地址 LJMP T0_INT ; 跳转到中断服务程序处 这里定义了两个中断处理程序:外部中断 0 和定时器 0 的中断处理程序。它们的入口地址分别是0003H和000BH,并跳转到T0_INT标签处。 3. 主程序 MAIN: 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 ; 选择边沿触发方式 在这里,主程序设置了栈指针、开启了中断、设置了计时器 T1 和 T0、启动了 T1 计时器等。 4. 红绿灯控制程序 AGAIN: JB P3.1,N0 ; 判断是否要设定东西方向红绿灯时间的初值,若P3.1 为 1 则跳转 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 AGAIN 这里是红绿灯控制程序的主要逻辑。它根据P3.1和P1.7的值来判断红绿灯的状态,并存储红绿灯的初始时间。 5. 黄灯闪烁程序 N1: SETB P3.0 MOV R3,#05H MOV DPTR,#0000H ; 置 8255A 口,东西,南北方向黄灯亮 MOV A,#0D4H MOVX @DPTR,A N11: MOV R4,#00H N12: CJNE R4,#7DH,$ ; 黄灯持续亮0.5 秒 N13: MOV DPTR,#0000H ; 置 8255A 口,南北方向黄灯灭 MOV A,#0DDH MOVX @DPTR,A N14: MOV R4,#00H CJNE R4,#7DH,$ ; 黄灯持续灭0.5 秒 CJNE R3,#00H,N1 ; 闪烁时间达5 秒则退出 这里是黄灯闪烁程序的主要逻辑。它设置了黄灯的闪烁时间和闪烁方式。 6. 报警程序 B0: MOV R2,#03H ; 报警持续时间3 秒 B01: MOV A,R3 JZ N1 ; 若倒计时完毕,不再报警 CLR P3.0 ; 报警 CJNE R2,#00H,B01 ; 判断 3 秒是否结束 SJMP N02 这里是报警程序的主要逻辑。它设置了报警的持续时间和报警方式。 本设计使用汇编语言实现了红绿灯的控制逻辑,包括红绿灯的控制程序、计时器中断处理程序、外部中断处理程序等几个部分。
- 粉丝: 2
- 资源: 12万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助