第一课,了解单片机及单片机的控制原理和 DX516 的用法,控制一个 LED 灯的亮和灭
本章学习内容:
单片机基本原理,如何使用 DX516 仿真器,如何编程点亮和灭掉一个 LED 灯,如何进入 KEILC51uV
调试环境,如何使用单步,断点,全速,停止的调试方法
聂小猛 2006 年 6 月
单片机现在是越来越普及了,学习单片机的热潮也一阵阵赶来,许多人因为工作需要或者个人兴趣需
要学习单片机。可以说,掌握了单片机开发,就多了一个饭碗。
51 单片机已经有 30 多年的历史了,在中国,高校的单片机课程大多数都是 51,而 51 经过这么多年的
发展,也增长了许多的系列,功能上有了许多改进,也扩展出了不少分支。而国内书店的单片机专架上,
也大多数都是 51 系列。可以预见,51 单片机在市场上只会越来越多,功能只会越来越丰富,在可以预见的
数十年内是不可能会消失的。
作为一个初学者,如何单片机入门?需要那些知识和设备呢?知识上,其实不需要多少东西,会简单
的 C 语言,知道 51 单片机的基本结构就可以了。一般的大学毕业生都可以快速入门,自学过这 2 门课程的
高中生也够条件。
就算你没有学过单片机课程,只掌握了 C 语言的皮毛,通过本系列的教程,您也会逐渐的进入单片机
的大门。当然在学习的过程中,您还是必须多去研读单片机书籍,了解他们的基本结构及工作方式。
下面以 51 为例来了解一下单片机是什么东西,控制原理又是什么?
在数字电路中,电压信号只有两种情况,高电平和低电平,用数字来记录就是 1 和 0。单片机内部的
CPU,寄存器,总线等等结构都是通过 1 和 0 两种信号来运作的,数据也是以 1 或者 0 来保存的。单片机
的输入输出管脚,也就是 IO 口,也是只输出或识别 1 和 0 两种信号,也就是高电平和低电平。当单片机输
出一个或一组电平信号到 IO 口后,外部的设备就可以读到这些信号,并进行相应操作,这就是单片机对外
部的控制。当外部一个或一组电平信号送到单片机的 IO 口时,单片机也可以读到这些信号,并进行分析操
作,这就是单片机对外部设备信号的读取。当然实际的操作中,这些信号可能十分复杂,必须严格地按照
规定的时间顺序(时序)输入输出。每种设备也都规定了自己的时序,只要都严格遵守,就可以控制任何
设备,做出只要你想象得出的任何事情。
您可能会再问,我如何让单片机去控制和分析外部设备呢?答案是程序,您可以编写相关的程序,并
且把他们烧写到单片机内部的程序空间,单片机在上电时,就会一步一步按照您写的程序去执行指令,做
您想做的事情。
在 51 标准芯片中,有 32 个输入输出 IO,分为 4 组,每组 8 个,分别为 P0 口,P1 口,P2 口,P3 口。
P1 口的 8 条脚就用 P1.0 至 P1.7 表示,其余类似。51 就是用这 32 个口来完成所有外部操作的。对于 51 的
内部结构,如果您已经了解,那是最好;如果不懂,也可以先放下,在完成了本教程开始的几个章节之后,
您就会大有兴趣,自己去寻找资料阅读了。当然,如果您希望成为一个优秀的单片机开发程序员,还是必
须熟悉单片机的内部结构及工作原理,切不可偷懒!
在这一章,您将用程序去控制一个 LED 发光管的亮和灭。你应该知道,LED 发光管在通过一定电流时
亮,不通电就灭。为了不让 LED 通过太大的电流把它烧坏,我们还要串上限流电阻。51 的 IO 是弱上拉的
方式,在输出高电平时,只能输出几十微安的电流到地,而在输出低电平时,VCC 电源可以输入几十毫安
的电流到 IO。一般 LED 需要 10 毫安左右电流点亮,我们就将 LED 接在电源 VCC 和 IO 口之间,中间串
上电阻,当 IO 输出低电平时,灯就亮了,反之,灯就灭了。我们在这个程序里要控制的是 P1.0。请参考一
下我们将要使用的试验板的电路图,这个试验板是在购买 dx516 仿真器是赠送的。