点亮LED灯
新建一个工程
这个时候需要我们选择工程地址,为了方便学习,我建议在桌面建立一个Keil Project的文件夹,在里面存放我们的工程。建立工程之前,需要提前创建工程文件夹,不然我们的工程文件会散落在Keil Project的文件夹里。创建文件夹的快捷键:Ctrl+shift+n或者鼠标右键->w->f
这里我建立的工程名字叫做Light_led
接下来需要我们选择固件库,来生成工程所需的底层文件(这样的说法有些不太准确,不过可以先这样理解),我目前用到的开发板是ST89C51,是国产的开发板,而keil对我们国家的产品不太友好,我们不能直接找到对应的Decice。
我们需要选择Legacy Device Database [no RTE],他的意思是传统设备数据库
我们找到Atmel(较旧版本keil在这个文件夹下)或者Microchip(新版本的keil在这个文件夹下),选择AT89C51
接下来会询问我们是否赋值启动文件在工程内,一般启动文件我们不需要修改,所以选择是,这个时候我们会看到如下页面
这里分享一下调整字体的小方法:按住Ctrl,同时鼠标滚轮滚动,可以调节字体大小,或者在设置里面选择 “字体和颜色”,选择“C编辑器”,然后来改变字体大小
这样我们就完成了一个工程的建立,每次建立工程都可以按照这种方式。后续再来学习写代码的技巧。
LED简介
Light Emitting Diode,发光二极管,可以用于照明、广告灯、指引灯、屏幕
直插式LED
一般长脚为正极,短脚为负极
贴片或者板载LED
点亮LED灯
VCC代表5V电压,是MCU(以后就管单片机叫MCU)内置的电源。图中的电阻471代表47×1 0 1 10^110
1 ,即470omh(欧姆),电阻的表示法以此类推。
我们可以看出,P20到P27共8个接口都接着LED灯,我们控制这八个接口的高低电平输出,就可以控制灯的亮灭。P2是这一系列寄存器组的代号,它有八位,分别命名为P20~P27.
说人话,如果我们的管脚口比如P20输出低电平,那么它就和VCC,470omh电阻以及我们的LED灯形成通路,灯就会亮;如果我们输出高电平,那么它的电压和VCC是一样的,电路没有通,灯就不会灭。
而我们可以通过代码来控制一大堆寄存器,寄存器内保存的数据,就是我们管脚口的输出情况。
尝试写代码
假如我们要让P20亮,其它灭,我们需要给P20低电平,即置0,其它管脚口置1。我们说过MCU的管脚口可以用二进制数来表示,那么代码就可以这样写,意思很明了,就是P20赋值0,P21~P27赋值1:
P2 = 1111 1110
但是我们C语言一般是识别十进制的,这段代码会被认为是一个十进制的数据赋值给P2,显然不符合要求。
我们也知道,四位二进制数是可以转换为一位十六进制数,为了简单表示,我们仅用两位十六进制数来表示我们的数据。
在数字前面加上0x,就可以将它强制转换为十六进制。二进制11110000相当于十六进制FE,这样代码就可以写成这样:
P2 = 0xFE
头文件
上面的代码写好后,显然是不能直接运行的,因为keil是不认识P2这个变量的,我们需要加入头文件来让keil认识这些管脚口的名字。在main.c最上面加上:
#include<REGX52.H>
这个头文件我们之前提到过,里面是对芯片的基础配置,我们可以打开它看看:
下载(烧录)程序
现象
原理图文件
链接:https://pan.baidu.com/s/1KNwZTbMCql8GgxdCFtteJA?pwd=g831
提取码:g831
–来自百度网盘超级会员V2的分享
有问题请朋友们在评论区留言讨论,我看到后会及时回复!!
感谢阅读!
————————————————
版权声明:本文为CSDN博主「孤心亦暖」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Destiny_Di/article/details/126716031