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

一、什么是单片机

单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
以上是百度百科上的词条,随便看看就行了,下面说一下我对单片机的理解:
我们都知道,我们的电脑是由CPU、内存、磁盘、IO设备等组成的,而单片机简而言之,就是一个微型电脑,它在一块芯片上包含了CPU,硬盘(flash)和内存条(ram)以及基本输入输出设备(io口)。

二、怎么学习单片机

void 学习单片机()
{while(1){动手写单片机程序;调试程序;发现程序中的语法与逻辑错误;改正程序中的错误;}
}

三、点亮一个LED灯

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

3.1 在Proteus上搭建LED灯的电路

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

左侧的一栏是各种类型的组建,其中我们主要需要用到的有组件选项(component mode)和终端选项(Terminals mode)。
组件选项包括了我们用到的芯片,元件和其它的一些东西。
终端选项包括了VCCGND等一些组件。

首先在组件选项中点击“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),点击确定。
j

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

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

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

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


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

至此就可以编写代码了。
在文件中输入以下代码:

#include <reg52.h>
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单片机入门教程(1)——点亮一个LED灯相关推荐

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

    一.为什么要学习单片机? 作为一名工科学生,进入大学参加各种活动,例如:电子设计大赛.寻迹车比赛.LED电子灯比赛以及各种各样的微控.弱控强电路等,都离不开单片机的身影.电路.c语言.数电.模电.计算 ...

  2. 树莓派GPIO入门(一):点亮一个LED灯

    一.实验要求 点亮一个LED灯是电子开发最常见的入门实验.本次实验分为三个小实验: (1)点亮单个LED灯,并让其亮暗闪烁 (2)通过脉宽调制(PWM)点亮单个LED灯,并让其亮暗闪烁 (3)让LED ...

  3. mdk5+cubeMx入门简介(点亮一个LED灯)

    准备工作 安装mdk5以及cubeMx软件 cubeMx下载地址: https://www.stmcu.com.cn/Designresource/load_design_resource/cat_c ...

  4. 学习单片机编程第一天——点亮一个LED灯

    必要的一点说明:使用keil5编写程序,在STM32F103C8T6单片机上运行. 跳过无聊的新建工程文件等步骤,此次项目我们只针对三个文件进行操作,分别是: main.c         led.c ...

  5. 51单片机入门教程学习笔记

    基于江科大自化协B站教学视频<51单片机入门教程-2020版 程序全程纯手打 从零开始入门> 一.单片机介绍 单片机,英文Micro Controller Unit,简称MCU 内部集成了 ...

  6. 51单片机入门教程(3)——数码管显示

    51单片机入门教程(3)--数码管显示 一.LED数码管简介 二.数码管静态显示 三.数码管动态显示 特别鸣谢:HFUTer-朱聪强 一.LED数码管简介 LED数码管(LED Segment Dis ...

  7. 51单片机入门教程(5)——定时器中断

    51单片机入门教程(5)--定时器中断 一.中断的概念 二.定时器中断 2.1 软件延时的不足 2.2 中断寄存器 2.2.1 中断允许控制寄存器 IE 2.2.2 定时器工作方式寄存器 TMOD 2 ...

  8. 51单片机入门教程(6)——外部中断

    51单片机入门教程(6)--外部中断 一.外部中断 1.1 中断 1.2 外部中断 二.中断优先级 一.外部中断 1.1 中断 关于中断的概念在上一篇博客中已经提到了.(传送门:51单片机入门教程(5 ...

  9. lajp linux教程,linux IMX6 汇编点亮一个LED灯

    驱动Linux引脚与驱动STM32其实是一样的,都是在操作寄存器,在相应的寄存器上附上相应的值即可驱动. IMX6U手册上有各个管脚的命名,跟STM32不同,IOMUXC_SW_MUC_CTL_PAD ...

最新文章

  1. RegExp 正则
  2. 【Zookeeper】Zookeeper一致性协议——ZAB
  3. python中的print()、str()和repr()的区别
  4. 用shell打印下面这句话中字母数小于6的单词
  5. ***一般如何***服务器
  6. Git 查看帮助命令
  7. Android权限全记录(转)
  8. 指针法算中点坐标c语言,C语言:利用指针编写程序,用梯形法计算给定的定积分实例...
  9. cocos-2d iphone入门(二) cocos2d源代码生成查询文档
  10. 百面机器学习——什么是决策树
  11. Android开发注意点小记
  12. linux rzsz 安装包,安装rzsz软件包全攻略
  13. IE工程师应该如何规划职业发展?-优思学院
  14. Android蓝湖图片格式,蓝湖「自动切图」新增 JPG、PDF、WebP 格式
  15. 坚果pro2官方rom_坚果pro2线刷包_坚果pro2刷机包_坚果pro2固件包_坚果pro2救砖包 - 线刷宝ROM中心...
  16. 最新的QQ跳转支付宝并自动领红包脚本。
  17. Spring In Action 学习 第一章 Spring之旅
  18. win10磁盘占用100%
  19. 设计师必备的30款好看的手写字体免费下载
  20. Taro 兼容 h5 踩坑指南

热门文章

  1. 3dMax教程网站 文字版
  2. Java游戏开发框架LGame-0 2 8版发布(含JavaSE及Android版,已有文档)
  3. 基于stm32的BMS电池管理系统源代码-带u基于stm32的BMS电池管理系统源代码-带ucos操作系统
  4. oracle及shell相关学习记录
  5. 用对线阶段数据分析和预测《英雄联盟》的游戏结果
  6. YOLOV1-目标检测综述
  7. 跨源通信--postMessage用法
  8. 点到超平面的距离公式推导
  9. [参考]C# JSON字符串序列化与反序列化
  10. 【转】最大后验概率(MAP)- maximum a posteriori