1、前面我们已经利用proteus和keil c51建立了第一个仿真实例,并通过仿真运行验证了我们的实例的正确性。
现在我们已经了解了proteus和keil c51的基本操作。
2、但是毕竟是初学单片机,对于我们前面编写的程序所实现的功能可就是一头雾水,不知所云了。
那么接下来我们就了解一下51单片机的知识吧
3、先来简单说说怎么学习单片机。前面已经说过,单片机是一种软件和硬件紧密结合的技术,对于一个单片机应用系统来说,硬件电路是单片机系统运行的基础和保障,软件程序是单片机系统的灵魂。相对于人来说,人的身体、四肢是一个硬件系统,大脑就是软件系统,只有通过大脑发出指令,身体的各个部分才会做出相应的动作,但是如果手被绑住了,大脑即使发出让手去拿一个杯子的指令,手也无法完成这个指令。所以软件和硬件需要相互结合才能够去完成一项任务。
1)就像我们新买了一台电视机一样,买回来后我们会首先了解一下这个电视机的功能特点,看一下遥控器的说明书,给电视机加上电源和天线(或有线电视信号线),然后按照说明书的使用方法来一步一步熟悉和操作电视机。
单片机的学习也一样,我们接触到一种单片机后,首先要了解这种单片机的功能和性能特点,然后才能进行相应的开发设计。怎么来了解一种单片机呢?单片机厂家提供的数据手册是第一手也是最准确的资料。但是很多数据手册是英文的,对于我们很多人来说,看起来会比较吃力。不过幸运的是,现在很多资料都已经被翻译过来了。我们到网上搜索一下,会搜索到很多的中文数据手册和应用实例,所以网络现在已经成为我们学习的一个非常重要的工具和平台了。
2)单片机的结构是十分复杂的,我们打开一个单片机的数据手册,会发现前面里面到处充斥着结构图和理论知识的介绍,相信对于一个新手来说,看数据手册不到10分钟就想放弃。
但是很多人说,这些是最基础的,必须要理解和掌握。确实,这些东西我们必须精通,但是是不是一开始就要完全精通这些呢?大可不必。
我们完全可以看一部分,学一部分,实践一部分。通过不断的实践,达到逐步了解和掌握的目的。
3)对于刚刚接触的一种单片机,首先我们先了解一下它的主要功能,这个主要功能一般在数据手册的第一页就能找到:它主要介绍了单片机有多少I/O口,单片机是几位单片机,他的程序存储区和数据存储区有多大,都有哪些外设功能(如串口、中断、模数转换,I2C等)。
下面我们结合51单片机的主要功能来做个介绍。
4)对于51单片机来说,它的主要功能有:
l8位MCU:mcu是Micro Control Unit的缩写,一般我们把单片机成为MCU,这里的8位指的是单片机处理数据的能力,例如同时有3个皮包,一个人只有两只手,他的能力只能是一只手拿一个包,剩下的一个包就无能为力了。我们常说的单片机的位数也是这个意思。对于8位单片机来说,它一次只能处理8位(这里的位指的是二进制的位,例如01010101就是一个8位的二进制数)数据,多于8位的数据,则需要进行一次以上的处理。
l4KB的程序存储器:顾名思义,程序存储器就是用来存储单片机运行过程中的程序文件的,我们前面编写的那个程序,编译后生成的.hex文件“装入”单片机后,就放在这里。4KB的意思是这个空间的大小是4000个BYTE,BYTE是字节的意思。字节跟我们前面说的“位”都是指的数据格式,一个字节有8位。这里说的4000并不是一个准确的值,在单片机包括计算机里面,一般说的1000实际值是1024,为什么是这样呢?这是因为单片机里面存储的数据都是二进制数据,跟我们实际生活中常用的十进制有所差别。这个我们稍作了解即可。
l内部128B数据存储器:同样的,数据存储器用来存放数据。就像我们上学时候做计算题一样,需要用到很多数来进行各种运算,有时候比较复杂的运算还需要分步进行,每一步都会产生一个运算结果。这些结果存放在哪里呢?在单片机中,这些结果就存放在数据存储区中。51单片机的内部有128B的数据空间,也就是说他可以存储128个字节的数据。
l21个特出功能寄存器:特殊功能寄存器就相当于一个人的身体的各个部分的名称,用来指示不同的功能。
l4个8位并行I/O口,共32根I/O口线:这里可能会有些拗口,怎么一会说4个I/O口,一会又说根I/O口线呢?这其实是跟51单片机是8位单片机有关的,51单片机一次能够处理8位数据,正好对应了8位I/O口,那4个I/O口又是什么意思呢,这其实跟我们的日常习惯有关,比如我们说一个学校有多少个班级,每个班级有多少人一样。51单片机有4个I/O口,每个I/O口又可以细分为8位的,每一位对应一个具体的I/O口线,这样总共就有4*8=32个I/O口线了。
l2个全双工串行口:串行口是一种特殊接口,可以实现用很少的I/O口实现更多的数据输入输出。关于这个,我们在以后学习到这方面知识的时候在详细了解。
l2个16位定时器:定时器其实跟我们日常生活中的钟表相似,但是它的功能比钟表要强大很多。在随后的学习中我们会有更深入的了解
l5个中断源,2个优先级:中断的概念用一句话来比喻就是,我正在看电视,这时电话响了,我不得不中断看电视的动作,然后接听电话,电话结束后,再继续看电视。优先级则是这样的:我正在看电视,电话响了,同时手机也响了,那该先做那个事情呢?我们可以根据轻重缓急来选择,先接听手机,在接听电话,或者先接电话,再接手机,这里面就有优先级的设定和执行了
5)了解了以上知识,我们对单片机的功能有了大致认识,接下来就要具体来认识和操作单片机了,就象人一样,必须先吃饱了饭,才能工作,工作之前要先做好相应的准备,然后按照一定的流程来工作,如果不下心做错了,那就要重新开始再做。
单片机的工作流程也是这样:首先单片机是一种电子器件,那么就必须给他提供电能,他才能够工作,这里就需要有一个电源来提供电能。然后单片机要进行相应的准备:复位和初始化,准备工作就绪后,就开始按照流程来工作了,这个流程就是我们写的程序,在工作过程中需要各种工具来实现具体的操作,这些工具就是指单片机的外围工作电路。
6)单片机是怎么检测和控制外围芯片和电路的?单片机主要是通过其I/O口来监测和控制外部电路的。事实上一个单片机应用系统就是编写相应的程序,用程序来控制单片机的I/O口接收或者发出各种电平信号。从而达到检测和控制外围电路的目的。
所以,想要了解、掌握一个单片机,一定要了解它的I/O口的情况:I/O口的结构、功能、数量等。
7)如下图所示,是一个单片机最小工作系统:首先,要有一个电源给单片机系统供电;其次,要有一个复位电路,一是单片机在开始工作前进行相应的初始化工作;第三,要有一个时钟电路,以使单片机工作在一个稳定、准确、可靠的时间环境下。关于时钟电路的作用,就像我们平时的作息时间一样,我们必须在规定的时间作相应的工作,单片机的时钟电路比我们的作息时间要复杂很多,简单的说,单片机执行程序的每一个步骤,都需要根据时钟的要求进行,每一步需要多长时间,每个多长时间执行什么动作,这些都需要时钟电路的控制来完成。