不一样的51单片机学习教程

发布者:电竞狂人最新更新时间:2021-03-24 来源: eefocus关键字:51单片机  学习教程 手机看文章 扫描二维码
随时随地手机看文章

概念若干:数字?它是什么?它能干什么


写在前面


一直以来,我都不太当那些什么教程是教程,经常只是当成一种资料。而我也从来没有看过什么视频教程,一个是网速太渣,下起来太浪费表情。另一个是我更喜欢看书。请不要认为这是 骄傲,(曾经有人说我“眼睛长到额头上了”),我只是想表达一种不一样的观点和学习方式。


曾经有写过一两个简单的比较另类的关于51 理解的文章。不过一直都没有好好写一整套全的,认识的一些朋友,有刚刚开始接触51 单片机的,由于他们不是电类专业,经常对51 很陌生,他们问我该怎么学?有没啥教程推荐。于是我就很想把自己对于51 的理解告诉他们,希望他们能有一个整体上的感觉——我想传达一种概念:这种东西就像内功,你看不到它,也很“偷师”什么的,但是拥有它的人,根本不需要什么教程,他需要的除了数据手册就是资料——我是说那些什么寄存器地址啊,寄存器定义 啊之类的设计参考。


这些时间里,正事没干多少,想法乱七八糟。心想还是实实在在做点事情。尽管51 单片机我只能说是基本了解,而且我可能渐渐远离它,但我还是想好好地写这套东西,算是一个自我梳理的过程,如果能对你有帮助,不胜荣幸。


闲话少说,开始正题。在开始讲51 的内容以前,我想先说几个概念:数字(电路),单片机。并试图简单阐述清楚,这个东西,到底是个什么玩意,到底能干什么?假如你有数字电路基础,或者对数制一类的概念清楚,请自行跳过,以免浪费您的时数字这里说的“数字”当然是与“模拟”对应的数字。


最简单的说法,就是用一连串0 和1 组成的数据串计数的记数系统。对比十进制,可以简单理解它。当你看到 “345”这个数字的时候,虽然你不会去想,它有 3 个100,4 个10,5 个1,但你心里一清二楚。(我没查证)我们有十个手指,所以我们拥有了十进制,0 到9.但是,半导体的世界里,它只有 通 和 断 两个状态。所以,它只有二进制。


二进制是什么?二进制是0 和1,二进制是 通 和 断,二进制是 灯亮灯灭。请记住——所谓X 进制,就是有X 个截然不同的状态用于区别,正如我们有十个手指,它们都是不一样的。关于二进制和我们熟悉的十进制之间的转换,其实你可以对比十进制,灵活点的人估计已经猜出来了,假如没有,也不要紧,这样的资料网上,书上多的是,请自行查阅。那么我们的到这些数字有什么用?这里,我以 灯亮灯灭 为例说明。学习51 的入门任务就是点亮LED。很多人也提到自己对51 的兴趣直接来源于那些闪烁的LED。我们可以设计电路,使输入一个信号为1 时,灯灭,为0 时,灯亮(反之亦可)。你看到大街上的红绿灯了吗?假设控制 红黄绿三个颜色的就是一个一个的二进制位的状态。


现在我们定义 这三个位对应 红 绿 黄,1 为灭,0 为亮。 按照 红灯亮 黄灯亮(中间缓冲),绿灯亮 的顺序依次改变。那我们就等于一直在输出3 个3 位二进制数 011 110 101,它们如果换成十进制数是(3,6,5)。单单看这三个数字 3 6 5,如果不告诉你它来源于哪里,不要说你,任谁都猜不到它到底是什么意思。其实事情就是这样——一个数字,一个二进制数字,当我们给每一位赋予了不一定的含义,那些看起来毫无规律莫名其妙的数据就有了意义(特别是十进制形式时。)


当你理解了上述的内容。我首先可以剧透的一个内容是:单片机也好,任何数字系统都好,依我的个人理解,它的核心工作就是处理数字——移动到不一样的位置,修改它,对它进行运算.......而这些最终的目的只有一个——获取和设置我们想要的数字——然后通过它们感知和影响真实的物理世界。

关键字:51单片机  学习教程 引用地址:不一样的51单片机学习教程

上一篇:51单片机定时/计数器使用方法
下一篇:单片机外中断使用方面的题目及其解决方法

推荐阅读最新更新时间:2024-11-10 19:57

51单片机每个引脚功能
RST复位输入 用来完成单片机单片机的复位初始化操作 ALE/(30引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲 PSEN : 外部程序存储器选通信号   当AT89C51RC从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而访问外部数据存储器时,将不被激活。 EA : 访问外部程序存储器控制信号 XTAL1(19引脚):振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2(18引脚):振荡器反相 放大器的输入端。 锁存器(Latch)是一种对脉冲电平敏感的存储单元电路,它们可以在特定输入脉冲电平作用下改变状态。锁存,就是把信号暂存以维持某种电平状态。锁存器的最主要作用是缓
[单片机]
51单片机温控风扇
1.本设计基于STC89C51/52(与AT89S51/52、AT89C51/52通用,可任选)单片机 2.采用DS18B20温度传感器测温,74HC573驱动数码管显示温度和风扇的档位。 3.共3个按键:设置、加、减。按一下设置可以设置上限,再按下设置下限,均可以按键加减调整。 4.利用PWM调速,当温度低于下限时,风扇不转动,当温度处于上、下限之间时1档转动(50%的转速),当温度超过上限时,全速转动。 使用说明: 一共3个按键:设置、加、减 按下设置键的时候才可以加减。 按一下设置键,是设置温度的上限,再按下设置键,是设置温度的下限,再按下设置键是退出并保存。 元件清单: 1)7*9万用板 2)风扇 3)STC89C
[单片机]
<font color='red'>51单片机</font>温控风扇
51单片机中断响应过程举例
CPU响应 中断 时,首先把当前 指令 的下一条 指令 (就是 中断 返回后将要执行的指令)的地址送入堆栈,然后根据中断标记,将相应的中断入口地址送入PC,PC是程序指针,CPU取指令就根据PC中的值,PC中是什么值,就会到什么地方去取指令,所以程序就会转到中断入口处继续执行。这些工作都是由硬件来完成的,不必我们去考虑。这里还有个问题,大家是否注意到,每个中断向量地址只间隔了8个单元,如0003-000B,在如此少的空间中如何完成中断程序呢?很简单,你在中断处安排一个LJMP指令,不就可以把中断程序跳转到任何地方了吗? 一个完整的主程序看起来应该是这样的: 内容来自单片机之家www.dpj100.com ORG 0000H
[单片机]
51单片机 运算能力 测试
几天前在做51循迹小车程序的时候,为了能用得上PID算法,在程序中用了很多浮点数运算。大家都知道51单片机是8位单片机,而浮点数是32位的,当时我就在想,浮点运算用多了会不会影响到小车程序的反应速度和性能呢,当时为了完工,没有多想,只是想着 反正我在程序里也用不到多少,应该不会有太大的影响。 今天一想,为何不来做个测试呢,说做就做,程序很快调通了,测试结果也出来了。 首先说一下我所用的51单片机配置: STC12C5A60S2增强型51单片机, 11.0592M晶振, 1T模式(1个时钟周期执行1条指令,大部分51单片机是12T的,单片机这点和PC不同)。 测试原理: 1.用片上定时器/计数器0实现了一个计时器; 2.记录
[单片机]
#51单片机#数码管静态与动态显示
数码管的静态显示与动态显示 学习数码管的静态与动态显示,首先要清楚,同一个时刻,单片机只能使能一个数码管。 动态显示:轮流点亮数码管,利用人眼的视觉暂留现象,造成多个数码管被点亮的视觉体验。 静态显示:可理解为非动态显示,即不会轮番点亮数码管。在多个数码管的显示中,静态显示的意义不大。 记住:100Hz无闪烁!!! 只要刷新频率大于100Hz,即刷新时间小于10ms,就可以做到无闪烁,这也是动态扫描的硬性指标。 静态显示的演示代码: #include reg52.h //数码管静态显示 unsigned char code LedChar ={//数码管显示的数字0~9 0XC0,0XF9,0XA4,0
[单片机]
#<font color='red'>51单片机</font>#数码管静态与动态显示
基于51单片机的LED呼吸灯设计(定时器)
定时器实现led呼吸灯 实验原理: 灯在高速闪烁时,光信号传入大脑神经,需经过一段短暂的时间,光的作用结束后,视觉形象并不立即消失。每次循环时,前半部分先让亮的时间逐渐增加,暗的时间逐渐减小;后半部分先让亮的时间逐渐减小,暗的时间逐渐增加,如此循环即可 #include reg52.h //此文件中定义了单片机的一些特殊功能寄存器 typedef unsigned int u16; //对数据类型进行声明定义 typedef unsigned char u8; #define LED P2 //总线法点灯 void delay(u16 i) //延时函数 { while(i--); }
[单片机]
51单片机心形灯实现花样流水编程
心形灯原理图 编译软件:Keil uVision5 (如有需要可点此链接下载:https://download.csdn.net/download/qq_36931762/11343174) 单片机程序下载软件:STC-ISP (如有需要可点此链接下载:https://download.csdn.net/download/qq_36931762/11343157) 程序代码: #include reg51.h #include intrins.h unsigned char code table ={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f}; void De
[单片机]
<font color='red'>51单片机</font>心形灯实现花样流水编程
AT89S51单片机的低频信号仿真研究
1 设计目标和思路 文中设计目标是完成4种波形信号输出,即正弦波、三角波、方波和锯齿波,并使其在低频范围内具有稳定稳定性好、性能可靠、体积较小、占空比调节方便等技术优势。文中采用键盘控制的办法,来实现并输出方波、锯齿波、三角波和正弦波等信号。另外,对频率和幅值的变换情况,用键盘也能够较好的进行控制和调整。同时,本文还将其产生的信号参数用LCD进行仿真显示和调试。 在设计中,首先在函数中对某个数组附值,利用DAC0832来实现输出波形信号输出转换,再经过功放滤波模块处理,这样的话,就会在示波器上观察到不同函数值的波形信号。但是,因为函数对数组中的数附值之后并不是一次就输出显示出来,这就需要编写AT89S51的控制字,使其开中
[单片机]
AT89S<font color='red'>51单片机</font>的低频信号仿真研究
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved