MCS51单片机初学者,关于汇编语言中断程序设计

MCS51单片机初学者,关于汇编语言中断程序设计,第1张

不知道你要显示几位,我写了个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

结构很规矩,这个程序

首先单片机上电复位,运行死循环前面的程序(,你这里就是init_timer(); // 应该叫初始化定时器,才合适,让定时器按照你需要的定时长度工作,或叫产生中断 )

接下来单片机主程序就是一直在死循环了。我们的主要任务一般在这里处理。

中断,就是在处理一些特殊任务,比如按键,或定时处理的程序,或外部一个不知道什么时间发生的任务,或通信任务等等。你在主循环的时候,无论在什么时候,中断请求来了(可以理解为需要处理比较紧急任务,优先处理的任务),就会暂停主循环,进入对应中断服务程序。运行完,在回主循环的暂停地方,继续执行死循环的任务。

定时器中断,就是每过一定时间,运行一下中断服务程序。常用来计时和产生脉冲信号。

初始化定时器,就是给定时器的寄存器,设置工作模式,时钟源,溢出的计数值。设置好了,定时器就能根据每个时钟源的频率,进行计数,直至溢出,然后产生一个中断请求。如果不饿能自动加载计数初值的定时器,在中断处理函数(服务函数)必须手动加载初值。

中断事件指的是一个事件,就是中断产生这个事件。而中断程序是指在中断发生后执行的动作、程序。只有在中断事件产生后中断程序才会执行。

中断事件跟中断程序的区别是中断事件是触发条件,中断程序是条件满足了或者触发了中断事件后执行的一段程序。

举个例子来说   当鸡蛋掉在地上打碎了要做清洁;鸡蛋掉在地上打碎了 是中断事件   做清洁则是中断程序。

它们都是 *** 作系统概念。中断调用是DOS *** 作系统中,系统调用的特殊形式而已。

系统调用,都是指 *** 作系统的开发者,提供了许多系统的程序库,实现输入/输出等基本的功能,我们编写程序的时候就调用这些程序库,不必要自己到显示器上绘图和读取键盘端口。

在UNIX *** 作系统下,系统调用主要是C语言格式调用的一些函数库。比如printf和scanf函数,我们写程序的时候直接可以用,编译系统把它转变为对 *** 作系统函数库调用的代码,目标文件可以独立运行。

在WINDOWS系统,系统调用主要是以一系列的DLL、EXE文件方式给出,比如USER32DLL、NTDLLDLL等,编写程序的时候可以直接调用里面的GETDC等函数库。

在DOS系统下, *** 作系统不以函数库形式提供系统调用,而是把整个 *** 作系统的所有代码都LOAD到内存里面,把相关系统调用功能安装到中断接口里面,我们写的程序需要调用的时候,调用相应的中断。比如打开文件等 *** 作,就调用INT 21。

其中中断处理就是执行中断服务程序,这是中断系统的核心。不同计算机系统的中断处理过程各具特色,但对多数计算机而言,其中中断服务程序。

1、中断处理过程包括中断请求、中断判优、中断响应、中断处理、中断返回

2、硬件实现:中断请求、中断判优、中断响应、中断返回

3、软件实现:中断请求、中断判优、中断处理

4、软件、硬件都实现:中断请求、中断判优

扩展资料:

当中断处理程序开始执行时,首先去唤醒处于阻塞状态的驱动(程序)进程。如果是采用了信号量机制,则可通过执行 signal *** 作,将处于阻塞状态的驱动(程序)进程唤醒;在采用信号机制时,将发送一信号给阻塞进程。

对于不同的设备,有不同的中断处理程序。该程序首先从设备控制器中读出设备状态,以判别本次中断是正常完成中断,还是异常结束中断。若是前者,中断程序便进行结束处理;若还有命令,可再向控制器发送新的命令,进行新一轮的数据传送。若是异常结束中断,则根据发生异常的原因做相应的处理。

参考资料来源:百度百科-执行中断

陷阱通常由处理机正在执行的现行指令引起,而中断则与现行指令无关的中断源引起。

陷阱处理程序提供的服务为当前进程所用,而中断处理程序的服务不是为了当前进程的。

CPU执行一条指令后,下一条指令执行开始前响应中断,而一条指令执行中也可以响应陷阱,如错误指令处理。

以上就是关于MCS51单片机初学者,关于汇编语言中断程序设计全部的内容,包括:MCS51单片机初学者,关于汇编语言中断程序设计、单片机中断程序、中断事件和中断程序有什么不同等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存