嵌入式学习第三篇——51单片机

news2024/11/16 3:38:00

目录

1,嵌入式系统

1,嵌入式系统的定义          

2,单片机的定义

2,51单片机

1,开发环境

2,开发板使用的基本思路

1,查看原理图,查看芯片手册

2,获得调用硬件的管脚信息

3,使用编译器敲入调试代码

4,使用考录器将编译好的执行文件考入开发板


1,嵌入式系统

1,嵌入式系统的定义          

嵌入式系统就是

用于控制、监视或者辅助操作机器和设备的装置,是一种专用的计算机系统。

2,单片机的定义

单片机就是

将计算机集成到一块芯片中

2,51单片机

1,开发环境

编译器   keil

考录器 stc—isp

2,开发板使用的基本思路

1,查看原理图,查看芯片手册

以51单片机为例:

芯片引脚图

芯片使用手册

2,获得调用硬件的管脚信息

主要找到具体所需的引脚和对应的单片机上的引脚

3,使用编译器敲入调试代码

以调用led为例:

主函数main.c

#include <reg52.h>  //51单片机专门的头文件 
#include "led.h"

int main(void)
{
   //ledAllOn();
   //ledOffN(5);
	int i = 1;
   while(1)
   {
	   ledAllOn(); 
	  
	   ledOnN(5);
	   delay(30000);
	   ledAllOff();
	   delay(30000);

//	 ledOnN(i);
//	 delay(300000);
//	 if (i == 8)
//	 {
//	 	i = 1;
//		ledAllOff();
//		delay(30000);
//		continue;
//	 }
//	 i++;

   }

   return 0;
}

led灯控制函数led.c

#include "led.h"
void delay(unsigned int n) //int 2字节 
{  
	while (n)
	{
	   --n;
	}
}
void ledAllOn(void)
{
   P2 = 0x00;
}
void ledAllOff(void)
{
   P2 = 0xFF;
}

void ledOnN(int n)
{
  P2 = P2 & ~(1<<n-1);
}

void ledOffN(int n)
{
  P2 = P2 | (1<<n-1); 
}

void ledStream(void)
{  
	  int i = 1;
	  while (1)
	  {
		 ledOnN(i);
		 delay(300000);
		 if (i == 8)
		 {
		 	i = 1;
			ledAllOff();
			delay(30000);
			continue;
		 }
		 i++;
	  }
}

头文件led.h

#ifndef _LED_H_
#define _LED_H_
#include <reg52.h>  
void ledAllOn(void);
void ledAllOff(void);
void ledOnN(int n);
void ledOffN(int n);
void ledStream(void);
void delay(unsigned int n);
#endif

4,使用考录器将编译好的执行文件考入开发板

根据开发板上硬件的反馈,继续调试程序

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用Arcgis对欧洲雷达高分辨率降水数据重投影

当前需要使用欧洲高分辨雷达降水数据&#xff0c;但是这个数据的投影问题非常头疼。实际的投影应该长这样&#xff08;https://gist.github.com/kmuehlbauer/645e42a53b30752230c08c20a9c964f9?permalink_comment_id2954366https://gist.github.com/kmuehlbauer/645e42a53b307…

4K Video Downloader forMac/win:畅享高清视频下载的终极利器!

在如今的数字时代&#xff0c;高清视频已经成为人们生活中不可或缺的一部分。无论是观看精彩的电影、音乐视频&#xff0c;还是学习教育类的在线课程&#xff0c;我们都希望能够以最清晰流畅的方式来欣赏。而为了满足这一需求&#xff0c;我们需要一款功能强大的高清视频下载软…

一文读懂C++的类和对象以及多态的原理

现实生活中&#xff0c;关于类和对象最好的例子是自然界的动物类&#xff0c;本文将以此为场景逐步引入C的概念&#xff0c;达到学习的目的。因为C这门语言本身有很多繁杂的内容&#xff0c;而网上的资源也是参差不齐&#xff0c;有的人见山谈山遇水聊水&#xff0c;有多人故弄…

Vue3 - 从 vue2 到 vue3 过渡,这一套就够了(案例 + 效果演示)(二)

目录 一、组合式 API 的使用 1.1、watch 函数 1.2、watchEffect 函数 1.3、toRef 和 toRefs 1.3.1、toRef 1.3.2、toRefs 1.4、vue3 的声明周期 一、组合式 API 的使用 1.1、watch 函数 与 vue2.x 中的 watch 配置功能一致&#xff0c;但是多了一些坑&#xff1a; 这…

大数据环境搭建(一)-Hive

1 hive介绍 由Facebook开源的,用于解决海量结构化日志的数据统计的项目 本质上是将HQL转化为MapReduce、Tez、Spark等程序 Hive表的数据是HDFS上的目录和文件 Hive元数据 metastore&#xff0c;包含Hive表的数据库、表名、列、分区、表类型、表所在目录等。 根据Hive部署模…

10 分钟在K8s 中部署轻量级日志系统 Loki

转载至我的博客 https://www.infrastack.cn &#xff0c;公众号&#xff1a;架构成长指南 Loki 是什么&#xff1f; Loki是由Grafana Labs开源的一个水平可扩展、高可用性&#xff0c;多租户的日志聚合系统的日志聚合系统。它的设计初衷是为了解决在大规模分布式系统中&#x…

WebGL+Three.js入门与实战——绘制水平移动的点、通过鼠标控制绘制(点击绘制、移动绘制、模拟画笔)

个人简介 &#x1f440;个人主页&#xff1a; 前端杂货铺 &#x1f64b;‍♂️学习方向&#xff1a; 主攻前端方向&#xff0c;正逐渐往全干发展 &#x1f4c3;个人状态&#xff1a; 研发工程师&#xff0c;现效力于中国工业软件事业 &#x1f680;人生格言&#xff1a; 积跬步…

MATLAB矩阵的操作(第二部分)

师从清风 矩阵的创建方法 在MATLAB中&#xff0c;矩阵的创建方法主要有三种&#xff0c;分别是&#xff1a;直接输入法、函数创建法和导入本地文件中的数据。 直接输入法 输入矩阵时要以中括号“[ ]”作为标识符号&#xff0c;矩阵的所有元素必须都在中括号内。 矩阵的同行元…

IEC104 S帧超时判定客户与服务端不匹配造成的异常链接问题分析

2、通过ss命令发现确有链接端口变化&#xff0c;与设备约一天一次的重连&#xff0c;通过抓包&#xff08;tcpdump -vvv -nn port 1001 -w 0926.cap&#xff09;分析得以下现象 2.1、异常情况时未对设备的I帧均匀的回S帧进行确认&#xff0c;正常情况时均匀的回S帧进行确认 2.…

数据在内存中的存储(上)

1. 整数在内存中的存储 整数的2进制表示方法有三种&#xff1a;即原码、反码和补码 三种表示方法均有符号位和数值位两部分&#xff0c;符号位都是用0表示“正”&#xff0c;用1表示“负”&#xff0c;而数值位最 高位的一位是被当做符号位&#xff0c;剩余的都是数值位。 正…

深度学习水论文怎么缝模块?搭积木永不过时!(附80个即插即用模型)

深度学习如何创新&#xff1f;如何水模型&#xff1f;总结来说就八个字&#xff1a;排列组合&#xff0c;会讲故事。说直白点&#xff0c;就是缝模块。 先看看别人怎么做&#xff0c;然后根据自己的实际情况将这些模块来一波随机组合&#xff0c;这样效率会高很多。我这边已经…

冰冻天气恰逢春运,“观冰精灵”化身电力供应守护者

据中国路网&#xff0c;截至2月1日14时&#xff0c;受降雪及路面结冰影响&#xff0c;河北、山西、内蒙古、黑龙江、江苏、安徽、河南、山东、西藏、陕西、宁夏、甘肃、新疆共封闭路段66个&#xff08;涉及44条高速公路、5条普通国道、5条普通省道&#xff09;&#xff0c;关闭…

Pandas.Series.clip() 修剪数值范围 详解 含代码 含测试数据集 随Pandas版本持续更新

关于Pandas版本&#xff1a; 本文基于 pandas2.2.0 编写。 关于本文内容更新&#xff1a; 随着pandas的stable版本更迭&#xff0c;本文持续更新&#xff0c;不断完善补充。 传送门&#xff1a; Pandas API参考目录 传送门&#xff1a; Pandas 版本更新及新特性 传送门&…

前端JavaScript篇之map和Object的区别、map和weakMap的区别

目录 map和Object的区别map和weakMap的区别 map和Object的区别 Object是JavaScript的内置对象&#xff0c;用于存储键值对。Object的键必须是字符串或符号&#xff0c;值可以是任意类型。Map是ES6引入的新数据结构&#xff0c;用于存储键值对。Map的键可以是任意类型&#xff…

高中数学两面角习题练习1

用到的定理 2 第1问证明&#xff1a; 第2问用到的知识和例子&#xff1a; 二面角锐角钝角判断的快速技巧 https://www.bilibili.com/video/BV13P41157K1/?spm_id_from333.788.recommend_more_video.0&vd_source91b03ee59c462b7b3cfbd57346cf1001 叉乘的几何意义及应用 …

day39 不同路径 不同路径Ⅱ

题目1&#xff1a;62 不同路径 题目链接&#xff1a;62 不同路径 题意 机器人位于m*n网格的左上角每次只能向下或向右移动一步&#xff0c;到达网格的右下角,返回不同路径的数量 动态规划 动规五部曲 1&#xff09;dp数组及下标i的含义 dp[i][j]&#xff1a;到达(i,j)有…

2024年 复习 HTML5+CSS3+移动web 笔记 之CSS遍 第5天

第 五 天 整个网站例 5.1 准备工作 项目目录与版心 base.css 5.2 网页制作思路 5.3 header 区域-整体布局 5.4 header区域-logo 5.5 header区域-导航 index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">&l…

代码随想录算法训练营29期Day41|LeetCode 343,96

文档讲解&#xff1a;整数拆分 不同的二叉搜索树 343.整数拆分 题目链接&#xff1a;https://leetcode.cn/problems/integer-break/description/ 思路&#xff1a; 题目要求我们拆分n&#xff0c;拆成k个数使其乘积和最大&#xff0c;然而题目中并没有给出k&#xff0c;所以…

[python]基于opencv实现的车道线检测

【检测原理】 一、首先进行canny边缘检测&#xff0c;为获取车道线边缘做准备 二、进行ROI提取获取确切的车道线边缘&#xff08;红色线内部&#xff09; 三、利用概率霍夫变换获取直线&#xff0c;并将斜率正数和复数的线段给分割开来 四、离群值过滤&#xff0c;剔除斜率…

uniapp 高德地图显示

1. uniapp 高德地图显示 使用前需到**高德开放平台&#xff08;https://lbs.amap.com/&#xff09;**创建应用并申请Key   登录 高德开放平台&#xff0c;进入“控制台”&#xff0c;如果没有注册账号请先根据页面提示注册账号   打开 “应用管理” -> “我的应用”页面…