01
新建工程与点亮LED小灯,LED小灯即发光二极管,它具有单向导电性,对于发光二极管而言,需要根据它的压降与额定电流来选择合适的限流电阻,打开Keil4软件,选择Project,New uVision Project
![964d8533aafd68c50a7093c1b3be3778.png](https://i-blog.csdnimg.cn/blog_migrate/e00c24b40ad3f2508c6450922ea8ca90.jpeg)
选定工程的保存路径,并给工程命名,保存类型默认.uvproj,点击保存
![38c75d0a1105b70ee67ec8f38b853ee8.png](https://i-blog.csdnimg.cn/blog_migrate/115323f77cb08106ac3e8c0c24ee52f6.jpeg)
出现如下对话框,点击下拉按钮,选择STC MCU Database,点击OK
![06d0f3469ce4d99094b36e131f00ae3b.png](https://i-blog.csdnimg.cn/blog_migrate/a149317cfee14ddee2f449c6712e3214.jpeg)
选择STC89C52RC,点击OK
![5b88583228f563fac992e913a58c07c3.png](https://i-blog.csdnimg.cn/blog_migrate/d8777c5bea6c989979c802e3fe46e122.jpeg)
选择否
![69d2c71bb41c980bca14d33cfaab391b.png](https://i-blog.csdnimg.cn/blog_migrate/d8048312d4d657f267e8ec7bf6c7b5f7.jpeg)
点击New,生成一个Text1文件
![d9cb93fbf2bf70542efb0edcfe460921.png](https://i-blog.csdnimg.cn/blog_migrate/65f1acdf096653086970e6dff8bb448e.jpeg)
点击 File, Save, 出现如下对话框,将文件命名为后缀为.c的文件,默认保存类型,点击保存
![395aff563689d1ff0ce858ae43a9a282.png](https://i-blog.csdnimg.cn/blog_migrate/f61d4de0f458352d94b236b22d585347.jpeg)
点击Target 1前面的加号,在Source Group 1上右击,选择Add Files to Group'Source Group 1'
![b6f4739266d9de2081c60bcf716e2cd7.png](https://i-blog.csdnimg.cn/blog_migrate/e43aa822ecc04de7e2d2213166864f58.jpeg)
选择刚刚保存的以.c为后缀的文件,点击Add,然后关闭窗口
![42ed852f21ddd70c53cfd99184a53126.png](https://i-blog.csdnimg.cn/blog_migrate/5ef585b4affa3d5126fd574d31fd4802.jpeg)
点击Source Group 1前面的加号,会发现下面多了刚刚添加的.c文件
![d92780b2b08f993baaf664ccea693c28.png](https://i-blog.csdnimg.cn/blog_migrate/68e11075edf27fc69636e2441f82c5a0.jpeg)
在右侧文本框中写入程序
![68bf3b780a6f9813582175d77553a2a0.png](https://i-blog.csdnimg.cn/blog_migrate/23f6dc2ceab711542468f72b42d382cb.jpeg)
点击Target Options按钮
![50fe456e0a762c16a43f8657752ed2d8.png](https://i-blog.csdnimg.cn/blog_migrate/df5037cf6a7fda8f76e846c9d20b0061.jpeg)
在Output标签页勾选Create HEX File,点击OK
![f8c5ec344bb4625b46fdfdcbb2d527f8.png](https://i-blog.csdnimg.cn/blog_migrate/f3dfaee37063e0e55ee4adf321245ade.jpeg)
点击Rebuild按钮,可以看到最下方Build Output对话框出现已经生成hex文件的信息,以及0个错误,0个警告的信息
![a5bc40e3e40cad77cf7da85c6e556ac9.png](https://i-blog.csdnimg.cn/blog_migrate/434f339350e2dc02cb2218b9b56cc8ba.jpeg)
打开STC-ISP软件,选择单片机型号为STC89C52,串口号就是安装了USB转串口驱动之后虚拟的COM口,可在计算机管理-设备管理器-端口中查看
![6ee864cdf4cbd89ca40697ab6d5b5fde.png](https://i-blog.csdnimg.cn/blog_migrate/0ffa0a09dff9dc0503a3549924d1ab57.jpeg)
点击打开程序文件,选择工程的存储路径,可以看到工程文件夹下有一个hex文件,打开它
![fcb74d8b42988003f723f90950286caf.png](https://i-blog.csdnimg.cn/blog_migrate/5fdecf0ddc8b93142dfae058e09c1e0b.jpeg)
点击下载/编程按钮
![7a4cfc3987677c14736e851deab7da2a.png](https://i-blog.csdnimg.cn/blog_migrate/4d5f44fb88fbd4f8663da13c3669c0e9.jpeg)
打开单片机开发板的开关,可以看到操作成功提示,LED小灯被成功点亮
![4cc695dcea96b12612df363e494fb0f8.png](https://i-blog.csdnimg.cn/blog_migrate/e2652dbde16db1e4f8daa9d0d7016a7f.jpeg)
![6a7426dc809dee7036d2f7c113f3e3cb.png](https://i-blog.csdnimg.cn/blog_migrate/b1979542701c8ed628c0bfff1cecbe48.jpeg)
以下是点亮LED小灯的程序
![0cd32320dfbea26d16107f406f757911.png](https://i-blog.csdnimg.cn/blog_migrate/c560b8d2234a66da29fcd47eda088030.jpeg)
下面是开发板原理图的LED显示电路,由于发光二极管的单向导电性,决定了LED小灯是低电平点亮,因此在main函数中给LED1低电平,就可以点亮小灯;然后利用while(1)进行无限循环,保持LED小灯一直是亮的;sbit是定义特殊功能寄存器的位变量,将P1^0另起名为LED1,以便进行位操作
![4e32cf42e9823282f6b9399e9f850d30.png](https://i-blog.csdnimg.cn/blog_migrate/ff83cda9252442b65f2895130335070a.jpeg)
02
让LED小灯闪烁起来
新建一个工程,写入如下程序,整个新建工程的过程如上
![79e95780e7c68c092ccd47c883296ea5.png](https://i-blog.csdnimg.cn/blog_migrate/3663f8741c9b4dc70ef183ceda4ca09e.jpeg)
typedef用于为已有类型创建一个别名,便于后面使用;Delay为延时函数,利用循环结构不断地进行空跑,从而实现延时,这里的延时为粗计算,后文将介绍如何利用定时器进行精确延时;main函数中不断地循环着将8个LED灯全部点亮,延时保持,又将8个LED灯全部熄灭,延时保持的整个过程,以实现在人眼中的闪烁现象;0x00与0xff均为十六进制数,表示为二进制即00000000与11111111
03
LED流水灯
新建一个工程,写入如下程序
![d7f72061a077fa9f488a87249ca206c1.png](https://i-blog.csdnimg.cn/blog_migrate/a65b7839c01bc72f14d4f8e19e3d9bb1.jpeg)
其中<
04
LED跑马灯
新建一个工程,写入如下程序
![0bc6b42ce472d9fa1db4971babbf9b2b.png](https://i-blog.csdnimg.cn/blog_migrate/36943a0e3744b29a61e49e7c79c655fd.jpeg)
_crol_()函数包含于intrins.h头文件中,因此程序需要添加#include ,P1=_crol_(P1,1)表示每次将P1循环左移1位,P1由11111110,依次变为11111101,11111011,11110111,11101111,11011111,10111111,01111111,然后重复循环