第一范文网 - 专业文章范例文档资料分享平台

单片机 - 图文

来源:用户分享 时间:2025/5/18 10:35:40 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

3.2.3紧急通道功能的设计:

紧急通道功能使用外部中断子程序来实现,按下紧急按钮,各路口灯全亮,延时5秒,以供急救车通过。急救车通过后,红绿灯恢复为紧急按钮按下之的前状态继续运行。因为在调用中断子程序后,在中断子程序里所使用到的寄存器或者直接地址在中断子程序运行玩之后数据会发生改变,因此需要先将这些数据进行保存,在这个程序里的数据保存我使用了堆栈操作,首先对所有用到的数据进行压栈保存,再将PA口的数据输送到发光管,使个路口灯全亮,再进行5s的延时,中

间用到软件延时,最后对之前所有保存的数据进行出栈。相应的程序代码:

INT_0: PUSH 51H ;保存数据 PUSH 52H PUSH 53H

PUSH 54H PUSH ACC MOV A,R7 PUSH ACC MOV A,R6 PUSH ACC MOV A,R5 PUSH ACC MOV A,R4 PUSH ACC MOV A,R3 PUSH ACC MOV A,R2 PUSH ACC PUSH B

MOV R2,#0C0H ;紧急通道:各路口等全亮,延时5s MOV A,R2

MOV DPTR,#PA_8255 MOVX @DPTR,A MOV R7,#5 LCALL DELAY

POP B MOV DPTR,#PA_8255 MOVX @DPTR,A POP ACC

MOV R2,A

POP ACC

MOV R3,A POP ACC MOV R4,A POP ACC MOV R5,A POP ACC

MOV R6,A POP ACC MOV R7,A POP ACC POP 54H POP 53H POP 52H

POP 51H RETI 相应的流程图:

1

进行压栈,保存之前用到的所有数据将紧急状态送入PA口调用DELAY子程序进行出栈,输出之前保存的数据,进入到中断之前的程序 3.2.4LED显示器模块设计

该LED显示器采用动态显示,因为有东西、南北两个交通通道,而东西和南北方向都有两位LED显示器,因此总体思路为先东西方向的显示,取要显示的数字R7除以B,B为10,将十位存入51H,个位存入52H,8255APC口写入十位的位控制信号,PB口写入十位字符控制信号,调用延时2ms,8255APC口写入十位的位控制信号,PB口写入个位字符控制信号,调用延时2ms,南北方向亦是如此,这样一个循环下来每位LED显示器都延时2ms,如此循环125次,就能延时1s。最后调用该部分程序,再循环R7的次数,就能实现LED显示。相应的程序代码:

DISP: MOV A,R7 MOV R3,#125

DONG0: MOV B,#10 DIV AB MOV 51H,A MOV 52H,B

DONG1: MOV DPTR,#PC_8255 ;东西方向十位LED的显示 MOV A,#07FH MOVX @DPTR,A MOV A,51H MOV DPTR,#TAB MOVC A,@A+DPTR MOV DPTR,#PB_8255 MOVX @DPTR,A

LCALL DELAY2

DONG2: MOV DPTR,#PC_8255 ;东西方向个位LED的显示 MOV A,#0BFH

MOVX @DPTR,A MOV A,52H MOV DPTR,#TAB MOVC A,@A+DPTR MOV DPTR,#PB_8255 MOVX @DPTR,A LCALL DELAY2

DIS: MOV A,R7

13

DIS1: MOV B,#10 DIV AB MOV 53H,A MOV 54H,B

DIS2: MOV DPTR,#PC_825 ;南北方向十位LED的显示 MOV A,#0F7H MOVX @DPTR,A MOV A,53H MOV DPTR,#TAB MOVC A,@A+DPTR MOV DPTR,#PB_8255 MOVX @DPTR,A

LCALL DELAY2

DIS3: MOV DPTR,#PC_8255 ;南北方向个位LED的显示 MOV A,#0FBH MOVX @DPTR,A

MOV A,54H MOV DPTR,#TAB MOVC A,@A+DPTR MOV DPTR,#PB_8255 MOVX @DPTR,A

LCALL DELAY2 DJNZ R3,DONG1 RET

DELAY: MOV A,R7

LCALL DISP

LCALL DELAY DJNZ R7,DELAY RET 相应的流程图:

东西方向十位的数字显示调用延时子程序东西方向个位的数字显示调用延时子程序南北方向十位的数字显示调用延时子程序N南北方向个位的数字显示调用延时子程序R3-1==0YRET

14

3.2.5延时子程序设计:

该部分采用软件延时,分别对R4和R6设置初值以控制循环次数, 相应的程序代码: DELAY2:MOV R4,#5 Y4:MOV R6,#200 Y3:DJNZ R6,Y3

DJNZ R4,Y4 RET 相应的流程图:

将5赋给R4将200赋给R6R6-1=0R4-1=0RET3.2.6总程序设计 PA_8255 EQU 0FFFCH PB_8255 EQU 0FFFDH PC_8255 EQU 0FFFEH

CON_8255 EQU 0FFFFH ORG 0000H AJMP START ORG 0003H AJMP INT_0 ORG 0030H START: MOV SP,#30H

SETB IT0 ;外部中断为下降沿触发 SETB EA SETB EX0

MOV DPTR,#CON_8255 MOV A,#80H ;写方式控制字 MOVX @DPTR,A

LOOP0: MOV DPTR, #PA_8255 ;状态一:东西红灯,南北绿灯,延时20s MOV R2, #0F6H MOV A,R2

MOVX @DPTR,A MOV R7,#20 LCALL DELAY

LOOP1: MOV DPTR, #PA_8255 ;状态二:东西红灯,南北黄灯,延时5s MOV R2, #0F5H

15

搜索更多关于: 单片机 - 图文 的文档
单片机 - 图文.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c44i1u1lfi55uqa87qs0s_4.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top