学习单片机之前呢,给大家推荐一本单片机学习的书籍《爱上单片机》,内容结构浅显易懂,实践性很强,非常容易上手,好了,废话不多说,直接上干活,带你快速入门单片机; 导入事先准备好的Hex文件,双击8051单片机芯片 导入Hex文件,点击仿真按钮
一、位定义原理
定义方法:sbit 位名=特殊功能寄存器^位置;
sbit LED1 = P2^0;
符号"^"前面是特殊功能寄存器的名字,后面的数字定义的可寻址位在特殊功能寄存器中的位置,取值必须是0~7
P2是连接LED的IO口,P2^0到7分别对应LED1到8
二、代码实现
#includ
//以AT8951单片机为例
//对八个LED分别进行位定义
sbit LED1 = P2^0;
sbit LED2 = P2^1;
void main()
{
//LED为共阳极低电平LED亮
LED1 = 0;
LED2 = 0;
}
三、引脚定义
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引脚以及时钟电路,复位电路即可,其余在单片机进阶学习过程中可以重点了解学习。
⒋ 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链接管脚
void main(void)
{
while(1) //循环闪烁
{
if(k1 == 0)
{
L1 = 0; //低电平有效,输入0led灯点亮
}
else
{
L1 = 1; //否则熄灭
}
}
}
如上就是我们的第一个任务,要用单片机点亮一只发光二极管LED,这个LED必须要和单片机的某个管脚相连,不然单片机就没法控制它了,我们用1.0管脚与LED相连。
按照这个图的接法,当1脚是高电平时,LED不亮,只有1脚是低电平时,LED才发亮。因此要1脚我们要能够控制,也就是说,我们要能够让1管脚按要求变为高或低电平。同时我们还通过按键控制这个led,即按键摁下,led发光,松开熄灭。
(5)仿真教程
如上图所示,开始仿真后,因为代码的编写的原因,该电路图是当开关按下led熄灭,修改方法即将if语句进行进行改动即可。