ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

RTC中断访问8259芯片

2019-07-21 10:37:22  阅读:300  来源: 互联网

标签:RTC 芯片 8259 al 中断 IMR 寄存器


用到的相关8259内容

实时时钟芯片RTC接在8259芯片的从片引脚0上,如下图:
在这里插入图片描述
在8259芯片内部,有中断屏蔽寄存器IMR,这是个8位寄存器,对应着芯片的8个引脚的输入,IMR相应位是0还是1,决定了从该引脚来的中断信号是否能通过8259送往处理器(0表示允许,1表示阻断)。

当外部设备通过某个引脚送来一个中断请求信号时,如果他没有被IMR阻断(相应位为0),那么就可以被送往处理器。

注意:
8259是可编程的,主片的端口号为0x20和0x21,从片的是0xa0和0xa1,可以通过这四个端口访问82259,设置其工作方式,包括IMR内容

当然,中断能否被相应,还要取决去CPU的状态,主要看标志寄存器IF,若IF=0,则所有从处理器INTR引脚来的中断信号都被忽略,当其为1时,处理器可以相应中断。

用到的RTC内容

基本介绍见百度百科
RTC可以产生很多中断,比如闹钟中断,更新结束中断和周期性中断(具体见寄存器B和C,如下图)。RTC的计时是独立的,产生中断只是一个赠品。所以如果希望产生中断,需要进行一些额外的设置。
在这里插入图片描述

在这里插入图片描述

我们通过访问CMOS RAM的端口号来访问RTC。
0X70和0X74是索引端口号
0X71或者0X75是数据端口号

比如为了设置更新周期结束中断:

  mov al,0x0b                        ;RTC寄存器B
      or al,0x80                         ;阻断NMI 。。0x70端口的第7位为1时,阻断NMI
      out 0x70,al						
      mov al,0x12                        ;设置寄存器B,禁止周期性中断,开放更 
      out 0x71,al                        ;新结束后中断,BCD码,24小时制 

在访问RTC期间,阻断NMI,所以第二行or一个80。
第四行的0X12可以对照上表来设置

每当中断实际发生,可以在读取寄存器C来检查中断原因,且只要一读取,寄存器C的内容就清0,如果不读取,同样的中断不会再次产生。为了,下面的代码读取寄存器C的内容

mov al,0x0c						;每当中断实际发生时,都需要读一下寄存器c的值,寄存器c的特点是读一下后所有内容自动
      out 0x70,al	;而且如果不读取,那么同样的中断不会再次发生;并且读的是0X0C而不是0X1c,说明打开了NMI
      in al,0x71  

RTC到8259

rtc设置完成后,需要设置8259的IMR,下面的代码,通过端口0xa1读取8259从片的IMR寄存器,用and将第0为清0(因为RTC连接在引脚0上,且IMR相应位为0是,表示允许中断),其他位不动,再写回去。
当然,还需要设置CPU的IF位,用sti指令

 in al,0xa1                         ;读8259从片的IMR寄存器 
      and al,0xfe                        ;清除bit 0(此位连接RTC)
      out 0xa1,al                        ;写回此寄存器 

      sti       

以上内容,是我自己记得重点,忽略了很多东西,有什么不懂或者不对的地方,欢迎留言一起探讨

标签:RTC,芯片,8259,al,中断,IMR,寄存器
来源: https://blog.csdn.net/qq_41085484/article/details/96697609

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有