第二次学习 听课笔记

中断允许寄存器IE(地址为A8H,可位寻址)

EA:总中断允许控制位;

2外部中断+3内部定时器中断/计时器中断+1串口中断

EX0  EX1  外部中断;

ET0  ET1  ET2  内部 定时器中断 / 计时器中断;

ES 串口中断;

值为1,允许中断;值为0,禁止中断;

===========================================================

辅助中断控制寄存器XICON(地址为C0H,可位寻址)

这个老师貌似没有讲,可能暂时用不到,,,留位置以后再补

============================================================

中断/定时器/计时器 控制寄存器 TCON(地址为88H,可位寻址)

外部中断2+2  /  定时器+计时器 2+2

IT0  IT1 用来选择外部中断的触发方式;值为0 是低电平触发方式;值为1 是下降沿触发方式;

IE0  IE1外部中断 请求源的标志;这两个值都是硬件置1置0的,不需要软件去操作;

值为1时 外部中断向CPU请求中断;当CPU响应这个中断时,会由硬件自动置0;(边沿触发方式)

TR0  TR1 定时器的运行控制位;值为1时,定时器才能正常运行;

TF0  TF1 定时器溢出中断标志;定时器被允许计数并且产生溢出时,由硬件置1 向CPU请求中断;CPU响应中断时,有硬件置0(也可查询后,由软件置0);

============================================================

中断入口 和 默认的优先级

--------------------------------------------------------------------------------------------------------

自定义函数:外部中断1 初始化 (配置外部中断1,初始化函数需要在主函数中调用)

void int1Init()          //   int1 中断1自定义的简写, Init [ɪ'nɪt] 初始化

{

EA = 1;//总开关(中断允许控制器IE的总开关)

EX1 = 1;//外部中断1的小开关(中断允许控制器IE中外部中断1的小开关)

IT1 = 1;//选择下降沿触发方式(中断/定时器/计时器 控制寄存器 TCON中 外部中断1的触发方式)

}

============================================================

中断处理函数(interrupt  [ˌɪntəˈrʌpt] 暂停 中断 阻断 打扰)不需要调用,可以放在主函数后面

void  int1()  interrupt 2  //中断处理函数,加关键字 interrupt 和 入口号

{

中断处理函数

}

============================================================

★ 使用定时器的步骤

启动定时器/计数器(通过TCON控制器)

设置定时器/计数器的工作模式(通过TMOD控制器)

查询定时器/计数器是否溢出(读TCON内TF位的值,溢出时硬件将值置1向CPU请求中断)

---------------------------------------------------------------------------------------------------------

定时器/计数器工作模式寄存器TMOD(不可位寻址,赋值用十六进制例如 TMOD = 0X10;)

GATE  默认0,一般不修改;值为1的时候 需要满足两个条件才能启用定时器

C/T 定时器和计数器 的选择位,值为0用作定时器(从内部系统时钟输入);值为1用作计时器(从相关引脚输入);

M1 M0 定时器/计数器 模式选择(共有四种模式,常用的有两种)

0 1 (16位定时器/计数器,低八位TL0  高八位TH0 全部使用,65535溢出)

1 0 (8位自动重装载定时器,当溢出时自动将 高八位TH0的值自动装入 低八位TL0,255溢出)

---------------------------------------------------------------------------------------------------------

定时器0 初始化 函数

void timer0Init()    //自定义函数名timer0 ,Init [ɪ'nɪt] 初始化(需要放到主函数中进行初始化,timer0Init();)

{

TR0 = 1;  //启动定时器0

TMOD = 0X01;  //定时器工作模式1,16位定时计数模式

TH0 = 0X4B;  //高八位初值,定时50ms

TL0 = 0XFD;  //低八位初值,定时50ms

}

----------------------------------------

计数器用法 需要改变TMOD相应的值即可;

定时器/计数器  可配合中断一起使用;

============================================================

============================================================

第一次学习  听课笔记:

外部中断源(2个):INT0和INT1 低电平或者下降沿引起中断;

触发方式由 特殊功能寄存器TCON的低4位控制;

内部中断源(3个):T0,T1 由相应储存器溢出后引起中断;

TI/RI  串行中断,完成一帧字符发送/接收后引起中断;

这三个内部中断源的控制位分别所存在特殊功能寄存器TCON和SCON中;

=======================================

IE和XICON中断允许寄存器(可位寻址)

EA:总中断允许控制位;

ET2定时/计数器,值为1是允许,值为0是禁止;

TE1定时/计数器,值为1是允许,值为0是禁止;

ET0定时/计数器,值为1是允许,值为0是禁止;

EX1外部中断1 中断允许位;

EX0外部中断0 中断允许位;

ES 串行口1之 中断允许位;

=======================================

定时器/计数器0/1控制寄存器 TCON

TF1 计数器1定时溢出标志位,数据溢出后值为1,

TF0 计数器0

TR1 定时器1,定时器的运行控制位,为1时 允许开始计数,为0时禁止计数;

TR0 定时器0,

IE1 由硬件自动赋值,当值为1时  外部中断想PCU请求中断,当CPU相应该中断时 由硬件清0;

IE0同上;

IT1中断源类型选择。值为0 P3.3引脚上的低电平信号可触发中断;值为1,下降沿可触发;

IT0同上;

==========================================

中断优先级和入口

由高到低分别是

外部中断0:中断入口0

TO溢出中断:中断入口1

T1溢出中断:中断入口2

TI溢出中断:中断入口3

串行口中断:中断入口4

========================================

中断处理函数

void int1() interrupt 2

{

}

========================================

寄存器 TMOD(不可位寻址)

TMOD.3  GATE  控制位,默认为0:TR0为0时 打开定时/计数器;

TMOD.2 C/T  值为0的时候 用作定时器(从内部系统时钟输入),值为1的时候 用作计数器(从T0/P3.4脚输入);

TMOD.1     TMOD.0

四种模式中 常用到的是  0.1 (16位计时器,TL0和TH0全开)和1.0(8位重装模式)

其他两种模式不常用

51单片机 AT89C52 的中断/定时器/计时器 笔记相关推荐

  1. 10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10]

    10 51单片机汇编:让定时器产生中断(使用Keil模拟器)[系列教程之10] 该系列主仓库地址:https://gitee.com/langcai1943/8051-from-boot-to-app ...

  2. 51单片机 (九)定时器

    什么是定时器? 定时器是单片机的重要功能模块之一,在检测.控制领域有广泛应用.定时器常用作定时时钟,以实现定时检测,定时响应.定时控制,并且可以产生ms宽的脉冲信号,驱动步进电机.定时和计数的最终功能 ...

  3. 【51单片机】外部中断

    51的 外部中断 与 定时器(内部中断) 有一个共同特点,那就是与主程序是并行工作的,就是主程序在运行的时候,中断也在等待触发条件,当中断被触发的时候会暂停主程序转而执行中断服务程序,只有中断服务程序 ...

  4. 51单片机DS18B20与中断冲突解决方式

    51单片机DS18B20与中断冲突解决方式 应用场所 在使用51单片机DS18B20的过程中,总会遇到中断(这里的中断主要是指定时器中断和串口中断)与其时序产生冲突,从而导致读取不稳定的情况发生. 问 ...

  5. 51单片机:有趣的定时器实验

    51单片机:有趣的定时器实验 本以为考完试搞完课设就没啥单片机啥事了,结果莫名的来了软件工程软件基础训练,训练Proteus和Keil软件.我嘞天,之前天天用好不?这课程安排的emmmmm,我还要其他 ...

  6. 51单片机之外部中断拙见

    外部中断需要注意的点 1. 外部中断其实是包含在中断系统中的,STC89Cx系列单片机提供4个外部中断:外部中断0(INT0),外部中断1(INT1),外部中断2(INT2),外部中断3(INT3) ...

  7. 【Proteus仿真】51单片机+555可调定时器电路

    [Proteus仿真]51单片机+555可调定时器电路 Proteus仿真 程序代码 #include <reg52.h> #define uint unsigned int #defin ...

  8. 51单片机:外部中断实现流水灯

    51单片机:外部中断实现流水灯 作业要求: 按照给定的实验板电路图编程实现外部中断控制流水灯,初始上电时,实验板右下侧的流水灯区域只有最右侧LED灯亮,其他灯全都熄灭,每按下一次按键,流水灯从右向左流 ...

  9. 51单片机电路原理图_10个定时器精选电路方案带你学习时钟脉冲的工作方式

    可编程控制器中的定时器是根据时钟脉冲累积计时的,时钟脉冲有 1ms.10ms.100ms等不同规格.(定时器的工作过程实际上是对时钟脉冲计数)因工作需要,定时器除了占有自己编号的存储器位外,还占有一个 ...

最新文章

  1. c#中总是提示“在代码运行时或者在禁用“只要一个进程中断,就中断所有进程”选项时,不允许进行更改。...
  2. 【设计】H5移动端页面设计心得分享(附案例解析)
  3. 使用Spring 3 MVC处理表单
  4. 常用Java API 熟悉 方法 从记不得到忘不掉 java1.8.61为例
  5. 再学 GDI+[63]: 路径画刷(3) - SetFocusScales、GetFocusScales
  6. JAVA输入输出IO流→File、RandomAccessFilse、字节流InputSream与OutputStream、字符流Reader与Writer、对象序列化Serializable
  7. LeetCode刷题目录
  8. Note_Fast Image Processing with Fully-Convolutional Networks
  9. 移远EC20 4G模块拨号相关
  10. 项目管理:系统需求分析模板
  11. 主成分分析结果成分不显著_spss主成分分析结果解读
  12. Winclone快速安装苹果电脑双系统教程
  13. oracle自动化巡检报告
  14. 解析淘口令获取商品id,包含有效时间
  15. 博尔德大学计算机专业本科,2020美国大学计算机专业本科排名
  16. 冒志鸿:没有对比就没有伤害,原来中国的区块链这么……
  17. 比较员工的年龄大小(继承、异类集合、static)
  18. return true
  19. CSP认证:棋局评估
  20. 个人永久性免费-Excel催化剂功能第96波-地图数据挖宝之全国天气查询(区域最细可到区县,最长预报4天)...

热门文章

  1. java 重写paint_java – JLabel:重写paintComponent()之后.如何...
  2. 一个 70 后运维老兵的 Elastic 认证工程师之路
  3. 强大合作伙伴生态系统助力 Denodo 在大中华区不断发展壮大
  4. NiiOS-iOS复习及在学习进度更新
  5. 《java从入门到放弃》_《Java从入门到放弃》JavaSE入门篇:JDBC(入门版)
  6. 深度linux系统任务栏毛玻璃,操作系统中常见的「毛玻璃」效果是怎么设计出来的?...
  7. 二分法查找Unicode To GB2312转码表
  8. 2022年春招 360笔试 第二题 翻转棋子
  9. 洛谷-P1024-一元三次方程求解-普及-暴力/盛金公式/分治
  10. open FIFO for write returns “No such device or address”