当前位置:   article > 正文

51单片机学习

51单片机学习

一、什么是单片机

在一片集成电路芯片上集成计算机所有基本部分(中央处理器CPU、存储器RAM、ROM、 定时计数器T/C,输入输出接口IO,中断系统)都集成在一个芯片上,从而构成了单芯片微型计算机,即单片机,也可以叫它 做小电脑 。 由于单片机体积小、可以很方便地装在各 种电子设备、家用电器的内部,因此也叫嵌入式处理器。它主要用于控制,因此被 称为微控制器 (MCU)。

二、单片机能做什么

最直接的就是现在各大互联网厂商都在做的智能家居业务,家里的电灯,电话,电饭煲,空调,窗帘,窗户等等,都可以用单片机进行控制。在工业自动化方面就是数据采集、测控技术。在智能仪表方面是数字示波器、数字信号源、数字万用表、感应电流表。

在生活中的我们已经被各种智能设备包围,这些智能设备单片机更是无处不在,无所不能。

三、编译和编译器

C程序-----编译器-----机器程序

单片机无法识别和运行用C语言写的程序, 单片机只能看懂用机器语言写的程序,因此这里需要一个“翻译”的过程,称为 “编译”。下面的图片是用记事本打开的.hex文件。

四、单片机包含的头文件

头文件中通常有:reg51.h   reg52.h   math.h   ctype.h   stdio.h   stdlib.h   absacc.h

常用有:reg51.h reg52.h

定义特殊功能寄存器和位寄存器

math.h (定义常用数学运算)

单片机的c语言运算符与c基本相同

 + - * / ( 加 减 乘 除 )

> >= < <= (大于 大于等于 小于 小于等于 )

== != (等于 不等于 )

 && || ! (逻辑与 逻辑或 逻辑非 )

>> << (位右移 位左移)

单片机c语言的基本语句

if 选择语句

if语句是指编程语言(包括c语言,C#,VB, 汇编语言等)中用来判定所给定的条件是 否 满足,根据判定的结果(真或假)决定 执行 给出的两种操作之一。

while 循环语句

循环语句,计算机的一种基本循环模式。 当满足条件时进入循环,不满足跳出。

do-while 循环语

do {需执行的代码 } while (变量 <= 结束值 )

do...while 循环是 while 循环的变种。该循环程序在初次运行时会首先执行一遍其中的代码,然后当指定的条件为 true 时,它会继续这个循环。所以可以这么说,do...while 循环为执行至少一遍其中的代码,即使条件为 false,因为其中的代码执行后才会进行条件验证。

for 循环语句

for(表达式1;表达式2;表达式3)语句:/*循环体*/ •

 ①先对表达式1赋初值;

②判别表达式2是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行表达式3,进入第二次循环,再判别表达式2……;否则判断表达式2的值为假,不满足条件,就终止for循环,执行循环体外语句。

switch/case 多分支选择语句

从表达式值等于某个case语句后的值开始,它下方的所有语句都会一直运行,直到遇到一个break为止。随后,switch语句将结束,程序从switch结束大括号之后的第一个语句继续执行,并忽略其他case。

假如任何一个case语句的值都不等于表达式的值,就运行可选标签 default之下的语句。

假如表达式的值和任何一个case标签都不匹配,同时没有发现一个 default标签,程序会跳过整个switch语句,从它的结束大括号之后 的第一个语句继续执行。

五、51单片机

早期51单片机如下图

STC89C52单片机的最小系统

 要使一块单片机芯片工作起来最简陋的接线方式就是单片机的最小系统。下面STC89C52单片机的最小系统(注意:不同封装的单片机引 脚位置不同,下图是DIP40封装)

1、供电电路:40脚接电源+5V,20脚接地,这样 便完成了单片机的供电。

2、选择使用内部ROM:我们下载程序的时候是将 程序下载的单片机内部的ROM里面存放的,将 EA/VPP端接到高电平(+5V),就告诉单片机系统 我们选择的是内部的ROM,这样单片机工作的时候 就会执行内部ROM里面的代码了。如果将EA/VPP 接地,单片机就会执行扩展的外部ROM,我们没有 扩展ROM呀,以后在没有扩展ROM的时候我们都 将它接高电平就OK 。

3、复位电路:复位电路由电阻R1和电容C1组成。复位电路是用以完成单片机的复位初始化操作的(复位单片机RAM和各个寄存器的值的)。也就是说,在单片机还没工作之前,我们先把寄存器的值全部复位成初始的默认值然后再开始工作,避免执行程序的时候发生错乱。那复位电路的工作原理 是怎样的呢?在单片机没上电的时候,电容C1两个极板没有电荷,在单片机上电的瞬间,电容C1两端获得电压开始充电, 既然C1 要充电那么就必定有电流通过R1,所以在R1两端产 生了瞬时 电压,这个电压被加到了单片机的RST端,单片机的RST端得 到了一个高电平便复位了。随着时间的推移,C1充满电了,再也没电流通过R1 了,R1两端便没有了电压,单片机的RST引脚又由高电平变成了低电平,这时,单片机便开始工作了。值得注意的是,要引起单片机的复位,加在 RST端的高电平必须保持在一定的时间以上(连续 2个机器周期以上高电平 )。

4、时钟电路:时钟电路由C2 、C3和晶振Y1组成。时钟电路的作用是给单片机提供时钟脉冲 , 只有给单片机提供时钟脉冲单片机才会执行程序。

STC12C5A60S2单片机的最小系统

 1、STC12C5A60S2内部集成了专用复位电路,外部晶振在12MHZ一下时,RST复位脚可直接接1K欧电阻到地,不需要接电容 。

2 、STC12C5A60S2单片机内部集成RC振荡器作为时钟源,一般情况下不需要外接晶体振荡器,可以直接使用内部RC振荡器。内部RC振荡器的精度不 高,一般5V单片机为11MHZ~15MHZ之间,随温度变化比较大。在以后的章节中会讲到什么情况下不 能使用内部时钟 。

3 、STC12C5A60S2内部ROM的大小为60KB,无需扩展 。

六、51单片机的程序存储器 ROM

1、ROM有什么作用

单片机要执行一系列的指令就必须在单片机的内部某个地方取得指令然后再执行。我们在烧录单片机程序的时候将一个“***.hex”文件烧录到单片机里面了,“***.hex”其实是Keil C51编译器编译后产生的单片机能直接运行的十六进制机器码。那么,***.hex这个文件存放在单片机的哪里呢?就存放在单片机的程序存储器ROM里。(就好比你电脑的硬盘)

程序存储器是个只读存储器:只读存储器在使用时,只能读出而不能写入,断电后ROM中的信息不会丢失。因此一般用来存放一些固定程序及数据表等

ROM也有很多个种类:

1、掩膜ROM
掩膜ROM也称固定ROM,它是由厂家编好程序写入ROM(称固化)供用户使用,用户不能更改内部程序,其特点是价格便宜。
2、可编程的只读存储器(PROM):
它的内容可由用户根据自已所编程序一次性写入,一旦写入,只能读出,而不能再进行更改,这类存储器现在也称为OTPOnly Time Programmable)。
3、可改写的只读存储器EPROM
前两种ROM只能进行一次性写入,因而用户较少使用,目前较为流行的ROM芯片为EPROM。因为它的内容可以通过紫外线照射而彻底擦除,擦除后又可重新写入新的程序。
4、可电改写只读存储器(EEPROM):
EEPROM可用电的方法写入和清除其内容,其编程电压和清除电压均与微机CPU5V工作电压相同,不需另加电压。它既有与RAM一样读写操作简便,又有数据不会因掉电而丢失的优点,因而使用极为方便。现在这种存储器的使用最为广泛。

AOM分部图

七、小结

这次简单介绍了51单片机,博主也会边学习边更新带来更优质的内容。

这次的学习就先到这里啦,博主会据徐更新下一期的知识~~~~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/493756
推荐阅读
相关标签
  

闽ICP备14008679号