8051内部资源C编程讲解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8051内部资源C编程讲解

8051内部资源的C编程 工程训练中心 8051内部资源的C编程 1. 中断 1.1 中断源 1、8051单片机有5个中断,增加很少的硬件就可把各种硬件中断源线或称为一个外部中断输入,然后再顺序检索引起中断的特定源; 2、8051有两个中断优先级,每个中断源的优先级可以编程控制,中断允许受到CPU开中断和中断源开中断的两级控制; 1.1 中断源 3、8051单片机的5个中断源: 1)外部中断请求0,由INT0输入; 2)外部中断请求1,由INT1输入; 3)片内定时器/计数器0溢出中断请求; 4)片内定时器/计数器1溢出中断请求; 5)片内串行口发送/接收中断请求; 1.1 中断源 4、每个中断源是否产生中断,由对应的多个中断请求触发器实现,分别由SFR中的TCON和SCON相应位锁存; 1)定时器/计数器控制寄存器TCON: 1.1 中断源 IT0、IT1外部中断0,1触发方式选择位;软件设置;1—下降沿触发,高电平到低电平的跳变;0—电平触发,低电平可引起中断; IE0、IE1外部中断0,1请求标志位;当产生中断请求时由硬件置位,CPU响应中断后,由硬件清除; 1.1 中断源 TF0、TF1定时器/计数器0,1溢出中断请求标志;当定时/计数溢出时由硬件置位,CPU响应中断后由硬件清除; 1.1 中断源 2)串口控制寄存器SCON RI串行口接收中断标志位,串行口接收完一帧数据后请求中断,由硬件置位,置位后由软件清“0”; TI串行口发送中断请求标志位,当串行口发送完一帧数据后请求中断由硬件置位,由软件清零; 1.2 中断的控制 1、中断的控制管理通过寄存器IE和IP编程实现 中断允许寄存器IE: EX0,EX1:外部中断0,1的中断允许位;1—开中断,0—关中断; ET0,ET1:定时器/计数器0,1溢出中断允许位,1—开中断,0—关中断; 1.2 中断的控制 ES,串行口中断允许位,1—串行口开中断,0—串行口关中断; ET2,定时器/计数器2溢出中断允许位,1—T/C2开中断,0—T/C2关中断; EA,CPU开/关中断控制位; 1.2 中断的控制 2、中断优先级寄存器IP 当系统中有多个中断源同时请求中断时,CPU按中断源的优先级别,由高到低分别响应; PX0,PX1,外部中断0,1中断优先级控制位;1—高优先级,0—低优先级 PT0,PT1,定时器/计数器0,1中断优先级控制位; PS,串行口中断优先级控制位; 1.2 中断的控制 8051被复位后,5个中断源都在同一个优先级,若此时其中几个中断源同时产生中断,CPU按照硬件优先级链路顺序响应中断; 外部中断0 定时器/计数器0 外部中断1 定时器/计数器1 串行口中断 1.3 中断响应 响应中断的阻止条件: 1)CPU正在处理同级或更高级的中断; 2)正在执行的是RETI或是访问IE或IP指令; 3)现行机器周期不是所执行指令的最后一个机器周期; 1.3 中断响应 CPU响应中断后执行如下操作: 1)硬件清除相应的中断请求标志; 2)执行一条硬件子程序,保护断点,并转向中断服务程序的入口地址; 3)结束中断时执行RETI指令,恢复断点,返回主程序; 1.3 中断响应 各中断服务程序入口地址: 1) 外部中断0 0003H 2) 定时器/计数器0 000BH 3) 外部中断1 0013H 4) 定时器/计数器1 001BH 5) 串行口中断 0023H 各中断程序的入口地址仅间隔8个字节,编译器在这些地址放入无条件转移指令,跳转到服务程序的实际地址; 1.4 寄存组切换 当一个特定的任务正在执行,如果遇到更紧急的任务时,在一个具有优先级的系统中,CPU假定第一个任务已经完成,立即处理新任务; 转向新任务后,所使用的通用寄存器破坏了第一个任务使用的中间信息;为避免错误发生,使用上下文切换; 8051有4个寄存器组,每组8个字节,分配R0~R7对应8个字节;(PSW中的两位RS0与RS1来设置),寄存器组使得有非常快的上下文切换 1.4 寄存组切换 当发生中断任务时,采用不同的寄存器组,一个任务的8个字节保留,另一个不同的8个字节用在新任务中; 除了PSW中的两位设置外,也可采用using指令指定; 1.4 寄存组切换 中断服务程序的完整语法如下: 返回值 函数名 (参数) [模式][重入]interrupt n using n Interrupt后接一个0~31的常整数,不允许使用表达式; 1.

文档评论(0)

2299972 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档