科普|流水灯的制作
工欲善其事,必先利其器。
(似乎好多教程都是这么开头的)
在今天的培训里,我们决定来谈谈如何做一个——
流水灯
01 需要的设备
首先出场的选手是我们的51单片机。
看他整齐的脚步,就知道他实力非凡了。
根据百度百科的描述,单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机......
停停停,能说的简单一点吗?
好吧,单片机就是一台小电脑,负责给端口输出指令。够简单了吧!
接下来出场的是我们的第二位选手——LED灯,也叫发光二极管。
(当然咯,流水灯总得有灯吧。)
第三位是我们的限流电阻。电阻是什么大家应该都清楚吧。就不多介绍了~
然后是最小系统板。最小系统板由多个外围模块组成,单片机芯片(P0口需要外接上一个排阻才能正常工作,当然了,最小系统板上已经接好了),时钟电路,复位电路。
第五个是串口下载器,玩单片机必备神器,可用于下载程序以及单片机与电脑通讯。
接下来是洞洞板,用于实验电路的焊接。
最后!我们需要一款叫作keil的软件,用于单片机程序编写。我这里用的是keil3。
好了,设备齐全之后,是时候说说到底怎么做了~
02 基本做法
首先当然是安装好keil啦。
接下来,我来一步一步教大家如何来写这个程序。
首先,我们需要创建一个新的工程(注意,是工程不是文件)。
芯片选择由于软件没有给出stc的芯片类型,所以我们这里选择一个内核相同的就可以了,比如89c52。
接下来,我们需要新建一个文件,并保存为.c后缀。
加入到工程里,在左边窗口展开Target 1并右击Source Group 1
点击add files to group
在弹出的窗口中找到刚刚保存的文件,点击ADD将其加入到工程中。
(在这里按完add之后文件已经加入,但是窗口并不会收起。)
接下来就可以真正地开始敲代码了。
#include<reg52.h>
#include<intrins.h>
void delay(unsigned int); //声明子函数
//如果不想写那么长的变量类型可以用宏定义,这里我为了方便大家理解就不用了
unsigned char led;//定义变量储存led的状态
void main()
{
led = 0xfe;
while(1)
{
P1 = led;
delay(500); //调用子函数
led = _crol_(led, 1); //将变量led左移一位,使下一个灯亮
}
}
void delay(unsigned int xms)
{
unsigned int i , j;
for(i=xms;i>0;i--)
for(j=110;j>0;j--);
//这里的延时是通过占用周期实现的,数值的计算出设计晶振和机器时钟等知识,由于这是入门级教程,因此不多赘述,有兴趣的同学可以自己了解