51单片机入门

文章目录

    • 一、安装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引脚),复位电路使单片机初始化,晶振电路为单片机提供时钟脉冲信号。
各种引脚等看完数电模电再来填坑,I/O等学完单片机再来填坑

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

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总线使用及网格标号相关博客

在这里插入图片描述

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

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

相关文章

快手社招Java后端开发岗面试,被问麻了

社招面试是基于你的工作项目来展开问的&#xff0c;比如你项目用了 xxx 技术&#xff0c;那么面试就会追问你项目是怎么用 xxx 技术的&#xff0c;遇到什么难点和挑战&#xff0c;然后再考察一下这个 xxx 技术的原理。 今天就分享一位快手社招面经&#xff0c;岗位是后端开发&…

使用vue.component全局注册组件、props的使用

通过components注册的是私有子组件 例如&#xff1a; 在组件A的 components 节点下&#xff0c;注册了组件F。 则组件F只能用在组件A中;不能被用在组件C中。 注册全局组件 在vue项目的 main.js 入口文件中&#xff0c;通过 Vue.component() 方法&#xff0c;可以注册全局组件…

springboot+vue小区物业管理系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的小区物业管理系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 &#x1f495;&#x1f495;作者&#xff1a;风…

【2023软考】信息系统监理师与系统集成项目管理工程师哪个更好考?

肯定是系统集成项目管理工程师更好考。 软考信息系统监理师是一项国家级专业职业资格证书&#xff0c;是我国信息技术行业的重要职业资格之一。软考信息系统监理师主要从事信息系统建设项目的监理和管理工作&#xff0c;包括项目前期准备、项目实施阶段和项目验收阶段的监理和…

字符串总结

一、最长公共前缀 1.方法一&#xff1a;横向扫描 class Solution { public:string longestCommonPrefix(vector<string>& strs) {if (!strs.size()) {return "";}string prefix strs[0];int count strs.size();for (int i 1; i < count; i) {prefix…

VS同时调试主程序和子程序工具

VS要想要实现同时调试主程序和子程序&#xff0c;可使用工具 Microsoft Child Process Debugging power Tool 来实现。 我的环境和官方使用说明 环境&#xff1a;VS2019 官方使用说明&#xff1a;Introducing the Child Process Debugging Power Tool - Azure DevOps Blogh…

Shell编程规范与使用

目录 一、Shell脚本概述 1&#xff09;Shell的作用——命令解释器&#xff0c;“翻译官” 2&#xff09;常见shell解释器 3&#xff09;编程语言类型 4&#xff09;Shell脚本 编写脚本代码 Shell脚本的构成 赋予可执行权限 Shell脚本的执行方法 5&#xff09;重定向与…

【学习笔记】unity脚本学习(六)【GUI发展历程、IMGUI控件、Layout自动布局】

目录 unity 界面发展IMGUINGUI其他GUI插件uGUIUI 工具包比较 GUI基础GUI静态变量Unity扩展编辑器屏幕空间的总尺寸Screen.width 和 Screen.height GUI静态函数&#xff08;GUI控件&#xff09;Label图片 Box控件Button与RepeatButtonTextFieldTextAreaPasswordField其他控件 GU…

缓存优化---环境搭建

缓存优化 为什么要使用redis缓存&#xff1f; 问题说明 用户数量多&#xff0c;系统访问大&#xff0c;频繁访问数据库&#xff0c;系统性能下降&#xff0c;用户体验差 环境搭建 maven坐标 在项目中的pom.xml文件中导入spring data redis的maven坐标&#xff1a; <depen…

Java+GeoTools实现WKT数据根据EPSG编码进行坐标系转换

场景 JavaGeoTools(开源的Java GIS工具包)快速入门-实现读取shp文件并显示&#xff1a; JavaGeoTools(开源的Java GIS工具包)快速入门-实现读取shp文件并显示_霸道流氓气质的博客-CSDN博客 在上面实现Java中集成Geotools之后&#xff0c;需求是将WKT数据转换成其他坐标系的W…

web前端实验5

实 验 报 告 课 程 Web前端应用开发 实验项目 Jquery AJAX编程 成 绩 专业班级 班内序号 指导教师 姓 名 学 号 实验日期 实验目的及要求&#xff1a; &#xff08;1&#xff09; 理解和掌握Jquery AJAX的get方式请求 &#xff08;2&#xff09; 理解和掌握Jquery AJAX的pos…

Redis可视化工具-Another Redis Desktop Manager 安装与连接哨兵集群

目录 一、下载安装 1.1 下载 1.2 安装 二、使用 2.1 新建连接 2.2 新增数据 2.3 应用设置 2.3.1深色模式、语言 2.3.2多个连接的颜色标记 一、下载安装 Another Redis DeskTop Manager 是 Redis 可视化管理工具&#xff0c;体积小&#xff0c;完全免费。最重要的是稳定…

低代码平台名声臭,用起来却真香——60%开发者不敢承认

群体盲从意识会淹没个体的理性&#xff0c;个体一旦将自己归入该群体&#xff0c;其原本独立的理性就会被群体的无知疯狂所淹没。——《乌合之众》 不知道从什么时候开始&#xff0c;“低代码不行”的论调充斥着整个互联网圈子&#xff0c;csdn、掘金、知乎、B站、脉脉……到处…

面试华为,花了2个月才上岸,真的难呀····

花2个月时间面试一家公司&#xff0c;你们觉得值吗&#xff1f; 背景介绍 美本计算机专业&#xff0c;代码能力一般&#xff0c;之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发&#xff0c;第二份实习由于大三暑假回国的时间比…

32岁阿里P7,把简历改成不知名小公司,学历改成普通本科,工作内容不变,投简历全挂!...

hr靠什么来招人&#xff1f; 一位猎头讲述了自己和朋友打赌的故事&#xff1a; 朋友在阿里云&#xff0c;32岁&#xff0c;P7&#xff0c;他把简历上的公司改成不知名&#xff0c;学历改成普通本科&#xff0c;工作内容不变&#xff0c;结果投其他公司&#xff08;比如京东&…

Spring Boot异步任务、异步消息

目录 1.异步任务 1.1.概述 1.2.使用 2.异步消息 2.1.概述 2.2.使用 1.异步任务 1.1.概述 举一个例子&#xff0c;我现在有一个网上商城&#xff0c;客户在界面点击下单后&#xff0c;后台需要完成两步&#xff1a; 1.创建客户订单 2.发短信通知客户订单号 这里面第2…

【hello Linux】理解文件系统

目录 创建文件的过程&#xff1a; 删除文件的过程&#xff1a; 创建目录的过程&#xff1a; 查看inode编号&#xff1a; 硬链接 软链接 Linux&#x1f337; 我们知道文件所有数据 文件内容 文件属性信息&#xff1b; 未打开的文件是被存放到磁盘/固态硬盘中的&#xff1b; …

《前端bug齁逼多,真假开发说》2023/4/10-2023/4/18问题汇总

1 高德地图 运行抱错 INVALID_USER_SCODE 这里是错误信息对应原因 错误信息列表-参考手册-地图 JS API | 高德地图API 这里是高德地图api设置说明 准备-入门-教程-地图 JS API | 高德地图API 如果你自己能排查出错误 那不用看我的&#xff0c;如果都写的对还是抱错…

1686_MATLAB处理Excel文件

全部学习汇总&#xff1a; GreyZhang/g_matlab: MATLAB once used to be my daily tool. After many years when I go back and read my old learning notes I felt maybe I still need it in the future. So, start this repo to keep some of my old learning notes servral …

非常详细的阻抗测试基础知识

编者注&#xff1a;为什么要测量阻抗呢&#xff1f;阻抗能代表什么&#xff1f;阻抗测量的注意事项... ...很多人可能会带着一系列的问题来阅读本文。不管是数字电路工程师还是射频工程师&#xff0c;都在关注各类器件的阻抗&#xff0c;本文非常值得一读。全文13000多字&#…