51单片机基础篇系列-51单片机基础开发流程和基本I/O口

 🌈个人主页: 会编程的果子君

💫个人格言:“成为自己未来的主人~”  

51开发平台的组成

单片机应用系统(也叫目标系统)

硬件:

用户可以自己设计制作,也可以采用现成的开发板快捷搭建

软件:

用户自己编写,编程器(也叫烧写器)STC的所有51单片机均不需要编程器,通过串口或USB口下载程序

开发工具

硬件

软件

通过集成开发环境(将编辑器,C编译器,软件仿真器软件全部集成在一个软件中)STC-ISP下载软件。

单片机的开发

单片机的开发条件和工作主要包括硬件条件,软件条件,软硬件设计,软硬件仿真,开发系统调试和运作等

51软件开发的大致流程

  • 用C语言编写好源程序,(在电脑上的编辑器软件中)
  • 将源程序(也叫源代码,源文件)编译成目标程序(也叫目标代码,机器码,目标文件,HEX文件),(调用电脑上的C语言编译器软件)
  • 用下载软件将目标程序写入单片机芯片中
  • 写入后会自动运行目标程序
  • 如果程序运行后不正常,可以用人工检查,软件仿真器,硬件仿真器,串口助手等技术手段排除所编程序中存在的各种错误,错误排除后,再重复上面的3,4

MCS-51单片机的基本特性

  1. 8位的CPU,片内有振荡器和时针电路,工作频率为1~12MHz
  2. 片内有128/256字节RAM
  3. 片内有OK/4K/8K字节,程序存储器ROM
  4. 21/26个特殊功能寄存器(SFR)4个8位的
  5. 并行I/O口
  6. 1个全双工串行口(SIO/UART)
  7. 2/3个16位定时器/计数器
  8. 可处理5/6个中断源,两级中断优先级 内置1个布尔处理器和1个布尔累加器
  9. MCS-51指令集含111条指令(用C语言不需要记指令的)

VCC,GND:正电源端与接地端(+5v/3,3v/2,7v)不同的单片机可以允许不同的工作电压,不同的单片机表现出的功耗也不同

XTAL1,XTAL2:片内震荡电路输入/输出端

通常外接一个晶振,两个电容,也可以由XTAL1端接入外部时钟,此时应将XTAL2接地

CPU总是按照一定的时钟节拍与时序工作

震荡周期/时钟周期:Tc=晶振频率fosc(或外加频率)的倒数

状态周期:Ts=2个时钟周期(Tc)

机器周期:Tm=6个状态周期(Ts)=12个震荡周期(Tc)

指令周期:Ti:执行一条指令所需的机器周期(Tm)数

震荡周期=晶振周期fosc的倒数

一个机器周期=12个震荡周期

1个指令周期=1,2,4个机器周期

RESET:复位端(正脉冲有效,宽度>8 ms)

复位使单片机进入某种确定的初始状态

单片机的引脚

EA端

EA/Vpp:寻址外部ROM控制端/编程电源输入端

低有效,片内无ROM时必须接地

                片内有ROM时应当接高电平

对片内ROM编程时编程正电源加到此端

ALE端

ALE/PROG:地址锁存允许/编程脉冲输入端

PO口寻址外部低8位地址时接外部存储器 C端;ALE端平时会输出周期正脉冲,F=FOSC/6,对片内ROM编程时编程脉冲由此端输入

如何通过I/O口输出电平信号

  • 单片机和外部设备的交互,无论输入还是输出,都是通过I/O口进行的
  • I/O口在进行数据的输入输出之前,必须先设置IO模式
  • IT单片机所有I/O口均可通过对PnM1,PnM0这两个控制寄存器配置成4种工作类型之一,4中工作类型分别为:准双向口(标准8 0 5 1 输出模式,输入输出时有弱上拉),推挽输出(也称强输出),仅为输入(也是输出高阻)或开漏输出,上电复位后为准双向口(传统8051的I/O口)模式
  • 注意,传统8051的I/O口输出不需要设置,输入时要给写1

 

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

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

相关文章

扁平数据转树形结构,让数据管理更清晰

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

1.初学docker

这是在centos7上的基本操作用法。 一、基本操作 # 安装yum源 yum install -y yum-utils # 配置yum源 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # 安装docker yum install -y docker-ce-cli containerd.io docker-buildx-plu…

C语言——函数指针——函数指针数组 (详解)

函数指针数组 函数指针数组的作用 函数指针数组是一个数组,其中的每个元素都是一个函数指针。函数指针是指向函数的指针变量,可以用来调用相应的函数。函数指针数组的作用是可以根据需要动态地选择并调用不同的函数。 函数指针数组的使用场景有很多&…

微服务day06-Docker

Docker 大型项目组件较多,运行环境也较为复杂,部署时会碰到一些问题: 依赖关系复杂,容易出现兼容性问题 开发、测试、生产环境有差异 1.什么是Docker? 大型项目组件很多,运行环境复杂,部署时会遇到各种…

Beans模块之工厂模块BeanFactory

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

Linux 之九:CentOS 上 Tomcat 安装、SpringBoot 项目打包和部署

安装 Tomcat 下载 a. 方式一:可以在windows 真机上下载后,再上传到服务器 b. 方式二:可以在服务器端使用 wget 下载命令来下载 登录官网https://tomcat.apache.org/download-90.cgi,选择 linux 版本 右键,获取下载链接…

服务器-->网站制作-->接口开发,一篇文章一条龙服务(2)

作者:q: 1416279170v: lyj_txd前述:本人非专业,兴趣爱好自学自研,很多没有说清楚的地方见谅,欢迎一起讨论的小伙伴~ 上期回顾,了解 服务器,网站制作,接口开发之见的关系&#xff0c…

vue中实现3d词云效果(已封装组件)

<!--* Description: 词云组件 页面* Date: 2024/3/10 23:39 --> <template><div:style"{display: flex,justifyContent: center,border: 1px solid red,}"><svg:width"width":height"height"mousemove"listener($even…

【HarmonyOS】ArkUI - 自定义卡片样式

ArkUI - 自定义卡片样式 HarmonyOS API 9 没有提供原生的卡片样式&#xff0c;我定义了一个卡片样式&#xff0c;可以方便大家在日常开发中使用。 效果图&#xff1a; 卡片样式代码如下&#xff1a; Styles function card() {.width(95%).padding(20).backgroundColor(Col…

C#,数值计算,用割线法(Secant Method)求方程根的算法与源代码

1 割线法 割线法用于求方程 f(x) 0 的根。它是从根的两个不同估计 x1 和 x2 开始的。这是一个迭代过程&#xff0c;包括对根的线性插值。如果两个中间值之间的差值小于收敛因子&#xff0c;则迭代停止。 亦称弦截法&#xff0c;又称线性插值法.一种迭代法.指用割线近似曲线求…

ubuntu20.04环境搭建:etcd+patroni+pgbouncer+haproxy+keepalived的postgresql集群方案

搭建基于etcdpatronipgbouncerhaproxykeepalived的postgresql集群方案 宿主机操作系统:ubuntu20.04 使用kvm搭建虚拟环境(如没有安装kvm&#xff0c;请先自行安装kvm) 1、安装kvm服务 ①、查看虚拟支持 如果CPU 支持硬件虚拟化则输出结果大于0&#xff0c;安装kvm-ok命令检…

【轮式平衡机器人】——TMS320F28069片内外设之eCAP

引入 TMS320F28069的eCAP&#xff08;增强型捕获模块&#xff09;是一个强大的外设&#xff0c;用于精确测量和捕获输入信号的事件和时间戳。 在电机控制、传感器数据采集和信号处理等应用中&#xff0c;eCAP模块可以用于测量霍尔传感器、编码器或其他数字输入信号的周期、频…

鸿蒙报错:Hhvigor Update the SDKs by going to Tools > SDK Manager....

鸿蒙报错&#xff1a;Hhvigor Update the SDKs by going to Tools > SDK Manager… 打开setting里面的sdk&#xff0c;将API9工程下的全部勾上&#xff0c;应用下载 刚打开 js 和 Native 是没勾上的

智慧城市与智慧乡村:共创城乡一体化新局面

一、引言 随着科技的不断进步和城乡发展的日益融合&#xff0c;智慧城市与智慧乡村的建设已成为推动城乡一体化发展的新引擎。智慧城市利用物联网、大数据、云计算等先进技术&#xff0c;实现城市治理、公共服务、产业发展等领域的智能化&#xff1b;而智慧乡村则借助现代科技…

每日五道java面试题之springMVC篇(二)

目录&#xff1a; 第一题. 请描述Spring MVC的工作流程&#xff1f;描述一下 DispatcherServlet 的工作流程&#xff1f;第二题. MVC是什么&#xff1f;MVC设计模式的好处有哪些?第三题. 注解原理是什么?第四题. Spring MVC常用的注解有哪些&#xff1f;第五题. SpingMvc中的…

C++ 中的头文件和源文件

#include<>一般用于包含系统头文件&#xff0c;诸如stdlib.h、stdio.h、iostream等&#xff1b; 类库目录下查找失败&#xff0c;编译器会终止查找&#xff0c;直接报错&#xff1a;No such file or directory. #include""一般用于包含自定义头文件&#xff…

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒

1 3D变换 1.1 3D空间与景深 /* 开启3D空间,父元素必须开启 */transform-style: preserve-3d;/* 设置景深&#xff08;你与z0平面的距离 */perspective:50px; 1.2 透视点位置 透视点位置&#xff1a;观察者位置 /* 100px越大&#xff0c;越感觉自己边向右走并看&#xff0c;…

stega1

题目链接&#xff1a;ctf.show 下载附件打开是一张jpg照片 无密码型jphs隐写得到flag flag{3c87fb959e5910b40a04e0491bf230fb}

微信小程序开发系列(二十五)·wxml语法·条件渲染wx:if, wx:elif, wx:else 属性组以及hidden 属性的使用

目录 1. 使用 wx:if、wx:elif、wx:else 属性组 2. 使用 hidden 属性 条件渲染主要用来控制页面结构的展示和隐藏,在微信小程序中实现条件渲染有两种方式: 1. 使用 wx:if, wx:elif, wx:else 属性组 2. 使用 hidden 属性 wx:if 和 hidden 二者的区别&#xff1a; 1. wx…

操作系统笔记(进程)

注&#xff1a; 下面图片资源来源于 王道计算机考研 操作系统 1.进程概念 进程&#xff08;process&#xff09;&#xff1a;是动态的&#xff0c;是程序的一次执行过程&#xff08;同一程序多次执行&#xff0c;会产生多个进程&#xff09;程序&#xff1a;是静态的&…