当前位置:首页 > 单片机 > 单片机
[导读]   8051的CPU在每个机器周期期间,顺序采样每个中断源,CPU在下一个机器周期按优先级顺序查询中断标志,如查询到某个中断标志为1,将在下一个机器周期期间按优先级来进行中断处理。在下列任一种情况存

  8051的CPU在每个机器周期期间,顺序采样每个中断源,CPU在下一个机器周期按优先级顺序查询中断标志,如查询到某个中断标志为1,将在下一个机器周期期间按优先级来进行中断处理。在下列任一种情况存在时,中断申请将被封锁。

  1、CPU正在执一个同级或高级的中断服务程序2、当前机器周期不是当前指令周期的最后一个机器周期,即要保证把当前指令执行完。

  CPU响应中断, 由硬件自动将相应的中断矢量地址装入程序程序计数器PC,转入该中断服务程序进行处理。

  对于有些中断源,CPU在响应中断后会自动清除中断标志,如定时器溢出标志TF0,TF1,以及部中断标志IE0,IE1。

  而有些中断标志,不会自动清除,只能由用户用户软件清除,如串行口接收发送中断标志RI,T1。CPU执行中断服务程序之前,自动将程序计数器PC内容压入堆栈保护,然后将对应的中断矢量装入程序计数器PC,使程序转向该中断矢量地址单元中,以执行中断服务程序,中断服务程序从矢量地址开始执行,一直到返回指令“RETI”为止。“RETI”指令的操作,一方面告诉中断系统中断服务程序以执行完毕,另一方面把原来压入堆栈保护的断电地址从栈顶弹出,装入程序计数器PC,使程序返回被中断的程序断点处,以便继续执行。

  外部中断响应时间外部中断INT0和INT1的电平在每个机器周期,经反向后锁存到IE0和IE1的标志位,CPU在下一个机器周期才会查询到新置入的IE0和IE1,这时如果满足响应条件,CPU响应中断时,要用二个机器周期执行一条硬件长调用指令“LCALL”。所以,从产生外部中断到开始执行中断程序至少需要三个完整的机器周期。如果在中断申请时,CPU正在长指令,如乘法和除法指令等四周期指令,则额外等待时间增加三个周期;若正在执行“RETI”指令或访问IE,IP的指令,则额外等待时间又增加两个周期。综上估计,在单一中断系统里,外部中断响应时间约在3-8个机器周期之间。

  下面我们仍以打印机为例来说明外中断源的使用方法 。硬件连接和查询方式基本一致,只是因为程序中对外中断进行了初始化,所以,8051的端口引脚P3.2在这个例子中不再是一个普通的端口而是外中断的输入,另一个,打印机多了一个选通信号STB。对打印机来说,这个信号是个输入信号,其意义为:当打印机检测到该引脚上出现一个负跳变,即由高电平时,表示单片机以把打印数据送上数据总线,则打印机将BUSY引脚设置为1,告诉单片机打印机正在打印,然后,开始打印。

  本例中,单片机并行接口P3的一位T0输出作为该信号的输入,打印缓冲区仍就在内部数据存储器的10H-11H单元,共三字节。下面我们来看看程序:

  第一条指令ORG 0000H是一条伪指令,意义是:告诉编译系统紧跟其后的那条指令从程序存储器的0000H单元开始存放。

  第二条指令LJMP MAIN的意义是:跳转到标号为MAIN的地址去运行。

  第三条指令ORG 0003H是一条伪指令,意义是:告诉编译系统紧跟其后的那条指令从程序存储器的0003H单元开始存放。

  指令LJMP SUBO的意义是:跳转到标号为SUBO的地址去运行。

  指令ORG 0050H的意义是:告诉编译系统紧跟其后的那条指令从程序存储器的0050H单元开始存放。

  MAIN是一个标号。

  指令SETB EA意义为:对位地址EA置1,EA是8051单片机中断系统是总允许位,所以,该指令的物理意义是开放8051的中断系统。

  指令CLR EX0意义为:对EX0位置1,其物理意义为允许外中断0中断。

  指令CLR IT0意义为:对IT0位清1,其物理意义是设置外中断0的触发方式为边沿触发。

  指令MOV R0,#11H的意义是:将数据11H送入工作寄存器R0中,物理意义为设定在中断服务程序中发送的一个数据的地址,即打印机缓冲区的第二字节 。因为必须在主程序上发送第一个字节之后,打印机才能发出第一次中断请求,如果单片机将所有数据都放在中断服务程序中发送,则会引起单片机和打印机相互等待,即打印机等待单片机将数据送上数据总线,并通过T0引脚发送一个负脉冲选通信号到打印机的STB引脚,打印机要在检测到该引脚上的负脉冲前沿后,才开始打印 。另一方面,单片机却在等待打印机打印完一个数据后,提出中断申请,才能在中断服务程序中发送第一个数据。

  指令MOV P2,10H的意义是:将内部数据存储器10H单元送上并行接口P2,其物理意义是发送第一打印数据。

  指令CLR P3.4的意义为:对端口P3.4,即T0引脚清0,其物理意义向打印机发送选通信号的前沿,打印机检测到选通信号的前沿后,置引脚BUSY的状态为高电平,然后开始打印。

  指令SETB P3.4的意义为:对端口P3.4置1,其其物理意义向打印机发送选通信号的后沿。

  指令LJMP §的意义是:跳转到本条指令,即主程序到此就进入死循环。请大家注意只要用户不关机的话,CPU就会不停的运行下去,不会因为用户程序到此结束,如果没有这条死循环指令的话,CPU就会从程序存储器的下一个单元取出一个数,把它当下一个指令的操作码处理,这样,程序就会出错,甚至死机 。所以,如果一个系统中本身没有死循环的话,一定要在主程序的最后认为加上一条死循环指令。

  SUBO是一个标号,表示外中断0的真正起始地址。

  指令MOV P2,@R0的意义是,把R0的内容作为内部数据存储器的地址,再把该地址的数据去出来送到端口P2,起物理意义是发送第二个打印数据。

  指令CLR P3.4的意义是,对端口P3.4清0,物理意义是发送STB选通信号的前沿,打印机检测到该信号,置引脚BUSY为高电平,然后开始打印。

  指令SETB P3.4的意义是 ,对端口P3.4置1,物理意义是发送STB选通信号的后沿。

  指令INC R0的意义是:对R0的内容加1,物理意义是改变打印缓冲区中下一个待打数据的指针,这条指令运行后,R0中的内容为12H,即下一个待打印数据在12H单元中。

  指令CJNE RO,#13H LAB1的意义是:判断R0的内容是否为13H,如是则继续往下运行,否则跳转到标号为LAB1的地方,物理意义为如果待打印数据的指针向13H,即表示所有的数据都打印完毕,则运行关中断指令,否则表示数据末打印完,则跳过关中断指令。

  LAB1是一个标号。

  指令RETI的意义是:中断返回,物理意义是清除外中断0的中断请求标志,并返回主程刚才被中断的地方,这是本程序经编译后的机器码指令,用仿真器把它固化到程序存储器后,就可以运行了。


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

特朗普集团近日取消了其新推出的T1智能手机“将在美国制造”的宣传标语,此举源于外界对这款手机能否以当前定价在美国本土生产的质疑。

关键字: 特朗普 苹果 AI

美国总统特朗普在公开场合表示,他已要求苹果公司CEO蒂姆·库克停止在印度建厂,矛头直指该公司生产多元化的计划。

关键字: 特朗普 苹果 AI

4月10日消息,据媒体报道,美国总统特朗普宣布,美国对部分贸易伙伴暂停90天执行新关税政策,同时对中国的关税提高到125%,该消息公布后苹果股价飙升了15%。这次反弹使苹果市值增加了4000多亿美元,目前苹果市值接近3万...

关键字: 特朗普 AI 人工智能 特斯拉

3月25日消息,据报道,当地时间3月20日,美国总统特朗普在社交媒体平台“真实社交”上发文写道:“那些被抓到破坏特斯拉的人,将有很大可能被判入狱长达20年,这包括资助(破坏特斯拉汽车)者,我们正在寻找你。”

关键字: 特朗普 AI 人工智能 特斯拉

1月22日消息,刚刚,新任美国总统特朗普放出重磅消息,将全力支持美国AI发展。

关键字: 特朗普 AI 人工智能

特朗普先生有两件事一定会载入史册,一个是筑墙,一个是挖坑。在美墨边境筑墙的口号确保边境安全,降低因非法移民引起的犯罪率过高问题;在中美科技产业之间挖坑的口号也是安全,美国企业不得使用对美国国家安全构成威胁的电信设备,总统...

关键字: 特朗普 孤立主义 科技产业

据路透社1月17日消息显示,知情人士透露,特朗普已通知英特尔、铠侠在内的几家华为供应商,将要撤销其对华为的出货的部分许可证,同时将拒绝其他数十个向华为供货的申请。据透露,共有4家公司的8份许可被撤销。另外,相关公司收到撤...

关键字: 华为 芯片 特朗普

曾在2018年时被美国总统特朗普称作“世界第八奇迹”的富士康集团在美国威斯康星州投资建设的LCD显示屏工厂项目,如今却因为富士康将项目大幅缩水并拒绝签订新的合同而陷入了僵局。这也导致富士康无法从当地政府那里获得约40亿美...

关键字: 特朗普 富士康

今年5月,因自己发布的推文被贴上“无确凿依据”标签而与推特发生激烈争执后,美国总统特朗普签署了一项行政令,下令要求重审《通信规范法》第230条。

关键字: 谷歌 facebook 特朗普

众所周知,寄往白宫的所有邮件在到达白宫之前都会在他地进行分类和筛选。9月19日,根据美国相关执法官员的通报,本周早些时候,执法人员截获了一个寄给特朗普总统的包裹,该包裹内包含蓖麻毒蛋白。

关键字: 美国 白宫 特朗普
关闭