历史上的今天
返回首页

历史上的今天

今天是:2026年01月05日(星期一)

正在发生

2023年01月05日 | 8051单片机快速入门--我的第一盏灯

2023-01-05 来源:zhihu

学习单片机之前呢,给大家推荐一本单片机学习的书籍《爱上单片机》,内容结构浅显易懂,实践性很强,非常容易上手,好了,废话不多说,直接上干活,带你快速入门单片机;


一、位定义原理
定义方法: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)仿真教程

  • 导入事先准备好的Hex文件,双击8051单片机芯片




  • 导入Hex文件,点击仿真按钮







如上图所示,开始仿真后,因为代码的编写的原因,该电路图是当开关按下led熄灭,修改方法即将if语句进行进行改动即可。


推荐阅读

史海拾趣

DETCO公司的发展小趣事

当5G技术开始在全球范围内推广时,ElectronicsCorp看到了巨大的商机。公司迅速调整战略,将重点转向5G相关产品的研发。通过与全球领先的通信公司合作,ElectronicsCorp推出了一系列5G手机和通信设备。这些产品不仅性能卓越,而且价格合理,赢得了消费者的青睐。随着5G技术的普及,ElectronicsCorp的市场份额不断扩大。

Fair Rite公司的发展小趣事

到了1955年,Fair Rite的产品开始被广泛应用于娱乐电子行业。公司成功开发出适合电视和无线电设备使用的铁氧体元件,为当时的家庭娱乐生活提供了可靠的技术支持。随着技术的不断进步和市场需求的增长,Fair Rite逐渐扩大了产品线,并开始进入其他领域。

ETA-USA公司的发展小趣事

进入XXXX年代,ETA-USA开始将重心转向CAE(计算机辅助工程)软件的开发。公司投入大量资源进行研发,成功推出了一系列创新的CAE软件解决方案,如Dynaform,这些软件在覆盖件冲压成形、汽车碰撞模拟等领域取得了显著的应用效果。这一突破不仅巩固了ETA-USA在电子工程领域的地位,也为其后续发展奠定了坚实的基础。

Danaher Corporation公司的发展小趣事

在十九世纪80年代,丹纳赫集团面对日益严峻的市场竞争,开始推行以精益生产为核心的全新运营方式。这种管理方式不仅强化了其在行业中的领导地位,还逐渐形成了独特的丹纳赫商业系统(Danaher Business System,DBS)。DBS注重持续改进、客户导向和团队合作,成为丹纳赫集团在电子行业取得成功的关键因素。

Frolyt Condensers & Elements GmbH公司的发展小趣事

随着全球对环保问题的日益重视,Frolyt Condensers & Elements GmbH积极响应号召,将环保理念融入产品设计和生产流程中。公司投入大量资金研发环保型电容器材料和生产工艺,成功推出了多款低能耗、无污染的电容器产品。这些产品不仅满足了市场对环保产品的需求,还帮助Frolyt树立了良好的企业形象,进一步提升了市场竞争力。

AVX公司的发展小趣事

XXXX年,AVX公司迎来了一个重要的转折点,它与日本Kyocera公司达成了战略合作。这次合作使AVX在技术上获得了强大的支持,并在市场上获得了更广阔的发展空间。通过整合双方的优势资源,AVX在贴片陶瓷电容、连接器等领域取得了显著的成绩,进一步巩固了其在电子元件市场的地位。

问答坊 | AI 解惑

普通异步电动机与变频电机的区别

一、普通异步电动机都是按恒频恒压设计的,不可能完全适应变频调速的要求。以下为变频器对电机的影响   1、电动机的效率和温升的问题    不论那种形式的变频器,在运行中均产生不同程度的谐波电压和电流,使电动机在非正弦电压、电流下运行。 ...…

查看全部问答>

利用MATLAB增强MAX+PLUS II的仿真功能

摘 要: 介绍了一种利用工具软件MATLAB强大的数学功能来增强ALTERA公司的可编程逻辑器件设计软件MAX+PLUSII的仿真功能、提高设计品质的方法,有较强的针对性。     关键词: MATLAB MAX+PLUS II FPGA 仿真      ...…

查看全部问答>

DA/AD转换

    在数字系统的应用中,通常要将一些被测量的物理量通过传感器送到数字系统进行加工处理;经过处理获得的输出数据又要送回物理系统,对系统物理量进行调节和控制。传感器输出的模拟电信号首先要转换成数字信号,数字系统才能对模拟信号 ...…

查看全部问答>

A题_难啊!帮忙、、、

本帖最后由 paulhyde 于 2014-9-15 09:06 编辑 实现 帮忙:怎么实现、 相位跟踪功能:当fREF在给定范围内变化以及加非阻性负载时,均能保证uF与uREF同相,相位偏差的绝对值≤5°。 file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip ...…

查看全部问答>

问个问题,请高手帮忙,关于可编程并行接口控制器,急用,谢谢!

双机并行通信中,在甲乙两台微机之间进行并行传送1K字节数据。甲机发送,乙机接收。甲机一侧的8255A采用方式1(基本输入/输出方式)工作,乙机的一侧采用8255A方式0(选通输入/输出方式)工作。两机的CPU与接口之间都采用查询方式交换数据。 要求 ...…

查看全部问答>

关开CE驱动的几个弱智问题

1 BSP下的驱动与\\PUBLIC\\COMMON\\OAK\\DRIVERS\\下的驱动有啥区别? 2 \\PUBLIC\\COMMON\\OAK\\DRIVERS\\下的驱动能修改吗?开发驱动是不是从这里面直接改?还是另外有别的方法 3 新做完的驱动必须加到BSP里面去吗? 4 做完了一个驱动,怎么样 ...…

查看全部问答>

我受人之托欲寻求一位有bios设计开发经验的高手加入科研单位的研发队伍

我受人之托帮助一国家级科研单位寻找一位有bios设计开发经验的高手,该单位实力雄厚,长期从事该项目,待遇从优,不知如何能找到。我的联系方式:lzh@tjhn.com.cn MSN:hzl_1999@yahoo.com…

查看全部问答>

关于使用SOPC生成的SDRAM控制器

最近需要使用一个符合Avalon接口协议的SDRAM,但是发现使用SOPC生成的SDRAM控制器里没有burst传输的相关信号,Avalon本身支持burst传输,SDRAM也支持burst传输,为什么生成的控制器里没有相关信号呢?…

查看全部问答>

同一批pcb,同一批32768晶振,不起振的换N个晶振都不起振

stm32F107,焊200块pcb,有8块RTC无论如何不起振 批量整包装买的epson 6P负载电容32768晶振 不起振的无论怎么换晶振还是接地的6p电容,还是不起振。会是stm32的问题么,或者是焊接时损坏?只是其他功能都正常,唯有rtc不行。 另外昨天在挨个 ...…

查看全部问答>

F240的LOAD PROGRAM问题

提示两次数据校验错误: data verification failed at address 0x40 和 data verification failed at address 0x0 cmd 文件如下: MEMORY {        PAGE 0:             &nbs ...…

查看全部问答>