1. 位定义原理
定义方法:sbit位名称=特殊功能寄存器^位置;
sbit LED1 = P2^0;
符号“^”前面是特殊功能寄存器的名称,后面的数字定义了特殊功能寄存器中可寻址位的位置。 值必须是0~7
P2是连接LED的IO口。 P2^0至7分别对应LED1至8。
2. 代码实现
#包括
//以AT8951单片机为例
//8个LED分别的位定义
sbit LED1 = P2^0;
sbit LED2 = P2^1;
无效主()
//LED为共阳极低电平LED,点亮
LED1=0;
LED2=0;
3. 引脚定义
8051微控制器的40个引脚大致可分为4类:电源块、时钟块、控制块和I/O引脚。
⒈ 电源:
⑴VCC:芯片电源,接+5V电源(一般应为5~12V);
⑵ VSS:接地端GND;
⒉ 时钟:XTAL1、XTAL2:晶振电路的反相输入输出端。
⒊ 控制线:共有4条控制线(单片机入门时无需关注这一条)
⑴ ALE/PROG:地址锁存使能/片内EPROM编程脉冲
① ALE功能:用于锁存P0口送来的低8位地址
② PROG 功能:对于芯片内部带有EPROM 的芯片,EPROM 编程时,该引脚输入编程脉冲。
⑵ PSEN:外部ROM读选通信号。
⑶ RST/VPD:复位/待机电源。
① RST(Reset)功能:复位信号输入端(用于搭建复位电路)。
② VPD 功能:Vcc 断电时连接备用电源。
⑷ EA/Vpp:内部和外部ROM选择/片内EPROM编程电源。
① EA功能:内部和外部ROM选择端。
② Vpp 功能:对于芯片内部带有EPROM 的芯片,在EPROM 编程时,施加编程电源Vpp。
在上面的内容中,您可以学习单片机入门时32个I/O引脚和时钟电路的使用,只需重置电路即可。 剩下的可以在单片机进阶学习过程中重点学习。
⒋ 输入/输出接口:
拿到芯片后,想要使用它,首先要知道如何连接。 我们使用的芯片叫89C51。 我们来看看如何连接它。
(1)电源:这个当然是必不可少的。 单片机采用5V电源,正极接40脚,负极(地)接20脚。时钟电路由晶振组成。 所需的电子元件是一个晶体振荡器和两个 30pF 电容器。
(2)振荡电路:单片机是一个时序电路,必须供给脉冲信号才能正常工作。 微控制器内部集成了一个振荡器。 使用晶体振荡器,连接到引脚 18 (XTAL1) 和 19 (XTAL2); 如下所示 :
(3)复位引脚:如下图所示,复位的含义以及为什么需要复位将在后续单片机功能中介绍。
(4) EA 引脚:EA 引脚连接到正极电源端子。 此时,单片机已连接好,上电,单片机开始工作。 点亮 LED 灯,如下图所示:
代码如下所示:
#include //调用库
sbit k1 = P3^0; //定义开关按钮
sbit L1 = P1^0; //定义LED连接引脚
无效主(无效)
while(1) //循环闪烁
如果(k1==0)
L1=0; //低电平有效,输入0led灯亮
别的
L1=1; //否则就灭了
以上就是我们的第一个任务。 我们需要使用微控制器来点亮发光二极管LED。 这个LED必须连接到单片机的某个引脚,否则单片机将无法控制它。 我们使用 1.0 引脚连接 LED。 。
按照该图的连接方法,当1脚为高电平时,LED不亮,只有当1脚为低电平时,LED才亮。 因此,我们必须能够控制引脚1,即我们必须能够根据需要使引脚1变为高电平或低电平。 同时,我们还通过按钮来控制这个LED,即按下按钮时,LED会亮起,松开时,LED会熄灭。
(5)模拟教程
如上图所示,开始仿真后,由于代码的编写,电路图是按下开关时,LED熄灭。 修改方法就是修改if语句。