51单片机入门教程(1)——点亮一个LED灯

发布者:cxx7848653最新更新时间:2020-04-02 来源: eefocus关键字:51单片机  入门教程  LED灯 手机看文章 扫描二维码
随时随地手机看文章

一、什么是单片机

单片机(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灯被点亮。

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

关键字:51单片机  入门教程  LED灯 引用地址:51单片机入门教程(1)——点亮一个LED灯

上一篇:如何用51单片机点亮一盏LED灯
下一篇:51单片机之点亮第一个LED

推荐阅读最新更新时间:2024-11-17 13:39

自制51单片机常用头文件(T6963C)
#include reg51.h #define uint unsigned int #define uchar unsigned char code uchar CCTAB ={ /*-- 宽度x高度=128x64 --*/ 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x
[单片机]
一种基于51单片机利用74HC595驱动数码管的技术
基于51单片机利用八个数码管花样显示如下: xxx11xxx→xx2222xx→x333333x→44444444→x555555x→xx6666xx→x777777x→88888888 每个状态各一秒,显示反复循环,其中x表示对应的数码管熄灭 问题补充:是共阳极的数码管,利用595芯片驱动的。采用C语言。 =================================================== 最佳答案:程序设计完毕,采用PROTEUS仿真截图如下。 程序如下: //============================================= #include #define uint uns
[单片机]
一种基于<font color='red'>51单片机</font>利用74HC595驱动数码管的技术
单片机第一步——51单片机
俗话说:“天才第一步,XX纸尿裤。”哈哈!扯远了。不过,我们今天说的,确实可能是绝大多数嵌入式工程师或者电子爱好者接触的第一款单片机——51单片机。 图为51单片机驱动LED点阵的电子制作 51单片机只是爱好者们的一种“爱称”,51单片机指的是所有搭载可执行INTEL 8031指令系统的MCU的单片机。这里,我们需要澄清单片机实际使用方面的一个产品概念,MCS-51单片机是美国INTEL 公司于1980年推出的产品,典型产品有 8031(内部没有 程序存储器 ,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在, M
[单片机]
单片机第一步——<font color='red'>51单片机</font>
51单片机在设计中的的时钟及复位
单片机 的时钟信号用来提供单片机片内各种微操作的时间基准,复位操作则使单片机的片内 电路 初始化,使单片机从一种确定的初态开始运行。 时钟电路: 8031单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。 在引脚XTAL1和XTAL2外接晶体 振荡器 (简称 晶振 )或陶瓷谐振器,就构成了内部振荡方式。由于单片机内部有一个高增益 反相 放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如下图所示。 图中, 电容 器Col,C02起稳定振荡 频率 、快速起振的作用,其 电容 值一般在5-30pF。晶振频率的典型值为12MH2,采用6M Hz 的情况也比较多。内部振荡方式所得的时钟情号
[单片机]
<font color='red'>51单片机</font>在设计中的的时钟及复位
51单片机中断响应的条件
讲到这儿,我们依然对于计算机响应中断感到神奇,我们人可以响应外界的事件,是因为我们有多种“传感器“――眼、耳可以接受不同的信息,计算机是如何做到这点的呢?其实说穿了,一点都不希奇,MCS51工作时,在每个机器周期中都会去查询一下各个中断标记,看他们是否是“1“,如果是1,就说明有中断请求了,所以所谓中断,其实也是查询,不过是每个周期都查一下而已。这要换成人来说,就相当于你在看书的时候,每一秒钟都会抬起头来看一看,查问一下,是不是有人按门铃,是否有电话。。。。很蠢,不是吗?可计算机本来就是这样,它根本没人聪明。 了解了上述中断的过程,就不难解中断响应的条件了。在下列三种情况之一时,CPU将封锁对中断的响应: 1、CPU正在处理
[单片机]
51单片机最小系统设计
简介:AT89S51单片机最小系统,就是使单片机正常运行的最低配置:它有一系列模块组成。 1)复位系统: 当引脚9出现2个机器周期以上高电平时,单片机复位,程序从头开始运行. 2)时钟系统:有振荡器电路产生频率等于晶振频率,这时用的是外界晶振。 也可以又外部单独输入,此时XTAL2脚接地,时钟信号由XTAL1输入. 3)电源系统:VCC,和 GND引脚,供电电压4--5.5V. 程序的烧入引脚: flash存储器由串行ISP接口编程,计算机和单片机烧写由专用的烧入软件完成如AVR_fighter for usb asp.
[单片机]
<font color='red'>51单片机</font>最小系统设计
8051单片机教程第九课:数据传递指令
数据传递类指令 1)以累加器为目的操作数的指令 MOVA,Rn MOVA,direct MOVA,@Ri MOVA,#data 第一条指令中,Rn代表的是R0-R7。第二条指令中,direct就是指的直接地址,而第三条指令中,就是我们刚才讲过的。第四条指令是将立即数data送到A中。 下面我们通过一些例子加以说明: MOVA,R1;将工作寄存器R1中的值送入A,R1中的值保持不变。 MOVA,30H;将内存30H单元中的值送入A,30H单元中的值保持不变。 MOVA,@R1;先看R1中是什么值,把这个值作为地址,并将这个地址单元中的值送入A中。如执行命令前R1中的值为20H,则是将20H单元
[单片机]
51单片机的多机同步复位电路设计
51 单片机 复位电路设计计算方法.即首先根据不小于2个机器周期的要求选择电容和下拉电阻,以满足上电复位启动要求;然后,根据下拉电阻与上拉电阻的分压原理,选择上拉电阻,满足手压按钮复位的要求。 利用51 单片机 芯片内部的100kΩ下拉电阻,即使选用最低的1MHz晶振,单机复位启动电容容量也只需要670pF。将n台机的RST端子连接在一起进行多机同步复位时.各电容电阻相当于并联,电容容量增加为n倍,电阻阻值减小为1/n,时间常数不变。因此按照单机复位设计的上电复位电路可以为多机同步复位所使用。附图所示电路中,电容取104,即100nF,一般可行。 当多机同步手压按钮复位启动时,只有一只上拉电阻起作用,相当于多个下拉
[单片机]
<font color='red'>51单片机</font>的多机同步复位电路设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved