当前位置:首页 > 芯闻号 > 充电吧
[导读];;有个交通灯的题目;问题主要是中断时,强制变换为红灯后,退出前应该怎样恢复原来的灯。;;一般来说,保护现场、恢复现场,都是用 PUSH、POP 来完成。;;这种方法,仅仅适用于片内单元的保护,对于接

;

;有个交通灯的题目


;问题主要是中断时,强制变换为红灯后,退出前应该怎样恢复原来的灯。

;

;一般来说,保护现场、恢复现场,都是用 PUSH、POP 来完成。

;

;这种方法,仅仅适用于片内单元的保护,对于接口,以及显示器的内容,就不适用了。

;

;外设的状态如何恢复呢?

;

;做而论道编写了一个小程序,来说明恢复的方法。

;

;仿真运行如下图:

;

;

;

;全部程序如下。

;

;交通灯

;-------------------------------------------

    ORG   0000H

    JMP   MAIN

    ORG   0003H         ;外部中断0的入口地址

    JMP   X0_INT

    ORG   000BH         ;T0中断的入口地址

    JMP   T0_INT

;***************************************

MAIN:

    MOV   TMOD, #01H

    MOV   TH0, #3CH

    MOV   TL0, #0B0H

    MOV   R1, #20       ;定时1s

    SETB  TR0

    SETB  ET0

    SETB  PT0

    SETB  EX0

    SETB  IT0

    SETB  EA

    MOV   SP, #60H

M_LOOP:

;***************************************

N_B:

    MOV   30H, #11H     ;南北

    MOV   P1, 30H

    MOV   R5, #30       ;

    CALL  DISPLAY

    MOV   R2, #27

LOOP1:

    CALL  WAIT_1S

    DJNZ  R2, LOOP1     ;判断是否过了27s

;--------------------------

    MOV   30H, #21H

    MOV   P1, 30H

    MOV   R2, #3

LOOP11:

    CALL  WAIT_1S

    DJNZ  R2, LOOP11    ;判断是否过了3秒

;***************************************

D_X:

    MOV   30H, #0AH     ;东西

    MOV   P1, 30H

    MOV   R5, #30

    CALL  DISPLAY

    MOV   R2, #27

LOOP2:

    CALL  WAIT_1S

    DJNZ  R2, LOOP2     ;判断是否过了27s

;--------------------------

    MOV   30H, #0CH

    MOV   P1, 30H

    MOV   R2, #3

LOOP22:

    CALL  WAIT_1S

    DJNZ  R2, LOOP22    ;判断是否过了3秒

    JMP   M_LOOP

;***************************************

WAIT_1S:                ;等待新秒出现

    JNB   20H.0, $

    CLR   20H.0

    DEC   R5

    CALL  DISPLAY

    RET

;-----------------------------

DISPLAY:

    MOV   A, R5

    MOV   B, #10

    DIV   AB

    MOV   DPTR, #TAB1

    MOVC  A, @A + DPTR

CPL  A

    MOV   P0, A

    MOV   A, B

    MOV   DPTR, #TAB1

    MOVC  A, @A + DPTR

CPL  A

    MOV   P2, A

    RET

TAB1:

    DB    3FH, 06H, 5BH, 4FH, 66H, 6DH, 7DH, 07H, 7FH, 6FH   

;***************************************

X0_INT:

    MOV   P1, #09H      ;全部红灯

    PUSH  ACC

    PUSH  B

    PUSH  PSW

    SETB  RS0           ;换工作区

    MOV   R5, #10       ;倒计时显示

    CALL  DISPLAY

    MOV   R1, #20       ;定时1s

;----------------

    MOV   R2, #10       ;倒计时

LOOP3:

    CALL  WAIT_1S

    DJNZ  R2, LOOP3     ;判断是否到了10s

;----------------

    POP   PSW           ;恢复原区

    CALL  DISPLAY       ;显示原值

    MOV   P1, 30H       ;显示原灯

    POP   B

    POP   ACC

    RETI

;-----------------------------

T0_INT:                 ;T0中断,高优先级

    MOV   TL0, #0B0H

    MOV   TH0, #3CH     ;50ms中断一次

    DJNZ  R1, EXIT_T0

    MOV   R1, #20       ;定时1s

    SETB  20H.0         ;每到一秒就置一

EXIT_T0:

    RETI

;***************************************


END

;-------------------------------------------

;

;本程序对中断现场的保护、恢复效果如何?

;

;感兴趣的网友,可以试试看。

;


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭