您现在的位置: 主页 > MCU > 单片机技术应用 > 51 汇编语言编程:外部中断实验 -
本文所属标签:
为本文创立个标签吧:

51 汇编语言编程:外部中断实验 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-06 

[导读]
;主程序显示八位流水灯;;外部中断0:左右四位闪烁三次;;外部中断1:各位间隔闪烁三次。;仿真电路如下:;图片链接:http://xiangce.baidu.com/picture/detail/f07000d4ddcb74074c5fd14ae100a41f08316f

;主程序显示八位流水灯;

本文引用地址: http://www.21ic.com/app/mcu/201806/764365.htm

;外部中断0:左右四位闪烁三次;

;外部中断1:各位间隔闪烁三次。


;仿真电路如下:

;图片链接:http://xiangce.baidu.com/picture/detail/f07000d4ddcb74074c5fd14ae100a41f08316fdd


;程序如下:


ORG 0000H

LJMP START

ORG 0003H

LJMP X0_INT

ORG 0013H

LJMP X1_INT

ORG 0030H

START:

SETB IT0

SETB IT1

SETB EX0

SETB EX1

SETB EA

MOV SP, #50H

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

MOV A, #0FEH

LOOP:

MOV P1, A

CALL DELAY

RL A

SJMP LOOP

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

X0_INT:

PUSH ACC

PUSH PSW

SETB RS0

MOV A, #0F0H ;高低四位分别发光

MOV R2, #6

X0_1:

MOV P1, A

CALL DELAY

CPL A

DJNZ R2, X0_1

POP PSW

POP ACC

RETI

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

X1_INT:

PUSH ACC

PUSH PSW

SETB RS1

MOV A, #0AAH ;八位LED间隔发光

MOV R2, #6

X1_1:

MOV P1, A

CALL DELAY

CPL A

DJNZ R2, X1_1

POP PSW

POP ACC

RETI

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

DELAY:

MOV R5, #3

DJNZ R7, $

DJNZ R6, $ - 2

DJNZ R5, $ - 4

RET

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

END



;编写本程序的目的,是为了解答一个题目。


;这个题目给出了 C 程序,希望给出同样功能的汇编程序。


;C 程序原文如下:


#include51.h>

#include

void IRS0_init();

void IRS1_init();

void delay_ms(unsigned int n);

void main()

{

unsigned char temp = 0xfe;

IRS0_init();

IRS1_init();

while(1) {

P1 = temp; delay_ms(300);

temp=_crol_(temp, 1);

}

}

void IRS0_init()

{

IT0 = 1;

EX0 = 1;

EA = 1;

}

void IRS1_init()

{

IT1 = 1;

EX1 = 1;

}

void IRS0()interrupt 0

{

unsigned char temp = 0xf0;

unsigned char num;

for(num = 6; num > 0; num--) {

P1 = temp; delay_ms(300);

temp = ~temp;

}

}

void IRS1()interrupt 2

{

unsigned char temp = 0xaa;

unsigned char num;

for(num = 6; num > 0; num--) {

P1 = temp; delay_ms(300);

temp = ~temp;

}

}

void delay_ms(unsigned int n)

{

unsigned int x, y;

for(x = n; x > 0; x--) for(y = 123; y > 0; y--);

}


;这个 C 程序,其实,还有不足,如中断嵌套、正确恢复中断前的显示等等。


;为了尊重原作,做而论道在写汇编程序时,并没有对原程序功能进行修改。


;现场的保护、恢复可以参考:




              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > 51 汇编语言编程:外部中断实验 -
 

"51 汇编语言编程:外部中断实验 -"的相关文章

网站地图

围观()