51单片机定时器问题总结

  • 51单片机定时器中断的理解
  • 个人最近几天学习总结

51单片机定时器问题

前面的几种方法没有任何难度,当一学习到定时器和中断的时候,我就觉得我有点笨了,第一遍很多东西没有理解,所以看了好几遍,第三遍的时候才勉强看懂,然后开始写代码,虽然写成功了,但是我还是觉得有些懵懵懂懂的.
于是我找了一些书还有开发板的帮助手册看,总结了一下。
谈谈自己的看法

定时器和中断

只学了一种模式的定时器0,所以就总结一下这一个

学习这个首先要看懂图,看懂图的话,后面的所有的都好理解了

  1. 中断的概念
    在这里插入图片描述
    单片机在执行程序时,中断也 随时有可能发生,但无论何时发生,只要一旦发生,单片机将立即暂停当前程序, 赶去处理中断程序,处理完中断程序后再返回刚才暂停处接着执行原来的程序。

  2. 接下来就是中断的内部结构图
    在这里插入图片描述

①INT0 对应的是 P3.2 口的附加功能,可由 IT0(TCON.0)选择其为低电平有 效还是下降沿有效。当 CPU 检测到 P3.2
引脚上出现有效的中断信号时,中断标 志 IE0(TCON.1)置 1,向 CPU 申请中断。 ②INT1 对应的是 P3.3
口的附加功能,可由 IT1(TCON.2)选择其为低电平有 效还是下降沿有效。当 CPU 检测到 P3.3引脚上出现有效的中断信号时,中断标 志 IE1(TCON.3)置 1,向 CPU 申请中断。 ③T0 对应的是 P3.4口的附加功能
TF0(TCON.5),片内定时/计数器 T0 溢 出中断请求标志。当定时/计数器 T0 发生溢出时,置位 TF0,并向CPU 申请中断。
④T1 对应的是 P3.5 口的附加功能,TF1(TCON.7),片内定时/计数器 T1
溢出中断请求标志。当定时/计数器 T1 发生溢出时,置位 TF1,并向 CPU 申请中 断。
⑤RXD 和 TXD 对应对应的是 P3.0 和P3.1 口的附加功能,RI(SCON.0)或 TI (SCON.1),串行口中断请求标志。当串行口接收完一帧串行数据时置位 RI 或当串行口发送完一帧串行数据时置位 TI,向 CPU 申请中断。

  • 可以把整个中断和定时器看做一条路走,单片机程序运行的时候,会根据定时器指定的时间去检查设置好的中断条件,然后开始中断执行,执行完之后,就开始恢复到原来的点去执行下一步.
  • 很多时候都搞不清楚定时器的那些熟悉设置,贴在这里方便理解
- //定时器0
void Timer0(void)		//1毫秒@12.000MHz
{
	TMOD &= 0xF0;		//设置定时器模式
	TMOD |= 0x01;		//设置定时器模式
	TL0 = 0x18;		//设置定时初始值
	TH0 = 0xFC;		//设置定时初始值
	TF0 = 0;		//清除TF0标志
	TR0 = 1;		//定时器0开始计时
	ET0 = 1;		//允许中断
	EA = 1;			//允许总中断
	PT0 = 1;		//中断优先级
}`

其实从代码开头到TR0=1;都可以用stc-isp来生成,只要你设置好你单片机的属性,直接点生成复制过来就可以了。
你需要的就是理解整个运行流程,他们都是在沿着设置好的路线走而已.
在这里插入图片描述
两条路来选择你走得路,0或者1;

	ET0 = 1;		//允许中断
	EA = 1;			//允许总中断
	PT0 = 1;		//中断优先级


关于定时器和中断大概就是这么多,写下来方便自己看,也让搜索这些关键词的同学们加深印象

个人最近几天学习问题和解决方法
首先是REGX51.H头文件导入之后,还是依然报错,好像keil5没有办法导入REGX51.H一样
在这里插入图片描述
解决方法一:
手动去软件的安装目录下面复制头文件加入到工程里
然后重新编译就可以了.
请添加图片描述
解决方法二:
关闭软件之后再重新打开项目,然后再编译,就发现不会报错了.
这个方法也可以解决你右键转到定义函数出错的问题.
请添加图片描述
然后是,每次写完编译之后,都会报l16的警告i,是因为导入的函数库很多函数没有引用,所以才会这样
想让他不显示的话,可以选择编译设置里的BL51 Misc --> Wamings,里面输入你要忽略的警告就可以了.
请添加图片描述
请添加图片描述
然后是设置代码颜色的问题,keil4里的代码都是纯黑色,很难看出是否有错误,写起来也很不爽,keil5里这个方法可以自定义代码的颜色,编辑器颜色等等.
请添加图片描述


最后贴上我这个菜鸡做的俩个小练习
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

加油!@!!! 奥利给!!!

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

啊天天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值