单片机有很多种,比较常见的有51单片机,AVR,MSP430,PIC,STM32等。现在我将从比较简单易学的51单片机说起,带领大家进入单片机的精彩世界。
20世纪80年代美国Intel公司推出MCS-51系列单片机,包含多个品种,8051单片机就是其中最典型的一种。之后很多公司生产了以8051为核心的单片机,其中最为流行的是美国Atmel公司生产的89C51系列单片机,如图中的AT89C51就是其中最典型的一种型号。后来我国宏晶公司(STC)也推出了STC89C51系列单片机,STC单片机由于价格更低,功能更强大,可使用串口下载程序等优势,在国内非常受欢迎。图中的STC89C51RC就是其中的一种。我们也将以这款单片机为例开始进行介绍。
从上往下依次为:Atmel公司的AT89C51单片机、宏晶公司的STC89C51RC、STC89C52RC单片机
这里简单介绍下STC单片机的命名。前面的STC是公司名;89表示单片机系列;C表示工作电压是3.4~5.5V,如果是LE,则为2~3.8V;后面的数字51表示程序存储空间大小,可为51/52/53/54/58/516;RC表示随机存储器RAM的大小,也可能是RD+。初学时我们不需要考虑很多东西,我们只需要选择STC89C51RC或者STC89C52RC就够用了。
=======================================================
《单片机小白学步》系列教程(原名《单片机入门指南》)介绍
本系列教程从最基本的入门知识开始,逐步深入介绍单片机系统设计,内容包括:
1、入门篇:单片机等基本概念、各种电子设计基本知识
2、思想篇:单片机/计算机系统设计的工程思想
3、学习篇:单片机学习过程、方法和技巧,以51单片机为例介绍,并推广到其他单片机
4、应用篇:遵循规范的工程方法,设计单片机系统实例(计划设计的系统有:计算器、电子表、密码锁、简易手机,具体看有没有时间再确定)
5、原理篇:从模拟电路、数字电路开始,逐步深入介绍单片机/计算机系统原理,并自行设计简易的CPU(由于个人水平有限,这部分没有把握写好,具体内容视情况而定)
教程特点
包含了各种基本知识,尤其是对单片机基本概念的介绍、为什么要用单片机等,在很多同类书籍教程中都被忽略了。同时也包含了一些深入的知识,包括原理篇考虑对单片机的基本原理进行介绍,有助于深入理解单片机。
本系列教程以51单片机为例进行介绍。通过51介绍完单片机的基本知识,我会再把430进行简要介绍,尤其是对比两者之间的优缺点,让大家很快感受到430的巨大优势,而学习51正好为快速了解430打下了坚实的基础。
本系列教程中,介绍单片机各种模块编程知识的主要是学习篇,而学习篇只是整个教程的一部分。在学习篇中我会贯穿各种方法技巧,如何理解一些模块功能,怎么看时序图,严格遵守工程思想进行编程,程序发生了错误怎么调试等等。而在思想篇中会总体介绍很多重要的思想,为后面的学习做好准备工作。
单片机学习过程中,涉及大量的知识,而且很多知识之间相互依赖,关联很强。
本系列教程对知识的先后顺序进行比较明确的规划,尽最大可能符合人的认知过程。但是实际规划时发现,无论怎么调整知识的顺序,总有一些知识之间相互依赖,关系复杂。例如开始讲IO口的时候肯定会提到寄存器,而寄存器这个词的理解,需要深厚的背景知识。但是这些背景知识在没有进行实践的时候也很难理解。
初学者常常就会在这样的地方感觉疑惑不解,不知所措。而每次遇到类似这样的知识,我会向初学者指出,应该如何对待。这个知识是应该自己去学习补充,还是等到学完原理篇再做理解,而现在又应该怎么去看待这个名词。
另外,在整个教程的学习前,需要掌握一定的C语言等基础知识,具体可参考教程第〇篇《序》中的相关说明
http://www.hainter.com/mcu-primer-0
本系列教程力求语言通俗易懂,而不会用一堆新手不懂的词语去解释另一个不懂的词语。但是受限于个人语言表达能力,可能有些地方表述的比较繁琐,或者不清楚,希望大家能够帮忙指出。
关键字:51单片机
引用地址:
单片机小白学步系列三 偶遇51单片机
推荐阅读最新更新时间:2024-03-16 14:54
大虾谈51单片机入门!
回想起当初学习AT89S52的日子还近在眼前:毕业后的第一年呆在亲戚公司做了10个月设备管理.乏味的工作和繁杂的琐事让我郁闷不已.思考很久后终于辞职.投奔我的同学去了,开始并不曾想到要进入工控行业,知识想找一份电子类技术职业,至于什么职业我根本没有目标可言.经过两个多月的挫折后我静下来思考,并上网查询一些前辈经验,又经过快2周的考虑我决定先自学单片机,毕竟电子信息专业的,有一点基础.于是买来了开发板(我还在这个论坛上发过小程序呢),下来了大量的资料,几乎很多是从本论坛下载的,我还是得感觉这么多的前辈啊,他们的经验让新人少走了很多弯路.我说下我的学习过程,每个人有每个人的学习方法,希望至少能给刚进入的朋友们一点信心吧. 语言选择:
[单片机]
51单片机复位电路介绍
复位电路: 当MCS -5l系列单片机的复位引脚RST(全称RESET)出现2个机器周期以上的高电平时,单片机就执行复位操作。如果RST持续为高电平,单片机就处于循环复位状态。 根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。 上电复位要求接通电源后,自动实现复位操作。常用的上电复位电路如下图A中左图所示。图中电容C1和电阻R1对电源十5V来说构成微分电路。上电后,保持RST一段高电平时间,由于单片机内的等效电阻的作用,不用图中电阻R1,也能达到上电复位的操作功能,如下图(A)中右图所示。 上电或开关复位要求电源接通后,单片机自动复位,并
[单片机]
基于MCS-51单片机使用定时器编写时钟程序(汇编)
1、仔细想想还不错的思路 用定时器写一个时钟程序,想想都觉得头大。撇开其他花里胡哨的功能,先从最基本的时间显示开始吧,剩下的以后再说。 我们一般希望的是时钟能不停地计时,在需要的时候调用显示来显示当前时间,同时也可以干其他事,所以当然不能用延时来写,不然这个时钟除了只能显示时间之外就是个废物了。 我们希望每定时到一秒的时候来个中断,在中断里使存储里的时间序列加一秒(时间序列以时分秒各一个字节的方式存储)。51单片机定时器0方式1的最大定时时间是216=65536μs,也就是大约65ms出头。但我们可以每50ms来一次中断,中断到第20次的时候时间序列加一秒;或者每20ms来一次中断,到第50次的时候时间序列加一秒。一般来说
[单片机]
51单片机与A/D转换器MAX195的接口设计
MAX195是16位逐次逼近方式的ADC。它将高精度、高速度、低电源功耗(消耗电流仅10μA)的关闭方式等性能结合在一起。内部校准电路对线性度与偏置误差进行校正,所以无需外部调整便可达到全部额定的性能指标。电容性的DAC结构使之具有特有的85kbps跟踪/保持功能,变换时间仅需9.4μs。三态串行数据输出及引脚可选的单极性(0~VREF)或双极性(-VREF~+VREF)的输入范围使之可广泛应用于便携式仪表、医用信号采集及多传感器测量等系统中。 1 MAX195引脚及说明 MAX195有16个引脚,其排列如图1所示。 2 MAX195转换原理及时序 MAX195片内含有电容性的数字模拟变换器(DAC
[单片机]
51单片机(十七)—— 定时器2寄存器介绍及功能描述
这篇文章,我们对51单片机的定时器2的寄存器和功能进行介绍。 1 定时器2控制寄存器T2CON 定时器2是一个16位定时器/计数器,通过设置特殊功能寄存器T2CON中的C/T2位,可将其作为定时器或计数器。定时器2有3中模式:捕获、自动重新装载(递增或递减计数)和波特率发生器,这3种模式由T2CON进行设置。T2CON寄存器的字节地址为C8H,单片机复位时T2CON全部被清0,T2CON的定义如下表所示。 定时器2控制寄存器T2CON TF2—定时器2溢出标志位。 定时器2溢出时置位,必须由软件清0。当RCLK=1或TCLK=1时,TF2将不会置位。 EXF2—定时器2外部标志。 当EXEN2=1且T2EX
[单片机]
51单片机蜂鸣器演奏《我和我的祖国》
由于同学的需要,于是用51单片机的蜂鸣器功能谱了一首《我和我的祖国》,下面是全部的代码: #include reg52.h sbit beep = P1^5; unsigned char timer0H, timer0L, time; //单片机晶振采用11.0592MHz // 频率-半周期数据表 高八位 本软件共保存了四个八度的28个频率数据 code unsigned char FREQH = { 0xF2, 0xF3, 0xF5, 0xF5, 0xF6, 0xF7, 0xF8, //低音1234567 0xF9, 0xF9, 0xFA, 0xFA, 0xFB, 0xFB, 0xFC, 0xFC,//
[单片机]
与51单片机扩展有关的知识点
这些日子做项目,用到外部ram扩展,很是汗颜,很多基本知识点都不会,现在把不会的东西记下来,做个笔记,也和大家共享,学点知识,更好开发产品。 1.单片机中的关键字_at_:定义变量的存储地址。 2.这段程序是什么意思? #define XBYTE((char*)0x20000L) XBYTE =0x41; define XBYTE ((char*)0x20000L) 定义了XBYTE是个指向地址 0x0000L 的字符型指针(或者数组)变量XBYTE =0x41; 对数组XBYTE的第 0x8000个变量进行赋值,赋值为0x41。即对地址0x8000L的内存单元赋值为0x41。这说明你用的是带外部数据总线的51芯片,外部
[单片机]
51单片机应用中5个常见问题总结
本文就51单片机应用中一些常见问题作个总结,这都是我实际碰到过的,因为文章篇幅所限,这些问题远远不足以表达单片机的常见问题。希望对初学者有所帮助,文中不完善的地方务请指点。谢谢! 1:C51编译器如何区分位地址和字节地址 是靠预定义实现的,比如:sfr P0 = 0x80; sbit P0_0 = 0x80;前者声明了P0端口地址位于0x80,后者说明了P0端口的bit0,即P0.0位于位地址空间0x80处。这2个0x80具有完全不同的含义,靠关键字sfr和sbit来区别。这样当程序被编译时,编译器会依此编译成相应的汇编语言。例如: C51语句: P0 = 1; P0声明为sfr,因此编译成:mov 80h,01h,将把0
[单片机]