【心得】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 ...
随机推荐
- js中 call()与apply()方法 和 bind()方法
call与apply都属于Function.prototype(即原型对象身上的方法)的一个方法,所以每个function实例都有call.apply属性: call()和apply() 是静态方法, ...
- 讯飞星火大模型 与New Bing实测对比
昨天科大讯飞发布了讯飞星火认知大模型,在发布会现场实测大模型的7种核心能力,并发布了它在教育.办公.汽车.数字员工领域的应用成果.科大讯飞董事长刘庆峰表示:认知大模型展示了通用人工智能的曙光,讯飞星火 ...
- 2023-3-6 WEEK1 学习
WEEK1 学习 WEB [NSSCTF 2022 Spring Recruit]babyphp <?php highlight_file(__FILE__); include_once('fl ...
- 基于python爬虫技术对于淘宝的数据分析的设计与实现
本篇仅在于交流学习 本文主要介绍通过 selenium 模块和 requests 模块,同时让机器模拟人在浏览器上的行为,登录指定的网站,通过网站内部的搜索引擎来搜索自己相应的信息,从而获取相应关键字 ...
- Golang常用语法糖
1.名字由来 语法糖(Syntactic sugar)的概念是由英国计算机科学家彼得·兰丁提出的,用于表示编程语言中的某种类型的语法,这些语法不会影响功能,但使用起来却很方便.语法糖,也称糖语法,这些 ...
- 2023-03-06:给定一个二维网格 grid ,其中: ‘.‘ 代表一个空房间 ‘#‘ 代表一堵 ‘@‘ 是起点 小写字母代表钥匙 大写字母代表锁 我们从起点开始出发,一次移动是指向四个基本方向之
2023-03-06:给定一个二维网格 grid ,其中: '.' 代表一个空房间 '#' 代表一堵 '@' 是起点 小写字母代表钥匙 大写字母代表锁 我们从起点开始出发,一次移动是指向四个基本方向之 ...
- 2021-10-04:解码方法 II。‘A‘ -> 1,‘B‘ -> 2,...‘Z‘ -> 26。*是1-9,不包含0。给你一个字符串 s ,由数字和 ‘*‘ 字符组成,返回 解码 该字符串的方法
2021-10-04:解码方法 II.'A' -> 1,'B' -> 2,-'Z' -> 26.是1-9,不包含0.给你一个字符串 s ,由数字和 '' 字符组成,返回 解码 该字符 ...
- Prompt learning 教学[技巧篇]:通过增加示例、引导词、特殊符号指令等方式让chatgpt输出更好的答案
Prompt learning 教学[技巧篇]:通过增加示例.引导词.特殊符号指令等方式让chatgpt输出更好的答案 技巧1:To Do and Not To Do 在问答场景里,为了让 AI 回答 ...
- vue全家桶进阶之路16:自定义过滤器及开发插件
过渡 过渡(transition)是Vue提供的一种在元素在插入.更新或移除时,自动添加动画效果的方式.Vue提供了多种过渡效果,其中包括基于CSS动画的过渡,以及JavaScript过渡. 过渡可以 ...
- 最通俗易懂的flex讲解
30分钟彻底弄懂flex布局 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由elson发表于云+社区专栏 目前在不考虑IE以及低端安卓机(4.3-)的兼容下,已经可以放心使用fle ...