173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

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

htxw 2023-03-15 资讯中心 62 ℃

单片机中断方式编程(汇编语言)

楼上的注意了,人家单片机的晶振频率是6MHz的,机器周期相应的是2us,

编程时间最好利用定时器中断以节约资源。。。。

ORG 0000H

LJMP START

ORG 000BH

LJMP TIMER0

START:

MOV TMOD,#00H

MOV TH0,#0FEH

MOV TL0,#0CH

SETB ET0

SETB EA

SETB TR0

MAIN:

LJMP MAIN

TIMER0:

MOV TH0,#0FEH

MOV TL0,#0CH

CPL P1.0

RETI

END

如何用汇编语言编写单片机试验中的定时中断实验?

第一、设置定时器工作模式;第二、给TLX、THX赋初值;第三、开中断;第四、启动定时器。当然你要编好中断服务程序了。下面给一个简单的示范例程:程序运行后将在P1.0上产生1K的方波信号输出。

ORG 0000H

LJMP START

ORG 000BH

LJMP TM0

ORG 0100H

START:

CLR EA

MOV SP,#60H

MOV TMOD,#01H

MOV TCON,#01H

MOV TH0,#0FEH

MOV TL0,#0BH

SETB TR0

SETB EA

SJMP $

TM0:

CLR TR0

MOV TH0,#0FEH

MOV TL0,#0BH

SETB TR0

CPL P1.0

RETI

END

如图 我想用单片机汇编语言编写中断程序,要求是 开始等不亮,当按钮按下,LED等亮一秒灭一秒,这样循环。

思路:

1,程序开始准备

2,标志位为0?是则等待中断,为1则执行下一步

3,亮灯,延时一秒,灭灯,延时一秒

4,跳到第二步步

中断程序:

1,标志位取反

2,reti

还有就是你按键接错了,你那样是查询方法,不是中断。

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

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 P1.0

POP ACC

POP DPL

POP DPH

RETI

END

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

汇编语言单片机中断

ORG 00H ;开始地址

JMP MAIN ;跳转到主程序

ORG 03H ;外部中断0地址

JMP EXT1 ;跳转

ORG 13H ;外部中断1地址

JMP EXT2 ;跳转

MAIN:

MOV IE, #85H ;使能中断 0,1

SETB TCON.2 ;边沿触发

SETB TCON.0 ;边沿触发

SJMP $ ;--没有这一句,程序,自己就去执行中断函数了

EXT1:

MOV P2, #0 ;清0,点亮发光二极管

RETI

EXT2:

MOV P2, #0FFH ;置1,关闭

RETI

END

利用汇编语言写单片机中断程序的介绍就聊到这里吧,感谢您花时间阅读,谢谢。

本文标签:利用汇编语言写单片机中断程序

<