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

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

;外部中断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 程序,其实,还有不足,如中断嵌套、正确恢复中断前的显示等等。


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


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


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

MCS-51单片机的汇编语言程序由若干条汇编语言指令和伪指令构成。指令存放在程序存储器中,被单片机读取并执行,且执行结果将影响单片机自身的状态。

关键字: 汇编语言 伪指令

目前,结构化是程序设计的基本要求,可以使程序结构清晰、易于读写且方便调试,也能够提高程序设计的效率。在结构化程序设计中,程序的基本结构有三种,即顺序结构、分支结构及循环结构。而子程序(也被称为函数或过程)是一种提高程序模...

关键字: 汇编语言 顺序程序设计

在单片机系统设计中,程序设计是重要的一环,它的质量直接影响到整个系统的功能。用汇编语言进行程序设计的过程和用高级语言设计程序有相似之处,其设计过程大致可以分为以下几个步骤:

关键字: 汇编语言 程序设计 单片机

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在...

关键字: 汇编语言 指令 单片机

C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,1978年后,C语言已先后被移植到大、中、小及微型机上,它可以作为工作系统设计语言...

关键字: C语言 汇编语言

在汇编语言程序设计中,经常使用各种符号代替地址、变量和常量等,以增加程序的可读性。尽管符号的命名由编程者决定,但并不是任意的.

关键字: ARM 汇编语言 符号

硬件设计: GR8CPU是在面包板上构建功能齐全的计算机。

关键字: CPU Unix 汇编语言

学习编程其实就是学高级语言,即那些为人类设计的计算机语言。 但是,计算机不理解高级语言,必须通过编译器转成二进制代码,才能运行。

关键字: 汇编语言

看到这篇文章的朋友,想必大家对pic单片机均具备一定兴趣,或对pic单片机具备一定使用需求。前文中,小编曾对pic单片机汇编语言进行过部分讲解。本文中,将对pic单片机的清零等指令加以讲解,以帮助大家更好掌握pic单片机...

关键字: pic单片机 指令 汇编语言

pic单片机为最常用单片机之一,许多程序均基于pic单片机进行开发。因此,熟练pic单片机编程尤为重要。为保证大家能准确、熟练掌握pic单片机的使用,本文特带来pic单片机的各种汇编语言指令的讲解上篇,下篇将在后期文章中...

关键字: pic单片机 单片机 汇编语言
关闭
关闭