零基础玩转51单片机(一):点亮LED小灯

转载自微信公众号:单片机中文网 

01

新建工程与点亮LED小灯,LED小灯即发光二极管,它具有单向导电性,对于发光二极管而言,需要根据它的压降与额定电流来选择合适的限流电阻。打开Keil4软件,选择Project,New uVision Project。                               

零基础玩转51单片机(一):点亮LED小灯_第1张图片

选定工程的保存路径,并给工程命名,保存类型默认.uvproj,点击保存

零基础玩转51单片机(一):点亮LED小灯_第2张图片

出现如下对话框,点击下拉按钮,选择STC MCU Database,点击OK

零基础玩转51单片机(一):点亮LED小灯_第3张图片

选择STC89C52RC,点击OK

零基础玩转51单片机(一):点亮LED小灯_第4张图片

选择否

零基础玩转51单片机(一):点亮LED小灯_第5张图片

点击New,生成一个Text1文件

零基础玩转51单片机(一):点亮LED小灯_第6张图片

点击 File, Save, 出现如下对话框,将文件命名为后缀为.c的文件,默认保存类型,点击保存

零基础玩转51单片机(一):点亮LED小灯_第7张图片

点击Target 1前面的加号,在Source Group 1上右击,选择Add Files to Group'Source Group 1'

零基础玩转51单片机(一):点亮LED小灯_第8张图片

选择刚刚保存的以.c为后缀的文件,点击Add,然后关闭窗口

零基础玩转51单片机(一):点亮LED小灯_第9张图片

点击Source Group 1前面的加号,会发现下面多了刚刚添加的.c文件

零基础玩转51单片机(一):点亮LED小灯_第10张图片

在右侧文本框中写入程序

零基础玩转51单片机(一):点亮LED小灯_第11张图片

点击Target Options按钮

零基础玩转51单片机(一):点亮LED小灯_第12张图片

在Target标签页将晶振改为11.0592

零基础玩转51单片机(一):点亮LED小灯_第13张图片

在Output标签页勾选Create HEX File,点击OK

零基础玩转51单片机(一):点亮LED小灯_第14张图片

点击Rebuild按钮,可以看到最下方Build Output对话框出现已经生成hex文件的信息,以及0个错误,0个警告的信息

零基础玩转51单片机(一):点亮LED小灯_第15张图片

打开STC-ISP软件,选择单片机型号为STC89C52,串口号就是安装了USB转串口驱动之后虚拟的COM口,可在计算机管理-设备管理器-端口中查看

零基础玩转51单片机(一):点亮LED小灯_第16张图片

点击打开程序文件,选择工程的存储路径,可以看到工程文件夹下有一个hex文件,打开它

零基础玩转51单片机(一):点亮LED小灯_第17张图片

点击下载/编程按钮

零基础玩转51单片机(一):点亮LED小灯_第18张图片

打开单片机开发板的开关,可以看到操作成功提示,LED小灯被成功点亮

零基础玩转51单片机(一):点亮LED小灯_第19张图片

零基础玩转51单片机(一):点亮LED小灯_第20张图片

 

以下是点亮LED小灯的程序

零基础玩转51单片机(一):点亮LED小灯_第21张图片

下面是开发板原理图的LED显示电路,由于发光二极管的单向导电性,决定了LED小灯是低电平点亮,因此在main函数中给LED1低电平,就可以点亮小灯;然后利用while(1)进行无限循环,保持LED小灯一直是亮的;sbit是定义特殊功能寄存器的位变量,将P1^0另起名为LED1,以便进行位操作

零基础玩转51单片机(一):点亮LED小灯_第22张图片

 

02

让LED小灯闪烁起来

新建一个工程,写入如下程序,整个新建工程的过程如上

零基础玩转51单片机(一):点亮LED小灯_第23张图片

typedef用于为已有类型创建一个别名,便于后面使用;Delay为延时函数,利用循环结构不断地进行空跑,从而实现延时,这里的延时为粗计算,后文将介绍如何利用定时器进行精确延时;main函数中不断地循环着将8个LED灯全部点亮,延时保持,又将8个LED灯全部熄灭,延时保持的整个过程,以实现在人眼中的闪烁现象;0x00与0xff均为十六进制数,表示为二进制即00000000与11111111

03

LED流水灯

新建一个工程,写入如下程序

零基础玩转51单片机(一):点亮LED小灯_第24张图片

其中<<为左移符号,高位溢出,低位补0,P1<<=1表示经过每一次循环就向左移一位,低位补0,P1由11111111,依次变为11111110,11111100,11111000,11110000,11100000,11000000,10000000,00000000,然后又进行重复循环

 

04

LED跑马灯

新建一个工程,写入如下程序

零基础玩转51单片机(一):点亮LED小灯_第25张图片

_crol_()函数包含于intrins.h头文件中,因此程序需要添加#include ,P1=_crol_(P1,1)表示每次将P1循环左移1位,P1由11111110,依次变为11111101,11111011,11110111,11101111,11011111,10111111,01111111,然后重复循环

你可能感兴趣的:(零基础玩转51单片机(一):点亮LED小灯)