历史上的今天
返回首页

历史上的今天

今天是:2025年04月02日(星期三)

正在发生

2020年04月02日 | 51单片机入门教程(1)——点亮一个LED灯

2020-04-02 来源:eefocus

一、什么是单片机

单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。


以上是百度百科上的词条,随便看看就行了,下面说一下我对单片机的理解:


我们都知道,我们的电脑是由CPU、内存、磁盘、IO设备等组成的,而单片机简而言之,就是一个微型电脑,它在一块芯片上包含了CPU,硬盘(flash)和内存条(ram)以及基本输入输出设备(io口)。

51单片机

二、怎么学习单片机

void 学习单片机()

{

  while(1){

    动手写单片机程序;

    调试程序;

    发现程序中的语法与逻辑错误;

    改正程序中的错误;

  }

}


三、点亮一个LED灯

说了这么多,现在步入正题。


3.1 在Proteus上搭建LED灯的电路

首先打开Proteus软件,界面如图

Proteus

左侧的一栏是各种类型的组建,其中我们主要需要用到的有组件选项(component mode)和终端选项(Terminals mode)。


组件选项包括了我们用到的芯片,元件和其它的一些东西。


终端选项包括了VCC、GND等一些组件。

在这里插入图片描述

首先在组件选项中点击“P”按钮,找到我们需要的89c51芯片,并放入到主面板里。

在这里插入图片描述

同理

在组件选项中输入LED-YELLOW找到led灯放入主面板

在终端选项中选择POWER放入到主面板。

在这里插入图片描述

然后就要连接电路。power为电路提供电源输入,即电路的正极,所以将power的线连接到led灯的正极,然后我们把led灯的另一端接到单片机的P2^0引脚上。


之后我们就可以在程序中给P2^0引脚一个低电平(即电路的负极)使其构成一个回路,就可以达到点亮led灯的目的。

在这里插入图片描述

3.2 在keil中创建工程

3.2.1新建一个工程

打开keil,在菜单栏中找到工程(project),点击第一个,然后选择工程保存路径并点击保存。

在这里插入图片描述

然后选择单片机型号,找到Atmel点击左边的小加号,选择at89c51(或at89c52),点击确定。

在这里插入图片描述

接下来的窗口是提示我们“是否把启动代码添加到工程中”,我们选择确定。

在这里插入图片描述

这样我们的工程就创建好了。

在这里插入图片描述

随后我们需要给工程创建源码文件。

点击“文件”->“新建”,使用组合键ctrl+s保存文件,命名为main.c(可以随便命名,但是后面要加上 .c),点击保存。

在这里插入图片描述

右击源组,点击添加文件到源组。

在这里插入图片描述
在这里插入图片描述

点击这里的魔术棒,选择output,选中create hex file。

在这里插入图片描述
在这里插入图片描述

至此就可以编写代码了。

在文件中输入以下代码:


#include

sbit led = P2^0;

void main(){

while(1){

led = 0;

}

}


说一下这几句代码是什么意思。


第一行是包含头文件,头文件里面定义了单片机寄存器的一些定义。初学者不理解也没有关系。

第二行是声明了P2^0端口,相当于给这个端口起了一个名字。

第三行是main函数,代码从这里开始执行。

第四行是一个while死循环,程序会一直执行while循环里面的内容。

第五行是给名字为led的端口(即P2^0端口)一个低电平(1代表高电平,0代表低电平),使led灯的两端构成回路。


然后编译程序,点击左上角的编译按钮。可以看到"0 error , 0 warning"的提示。

在这里插入图片描述

3.3 将程序导入到单片机中运行

我们已经搭建好了电路,写好了程序,生成了hex文件,之后需要在电路上运行我们的程序。


打开3.1中创建的仿真电路,双击单片机,找到3.2生成的hex文件,点击打开。

在这里插入图片描述

左下角的一排控制按钮意思分别是运行 单步 暂停 结束,我们点击运行就可以看到led灯被点亮。

在这里插入图片描述
在这里插入图片描述

推荐阅读

史海拾趣

ELINA INDEK公司的发展小趣事

因美纳始终将创新与研发作为公司的核心竞争力。随着技术的不断进步,公司不断推出更先进、更便捷的基因测序产品,满足市场的多样化需求。同时,因美纳还积极与全球各大科研机构合作,共同推动基因测序技术的发展和应用。这种持续的创新和研发精神使得因美纳在电子行业中保持领先地位。

Fairview Microwave Inc公司的发展小趣事

Fairview Microwave Inc公司成立于1992年,最初只是一个由几位工程师组成的小团队,他们致力于开发高质量的射频和微波组件。在当时,微波技术正逐渐在通信、雷达和卫星通信等领域得到广泛应用,但市场上缺乏高性能、可靠的组件供应商。Fairview Microwave看到了这个市场空白,决定从适配器、连接器和衰减器等基础组件入手,凭借精湛的技术和不断的创新,逐渐在行业内树立了良好的口碑。

Daewoo公司的发展小趣事

Daewoo公司最初由金宇中于1967年创建,起始于一个规模不大的纺织厂。然而,金宇中并不满足于纺织业的局限,他敏锐地察觉到了韩国经济快速发展的机遇。于是,Daewoo公司逐渐扩展业务领域,70年代侧重发展化学工业,80年代后更是进军汽车、电子和重工业领域,并积极参与国外资源的开发。这种前瞻性的战略布局,为Daewoo公司的快速发展奠定了基础。

AINFO Inc公司的发展小趣事

随着技术的不断进步,AINFO Inc公司不断推出创新产品,满足市场的多样化需求。公司注重产品的质量和性能,通过优化设计和生产工艺,提高了产品的竞争力。同时,公司积极开拓国内外市场,与多家知名企业建立了合作关系,实现了产品的广泛应用。

迈翔科技(COILMX)公司的发展小趣事

进入21世纪后,迈翔科技面临了来自国内外同行的激烈竞争。为了保持竞争力,公司投入大量资源进行技术研发和创新。通过不懈努力,公司成功开发出了一系列高性能的贴片功率电感和大电流电感,这些产品凭借卓越的性能和稳定的品质,迅速获得了市场的认可。

Bipolarics Inc公司的发展小趣事

在市场竞争日益激烈的背景下,Bipolarics Inc意识到单打独斗难以取得长久发展。于是,公司开始积极寻求与其他企业的战略合作。通过与一家知名的芯片制造商合作,Bipolarics Inc成功将其双极性晶体管技术应用于更广泛的领域,进一步提升了产品的竞争力。同时,这种合作也带来了双方在技术研发和市场推广方面的资源共享,推动了双方的共同发展。

问答坊 | AI 解惑

想学ARM,推荐个板子

本人从事单片机开发,想往嵌入式发展下,哪位给推荐个开发板,有想卖的二手的也成…

查看全部问答>

散分!说下大家是怎么学习编写驱动程序的!!给点建议!

驱动程序感觉好复杂!不知道如何下手,今天看了一下午串口分层驱动源码,头都大了! 希望过来人给点建议! …

查看全部问答>

鼠年最后一张帖

在eeworld又度过了一年,学到了不少的东西,谢谢帮助过我的朋友,也谢谢顶帖的朋友!…

查看全部问答>

求Wince下OV2640驱动的源码

哪个达人有啊,帮帮忙。。 邮箱:lhl8502@tom.com…

查看全部问答>

FL2440的板子,修改12M的晶体为16.9344M后,无法启动???

请教高手们:     原FL2440的开发板,晶体为12MHz,修改为16.9344M后,无法启动,不知何因?     先说一下FL2440的bootloader的组成:     飞凌开发板提供的bootloader由uboot和eboot两部分组成,前面的uboot实现 ...…

查看全部问答>

关于编译mame的问题

我在编译mamece3的时候出现如下错误 LINK : fatal error LNK1104: cannot open file \'subsystem:windowsce,4.00\' 请问高手如何解决这个问题,谢谢…

查看全部问答>

高手帮忙发光二极管程序

org        00h start:           mov  a, #00h         mov  p0, a         mov  p2, a display:     ...…

查看全部问答>

盐雾对材料腐蚀研究

盐雾对材料腐蚀研究腐蚀是材料或其性能在环境的作用下引起的破坏或变质。大多数的腐蚀发生在大气环境中,大气中含有氧气、湿度、温度变化和污染物等腐蚀成分和腐蚀因素。盐雾腐蚀就是一种常见和最有破坏性的大气腐蚀。这里讲的盐雾是指氯化物的 ...…

查看全部问答>

热敏点阻的测温范围是什么

谁能告诉我热敏点阻的测温范围?谢谢了…

查看全部问答>

模拟芯片设计的四重境界(转载)

从复旦攻读微电子专业模拟芯片设计方向研究生开始到现在五年工作经验,已经整整八年了,其间聆听过很多国内外专家的指点。最近,应朋友之邀,写一点心得体会和大家共享。 我记得本科刚毕业时,由于本人打算研究传感器的,后来阴差阳错进了复旦 ...…

查看全部问答>