用单片机汇编语言编写中断程序

用单片机汇编语言编写中断程序,第1张

ORG 0000H

LJMP START

ORG 000BH

LJMP Timer0Interrupt

START:

MOV SP,#60H

LCALL InitTimer0

LOOP:

;add your code here!

LJMP LOOP

InitTimer0:

MOV TMOD,#01H

MOV TH0,#0FCH

MOV TL0,#18H

SETB EA

SETB ET0

SETB TR0

RET

Timer0Interrupt:

PUSH DPH

PUSH DPL

PUSH ACC

MOV TH0,#0FCH

MOV TL0,#18H

CPL P10

POP ACC

POP DPL

POP DPH

RETI

END

这是定时器0的一个1ms中断一次的程序 在P10端口输出1KHz方波

主要是出于效率方面的考量。中断处理程序需要在尽量短的时间内完成所需的必要处理,尽量减少对线程/程序流造成的影响,因此大部分情况下用汇编直接编写,跳过了通用编译过程中冗余的适配部分。

汇编语言

汇编指令

集、

伪指令

集和使用它们

规则

的统称,使用具有一定

含义

符号

为助记符。由于汇编语言是完全依赖于硬件的,因此通过适当的

汇编程序

设计,能够充分发挥出硬件的潜力,产生高效率的运行

代码

不光是中断处理程序,有许多软件系统的

内核

(例如

*** 作系统内核

)都是用汇编语言编写的。

第一步把0号中断向量设置成0000:0200h(0号中断发生时CS为0000 IP为0200h)

第三步把int0到int0end的代码复制到00200h中去了

注意到int0处的第一个指令是jmp short int0start

这条语句的汇编代码为0ebh(jmp short *** 作码) 02h(偏移量)

所以紧接着的db "my name is xiongbingxin" 的首地址安排在了0000(CS就是0000):0202h了

ORG 0000H

LJMP MAIN 主程序开始

ORG 000BH

AJMP PIT0 t0中断入口

ORG 001BH

AJMP PIT1 t1中断入口

MAIN: MOV SP, #60H 设置堆栈

MOV TMOD, #03H 定时器方式 T0T1都是方式1

MOV TL0, #9CH T0初始值

MOV TH0, #38H

MOV TCOM, #50H ;TR0=1 TR1=1 启动定时器

MOV IE, #8AH 开启定时器中断

HERE: AJMP HERE

PIT0: MOV TL0, #9CH T0 时间到 重新送初值

CPL P10 取反P10 生成方波

RETI

PIT1: MOV TH0, #38H T1时间到 重新送初值

CPL P11 取反p11 生成方波

RETI

END

不知道你要显示几位,我写了个1位显示的。前提是共阴数码LED且一端已接地,由P1口控制。

ORG 0000H

LJMP START

ORG 0003H

LJMP INTT0

ORG 0600H

START: SETB EA

SETB EX0 ; 打开外部中断0

CLR IT0 ; 令中断0为电平触发

MOV @R0,#00H

DISPLAY: MOV DPTR,#TAB;给字形表的初地址

MOV A,R0; 将要显示的数给A

MOVC A,@A+DPTR ;在字形表中取数放到A

MOV P1,A; 假设是P1口输出要显示的数据把A放到P1中

SJMP DISPLAY ;循环显示等待中断

INTT0:INC @R0; ;中断中有按键着加1

RETI

TAB:DB 3FH,06H,5BH,4FH,66H ;字形表

DB 6DH,7DH,07H,7FH,6FH

DB 77H,7CH,39H,5EH,79H

END

嘿嘿。

这是定时器T0中断,那么就是定时器T0开始不断加1,到TH0TL0为FFFF时,中断产生。

如果是外部中断,比如INT0脚 接一按键另一端搂地 ,按键 按下时,外中断产生。

以上就是关于用单片机汇编语言编写中断程序全部的内容,包括:用单片机汇编语言编写中断程序、为什么现代计算机系统中还有中断处理程序是用汇编语言编写、汇编语言中中断程序的中一个问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9356168.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存