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

 

目录

1.  什么是单片机系统

1.1  单片机本身

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

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

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

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

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

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

2.5  软件设计(指令解析)

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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/139156.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

麒麟KYLINOS中使用Ghost镜像文件还原系统

原文链接&#xff1a;麒麟KYLINOS中使用Ghost镜像文件还原系统 hello&#xff0c;大家好啊&#xff0c;今天给大家带来麒麟KYLINOS备份还原的第三篇文章&#xff0c;使用Ghost镜像文件还原系统&#xff0c;将之前做好的Ghost镜像文件拷贝到u盘里&#xff0c;然后在另一台终端上…

使用SQL分析数据科学职业发展趋势

大家好&#xff0c;在数据成为新石油的今天&#xff0c;了解数据科学职业的细微差别比以往任何时候都更加重要。无论你是正在寻找机会的数据爱好者&#xff0c;还是资深数据专家&#xff0c;使用SQL都可以让你深入了解数据科学就业市场。 本文可以带你了解哪些数据科学职位最具…

解决渗透测试js文件泄露

解决办法&#xff1a;使用过滤器过滤 public class StaticSourceFilter implements Filter {private static Logger logger LoggerFactory.getLogger(StaticSourceFilter.class);Overridepublic void init(FilterConfig filterConfig) throws ServletException {}Overridepub…

基于springboot实现生鲜超市管理的设计与实现系统【项目源码】

基于springboot实现生鲜超市管理的设计与实现系统演示 Java技术 Java是由Sun公司推出的一门跨平台的面向对象的程序设计语言。因为Java 技术具有卓越的通用性、高效性、健壮的安全性和平台移植性的特点&#xff0c;而且Java是开源的&#xff0c;拥有全世界最大的开发者专业社群…

leetcode:2935. 找出强数对的最大异或值 II【最大异或值还是得看01Trie树啊!】

题目截图 题目分析 排序后&#xff0c;限定了x和y的相对位置 假设y > x&#xff0c;随着y的移动&#xff0c;必须要保证2x > y 所以可以使用滑动窗口维护一堆满足条件的x 这些x的异或值记录在Trie树中即可 ac code class Node:__slots__ children, cntdef __init__(s…

软件启动故障:msvcr100.dll丢失的解决方法,修复程序启动问题

在计算机技术日益发展的今天&#xff0c;我们经常会遇到各种各样的问题。其中&#xff0c;“msvcr100.dll是什么”这个问题&#xff0c;相信很多人都曾经遇到过。那么&#xff0c;msvcr100.dll究竟是什么呢&#xff1f;它又有什么作用呢&#xff1f;本文将从以下几个方面来探讨…

普通线性回归和评估指标代码实战

我们用加州房价预测来讲述普通线性回归的算法实战和预测指标。在这里省去数据预处理和特征工程的步骤。首先导入相应的模块&#xff1a; from sklearn.linear_model import LinearRegression as LR from sklearn.model_selection import train_test_split from sklearn.model_…

华视电子驱动安装

1、安装驱动 下载地址&#xff1a;http://ws.it0355.com/a/202101/07/a27013.htm 双击exe文件安装驱动&#xff1a; 检查驱动运行正常&#xff1a; http://www.winwin7.com/soft/xtbd-12727.html vc库安装

IT服务台与Microsoft集成

Microsoft Teams 旨在通过创建一个共享工作区&#xff0c;使组织中的协作更加轻松&#xff0c;用户可以在其中聊天、开会、共享文件和访问业务应用。为了实现这些数字工作空间的最大效率&#xff0c;这一点很重要&#xff0c;当出现问题时&#xff0c;IT服务台团队始终在前沿。…

如何使用Docker搭建Drupal内容管理系统并远程访问

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525;个人专栏:《Linux深造日志》《C干货基地》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 前言1. Docker安装Drupal2. 本地局域网访问3 . Linux 安装cpolar4. 配置Drupal公网访问地址5. 公网远程访问Drupal…

lua环境安装

文章目录 Linux 系统上安装Mac OS X 系统上安装Window 系统上安装 Lua第一个 Lua 程序 Linux 系统上安装 Linux & Mac上安装 Lua 安装非常简单&#xff0c;只需要下载源码包并在终端解压编译即可&#xff0c;本文使用了5.3.0版本进行安装&#xff1a; curl -R -O http://…

2011年12月19日 Go生态洞察:用Go构建StatHat的故事

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

【蓝桥杯选拔赛真题19】C++最佳策略 第十二届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

目录 C/C++最佳策略 一、题目要求 1、编程实现 2、输入输出 二、算法分析 <

matlab 小波自适应阈值去噪

1、内容简介 略 12-可以交流、咨询、答疑 小波自适应阈值去噪 2、内容说明 小波自适应阈值一维信号去噪&#xff0c;也包含软阈值和硬阈值 硬阈值、软阈值、自适应阈值 3、仿真分析 略 4、参考论文 略 链接&#xff1a;https://pan.baidu.com/s/1yQ1yDfk-_Qnq7tGpa23L…

用python将csv表格数据做成热力图

python的开发者为处理表格和画图提供了库的支持&#xff0c;使用pandas库可以轻松完成对csv文件的读写操作&#xff0c;使用matplotlib库提供了画热力图的各种方法。实现这个功能首先需要读出csv数&#xff0c;然后设置自定义色条的各种属性如颜色&#xff0c;位置&#xff0c;…

Springboot+Dubbo+Nacos 集成 Sentinel(入门)

Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障微服务的稳定性。Sentinel 官网 1.版本选择 参考 SpringClou…

农业水土环境建模流程、DEM数据制备、土地利用数据制备、土壤数据制备、气象数据制备、农业措施数据制备、参数率定与结果验证、农业面源污染分析

目录 一、农业水土环境建模概述 二、ArcGIS入门 三、农业水土环境建模流程 四、DEM数据制备流程 五、土地利用数据制备流程 六、土壤数据制备流程 七、气象数据制备流程 八、农业措施数据制备流程 九、参数率定与结果验证 十、模型结果分析及地图制作 十一、农业土壤…

说说React服务端渲染怎么做?原理是什么?

一、是什么 在SSR中,我们了解到Server-Side Rendering ,简称SSR,意为服务端渲染 指由服务侧完成页面的 HTML 结构拼接的页面处理技术,发送到浏览器,然后为其绑定状态与事件,成为完全可交互页面的过程 其解决的问题主要有两个: SEO,由于搜索引擎爬

jenkins CSV编码导致乱码问题解决

问题&#xff1a;生产报告会乱码的问题&#xff0c;一般是有编码格式引起的。我遇到的问题是&#xff0c;jmeter需要读取csv的数据作为参数。但是我们并不知道csv保存是什么编码格式&#xff0c;有可能不是utf-8的编码格式&#xff0c;所以会导致中文乱码的问题 解决方案&#…

MVVM框架:图片加载有问题

一、前言&#xff1a;在我使用ImageView加载图片的时候添加如下代码发现报错 app:imageUrl"{viewModel.observableField.assetImg}"报错如下错误 二、原因&#xff1a;是啥我不太清楚好像是没有imageView的适配器&#xff0c;后来我看了一下确实没有 public class I…