相信大都数同学都有这样一个情况————玩过单片机,甚至有些还是一直在玩,但是一被问到什么是单片机的时候,就有种“只可意会,不可言传”的感觉。确实,只要我们玩会了它,相信概念都明白,虽然我们不可能全部说清楚。但是要是能有一个整体的理解,那岂不是更好?
什么是单片机呢?
通俗的说,单片机就是一个芯片而已,只是我们可以通过对其编写程序,去控制它进行相应的工作。
单片机这个结构中大致有这几个成员:
1、CPU:中央处理器;
2、ROM(随机存储器):用来存储编写的程序;
3、RAM(只读存储器):用来提供程序执行和运算所需要的空间;
4、I/O口:就是芯片的引脚,通过编程可以实现I/O口输出不同的电平信号(高低电平),从而控制一些其他的外设;
5、寄存器:通过配置寄存器,可以让它执行相应的操作,例如:定时器/计数器;
等等……一系列的功能或者内置模块。
之前看到过别人举过一个例子,大致如下:
小明要参加一场数学考试,那么他需要准备什么呢?草稿纸、笔、手表。同时,在考试之前,还背了大量的计算公式。于是,在这个过程中,计算公式就是程序,小明要通过计算才能得出相应的结果;大脑就是ROM,用来记忆存储计算公式(也就是程序);草稿纸就是RAM,当小明处理问题时,一些计算流程和结果是写在草稿纸上,通过草稿纸体现出来的;小明的手就好比I/O口,用于输出计算得到的结果;手表,便好比计时器,小明跟据考试的时间来合理的分配,比如当在一道题目花费了他预算的时间,那么他就决定放弃!
相信这样一来,我们对单片机的理解就熟悉一些了。
接下来以51单片机为例(89C52):
可见,以上便是STC89C52单片机的原理图。其共有40个引脚,其中有P0P1P2P3四组I/O端口,每组有8个引脚,共有32个 I/O 口,这些I/O口可以通过芯片内部的寄存器控制。如图所示,第20引脚是接GND(地),第40、31引脚是接VCC(+5V电源)、第9引脚是接复位接口、第18、19引脚是接晶振(晶体振荡器,为单片机提供时钟信号);有一些引脚具有其他的引脚功能。例如P3.2引脚,既能作为普通I/O口,又能作为外部中断0的触发引脚(这里以后的博文会详细讲解)。
其实,我们使用单片机去做一系列的工作,实际上就对32个 I/O 口进行控制。更简单的说,就是控制它们,使得它们在特定的时间输出特定的电平(高低电平,两种而已)。这样看来,是不是更加有信心去征服它了!
未完待续……