基于51汇编语言的外部中断.doc

上传人:白大夫 文档编号:3409011 上传时间:2019-08-22 格式:DOC 页数:5 大小:23KB
返回 下载 相关 举报
基于51汇编语言的外部中断.doc_第1页
第1页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《基于51汇编语言的外部中断.doc》由会员分享,可在线阅读,更多相关《基于51汇编语言的外部中断.doc(5页珍藏版)》请在三一文库上搜索。

1、基于51汇编语言的外部中断主程序显示八位流水灯;外部中断0:左右四位闪烁三次;外部中断1:各位间隔闪烁三次。仿真电路如下:;程序如下:ORG 0000HLJMP STARTORG 0003HLJMP X0_INTORG 0013HLJMP X1_INTORG 0030HSTART:SETB IT0SETB IT1SETB EX0SETB EX1SETB EAMOV SP, #50H;-MOV A, #0FEHLOOP:MOV P1, ACALL DELAYRL ASJMP LOOP;-X0_INT:PUSH ACCPUSH PSWSETB RS0MOV A, #0F0H ;高低四位分别发光MO

2、V R2, #6X0_1:MOV P1, ACALL DELAYCPL ADJNZ R2, X0_1POP PSWPOP ACCRETI;-X1_INT:PUSH ACCPUSH PSWSETB RS1MOV A, #0AAH ;八位LED间隔发光MOV R2, #6X1_1:MOV P1, ACALL DELAYCPL ADJNZ R2, X1_1POP PSWPOP ACCRETI;-DELAY:MOV R5, #3DJNZ R7, $DJNZ R6, $ - 2DJNZ R5, $ - 4RET;-END;编写本程序的目的,是为了解答一个题目。;这个题目给出了 C 程序,希望给出同样功能

3、的汇编程序。;C 程序原文如下:#includeregx51.h#includeintrins.hvoid 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;

4、void IRS0()interrupt 0unsigned char temp = 0xf0;unsigned char num;for(num = 6; num 0; num-) P1 = temp; delay_ms(300);temp = temp;void IRS1()interrupt 2unsigned 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 程序,其实,还有不足,如中断嵌套、正确恢复中断前的显示等等。;为了尊重原作,做而论道在写汇编程序时,并没有对原程序功能进行修改。;现场的保护、恢复可以参考:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1