51单片机学习心得

51单片机学习心得

ID:14317838

大小:71.50 KB

页数:12页

时间:2018-07-27

51单片机学习心得_第1页
51单片机学习心得_第2页
51单片机学习心得_第3页
51单片机学习心得_第4页
51单片机学习心得_第5页
资源描述:

《51单片机学习心得》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、51单片机的那些事儿(一)记:笔者在大三下学期开始接触51系列单片机,历时120天的苦苦琢磨,方有小成,回首望去,颇有感慨。现将心得分享一下。希望对广大志同道合之士有所启发和帮助。一,单片机到底是个什么东东初学单片机,很容易被吓到,看着密密麻麻的管脚,还有一堆什么诸如MOV,DJNZ,AJMP,ORG,EQU等等让人头疼不已的东东,确实摸不着头脑。不用怕,单片机就是一个数字集成电路,一个芯片,可以以一定的频率执行你规划好的一个过程,快速守时,节能高效,并且指令相对精简,过程明了,是一个很给力的助手。单片机具有其工控方面的独特优势,但是由于51系列是8位的,不适合处理多媒体,只可

2、以做一些相对简单的流程控制。说得再简单一些,单片机就是个什么也不知道的孩子,你教他做什么,怎么做,他就一遍遍不厌其烦的重复你教他的东西。二,单片机的内部应用特点单片机的应用很有特点。大体分为I/O,串行通信,PWM脉宽调制(属于I/O的一部分),定时/计数,中断这几类。至于I/O嘛,就是输入和输出,方式有并行,串行,I2C,PWM脉宽调制等等。以后会一一讲来。(一),基础I/O应用单片机最常见的就是I/O应用,一片51单片机,共40个引脚,有32个引脚是负责I/O的,可见单片机就是一个吞吐数据的黑盒子。单片机首先要看的就是四个I/O端口,什么叫端口,就是负责I/O管脚与外部沟通

3、的数据寄存器。51单片机有4个I/O端口,分别为P0,P1,P2,P3口。我们可以直接对这四个寄存器写入数值,控制这32个管脚的电平高低,高就是1,低就是0。这四个端口一共管辖32个管脚,单片机中的布尔操作(按位操作)是很人性化的,我们可以针对这32个管脚中的某一个管脚进行单独控制。例如,我们让P2.1管脚位高电平,那么我们就用汇编语句“SETBP2.1”或者C51语句,“SBITP2_1=P2^1P2_1=1”即可实现。当然,你会发现,很多集成芯片都是用低电平来控制的,这是为什么呢。C51单片机复位之后,P0,P1,P2,P3四个端口的值均被设置为0FF,也就是说,那32个输

4、入输出的管脚都被设置为高电平。如果那些外部芯片的使能信号是高电平有效,还没等我们操作,刚复位,那些外部芯片就开始该干嘛干嘛去了,整个系统岂不乱了套。所以,单片机无论是控制外部电路还是从外部读取数据,一般都是对低电平很敏感。例如,我们想通过P1.1管脚接一个开关来控制P0.1上面接的LED的亮灭。因为P1.1复位后初始状态时高电平,所以我们得给它一个低电平,它才知道外部发生了情况,所以,单片机在I/O中,低电平是很常用的。一个端口对应了8个管脚,寄存器就有8位,对应那8个管脚的高低电平,哪位是1,哪位就是高电平。如P0拥有8位,分别是P0.0,P0.1,P0.2,P0.3,P0.

5、4,P0.5,P0.6,P0.7。P0中存入的数据也是转化为8位二进制码,最高位对应P0.7,最低位对应P0.0。例如,MOVP0,#7FH,我们发现,7FH转化成二进制是01111111,所以P0.7为低电平,P0.0为高电平。我们用MOV指令向P0,P1,P2,P3四个端口寄存器写入数值,那32个管脚就会对应出现高低电位,1就是高,0就是低。还可以对某一个管脚单独控制高低电位,例如:让P0.0呈现高电位,则SETBP0.0,让3.1出现低电位,则CLRP3.1。通过I/O,我们可以实现彩灯循环,彩灯闪烁等等简单的实验,还可以实现按键控制,包括比较高级的矩阵键盘,数码管,包括

6、更加复杂的LCD1602液晶显示屏的应用。这些具体的例子,后面我们详谈。(二)串行,PWM,定时/计数这几个为什么要混在一起呢,因为这些东东都与定时器有关。在51单片机中,有三个叫定时/计数器的东东十分神奇,为什么呢,因为它们最准时守信用,而且一遍遍不厌其烦的在那里查数。它们是最准确的时间标准。定时/计数器在单片机的应用十分广泛,这也是在测量领域应用较多的地方。顾名思义,定时/计数器的作用就是可以进行定时,也可以计数。什么是定时呢,就是你告诉他从几开始查起,他就开始查数,查到他无法容纳的那个最大值的时候,他开始给你个提醒,然后你再不理他,他就保留在最大的值那里,然后在那里罢工,

7、歇歇脚。超出他所能容纳的数值,就叫做溢出。由于我们不能决定单片机查到多少时候停止,单片机比较傻,只知道查到他能容纳的最大值,不到溢出,他是不会轻易停下来的,所以我们只能依靠改变初始值来得到我们想要的预定时间,单片机每查一个数,消耗的时间是固定的,为一个机器周期,时间是可以算出来的,一般是晶振频率的倒数,再除以12。所以,查了多少个数就消耗了多少个周期,我们就给它个初始值,让其查到最大值,中间查过多少个数,就是多少个周期,总时间就是已知的。定时/计数器的使用,需要设置模式,就是一个叫TMOD的

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。