中断服务子程序怎么写(使用stc12c5a60s2双串口单片机时串口2的中断服务子程序怎么写呢)

1.使用stc12c5a60s2双串口单片机时 串口2的中断服务子程序怎么写呢

摘录一段我写的程序供参考:;------------------相关寄存器定义------------------------AUXR EQU 8EH ;辅助寄存器AUXR1 EQU 0A2H ;辅助寄存器1CLK_DIV EQU 97H ;时钟分频器S2CON EQU 9AH ;串口2控制寄存器S2BUF EQU 9BH ;串口2数据缓冲区BRT EQU 9CH ;波特率寄存器IE2 EQU 0AFH ;中断控制寄存器2;-----------------串行初始化程序-------------------------UART_INIT: ORL PCON,#80H ;使能波特率倍速位SMOD MOV SCON,#50H ;8位数据,可变波特率 MOV S2CON,#50H ;8位数据,可变波特率 MOV BRT,#0FAH ;57600bps@11.0592MHz ORL AUXR,#14H ;独立波特率发生器时钟为Fosc,即1T ORL IE2,#01H ;允许串口2中断 ANL AUXR,#03FH ;定时器12时钟为Fosc,即12T ANL AUXR,#0FEH ;串口1选择定时器1为波特率发生器 MOV TMOD,#21H ;设定定时器1为8位自动重装方式,0为16位定时器 MOV TL1,#0FFH ;57600bps@11.0592MHz MOV TH1,#0FFH ;设定定时器重装值 MOV SERGET,#0 ;接收RS232 Pointer is 0 MOV SERPUT,#0 ;取值RS232 Pointer is 0 MOV RXGET,#0 ;接收RS485 Pointer is 0 MOV RXPUT,#0 ;取值RS485 Pointer is 0 CLR P4.4 ;485处于接收状态 ORL IPH,#10H ; SETB PS ;串口1中断优先级11为最高 CLR ET1 ;禁止定时器1中断 SETB TR1 ;启动定时器1 CLR BUSY RET;-----------------串行通讯2中断服务程序-------------------------SER2INT: PUSH ACC PUSH PSW MOV A,S2CON JNB ACC.0,SER2INT1 ;S2RI ANL S2CON,#NOT S2RI MOV A,S2BUF MOV B,A MOV R0,#RXRAM MOV A,RXPUT ANL A,#0FH ORL A,R0 MOV R0,A MOV A,B MOV @R0,A LCALL SENDRXDAT INC RXPUT SJMP SERINT2 SER2INT1: MOV A,S2CON JNB ACC.1,SERINT2 ;S2TI ANL S2CON,#NOT S2TI CLR BUSYSERINT2: POP PSW POP ACC RETI;-----------------串行通讯1中断服务程序-------------------------SER1INT: PUSH ACC PUSH PSW PUSH DPL PUSH DPH SETB RS0 CLR RS1 JBC RI,SERTIRI1 ;是接收中断,清除此标志,转接收 CLR TI ;是发送中断,清除此标志,中断返回 SJMP SERENDSERTIRI1: MOV A,SBUF ;接收(读入)数据 MOV B,ASERTIRI2: MOV R0,#SERRAM MOV A,SERPUT ANL A,#1FH ORL A,R0 MOV R0,A MOV A,B MOV @R0,A INC SERPUT MOV DLY03,A SETB SERBITSEREND: POP DPH POP DPL POP PSW POP ACC RETI。

2.中断服务子程序应至少包括哪些内容

1、中断请求:中断事件一旦发生或者中断条件一旦构成,中断源提交“申请报告”,与请求CPU暂时放下目前的工作而转为中断源作为专项服务

2、中断屏蔽:虽然中断源提交了“申请报告”,但是,是否得到CPU的响应,还要取决于“申请报告”是否能够通过2道或者3道“关卡”(中断屏蔽)送达CPU(相应的中断屏蔽位等于1,为关卡放行;反之相应的中断屏蔽位等于0,为关卡禁止通行);

3、中断响应:如果一路放行,则CPU响应中断后,将被打断的工作断点记录下来(把断点地址保护到堆栈),挂起“不再受理其他申请报告牌”(清除全局中断标志位GIE=0),跳转到中断服务子程序

4、保护现场:在处理新任务时可能破坏原有的工作现场,所以需要对工作现场和工作环境进行适当保护;

5、调查中断源:检查“申请报告”是由哪个中断源提交的,以便作出有针对性的服务;

6、中断处理:开始对查明的中断源进行有针对性的中断服务;

7、清除标志:在处理完毕相应的任务之后,需要进行撤消登记(清除中断标志),以避免造成重复响应;

8、恢复现场:恢复前面曾经被保护起来的工作现场,以便继续执行被中断的工作;

9、中断返回:将被打断的工作断点找回来(从堆栈中恢复断点地址),并摘下“不再受理其他申请报告牌”(GIE=1),继续执行原先被打断的工作。

3.中断服务子程序和普通子程序有什么区别

区别:

1、程序是否提前安排好:中断服务程序是随机的,而普通子程序是预先安排好的。

2、结束程序不同:中断服务子程序以RETI结束,而一般子程序以RET结束。

3、结束动作不同:中断服务子程序RETI除将断点弹回PC动作外,还要清除对应的中断优先标志位,以便新的中断请求能被响应。一般子程序则无此项操作。

扩展资料:

当中央处理器正在处理内部数据时,外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作,这样的过程称为中断。

实现这一功能的部件称为中断系统,申请CPU中断的请求源称为中断源,单片机的中断系统一般允许多个中断源,当多个中断源同时向CPU请求中断时,就存在一个中断优先权的问题。通常根据中断源的优先级别,优先处理最紧急事件的中断请求源,即最先响应级别最高的中断请求。

中断处理过程:

(1)保护被中断进程现场。为了在中断处理结束后能够使进程准确地返回到中断点,系统必须保存当前处理机程序状态字PSW和程序计数器PC等的值。

(2)分析中断原因,转去执行相应的中断处理程序。在多个中断请求同时发生时,处理优先级最高的中断源发出的中断请求。

(3)恢复被中断进程的现场,CPU继续执行原来被中断的进程。

参考资料来源:百度百科-中断服务程序

4.中断服务子程序与普通子程序有哪些异同之处

一、主体不同

1、中断服务子程序:是一种服务,是通过执行事先编好的某个特定的程序来完成的。

2、普通子程序:是一个大型程序中的某部份代码,由一个或多个语句块组成。

二、功能不同

1、中断服务子程序:外界发生了紧急情况,要求CPU暂停当前的工作转去处理这个紧急事件。处理完毕后,再回到原来被中断的地址,继续原来的工作。

2、普通子程序:负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。

三、特点不同

1、中断服务子程序:为了在中断处理结束后能够使进程准确地返回到中断点,系统必须保存当前处理机程序状态字PSW和程序计数器PC等的值。

2、普通子程序:常被使用在汇编语言层级上。子程序的主体是一个代码区块,当被调用时就会进入运行。

参考资料来源:百度百科-子程序

参考资料来源:百度百科-中断服务程序

5.c语言中中断服务子程序与其他子程序的区别

中断是单片机的一个重要功能,中断子程序专为执行中断功能,它是在发生中断后,自动执行的,不需要主程序调用;普通子函数要主程序调用才能执行。

汇编里的区别:

普通子函数用RET返回;中断子程序用RETI返回,RETI返回时要清除中断标志的;

普通子函数调用时直接进入函数入口地址,中断函数在中断发生时先进中断入口

03H、08H、13H、18H、23H后随即写一个跳转指令,再跳转到相应语句。

C语言区别:

普通子函数用的是C语言里的主函数调用子函数的方法,子函数可以有参数,有返回值;中断函数没有参数,没有返回值;

中断函数的写法也不一样,以80c51为例:

void INT0() interrupt 0 using 1

{

}

interrupt 0不是是外部中断0引发的中断,必须写; using 1

表示在中断函数里用第一组寄存器R0-R7.这个可以省略。

6.调用中断服务程序和调用子程序有何分别

1. 子程序调用一定是程序员在编写程序时事先安排好的,是可知的,而中断是由中断源根据自身的需要产生的,是不可预见的(用指令INT引起的中断除外)。

2. 子程序调用是用CALL指令来实现的,但没有调用中断的指令,只有发出中断请求的事件(指令INT是发出内部中断信号,而不要理解为调用中断服务程序);

3. 子程序的返回指令是RET,而中断服务程序的返回指令是IRET/IRETD。

4. 在通常情况下,子程序是由应用程序开发者编写的,而中断服务程序是由系统软件设计者编写的。

7.怎样写中断服务程序

方法1. 用关键词interrupt和中断矢量编号定义中断函数

这种方式最简单也最直观。缺点是程序的可移植性稍差。范例如下:

void interrupt 17 sci1_Recv_ISR(void){

。.}关键词interrupt告诉编译器此函数为中断服务函数,数字17告诉连接器该中断矢量的偏移位置(以复位矢量偏移为0计)。某一个中断响应对应的矢量入口编号可以在该芯片的DataSheet中查到。

方法2. 用关键词interrupt定义中断函数,中断矢量入口由prm文件指定,仍以上面的中断服务函数为例,这时函数的定义方式为

void interrupt sci1_Recv_ISR(void){

。..}然后在项目对应的prm文件中添加一行矢量位置定义:

VECTOR 17 sci1_Recv_ISR //指定的中断服务矢量入口

方法3. 用#pragma TRAP_PROC定义中断函数,中断矢量入口由prm文件指定。此类型的函数编译器在将C代码编译成汇编指令时会在代码前后增加必要的现场保护和恢复汇编代码,同时函数的最后返回用汇编指令RTI而不是针对普通函数的RTS。例如

中断服务子程序怎么写

转载请注明出处育才学习网 » 中断服务子程序怎么写(使用stc12c5a60s2双串口单片机时串口2的中断服务子程序怎么写呢)

知识

名人简介怎么写(名人简介50字左右)

阅读(2228)

本文主要为您介绍名人简介怎么写,内容包括写中国名人简介,如何写名人简介,名人简介50字左右。凿壁偷光匡衡,字稚圭,勤奋学习却没有蜡烛。邻居家有烛光却穿不过来,匡衡就把墙壁凿个洞引来了邻家的烛光,用烛光映着书读。同县人文不识家里有

知识

加班情况说明怎么写(加班证明怎么写)

阅读(4383)

本文主要为您介绍加班情况说明怎么写,内容包括加班情况说明怎样写,加班情况说明怎样写,加班证明怎么写。加班证明范文领导: 兹有XXX在XXX位置加班XX小时,工作内容XXXXX。已完成。参加人有:XX,XXX,证明人:XXX加班人:XXX

知识

自愿加班申请书怎么写(员工自愿加班申请书)

阅读(1243)

本文主要为您介绍自愿加班申请书怎么写,内容包括员工自愿加班申请书,加班申请书怎么写,谁能告诉我保安自愿加班申请书该怎么写模板。去百度文库,查看完整内容>内容来自用户:李鹏亚自愿加班申请书范文【篇一:自愿加班协议书】自愿加班申请协议

知识

加入社团的理由怎么写(社团面试时如何说加入该社团的理由)

阅读(658)

本文主要为您介绍加入社团的理由怎么写,内容包括社团面试时如何说加入该社团的理由,申请加入社团理由,申请加入社团理由。理由可以说是自己有兴趣,希望锻炼自己哪些方面的能力之类的,总而言之要从两方面来讲,一是自己可能为社团带来的益处,二是

知识

房屋保全申请书怎么写(房产财产保全申请书怎么写)

阅读(330)

本文主要为您介绍房屋保全申请书怎么写,内容包括房产财产保全申请书怎么写,诉讼保全申请书怎么写,财产保全申请书怎么写。《最高人民法院关于人民法院办理财产保全案件若干问题的规定》第一条规定,当事人、利害关系人申请财产保全,应当向人民

知识

按键精灵输出怎么写(按键精灵后台怎么输出大写字母)

阅读(404)

本文主要为您介绍按键精灵输出怎么写,内容包括按键精灵如何输出语句,按键精灵后台怎么输出大写字母,按键精灵我定义了12条输出方法,怎么写随机输入任意一条。Private Declare Function GetKeyState Lib "user32" Alias "GetKeyState

知识

家谱中个人简历怎么写(家谱简介怎么写)

阅读(920)

本文主要为您介绍家谱中个人简历怎么写,内容包括家谱中如何写个人简历,家谱中个人简历怎么写,家谱中如何写个人简历。家谱族谱网,隶属于北京时代绘谱文化发展公司。家谱族谱网网站策划于2010年2月,历时半年时间,于2010年8月上线,是国内首家集家

知识

vhdl时钟的testbench怎么写(如何编写testbench来仿真VHDL程序)

阅读(351)

本文主要为您介绍vhdl时钟的testbench怎么写,内容包括怎样用VHDL写TESTBENCH,VHDL编写testbench,如何编写testbench来仿真VHDL程序。本文介绍如何写testbench来仿真VHDL程序。 通常testbench完成如下的任务:1. 实例化需要测试的设计(DUT);2.

知识

地质发展史怎么写(地质学方面描述地质发展历史)

阅读(342)

本文主要为您介绍地质发展史怎么写,内容包括地质学方面描述地质发展历史,地质演化史怎么写,地质发展史。其实这道题并不难分析:图中展示的是一套断层-褶皱-不整合的地层(地层代号的角标我看不清楚),古生界沉积了奥陶、石炭、二叠三个系的地层,奥

知识

服装品牌调研报告的结论怎么写(服装调研报告怎么写)

阅读(357)

本文主要为您介绍服装品牌调研报告的结论怎么写,内容包括服装调研报告怎么写,服装调研报告怎么写,服装的市场调查报告怎么写啊。1 标 题: 三种写法。 ① 标题是文章标题的写法(如:《西部企业生态立旗“一石三鸟”》,《某某市蔬菜的品种结构问题

知识

改变自己日语怎么写(把改变自己4个字翻译成日文)

阅读(329)

本文主要为您介绍改变自己日语怎么写,内容包括“我会试着改变自己”用日文怎么说,我想试着去改变自己日语怎么说,把"改变自己"4个字翻译成日文。如题:改変自己(自分)假名:かいへんじこ(じぶん)罗马音:ka yi he n ji ko(ji bu n)(键盘输入亦可)发音:ka

知识

服务员怎么写每日总结(餐厅服务员每周工作总结怎么写)

阅读(234)

本文主要为您介绍服务员怎么写每日总结,内容包括餐厅服务员每周工作总结怎么写,餐厅服务员一天的工作总结怎么写,餐厅服务员应该怎样写工作总结。食品安全、服务与管理的重要。没有范文。以下供参考,主要写一下主要的工作内容,如何努力工作,取

知识

业主赠送保洁锦旗怎么写(赞扬物业服务的锦旗怎么写)

阅读(1985)

本文主要为您介绍业主赠送保洁锦旗怎么写,内容包括物业送保洁公司锦旗感谢用语大全,业主给保洁阿姨送锦旗咋写标语,物业公司、关于保洁打扫卫生好、赠送管理处锦旗内容急。业户的好管家 开发商的好帮手2、为社会创造文明生活的典范 为业主

知识

gccavr中断服务函数怎么写(avr单片机的中断函数是怎么执行的)

阅读(297)

本文主要为您介绍gccavr中断服务函数怎么写,内容包括avrgcc里的中断服函数需要申明吗,AVRstudio里定时中断函数和外部中断函数名怎么写,gccavr中中断的使用定义声明是怎么样的呀。首先,中断程序是不被主程序调用的。所谓的中断顾名思义,就是

知识

化妆品售后说明怎么写(化妆品的售后服务包含哪些方面)

阅读(232)

本文主要为您介绍化妆品售后说明怎么写,内容包括化妆品的售后服务包含哪些方面,如何做好化妆品的售后服务,专柜彩妆顾问的工作描述怎么写。妆品售后服务中心的主要职能 化妆品售后服务中心,集化妆品专卖店、形象柜、美容院功能于一体,可以满

知识

移动服务前台评价怎么写(客户对服务态度满意评论句子)

阅读(412)

本文主要为您介绍移动服务前台评价怎么写,内容包括给移动客服好评怎么写,中国移动怎么给客服做评价,客户对服务态度满意评论句子。他工作热情高;人品端正、德行优良、自身修养较高、对待客户诚信;对待工作严谨、处处为公司考虑,能够虚心接受同

知识

酒店前台用英语怎么说(酒店前台服务台的英文怎么说呢)

阅读(431)

本文主要为您介绍酒店前台用英语怎么说,内容包括酒店前台(服务台)的英文怎么说呢,酒店的前台(服务台)英语怎么说啊,酒店前台英语。酒店前台(服务台)的英文:hotel receptionhotel 读法 英 [həʊˈtel] 美 [hoʊˈtel] n.旅馆;旅社

知识

行业用语怎么写(服务行业十大用语是)

阅读(273)

本文主要为您介绍行业用语怎么写,内容包括行业用语怎么填,行业用语怎么填,服务行业十大用语是。1. 您好,欢迎光临! 2. 请问您需要什么服务? 3. 请稍等一下。 4. 对不起,让您久等了。 5. 对不起,请您排队等一会儿。 6

知识

药学服务记录表怎么写(药学见习记录表怎么写)

阅读(298)

本文主要为您介绍药学服务记录表怎么写,内容包括药学见习记录表怎么写,药学实践内容(或项目)怎么写啊,药学见习记录表怎么写。药学见习总结一 . 学校组织见习的目的与我们收获这一次学校组织的药学专业两周见习活动,我们严格遵守见习表上的各

[/e:loop]