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

发布时间:2023-01-06  

一、为什么要学习单片机?

作为一名工科学生,进入大学参加各种活动,例如:电子设计大赛、寻迹车比赛、LED电子灯比赛以及各种各样的微控、弱控强电路等,都离不开单片机的身影。电路、c语言、数电、模电、计算机控制等知识的学习,给单片机的学习增添了软辅助,但我认为,学习单片机更多的是自己的兴趣、爱好,正如“程序虐我千百遍,我视程序为初恋”。

此外,学习单片机知识,从最基础的51单片机入门学习,可以为我们后面学习STM32、ARM微控器等其微控制器的学习奠定知识基础和积攒一定的经验,给自己的大学及以后的职业道路增加一丝色彩。

二、首先了解什么是单片机?

单片机又称单片微控制器,把一整个计算机系统集成到一个芯片上,当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。一块芯片就成了一台计算机。体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。

单片机属于一种集成式电路芯片。主要包含CPU、只读存储器ROM和随机存储器RAM、时钟电路、中断系统和定时/计数器及各种输入输出IO口构成,多样化数据采集与控制系统能够让单片机完成各项复杂的运算,无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。

图1 单片机的基本结构

三、如何快速、高效学习单片机?

  1. 多学习;查阅原始资料,即单片机手册和各个模块手册。

  2. 多动手;代码的学习主要是自己多动手进行练习,孰能生巧。

  3. 多思考;一个程序的实现往往有多种不同的方式,但最基本的原理保持不变,只是每个程序员的习惯和书写形式不一,复杂程度和代码的可移植性不一样,万变不离其原理。

四、准备资料和软件(提前了解,间接性、针对性学习印象比较深刻)

4.1 相关基础知识

单板的基本知识、电路的基本电路知识、数字电子技术基础知识、模拟电子技术基础知识、选用模块的逻辑知识、电力电子知识(模块化弱控强应用电路后buck、boost电路等)

4.2 基础软件

  • 推荐keil5: 编写程序代码

  • proteus模拟仿真: 可以进行模型构建及仿真演示,为实物排除问题

  • Altium Designer: 进行原理图绘制,设计自己专属的pcb板

  • STC-ISP: 将keil5生成的Hex文件烧录进单片机内

  • B站:可以在上面进行部分程序的学习

五、(最基础、最简单程序)点亮一个LED灯

5.1 LED原理和知识

图2 LED原理图

LED即发光二极管,是一种半导体固体发光器件。具有单向导通性,两极分别为P极和N极,也有说成是阳极和阴极,如图2中阳极接电源端,只需阴极给低电平LED就会发光。(其余LED知识大家可自行了解)

5.2 点亮一个LED灯具体代码

#include   //此文件定义单片机的一些特殊功能寄存器

sbit led=P2^0;	   //将单片机的P2.0端口定义为led(当然也可以定义其他端口,欢迎尝试)

void main()      //每一个main.c中必须包含一个主函数,程序从这里开始执行
{
	while(1)   //while死循环,程序将在这里进行不断重读执行
	{
		led=0;	//P2.0端口设置为低电平,根据二极管原理点亮LED灯			
	}		
}

注:其中对应行都有注释,大家移植后可以删除

5.3 包含/区分/学习知识点

  • int main和void main的区别(掌握)

有一定c语言知识的同学应该知道int是需要返回的,在单片机里也一样。

void main没有返回值,int main有返回值(即return 0)。

  • C51中的一些程序扩充定义(了解)

(1)sfr:特殊功能寄存器。

sfr 变量名=地址值(现在已经平时不用我们自己去定义寄存器的名字,因为在reg52.H这个头文件里面都帮我们定义好了)

(2) sbit:特殊功能位声明

sbit 变量名=地址值;在给某个引脚取名的时候经常会用到。如上面对LED管脚的定义sbit led=P2^0。

(3)bit:位变量声明

bit 用来定义位数据变量,由它定义的变量数据仅为1位,只有0或1两种状态,长度为1字节。

  • c51基本数据类型(熟悉并能运用)

图3 基本数据类型(来源:若诗余)

六、KEIL中建立工程文件

6.1创建新的工程文件(打开——项目—— new project)

图4 创建一个新的项目

6.2选择单片机型号(直接输入AT89C52或者点击Atmel左边的小加号,选择或at89c52)

图5 选择单片机型号

6.3点击确认后创建好工程。右键点击Group1——Add new文件

图6 添加新的.c文件1

6.4 选择.c文件并创建(一般主函数确认为main.c文件)

图7 添加新的.c文件2

6.5 输入程序并进行编译(如图1、2、3步骤,但是图中没有生成HEX文件)

图8 程序编译

6.6 创建设置HEX文件(直接点击上方魔术棒或者ALT+F7快捷键都可以;进入后点击output——Creat HEX File——ok即可)

图9 创建HEX文件步骤1

图10 创建HEX文件步骤2

6.7 生成HEX文件(0错误后才能生成hex文件,后面跟着具体存放文件目录)

图11 生成HEX文件

6.8 配置STC-ISP(按照所表示顺序即可)

图 12 配置STC-ISP

选择芯片型号为STC89C52即可。串口号点击扫描一般即可自动搜索到,若搜不到可能存在问题及解决方法:①没有安装驱动。驱动分为很多种,即使名字看上去非常一样的,但是有的也不通用,如CH340和CH341。选择安装之后,插上串口线,打开设备管理器,如果显示COM了,那么就安装成功了。②打开了另外一个串口调试助手,串口被占用了。③换一根好一点的数据线或者换一个电脑的USB口。可能存在串口线接触不良或者电阻过大导致供电不足,④检查开发板上的晶振,是不是接触不良或者掉落。⑤单片机损坏或者接触不良导致检测不到芯片。

6.9 下载成功后对应单片机显示相关现象。如上程序则单片机P1.0对应二极管点亮。


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    为主控芯片和流水灯模块的原理图。流水灯模块接在单片机的P1口,由原理图可以知道,在P1口给一个低电平即可点亮LED灯。相反,如果要LED灯熄灭,就要把P1口的电平变为高电平即可。要实现流水灯功能,我们......
    51单片机点亮一LED灯的原理解析;首先应该了解51单片机最小系统:51最小系统也称为51最小应用系统,是指用最少的元件组成的51单片机可以工作的系统。如图2.1.1所示,51最小......
    就开始工作了。 当然:您并不一定完全需要一片89S52, 实际上我们用8051系列的任何一种芯片都是可以的。 例如89s51,89c52等等。 我们的第一个任务是要用单片机点亮一只发光二极管LED......
    对应上图中三角形箭头剑尖所指向的左边方向就是负极,反之右边就是正极。 使用51单片机点亮LED,我们可以选择用单片机IO端连接LED的负极或正极,如果接LED的负极,那么IO端默认电平需要设置为高电平,LED一个引脚需要接+5V......
    硬件原理图搭建完成上电之后,我们还不能看到流水灯循环点亮的现象,我们还需要告诉单片机怎么来进行工作,即编写程序控制单片机管脚电平的高低变化,来实现发光二极管的一亮一灭。软件编程是单片机应用系统中的一个......
    Keil软件中运行编译生成hex文件后,烧录到51单片机中,就能看到led点亮的现象。 对于初学者而言,在编写这个程序之前。首先我们得了解 led 的运行机制,现在市场中常出现的led灯为发光二级管,具有......
    LED点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。在此我们还应注意一点,由于人眼的视觉暂留效应以及单片机......
    基于51单片机最小系统点亮一个灯的程序;51单片机最小系统 今天我们开始进行51单片机编程学习,首先我们要了解一下单片机工作需要的基本条件。前面的内容中我们知道了51单片机的引脚有电源引脚,时钟......
    AT89C52单片机点亮数码管的设计;电路只驱动一个数码管,该数码管为共阴管,公共端接地,段管直连到单片机的P2口,所用单片机为AT89C52,电路图如下所示: 通过昨天对数码管的讲解,我们知道如果要点亮一个......
    51单片机(入门保姆级教程)——点亮一个LED灯;一、为什么要学习单片机? 作为一名工科学生,进入大学参加各种活动,例如:电子设计大赛、寻迹车比赛、LED电子灯比赛以及各种各样的微控、弱控......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>