单片机是就是在一片半导体硅片上,集成了
中央处理单元(CPU)
存储器(RAM、ROM)
中断系统
定时器/计数器
并行I/O
串行I/O
时钟电路
系统总线
(别看人家尺寸很小,五脏俱全喔~)
用于测控领域的单片微型计算机!
简单来说,单片机就是一台迷你的计算机主机,个头小,能力当然也就没有那么强啦!但是千万不要小瞧它哦!就像超能陆战队里的小机器人一样,数量大起来,威力可是连大型计算机也无法比拟的!
关于这个小东西,也有很多称呼,国际名“嵌入式控制器”(EMCU)或“微控制器”(MCU),本土小名就是“单片机”,土里土气,没有道理。
单片机的问世就是计算机技术发展史上的大事件,区分开了我们一般见到的通用计算机和嵌入式计算机。因为单片机体积小,价格便宜,人们最最最喜欢用它来制造一些奇思妙想的小零件,小设备或者功能简单的大型设备中,看起来就像被嵌入进去的小东西,所以嵌入式计算机的名号就响亮起来咯!
敲黑板的知识点:
单片机按照用途可分为两大类:通用型和专用型,物如其名,通用型就是很通用的哦!只要客户您满意就可以随心所欲的对其进行改造,通过单片机的接口,随便从某位大佬手中找份代码就可以制作出自己满意的小玩具,换换代码就能再玩几周,新鲜劲儿永存,光辉不灭!专用型则是针对特定产品制造的单片机了。要想玩得欢,当然选通用!其实两者最大的差距就是,专用型只有设计好的、精简硬件结构,而通用型呢?能实现大多数功能。使用单片机制作一个玩具,没有用到的软硬件就算浪费掉了,所以通用型也就更适合重复使用哦!
是不是知识高速输入,强大的力量让客官您血脉膨胀,坚持下去,定能打通任督二脉,习得绝世神功,做出来超赞小作品,馋哭隔壁小屁孩,拿到社区最赞手工制作小达人,全家称赞,闻名远近!要想玩的溜,知识得学够!
如何专业的选择一款单片机上手正如之前所说,单片机就像一台主机一样,想要细致的选择一款单片机,需要考虑的方面的买一台电脑差不多,不过考虑的因素还是少很多,毕竟单片机相比电脑小太多啦!单片机发展了这么多年,它本身具有的品牌和系列远多于电脑,就像买新电脑一样,你永远买不到最好的那一款(土豪请忽略,只是贫穷限制了我组织语言的能力),但你想要买到最适合自己的那一款却很简单,适合自己的才是最好的,了解自己的需求才有挑选的标准可言。
让我们了解一下单片机基本的系列吧最最最被普遍使用的的两个系列:
MCS-51 和 AT89S5X系列单片机
(一定要记住!不知道他俩,你就对这股可怕的力量一无所知!)
如果你记住了名字,我们的时尚手工达人就成功了一半!再有选择性的记住一些靠谱的知识点,就可以知道他们是啥了。
MCS-51:——(C代表CMOS工艺)
基本型产品主要包括8031/8051/8751(对应的CMOS工艺的低功耗型为80C31/80C51/80C71和增强型产品8032/8052/8072)
AT89S5X:——(S代表含有串行下载的Flash存储器)
AT89C5X系列已经不再生产,可直接用对应的S系列替换,时钟频率和运算速度都有很大的提高。AT89S52单片机是一款代表机型。
AT89XXXX系列单片机型号说明:
示例:AT89S52-24PU
1)前缀:
AT——ATMEL公司产品
2)型号:
89——8 单片,9 内部含有flash存储器;
C:CMOS产品 LV:低电压产品,可在2.5电压下工作 S:表示含有串行下载的Flash存储器;
“XXXX”:表示器件型号
3)后缀:由最后四个参数组成
前两个数表示时钟频率为12MHz或24MHz
第三位表示封装:
P:塑料双列直插DIP封装
A:TQFP封装
J:PLCC封装
Q:PQFP封装
W:裸芯片
最后是温度范围,工作温度范围随C-U-I-A-M等级依次增加
单片机实在是太多了,但是学习的方法都是一样的一通百通,除了经典的51系列,还有两个有趣的:
(1)嵌入式DSP处理器擅长实现各种数字信号处理运算;
(2)嵌入式微处理器的基础是通用计算机中的CPU。
如果你耐心地看完上边的知识还记得住MCS51和AT89S52你就已经入门了!你真的好棒!接下来让我们以最最最经典的AT89S52继续我们的世界探索之旅吧!
首先,存住!
一个优秀的硬件设计员, 应该头上不是头发,而是硬件的结构图!
只有牢记你的对象,你的编程才能随心所欲!
众所周知, 计算机是只认0和1的, 面对只具有简化的功能的单片机, 我们更要从基础出发, 在编程的时候, 你想控制灯的亮灭, 不是考虑怎么实现关灯, 而是怎么让单片机将你的命令翻译成0输出(一般0为灭, 1为亮).
之前已经见过单片机的各种封装方式, 当我们见到单片机时我们并不需要直接面对它复杂的电路设计和具体功能的硬件实现, 它的内部结构只需要我们在编程的时候记得, 因为我们需要知道控制一个开关开合的时候, 需要将数据送到哪处理并输出, 达成目的.
所以,我们需要记得的就是我们需要调用的功能硬件和输入输出的通接口, 我们用接口转移数据, 用内部结构进行我们的逻辑实现.
引脚的分类AT89S52共有44个引脚,有4个引脚是没有用处的标记为"NC", 其他的40只引脚按功能分为三类:
1)电源及时钟引脚
Vcc 接+5V电源
Vss 接数字地
XTAL1 片内时钟振荡器的反相放大器的输入端
XTAL2 片内时钟振荡器的反相放大器的输出端
2)控制引脚
PSEN 当访问片外程序存储器读取指令码时,每个时钟周期产生两次有效信号.;
ALE/PROG ALE的负跳变将P0口变为8位数据总线用(分时复用); PROG是对片内Flash进行编程时, 该引脚接入编程脉冲输入端;
EA/Vpp EA=1可读取片内外的程序存储器, EA=0时只能读取片外内容; Vpp是对片内Flash进行编程时, 该引脚接入编程电压;
RST(RESET) 复位信号输入端, 高电平持续2个机器周期有效;
3)I/O口引脚 P0 P1 P2 P3 4个八位并行I/O口的外部引脚
只有P0是双向口,其他是准双向口。
CPUAT89S52的CPU由运算器和控制器组成。
运算器主要用来对操作数进行算术、逻辑和位操作运算。主要包括算术逻辑运算单元ALU、累加器、位处理器、程序状态字寄存器PSW及两个暂存器等。
ALU功能强可进行8位变量的逻辑运算和基本算术运算还具有位操作功能。
累加器A是一个8位寄存器,是32个特殊功能寄存器之一.1)是ALU单元的输入数据源之一,同时又是ALU运算结果的存放单元.2)CPU的数据传送大多数经过累加器A,所以累加器又相当于数据的中转站.
(累加器A的进位位Cy又是位处理器的位累加器)
程序状态字寄存器 PSW :
Cy 进位标志位
Ac 辅助进位标志位
F0 用户使用的标志位
RS1 RS0 4组工作寄存器区选择控制位1和位0
OV 溢出标志位
P 奇偶标志位
控制器的主要任务是识别指令,并根据指令的性质控制单片机片内各部件,从而保证协调工作.
控制器主要包括程序计数器, 指令寄存器, 指令译码器, 定时及控制电路等. 功能就是控制指令的读入, 译码, 执行, 从而对单片机的各功能部件进行定时和逻辑控制.
程序计数器PC是控制器中最基本的寄存器, 是程序存储器中的地址指针,PC是一个单独的16位计数器,用户不能直接使用指令对PC进行访问,当程序复位时,PC的内容变为0000H。PC也称程序指针。
程序计数器的计数宽度决定了访问程序存储器的地址范围。
存储器的结构程序存储器分为片内和片外两部分,AT89S52有8KB的flash存储器可在线编程(ISP),还可在外部最多扩展64KB的程序存储器。
(程序存储器的某些单元被固定用于各中断源的中断服务程序的入口地址,中断入口地址和0000H的起始地址存放的都是跳转指令。)
数据存储器片内有256B的RAM,片外最多可扩展64KB的RAM。
牢记!
特殊功能寄存器有32个,SFR反映片内的实际工作情况。
(凡是可进行位寻址的SFR。其字节地址的末位只能是0H或8H)
位地址空间共有219个可寻址位,它们位于片内RAM区字节地址20H~2FH(128位)和特殊功能寄存器区中离散分布在80H~FFH的91个可寻址位(凡是可寻址的特殊功能寄存器,其最低位的位地址与其字节地址相同)。
介绍6个特殊功能寄存器:
1)堆栈指针SP:堆栈只能设在片内的RAM区,单片机复位后SP的内容为07H,堆栈实际上从08H单元开始,但为了避免和08H~1FH单元的三组工作寄存器区冲突,所以,单片机复位后,首先把SP的值改为60H。
堆栈主要是为了子程序调用和中断操作而设立的,有两个功能:保护断点和现场保护。
堆栈有两种操作,一种是数据压入(PUSH),一种是数据弹出(POP)。
2)寄存器B,单片机在进行乘除操作时要使用寄存器B,不执行乘除时,可作为普通寄存器来使用。
3)AUXR寄存器是辅助寄存器
disale:ALE的禁止允许位
disrto:看门狗定时器WDT溢出时的复位输出
wdidle:WDT在空闲模式下的控制位
4)数据指针DPTR0和DPTR1为双数据指针寄存器,为方便访问数据存储器而设置。AUXR1的DPS位用于选择这两个指针。
5)AUXR1是辅助存储器
6)看门狗定时器WDT:防止程序陷入死循环或者跑飞的状态。
并行I/O端口AT89S52共有4个双向的8位并行I/O端口,即P0,P1.P2.,P3特殊功能寄存器就是这4个端口的输出锁存器。4个端口除了按字节输入/输出外还可按位寻址,便于实现位控功能。
P0总结:双功能口
1)当P0作为地址/数据总线口使用时,是一个真正的双向口,用作与外部扩展的存储器或I/O连接,输出低8位地址和输出/输入8位数据。
2)当P0作为通用I/O口时,各引脚需要在片外接上拉电阻,此时端口不存在高阻抗的悬浮状态,因此是一个准双向口。
P1总结:通用I/O端口
P1口由于又内部上拉电阻,没有高阻抗输入状态,故为准双向口。作为输出口时,不需要在片外接上拉电阻。
P1口“读引脚”输入时,必须先向P1口的锁存器写入1。
P2总结:双功能口
1)P2口作为高8位地址总线使用时,可输出外部存储器或I/O的高八位地址,与P0输出并经锁存器的锁存的低8位地址一起构成16位地址,共可寻址64KB的片外地址空间。当P2口作为高8位地址输出口时,输出锁存器的内容保持不变。
2)P2口作为通用I/O口使用时为准双向口,功能与P1口一样。
P3口总结:第二输出功能和第二输入功能
P3口内部有上拉电阻,不存在高阻抗的输入状态,故为准双向口。
P3口的每一个引脚都有第一功能和第二功能,完全由指令控制来自动切换。引脚输入部分有两个缓冲器,第二功能的输入信号取自缓冲器BUF3的输出端,第一功能的输入信号取自缓冲器BUF2的输出端。
时钟电路常用的时钟电路有两种方式,一种是内部时钟方式,一种是外部时钟方式。
AT89S52最高支持的时钟频率为33MHz。
内部时钟方式:XTAL1输入,XTAL2输出,30pF电容,6MHz、12MHz、11.0592MHz的石英晶体。
外部时钟方式:XTAL1接入外部振荡器,XTAL2悬空
时钟周期Tosc是时钟晶体的振荡频率的倒数。
一个机器周期是12个时钟周期,分为6个状态(S)。
指令周期,执行一条指令所需要的时间。
复位操作当单片机复位时,PC被初始化为0000H,单片机的复位速度比外部扩展的I/O接口电路快些,为了保证系统可靠复位,初始化程序会安排复位延迟时间。
片内最小应用系统:8KB闪烁存储器,256B的RAM单元,4个I/O口,外接时钟电路和复位电路即构成了一个AT89S512单片机最小应用系统。
应该在固定时间内不断复位重启单片机,防止不必要的溢出。
单片机有两种低功耗节电模式:空闲模式和掉电模式。在掉电模式下Vcc可由后备电源供电。这两种模式可通过特殊功能寄存器PCON的位IDL和位PD的设置来实现。
1)SMOD 串行通信的波特率选择位
2)GF1、GF0 通用标志位,供用户使用
3)PD 掉电模式控制位,若PD=1进入掉电模式,中断外部中断唤醒和硬件复位。
4)IDL 空闲模式控制位,若IDL=1进入空闲运行模式,中断退出和硬件复位退出。