51单片机的那些事儿(一)
记:笔者在大三下学期开始接触51系列单片机,历时120天的苦苦琢磨,方有小成,回首望去,颇有感慨。现将心得分享一下。希望对广大志同道合之士有所启发和帮助。一,单片机到底是个什么东东初学单片机,很容易被吓到,看着密密麻麻的管脚,还有一堆什么诸如MOV,DJNZAJMPORGEQU等等让人头疼不已的东东,确实摸不着头脑。不用怕,单片机就是一个数字集成电路,一个芯片,可以以一定的频率执行你规划好的一个过程,快速守时,节能高效,并且指令相对精简,过程明了,是一个很给力的助手。单片机具有其工控方面的独特优势,但是由于51系列是8位的,不适合处理多媒体,只可以做一些相对简单的流程控制。说得再简单一些,单片机就是个什么也不知道的孩子,你教他做什么,怎么做,他就一遍遍不厌其烦的重复你教他的东西。二,单片机的内部应用特点单片机的应用很有特点。大体分为IO串行通信,PWM脉宽调制(属于IO的一部分),定时计数,中断这几类。至于IO嘛,就是输入和输出,方式有并行,串行,I2C,PWM脉宽调制等等。以后会一一讲来。(一),基础IO应用单片机最常见的就是IO应用,一片51单片机,共40个引脚,有32个引脚是负责IO的,可见单片机就是一个吞吐数据的黑盒子。单片机首先要看的就是四个IO端口,什么叫端口,就是负责IO管脚与外部沟通的数据寄存器。51单片机有4个IO端口,分别为P0,P1,P2,P3口。我们可以
f直接对这四个寄存器写入数值,控制这32个管脚的电平高低,高就是1,低就是0。这四个端口一共管辖32个管脚,单片机中的布尔操作按位操作是很人性化的,我们可以针对这32个管脚中的某一个管脚进行单独控制。例如,我们让P21管脚位高电平,那么我们就用汇编语句“SETBP21”或者C51语句,“SBITP2_1P21P2_11”即可实现。当然,你会发现,很多集成芯片都是用低电平来控制的,这是为什么呢。C51单片机复位之后,P0,P1P2,P3四个端口的值均被设置为0FF也就是说,那32个输入输出的管脚都被设置为高电平。如果那些外部芯片的使能信号是高电平有效,还没等我们操作,刚复位,那些外部芯片就开始该干嘛干嘛去了,整个系统岂不乱了套。所以,单片机无论是控制外部电路还是从外部读取数据,一般都是对低电平很敏感。例如,我们想通过P11管脚接一个开关来控制P01上面接的LED的亮灭。因为P11复位后初始状态时高电平,所以我们得给它一个低电平,它才知道外部发生了情况,所以,单片r