痴迷单片机技术的屌丝心酸历程

曾经从零基础学习单片机的我,到找到相应开发工作花了大概三四个月的时间,当时还是11年,学习条件没有现在那么好,现在五花八门的入门教程可以用泛滥来形容了,泛滥不代表作者讲的不好,有些作者老师确实讲的很不错,单片机涉及的东西还是比较多的,但是只要有人帮你理清楚,你就会发现一点都不难,很多人之所以觉得难,大概率都是走了弯路,单片机可以控制硬件激发你的兴趣,比单纯的学习代码在黑框里显示冷冰冰的“Hello world”有趣多了。

简单对定时计数器的工作原理做一个总结,定时计数器通常指的T0和T1,8051单片机内部都是两个16位的定时器计数器,之所以称之为是16位定时计数器,指的T0是由TH0和TL0构成的,这两个每一个都是一个八位的寄存器,它们俩构成16位的计数器,T1是由TH1和TL1构成的,也是两个八位的寄存器加到一起构成了一个16位的寄存器,16位指的是它的计数的范围,最大的计数范围是从0开始计数,最大只能寄65536个数,能不能记到这个数由你的工作方式来选择。

TH0和TL0构成的定时计数器T0,TH1和TL1构成的定时计数器T1,定时计数器有两个功能,内部定时和外部计数,定时计数器的实质都是一个加一计数器,无论是定时还是计数,都是对脉冲进行计数,定时功能是对内部的机器周期进行计数,外部的频率测量是对外部引脚上的这个脉冲进行计数,时间和计数是可以相互转换的,每个定时计数器都可以由软件设置定时工作方式,或者接受工作方式,定时计数器T0和T1受特殊功能寄存器TMOD和TCON的控制,定时计数器一旦启动它和CPU之间是并行工作,CPU可以去干其它的事情。

定时计数器一旦启动,过一个机器周期的时间定时计数器会自动的加一,它只有在加满的时候才会去告诉CPU定时时间到,或者计数之满,其它时候它和CPU之间是互不干扰各干各的工作,它对于提高CPU的工作效率,还有简化外围电路会非常有帮助,需要定时的场合特别的多,比如用外部的定时计数器去扩展,现在都已经把定时计数器做到单片机的内部去了,高性能单片机内部定时计数器的个数会做得更多,51单片机虽然只有两个定时计数器,但实际上可以通过软件的办法来扩充很多的定时计数器来使用,它是对内部的机器周期进行计数,内部的机器周期实际上就是经过片内振荡器,12分屏之后它的周期就会变成12倍,定时计数器的值加一直到计数满产生溢出,溢出之后可以通过软件查询或者去申请CPU的中断,两种方式都可以处理。

计数是对外部脉冲计数,需要用到单片机的外部脉冲的输入引脚,也就是P3.4和P3.5,要想使用外部脉冲计数,必须把外部脉冲信号引入到这两个引脚上,分别对应定时计数器0的计数功能和定时计数器1,这个引脚是固定的,不是任何引脚都可以作为外部脉冲计数,当外部脉冲产生由1到0的下降沿的时候,定时计数器里面的TH0或者TL0,或者是TH1和TL1,里面值会进行加一,CPU会去采样这两个引脚上的输入电平,前一个机器周期采样值为高,下一个机器周期采样值为低,计数器就加一。

时钟晶振最大的频率,外部测量的脉冲的频率,要满足什么样的条件定时计数器的计数功能才能够去采样这个信号,要有两个机器周期的时间才能够采样一个频率的数,它要保证前一个周期是高电平,下一个周期为低电频,计数频率比较高的情况下需要做外部的处理,可以做一个分屏然后再引入到I/O口,最高计数频率为振荡频率的1/24,为了保证某个电平在变化之前至少被采样一次,所以要求电平保持时间至少一个完整的机器周期。

这个主要和单片机有关系,单片机采样I/O口的电平状态是要有一个机器周期才能够采样一次,所以这个电平的要保持一致,少一个机器周期的话,变频变化的太快保持着超过一个机器周期的时间才能采到,比如12兆的晶振,一个高电平或者低电平的时间低于一个秒,单面机就采样不到,定时计数器的控制寄存器TCON用的高四位,TMOD定时计数器的工作方式的设定,以及你是使用定时还是计数?工作方式有四种,要选择哪一种?还有这个地方有一个门空位是什么含义?在之后的分享中会专门做一个专栏来给大家分析,有兴趣的朋友可以持续关注一下。

对单片机感兴趣的可以查看往期分享内容希望能帮助大家在学习单片机的路上少走一些弯路想要入门单片机可以持续关注创为单片机编程附加“带我学习”查看更多内容分享

网上五花八门的单片机教程,到底应该怎么整理学习过程相关推荐

  1. 专业导师告诉你,有哪些51单片机教程值得大力推荐

    专业导师告诉你,有哪些51单片机教程值得大力推荐 摘要:前两天我的学生做了一个电路,功能就是用MOS管来控制一个电源的开关,但是做出来后发现不能用控制MOS管的开关,MOS管一直处于导通状态.一起来看 ...

  2. 51单片机教程哪个好?

    单片机入门51单片机是最好的选择. 很多人可能以为51单片机已经过时了,能这么想的绝对是没实际产品开发经验的. 51最大的优势就是价格便宜,在小家电等消费市场有大量的使用. 新手先学51可以培养你对单 ...

  3. 51单片机教程:51单片机驱动四个8*8点阵,拼凑16*16点阵显示标准汉字。

    看此篇博文之前建议先看博主的上一篇博文: 51单片机教程:8*8 点阵显示字符.数字.简单汉字 取走点赞哦~ 教你如何用4个8乘8点阵拼成一个16乘16点阵 资料链接:点阵16乘16.rar 一.点阵 ...

  4. 51单片机教程:8*8 点阵显示字符、数字、简单汉字

    点阵显示实验 一.什么是点阵? 我们用之前的方法一个IO口只能控制一个led,如果需要用更少的IO口控制更多的led怎么办呢,于是就有了点阵. 8X8点阵共由64个发光二极管组成,且每个发光二极管是放 ...

  5. 郭天祥51单片机教程--- IIC总线

    郭天祥51单片机教程- IIC总线 #include <reg52.h> #define uchar unsigned charsbit SDA = P2^0; //数据总线 sbit S ...

  6. [51单片机] 免费授权给全世界的单片机教程——吴坚鸿

    谷歌的安卓系统免费授权给全世界的手机厂家,我深受感动,我决定用毕生的精力写一个单片机教程免费授权给全世界的出版社和做单片机学习板的厂家,然后再用毕生的精力不断修改完善升级,一年至少发布一次最新的教程版 ...

  7. 51单片机控制的LOVE心形创意彩灯 PROTEUS 和51单片机教程(附仿真文件+源代码)

    51单片机控制的LOVE心形创意彩灯 PROTEUS 和51单片机教程附仿真文件截图 单片机控制的LOVE心形创意彩灯 参考源代码 ORG 0000H LJMP START ORG 0030H ;初始 ...

  8. 单片机控制蜂鸣器唱生日快乐歌曲 PROTEUS 和51单片机教程(附仿真文件+源代码)

    功能:按一下开关后,单片机控制蜂鸣器唱生日快乐歌曲 PROTEUS 和51单片机教程 单片机控制蜂鸣器唱生日快乐歌曲 程序源代码如下: /* 生日歌 */ #include <reg51.h&g ...

  9. 简单双机通信java_完整版)51单片机实现双机通信(自己整理的

    <完整版)51单片机实现双机通信(自己整理的>由会员分享,可在线阅读,更多相关<完整版)51单片机实现双机通信(自己整理的(6页珍藏版)>请在人人文库网上搜索. 1.PjfAl ...

  10. 海思开发板FFmpeg+Nginx,推流RTMP播放(优秀教程收集+实操整理)

    海思开发板FFmpeg+Nginx推流RTSP播放(优秀教程收集+实操整理) 安装FFmpeg及移植 FFmpeg编译问题收录: static declaration of 'cbrt' follow ...

最新文章

  1. document.ready和onload的区别——JavaScript文档加载完成事件
  2. js执行shell命令的几种方式(Node)
  3. Apollo进阶课程㊵丨Azure仿真平台使用
  4. linux上创建RAID(磁盘阵列)与LVM(逻辑盘)
  5. ansys怎么使用anand模型_【干货】经典ANSYS 与 Workbench如何实现联合仿真,相互切换操作。...
  6. mysql 排序速度_MySQL排序速度慢而且可能不稳定
  7. 项目管理学习总结(6)——产品经理常用的工具有哪些?
  8. 用jquery实现简单的表单验证
  9. [bzoj5301][Cqoi2018]异或序列
  10. 计算机学院军训条幅,最新各大高校欢迎新生横幅,确认过眼神,师兄师姐Skr人才。...
  11. 华东师范 2018年 研究生复试上机题解合集
  12. 第07课:项目实战——自己动手写一个神经网络模型
  13. 看完这个,你还觉得SOME/IP测试难吗?
  14. Android 仿今日头条、网易新闻的频道管理
  15. 四川企立方:拼多多不开推广能做起来吗
  16. h 链接 html,用漂亮的汤解析HTML以获得h之后的链接
  17. 陀螺产业区块链第八季 | 华兴银行-区块链服务平台
  18. 解包酷派CPB包任意机型
  19. ws832设置虚拟服务器,华为WS832路由器
  20. 二手车电商中枪315:确有问题,但莫把婴儿同脏水一起倒掉

热门文章

  1. iOS 对象数组生成jsonarray
  2. 面试题分享,麻麻再也不用担心我的面试了
  3. vlc的应用之四:vlc的Mozilla Plugin
  4. 推荐一款ORM工具 FOR ADOBE AIR
  5. 游戏筑基开发之printf及利用一维数组输出杨辉三角
  6. Leetcode 刷题笔记(十一) —— 栈与队列篇之 top-K 问题
  7. 19-random猜数
  8. kernel——make menuconfig的实现原理【转】
  9. POJ2559最大矩形面积——单调栈
  10. 单源点最短路径(Bellman-Ford)原理及js实现