【心得】C51单片机_中断
@
①学习单片机中断总思想
- 标题客观的说,学习单片机只需要掌握 I/O 和 中断。掌握了这两点,也就掌握了单片机。再进一步,外设连接元器件,也就是说学会控制元器件的激活,外设就没有问题了,有趣的事,中断也需要“激活”,即配置。所以,可以将单片机的学习变得更精简——激活。
(当然,不是说知道怎么激活,就学通了,只能算入门) - 就激活而言,单片机这个接地气的玩意儿,也就两种方式:电平、电位。由于元器件较为杂乱,故,在这里先讨论中断。中断的配置自然是电位激活,所以这里讨论激活方式毫无意义。
②学习单片机中断总思想
- 相较而言,配置顺序就有趣多了,这就像你的生活习惯,好的习惯可以提升效率。为了增强认同,我先抛出几个问题。1、我写中断老是有一两句忘了配置怎么办?2、中断配置记不住怎么办?3、中断配置怎么看都不会,死都记不住怎么办?这三个问题基本是同一个原因——记不住。这时候大家反思一下,我们程序员敲代码是为了什么(说为了钱的门口罚站去),当然是为了解决问题。所以我们没必要记这些东西,我们脑子里装的应该是编程思想。那不记配置不会写怎么办,看原理图。看了又忘了怎么办,写的时候再看,如果你写的次数多,那你慢慢就会记住,如果你写的次数少,那就说明你不常用它,不常用你把它记脑子里干什么(而且图像记忆比文字记忆效率更高,记原理图更能拓展自身发展空间)。
③学习单片机中断总方法
外部中断
- 比如外部中断0,结合下图,很明显IT0 = 1时为下降沿触发中断,为0时为高电平触发中断。这时IE0左边已经配置好了,再看右边,显然EX0 = 1,EA = 1时,电路导通。外部中断1同理。

参考代码:
IT0 = 1;
EX0 = 1;
EA = 1;
定时计数器中断
- 如果是定时计数器中断,还需要有定时计数器原理图。这个就根据个人习惯了,我本人是喜欢先从外向内配置。以TF0为例,右边ET0和EA同理,这时要注意左边的TR0,你可以把它想象成外部中断的ITx(这里的x可以是0或1)是控制计数的。进入内部,从上往下配置TH0,TL0,TMOD(TMOD的注视会在后面附到),这样定时计数器就配置好了。总结一下就是看图。

参考代码:
EA = 1;
ET0 = 1;
TR0 = 1;
TH0 = 0xfc;
TL0 = 0x18;
TMOD |= 0x01; //或运算防止更改T1配置
串行口中断
串口通信有四种工作方式,这四种工作方式的区别主要表现在帧格式及波特率两个方面(选择看需求)。

我们以工作方式一为例,参照上图”单片机_中断_结构图“,打开EA与ES,再看串口结构图,配置串口控制寄存器SCON(细节在“附”中),需要注意的是PCON的最高位和串口通信有关,为0波特率不加倍(0x00),为1加倍(0x80)。至此,串口部分就已经配置完毕,但C51串口中断需要定时器,具体参照上面的方法即可。

参考代码
EA = 1;
ES = 1;
SCON = 0x50;
PCON = 0x80;
TR1 = 1;
TH1 = 0xf3;
TH0 = 0xf3;
TMOD |= 0x20;
④总结
想要快速入门单片机,需要理解:单片机是实现元器件激活的桥梁,编程是手段。单片机中断部分可以理解为单片机的内部状态激活,编程要看原理图。
以上内容为个人总结,转载请注明出处,如有错误,欢迎指出
附
附:定时/计数器控制——工作方式寄存器【TMOD】
位—— 0 ——1——2——3——4 ——5—— 6—— 7
——GATE —C/T—M1 —M0—GATE—C/T—M1— M0
- GATE——门控位(为0时,将TRx置为1,可启动定时计数器。为1时,中断角INT0/1需为高电平)
- C/T——为0定时,为1计数
- M1M0——工作方式设置位(4种)
- 【高四位控制T1,低四位控制T0】
【心得】C51单片机_中断的更多相关文章
- C51 单片机的中断号以及中断向量
1.外部中断0. 1:分别由引脚/INT0./INT1的电平信号引起. 2.定时/计数器0.1:分别由T0. T1的溢出引起. 3.串行口发送.接收:发送完一个字节或接收到一个字节引起. 上述共5个中 ...
- C51单片机_day_01(定时器和中断系统)
c51单片机 51单片机是控制电路系统的开关,当然芯片就是51芯片,现在随着科技的发展,也是出了很多,功能更多,更全的芯片. 51是用c语言做为程序编程的语言 ——我对基本基础 ...
- MCS-51 单片机的中断系统
MCS-51 单片机的中断系统 MCS-51中断系统:5个中断源(两个外部中断, 两个定时器, 一个串口),2个优先级 中断相关概念 中断:当CPU正在处理某件事情时,单片机外部或内部发生的某一紧急事 ...
- C51单片机中data、idata、xdata、pdata的区别
C51单片机中data.idata.xdata.pdata的区别 data: 固定指前面0x00-0x7f的128个RAM,可以用acc直接读写的,速度最快,生成的代码也最小. idata: 固定指前 ...
- C51单片机头文件和启动文件
STARTUP.A51//启动文件. 清理RAM.设置堆栈等.即执行完start.a51后跳转到.c文件的main函数 <reg51.h> //特殊寄存器的字节地址和位地址,sfr定义字 ...
- C51单片机中断实验
实验要求: 要求通过中断方式检测有无按键 判断哪个按键(编号0-9),并且在数码管上显示对应的0-9 代码部分 #include<reg51.h> char led_mod[]={0x3f ...
- 一种基于C51单片机的非抢占式的操作系统架构
摘 要:从Keil C51的内存空间管理方式入手,着重讨论实时操作系统在任务调度时的重入问题,分析一些解决重入的基本方式与方法:分析实时操作系统任务调度的占先性,提出非占先的任务调度是能更适合于Kei ...
- 利用C51单片机模拟SPI进行双机通信
SPI协议简述 SPI,是英语Serial Peripheral interface的缩写,顾名思义就是串行外围设备接口.由Motorola首创.SPI接口主要应用在 EEPROM,FLASH,实时时 ...
- 51单片机外部中断INT0实例(汇编程序)
;普中51开发板 ;单片机的P3.2(INT0)引脚与按键K3脚连接 ;用汇编语言实现:按一次K1外部中断INT0响应一次,LED显示值加1(十进制), ;前提是共阴数码LED第一位,需要设定,由P0 ...
- python学习记录_中断正在执行的代码,执行剪切板中的代码,键盘快捷键,魔术命令,输入和输出变量,记录输入和输出变量_
2018-03-28 00:56:39 中断正在执行的代码 无论是%run执行的脚本还是长时间运行的命令ctrl + cIn [1]: KeyboardInterrupt 执行剪切板中的代码 ctrl ...
随机推荐
- react中子组件给父组件传值
组件间通信: React中,数据是从上向下流动的,也就是一个父组件可以把它的 state/props通过props传递给它的子组件,但是子组件,不能修改props,如果组件需要修改父组件中的数据,则 ...
- Python 遍历整个列表
操作列表 遍历整个列表,无论列表有多长,循环让列表中的每一个元素都采取一个或一系列相同的措施,从而高效地处理任何长度的列表,包含数以千至数百万个元素的列表. 遍历整个列表 通过for循环解决遍历 从列 ...
- [Opencv-C++] 1.1Opencv环境准备
Opencv环境准备 一.Opencv各版本下载 二.安装: 1.先下载OpenCV的源码: 2.解压到服务器任意目录: 3.进入源码目录 4.事先安装下列软件 5.进入到cmake 6.cmake编 ...
- Java Lambda Stream
::方法使用 条件:lambada表达式的主体仅包含一个表达式,且lambada表达式只调用一个已经存在的方法:被引用的方法的参数列表与lambada表达式的输入输出一致 以下是Java 8中方法引用 ...
- [python] Python类型提示总结
Python3.5 版本引入了类型提示(Type Hints),它允许开发者在代码中显式地声明变量.函数.方法等的类型信息.这种类型声明不会影响 Python 解释器的运行,但可以让 IDE 和静态分 ...
- 2022-08-09:以下go语言代码输出什么?A:否,会 panic;B:是,能正确运行;C:不清楚,看投票结果。 package main import ( “fmt“ “syn
2022-08-09:以下go语言代码输出什么?A:否,会 panic:B:是,能正确运行:C:不清楚,看投票结果. package main import ( "fmt" &qu ...
- 2020-10-19:golang里defer为什么要逆序执行?顺序执行不是更符合人的习惯吗?
福哥答案2020-10-19: 后面定义的函数可能会依赖前面的资源,所以要先执行.如果前面先执行,释放掉这个依赖,那后面的函数就不能找到它的依赖了.***[评论](https://user.qzone ...
- 2021-01-09:linux中,某一个实时日志通过什么命令查?
福哥答案2020-01-09:[答案来自此链接:](https://www.zhihu.com/question/438536200)1.tailtail -f首先就是 tail -f,tail 命令 ...
- js原型和原型链(用代码理解代码)
众所周知js原型及原型链是很多开发者的一个疼点(我也不例外),我也曾多次被问起,也问过不少其他人,如果在自己没有真正的去实践和理解过:那么突然之间要去用最简单的话语进行概述还真不是一件容易的事情: 其 ...
- vue 一键导出数据为excel文件并附带样式 十分简单
自入行以来我就一直疑惑一个问题,导出excel为什么总是搞的很复杂,包括网上的教程,屎里淘金,非常耗费精力.今天刚好业务需要,整理一个简单明了的由vue前端导出的版本出来. 开始: #1.添加xlsx ...