51单片机应用从零开始(二)

目录

[1. 什么是单片机系统](#1. 什么是单片机系统)

[1.1 单片机本身](#1.1 单片机本身)

[1.2 构成单片机系统------单片机+外围器件](#1.2 构成单片机系统——单片机+外围器件)

[2. 如何控制一个发光二极管](#2. 如何控制一个发光二极管)

[2.1 硬件设计(系统电路图 )](#2.1 硬件设计(系统电路图 ))

[2.2 硬件设计(搭建硬件电路的器材 )](#2.2 硬件设计(搭建硬件电路的器材 ))

[2.3 软件设计(中文描述的程序设计思路)](#2.3 软件设计(中文描述的程序设计思路))

[2.4 软件设计(翻译成单片机的语言)](#2.4 软件设计(翻译成单片机的语言))

[2.5 软件设计(指令解析)](#2.5 软件设计(指令解析))

[3. 单片机系统开发过程](#3. 单片机系统开发过程)


1. 什么是单片机系统

单片机系统是由单片机芯片、外围设备和软件组成的一种嵌入式系统。单片机是一种集成了微处理器、存储器和多种输入输出接口的微型计算机,可以实现控制、调度和数据处理等功能,并能够与各种外围设备进行通讯。单片机系统广泛应用于工业自动化、智能家电、医疗仪器、汽车电子等领域。

1.1 单片机本身

单片机本身就是一个电子器件,可以根据指 令的要求控制外围器件,它的功能可以通过指令 进行控制。

单片机(Microcontroller)是一种包含了处理器核心、内存、输入/输出接口和其他相关外设的集成电路。它可以独立地运行程序,控制各种设备和系统。

单片机通常包括三个重要的组成部分:CPU、存储器和外设接口。CPU用于执行指令和进行运算,存储器用于存储程序和数据,而外设接口则用于与外部设备进行通信和控制。

单片机具有体积小、功耗低、成本低等优点,被广泛应用于各种控制系统、嵌入式系统、电子产品等领域。

1.2 构成单片机系统------单片机+外围器件

单片机系统由单片机和外围器件构成。单片机是一种微型计算机芯片,它可以完成各种控制、处理、计算等任务。外围器件包括各种传感器、执行器、存储器、通信模块等,它们与单片机连接,提供输入输出、存储和通信等功能。

在构建单片机系统时,需要先选择合适的单片机芯片,并设计电路板,将单片机和外围器件连接在一起,并提供电源和时钟信号等基本电路。接下来,需要编写程序,将需要的功能实现,并上传到单片机中。最后,进行调试和测试,确保单片机系统正常工作。

单片机系统在实际应用中广泛使用,例如控制家电、车载电子、智能家居、工业自动化、机器人等领域。通过不断优化设计和程序,单片机系统可以实现更加复杂和高效的功能。

2. 如何控制一个发光二极管

控制单个发光二极管需要使用单片机的输出端口和一个适当的电阻,步骤如下:

  1. 将发光二极管的阳极连接到单片机的一个输出端口,将阴极连接到电源的负极。

  2. 为了限制电流并保护发光二极管,需要在发光二极管的阳极和单片机输出端口之间加入一个适当的电阻。根据发光二极管的功率和电源电压确定电阻值。

  3. 在单片机程序中将输出端口配置为输出模式,并将其输出电平设置为高电平或低电平,即可控制发光二极管的亮灭。

2.1 硬件设计(系统电路图 )

2.2 硬件设计(搭建硬件电路的器材 )

面包板用于电子技术实验

万用板用于电子技术实验

2.3 软件设计(中文描述的程序设计思路)

程序设计思路如下:

  1. 声明一个变量来存储发光二极管的状态,可以用1表示开启,0表示关闭。

  2. 初始化51单片机的IO口,将控制LED灯的IO口设置为输出模式。

  3. 在主函数中,将LED灯的状态设置为关闭状态。

  4. 在一个无限循环中,控制LED灯的状态。如果LED灯当前状态为关闭状态,则将其设置为开启状态,反之亦然。可以使用if语句进行判断。

  5. 为了让发光二极管闪烁,可以在每次状态改变后添加一个短暂的延迟,例如延迟500毫秒。

2.4 软件设计(翻译成单片机的语言)

ORG 00H ; 设置起始地址
START: ; 标号
MOV P1, #00H ; 向P1口输出低电平,点亮二极管
CALL DELAY ; 调用延时子程序
MOV P1,#0FFH ; 向P1口输出高电平,熄灭二极管
CALL DELAY ; 调用延时子程序
JMP START ; 跳回START,循环执行
DELAY: 
MOV R3,#50 ; 延时子程序(500ms)
D1: MOV R4,#20
D2: MOV R5,#248
DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
RET ; 返回主程序
END ; 汇编程序结束

或者:

#include<reg51.h>     //头文件
#define LED P1        //定义LED控制IO口
sbit LED1=P1^0;       //LED灯连接IO口

void main()
{
  unsigned int i;     //定义延时变量
  LED=0x00;           //将LED灯设置为关闭状态 

  while(1)            //无限循环
  {
    if(LED==0x00)     //LED灯当前为关闭状态
    {
      LED=0xFF;       //将LED灯设置为开启状态
      LED1=1;         //开启LED灯
    }
    else              //LED灯当前为开启状态
    {
      LED=0x00;       //将LED灯设置为关闭状态
      LED1=0;         //关闭LED灯
    }
    for(i=0;i<50000;i++);   //延时500ms
  }
}

2.5 软件设计(指令解析)

START:
MOV P1,#00H ; 向P1口输出低电平
CALL DELAY ; 调用延时子程序
MOV P1,#0FFH ; 向P1口输出高电平
CALL DELAY ; 调用延时子程序
JMP START ; 跳回START,循环执行

标号------可以是以英文字母开头的字母、数字或某些 特殊符号的序列。

助记符------用来表达指令的操作功能。

目的操作数------指令最终作用的对象。

源操作数------参与指令的操作。

注释------分号后面的文字描述

START: MOV P1, #00H ; 向P1口输出低电平

标号 : 助记符 目的操作数, 源操作数 ; 注释

ORG 00H ------ 伪指令,其功能是设定经汇编后的执行 代码存储在单片机中的起始地址为00H 。

END ------ 伪指令,提示汇编器程序结束于此,当汇编 遇到END后,就不会再继续进行。

伪指令(pseudo opcode)------汇编程序所提供的帮助 汇编器进行汇编的指令,并非单片机指令的一部分,因 此伪指令不占存储器空间,只是协助程序的汇编工作。

3. 单片机系统开发过程

单片机系统开发过程一般包括以下步骤:

(1)系统需求分析:确定系统的功能、性能、可靠性、安全性等需求。

(2)硬件设计:选用合适的单片机芯片、外设和接口电路,并进行电路原理图设计、PCB布局设计等。

(3)软件设计:编写单片机程序,实现系统功能。

(4)系统集成:将硬件和软件进行集成,进行调试和测试。

(5)系统调试和优化:对系统进行功能性、可靠性、安全性等方面的测试,发现问题并解决,优化系统性能。

(6)系统验证和批量生产:完成系统的验证和测试,进行批量生产。

以上步骤并非是一成不变的,根据不同的项目需求和实际情况,可能加入或者去除一些步骤。

51单片机应用从零开始(一)-CSDN博客

相关推荐
马浩同学11 分钟前
【GD32】从零开始学GD32单片机 | DAC数模转换器 + 三角波输出例程
c语言·单片机·嵌入式硬件·mcu
最后一个bug3 小时前
STM32MP1linux根文件系统目录作用
linux·c语言·arm开发·单片机·嵌入式硬件
wenchm4 小时前
细说STM32F407单片机IIC总线基础知识
stm32·单片机·嵌入式硬件
嵌入式lover4 小时前
STM32项目之环境空气质量检测系统软件设计
stm32·单片机·嵌入式硬件
kenwblack5 小时前
STM32 SPI读取SD卡
stm32·单片机
兰_博5 小时前
51单片机驱动1602液晶显示
单片机·嵌入式硬件·51单片机
深圳市青牛科技实业有限公司 小芋圆6 小时前
开关电源特点、分类、工作方式
前端·科技·单片机·物联网·分类·数据挖掘·新能源
我qq不是451516526 小时前
单片机优先级
单片机·嵌入式硬件
相醉为友7 小时前
在开发嵌入式系统时,尤其是处理大数时,会遇到取值范围的问题。51单片机通常没有内建大整数支持,因此我们需要采用不同的方法来解决这一问题
单片机·嵌入式硬件·51单片机
1101 11018 小时前
STM32-笔记10-手写延时函数(SysTick)
笔记·stm32·单片机