【心得】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 ...
随机推荐
- Spring Security 报:Encoded password does not look like BCrypt
SpringBoot 集成 Security 时,报 Encoded password does not look like BCrypt 原因:SecurityConfig 必须 Bean 的形式实 ...
- 【Docker】安装及部署
一.Ubuntu使用apt安装Docker 官方安装文档:https://docs.docker.com/engine/install/ubuntu/ 1.准备安装环境 [root@Docker-Ub ...
- 在chatGPT的帮助下成功从Rancher中删除无效的集群
只要你坚持,不放弃,问题总有解决的一天! 与chatgpt进行了几次沟通,成功解决历史遗留问题,成功从rancher中删除了无效的集群 chatGPT回答1 如果您在 Rancher UI 中无法删除 ...
- 超实用的Go语言基础教程,让你快速上手刷题!!
背景 工欲善其事,必先利其器.掌握Go的基础语法还不够,还需要勤加练习,修习"外功",才能达到出奇制胜的效果. 在大致了解Go语言的基本语法后,我就迫不得已地想使用这门语言.可是我 ...
- 2022-05-11:k8s安装easydarwin流媒体服务器,yaml如何写?
2022-05-11:k8s安装easydarwin流媒体服务器,yaml如何写? 答案2022-05-11: yaml如下: apiVersion: apps/v1 kind: Deployment ...
- 2021-06-11:给定两个字符串s1和s2,问s2最少删除多少字符可以成为s1的子串? 比如 s1 = “abcde“,s2 = “axbc“。
2021-06-11:给定两个字符串s1和s2,问s2最少删除多少字符可以成为s1的子串? 比如 s1 = "abcde",s2 = "axbc". 福大大 答 ...
- docker安装es,单机集群模式.失败。
操作系统:mac系统. docker run -d --name es1 -p 9201:9200 -p 9301:9300 elasticsearch:7.14.0 docker run -d -- ...
- IBM小型机 - AIX系统配置IP
AIX系统网口配置IP 前言 新部署的系统都是要通过IP来访问的,但是AIX系统配置IP的方式和Linux的不一样: 为了配置后可以通过远程访问系统,我们要给网口配置上IP. 操作步骤 1.新部署的A ...
- Python竖版大屏 | 用pyecharts开发可视化的奇妙探索!
你好!我是@马哥python说,一枚10年程序猿,正在试错用pyecharts开发可视化大屏的非常规排版. 以下,我用8种ThemeType展示的同一个可视化数据大屏. 1.SHINE主题 2.LI ...
- 与世界分享我刚编的mysql http隧道工具-hersql原理与使用
原文地址:https://blog.fanscore.cn/a/53/ 1. 前言 本文是与世界分享我刚编的转发ntunnel_mysql.php的工具的后续,之前的实现有些拉胯,这次重构了下.需求背 ...