51单片机入门

news2025/1/4 17:19:35

文章目录

    • 一、安装keil5及proteus
    • 二、MCS-51单片机结构与原理
      • (一).8051单片机基本组成
      • (二).8051单片机引脚
        • 1.电源引脚
        • 2.时钟电路引脚
        • 3.控制信号引脚
        • 4.输入/输出端口
      • (三) 并行输入/输出端口结构
    • 三、单片机cx51编程基础
      • (一).变量定义
      • (二).数据类型
      • (三).存储类型
      • (四).Cx51语言程序结构
    • 四、简单实现案例
    • 其他
      • protues如何选择器件?
      • 总线使用

一、安装keil5及proteus

keil5安装 相关博客
Keil C是德国KEIL公司开发的单片机C语言编译器。μVision 4是一个窗口环境下的、集成化的C51开发环境。集成了项目管理、文件编辑、编译连接、软件仿真调试等多种功能。

proteus7安装 相关博客
proteus 8.12安装 相关博客

Proteus软件是英国ab Center Electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。

二、MCS-51单片机结构与原理

(一).8051单片机基本组成

在这里插入图片描述

(二).8051单片机引脚

单独的单片机芯片是工作无法独立工作的,由此引出单片机最小系统。
单片机最小系统,能使单片机正常工作的最基本元件组成的系统,包括外接电源正负极(VCC40引脚、VSS20引脚),复位电路使单片机初始化,晶振电路为单片机提供时钟脉冲信号。

在这里插入图片描述
在这里插入图片描述

1.电源引脚

2.时钟电路引脚

3.控制信号引脚

4.输入/输出端口

(三) 并行输入/输出端口结构

三、单片机cx51编程基础

Cx51语言所用到的数据、变量、运算符、流程控制语句等与C语言基本相同。

(一).变量定义

C51定义一个变量的格式如下 数据类型 [存储类型] 变量名表,其中数据类型与存储类型可以调换,存储类型可以缺省。

	unsigned int i;//定义无符号整数
	unsigned char bdata value;//定义无符号字符 value,定义在片内RAM位寻址区

为了提高执行效率和资源利用率,在程序运行期间根据数据的不同采用不同的方法进行处理,需要将数据定义为不同的类型。

(二).数据类型

Cx51支持的数据类型
在这里插入图片描述
前8种在c语言中具体介绍,后四种为keil c51新增类型,不支持数组和指针操作。这四种简单了解下,在后面应用时再做详细学习。

  • bit用来定义位变量,位于8051单片机内部RAM位寻址区(20H~2FH)。如果指定bit存储类型只能使用data或者idata
  • sfr用于定义特殊功能寄存器变量,例如对P0口。该变量存储在片内的特殊功能寄存器存储区中,用来对特殊功能寄存器进行读写操作。
  • sbit用于定义特殊功能寄存器位变量,用来对特殊功能寄存器的可位寻址位进行读写操作。
  • sfr16也用于定义特殊功能寄存器,所不同的是它用于操作占两个字节的特殊功能寄存器
	unsigned char bdata value;//定义无符号字符 value,定义在片内RAM位寻址区
	bit value_0 = value^0;
	
	sfr P0 = 0x90;定义P0端口在片内寄存器,通过改变P0值对该端口寄存器(地址0x90)进行操作
	
	sfr16 DPTR = 0x82;// DPTR低8位地址为 0x82 高地址为0x83
	
	sbit P0_0 = P0^0;// 对P0第0位操作可以用P0_0代替

(三).存储类型

在Keil中,片内存储目标代码对变量访问速度快,存储空间有限,片外存储虽然访问速度慢但容量大。
51单片机有片内数据存储区程序存储区,在片内存储区空间不足时需要扩展片外存储区
在这里插入图片描述

  • data区访问速度最快,不过DATA区存储空间有限,除了包含程序变量外,还包含堆栈和寄存器组,因此不可定义过多,以避免影响中断等正常功能。
  • bdata允许位与字节混合访问。
  • idata使用指针来进行寻址和访问。
  • pdata存储在片外存储器的第一页,寻址时只需装入8位地址,相对于xdata要快。
  • xdata寻址需要完整的16位地址。
  • code 将变量存储在程序存储器中,不占用RAM空间。缺点变量只读不能写,因此适合存储常量或者查表类数组数据

(四).Cx51语言程序结构

Cx51语言程序由编写者组织和定义的一个或者多个函数构成,通过函数的有序调用完成预期功能。
函数分为主函数,标准函数库,自定义函数。
在这里插入图片描述

四、简单实现案例

在8051单片机上的P1.0端口接上LED,实现LED周期闪烁。

一些器件名称 CAP 电容;CAP-ELEC电解电容;CRYSTAL 晶振;RES电阻;

原理图
在这里插入图片描述

代码实现

#include<reg51.h> //包含单片机定义寄存器的头文件
sbit led = P1^0; //将led定义为P1.0位
void delay(void) //延时函数
{
   unsigned int i;    //定义无符号整数,最大取值范围65535
   for(i=0;i<20000;i++);//做20000次空循环,以进行延时。                     
}
int main(void ) //主函数
{
  while(1)    //无限循环,以使LED持续闪烁。
   {
	    led =0;  // P1.0输出低电平,灯亮
	    delay(); //延时一段时间
	    led =1;  // P1.0输出高电平,灯灭
	    delay(); //延时一段时间
   }
}

其他

protues如何选择器件?

普通器件
在这里插入图片描述
电源接地等。。。
在这里插入图片描述

总线使用

proteus总线使用及网格标号相关博客

在这里插入图片描述

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

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

相关文章

【Python】逆向解析js代码

目录 1. 打开百度翻译网页&#xff0c;查找翻译结果的网络资源包 2. 获取翻译结果网络资源包的url、请求头、请求体&#xff0c;解析json文件数据 3. 观察请求体字段&#xff0c;发现 query 字段便是我们输入的需要翻译的值 4. ctrl F 快捷键搜索sign值的网络资源包&#x…

自然语言处理:词嵌入简介

动动发财的小手&#xff0c;点个赞吧&#xff01; Word Embeddings 机器学习模型“查看”数据的方式与我们&#xff08;人类&#xff09;的方式不同。例如&#xff0c;我们可以轻松理解“我看到一只猫”这一文本&#xff0c;但我们的模型却不能——它们需要特征向量。此类向量或…

MongoDB 聚合管道的集合关联($lookup)及合并($unionWith)

目前为止&#xff0c;我们已经介绍了一部分聚合管道中的管道参数&#xff1a; $match&#xff1a;文档过滤 $group&#xff1a;文档分组&#xff0c;并介绍了分组中的常用操作&#xff1a;$addToSet&#xff0c;$avg&#xff0c;$sum&#xff0c;$min&#xff0c;$max等。 $add…

python OCR识别验证码

1. 抓取网页验证码图像并保存 import lxml.html, urllib3# 使用urllib3抓取网页数据 http urllib3.PoolManager() html http.request(GET,site).data# 使用lxml解析网页数据 tree lxml.html.fromstring(html) # 解析HTML&#xff0c;补全不完整的格式 fixedhtml lxml.ht…

LeetCode:102. 二叉树的层序遍历

&#x1f34e;道阻且长&#xff0c;行则将至。&#x1f353; &#x1f33b;算法&#xff0c;不如说它是一种思考方式&#x1f340;算法专栏&#xff1a; &#x1f449;&#x1f3fb;123 可以参考&#x1f449;LeetCode&#xff1a;二叉树的前、中、后序遍历——如何创建一棵【二…

机器学习 特征工程

文章目录 一、数据预处理1. 缺失值处理1.1 删除1.2 统计值填充1.3 前后向值填充1.4 直接忽略1.5 模型预测 2. 异常值处理 二、特征提取1. 数值型特征提取1.1 标准化与缩放1.1.1标准化&#xff08;Standardization&#xff09;1.1.2 归一化&#xff08;Normalization&#xff09…

STM32F4_定时器精讲(TIM)

目录 1. 什么是定时器&#xff1f; 2. STM32定时器简介 2.1 高级控制定时器 TIM1和TIM8 2.1.1 TIM1和TIM8简介 2.1.2 时基单元 2.1.3 计数器模式 2.1.4 重复计数器 2.1.5 时钟选择 2.1.6 捕获/比较通道 2.1.7 输入捕获模式 2.1.8 其他功能 2.2 通用定时器 TIM2到TI…

算法----删点成林

题目 给出二叉树的根节点 root&#xff0c;树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现&#xff0c;我们就把该节点从树上删去&#xff0c;最后得到一个森林&#xff08;一些不相交的树构成的集合&#xff09;。 返回森林中的每棵树。你可以按任意顺序组…

2023年天梯赛模拟赛

//能力有限&#xff0c;只展示一百分代码。前八个题一般是原题&#xff0c;所以不展示题目。 L1-1 嫑废话上代码 #include<bits/stdc.h> using namespace std; int main(){cout<<"Talk is cheap. Show me the code.";return 0; } L1-2 九牛一毛 这是…

Leetcode每日一题——“移除元素”

各位CSDN的uu们你们好呀&#xff0c;小雅兰又来啦&#xff0c;今天&#xff0c;小雅兰的内容是移除元素&#xff0c;下面&#xff0c;让我们进入Leetcode的世界吧 说明: 为什么返回数值是整数&#xff0c;但输出的答案是数组呢? 请注意&#xff0c;输入数组是以「引用」方式…

ChatGPT | 使用new bing的简易教程

1. 教程参考&#xff1a; https://juejin.cn/post/7199557716998078522 2.在参考上述教程遇到的问题与解决 2.1 下载dev浏览器的网址打不开 egde dev下载地址&#xff08;上面网站上的&#xff09;我电脑打不开 换用下面的网址即可 https://www.microsoftedgeinsider.com/z…

在three.js中废置对象

基于three.js子如何废置对象(How to dispose of objects) 前言: 为了提高性能,并避免应用程序中的内存泄露,一个重要的方面是废置未使用的类库实体。 每当创建一个three.js中的实例时,都会分配一定数量的内存。然而,three.js会创建在渲染中所必需的特定对象, 例如几何…

4.11、socket地址

4.11、socket地址1.通用 socket 地址2.专用socket地址1.通用 socket 地址 socket 网络编程接口中表示 socket 地址的是结构体 sockaddr&#xff0c;其定义如下&#xff1a; // socket地址其实是一个结构体&#xff0c;封装端口号和IP等信息。后面的socket相关的api中需要使用…

【c语言】每日一题之汉诺塔类型

目录 前言题目说明描述 题目分析汉诺塔问题 题目代码展示 前言 大佬们&#xff0c;我又回来了&#xff0c;最近也在忙自己的学业&#xff0c;忙着生活对线&#xff0c;也参加了今年的蓝桥杯其他的组&#xff0c;发现今年太难了 &#xff0c;摆烂了。但我想到了读者你们&#x…

前端面试之JavaScript题目,简单全面(持续更新ing...)

数据类型 1.JavaScript有哪些数据类型&#xff0c;它们的区别&#xff1f; 类型&#xff1a;JavaScript共有8种数据类型&#xff0c;undefined&#xff0c;null&#xff0c;Boolean&#xff0c;string&#xff0c;number&#xff0c;bigint&#xff0c;symbol&#xff0c;obj…

K-计算面积

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 题目描述 小w给你三种图形&#xff0c;可能是平行四边形&#xff0c;三角形&#xff0c;梯形&#xff0c;对于给定的TTT个图形&#xff0c;你需要依次回答每个图形的面积&#xff0c;保证答案…

《LeetCode》——LeetCode刷题日记

本期&#xff0c;将给大家带来的是关于 LeetCode 的关于二叉树的题目讲解。 目录 &#xff08;一&#xff09;606. 根据二叉树创建字符串 &#x1f4a5;题意分析 &#x1f4a5;解题思路 &#xff08;二&#xff09;102. 二叉树的层序遍历 &#x1f4a5;题意分析 &#…

docker stats 命令详解

docker stats : 显示容器资源的使用情况&#xff0c;包括&#xff1a;CPU、内存、网络 I/O 等。 docker stats [OPTIONS] [CONTAINER...]OPTIONS 说明&#xff1a; –all , -a :显示所有的容器&#xff0c;包括未运行的。 –format :指定返回值的模板文件。 –no-stream :展…

( “树” 之 BFS) 637. 二叉树的层平均值 ——【Leetcode每日一题】

637. 二叉树的层平均值 给定一个非空二叉树的根节点 root , 以数组的形式返回每一层节点的平均值。与实际答案相差 1 0 − 5 10^{-5} 10−5 以内的答案可以被接受。 示例 1&#xff1a; 输入&#xff1a;root [3,9,20,null,null,15,7] 输出&#xff1a;[3.00000,14.50000,1…

060202体积弧长-定积分在几何学上的应用-定积分的应用

文章目录 2 体积2.1 旋转体的体积2.2 平行截截面面积已知的立体的体积2.3 例题 3 平面曲线的弧长2.1 直接坐标系2.2 参数方程2.3 极坐标系 结语 2 体积 2.1 旋转体的体积 情形①平面图形由 y f ( x ) , y 0 , x a , x b yf(x),y0,xa,xb yf(x),y0,xa,xb所围成&#xff0c;…