51单片机笔记

news2024/9/26 5:15:37

51单片机笔记

在这里插入图片描述

一、编程区域

1.1 用户应用程序区(AP区)

是指用户自己编写的程序区

1.2 ISP监控程序区:

ISP区是指芯片出厂时就已经固化在单片机内部的一段程序,STC单片机可以进行ISP串行下载程序,这就是因为芯片在出厂时已经在单片机内部固化了ISP引导码,程序首次上电时先会从ISP区开始执行代码,体现在实际实验中时,就是我们在下载程序时,先要点击下载软件界面上的下载,然后再开启单片机电源,当单片机检测到上位机有下载程序的需要时,便启用ISP下载功能给单片机下载程序。若经过短暂的时间没有检测到上位机有下载程序的需求,单片机便会从用户应用程序区(AP区)开始执行代码。

存储类型的分类

在这里插入图片描述

ROM中存放程序、数据和表格。ROM的开始部分是中断响应区,用来存放无条件转移指令,指向真正的中断程序空间。
RAM中存放中间结果和过程数据。

二、单片机UART与电脑的USB通信

先有波特率再有晶振频率,为了保证有效通讯,根据电、传输介质等的物理特性结合串口设备使用的要求,确定RS232最大传输速率只能是115200,然后逐级二分得到57600,28800,19200……为适应这些速率,设计相应的晶振频率。
如果时钟不合适,就会导致存在误差,误差过高,就会产生乱码。此时,需要增加校验位,出现错误的数据要重新发送。
串口试验主要是,实现单片机UART与电脑的RS232通信,或者单片机UART与电脑的USB通信。

2.1 硬件连接

单片机UART与电脑的USB通信硬件原理图如下所示。图中,J44和J39端子的2、3要相接。这样单片机就能通过CH340芯片和电脑USB接口实现通信。

在这里插入图片描述

2.2 UART通信配置

UART工作模式主要包含:传输特性、接收缓冲器操作、中断函数。

51的UART有四种工作模式,决定了传输特性。

在这里插入图片描述

2.2.2 模式1

在这里插入图片描述

其中Timer1的溢出率就是Timer1溢出的速率,例如T1定时50ms,溢出率就是速率就是频率即1/50ms=20hz。

2.2.3模式0

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

三、定时器/计数器模块信息

3.1相关寄存器

在这里插入图片描述

先要了解寄存器的复位值。

3.2工作模式

Timer0/Counter0有4种工作模式,Timer1/Counter1有3种工作模式。

练习:Timer0/Counter0的工作模式0,定时100ms

配置过程:

  1. Timer0/Counter0选择是否采用外部使能信号(INT0);TOMD

  2. 选择工作模式,时钟来源于sysclk时模块作为Timer0,时钟来源于T0时模块作为Counter0;TOMD

  3. 如果Timer0,选择是12分频还是6分频,设置初值;软件设置

  4. 定时器中断设置

  5. 中断优先级设置;

  6. 中断允许

  7. 中断处理函数;

  8. 使能模块工作;

PS:计算初值时,由于初值是由低位的5位,加高位的8位组成的。所以高位=初值/32,低位=初值%32(TL0是低5位)。其中32是25。

四、STC89C516中断配置模块信息

4.1中断定义和整体结构图

中断的作用就是:根据中断源和对应激励,程序(PC指针),跳转并执行中断函数,执行完之后,再回到原位置继续执行。

STC89C516的中断结构图如下:

在这里插入图片描述

结构图是结合数电的逻辑门以及电路中断开关符号,来表示不同寄存器组合,会产生什么样的输出,对应模块实现什么功能。

当然出发中断的条件,可以用更简单的表格来提示:

在这里插入图片描述

4.2中断相关寄存器

在这里插入图片描述

详见《STC89C52》数据手册page 162。需要特别注意复位值。

4.3中断优先级与中断处理

4.3.1优先级

在这里插入图片描述

中断优先级和查询次序是两件事。查询次序是指相同级别的中断时中断执行的优先级,只有查询次序最高的才执行,只有退出中断且其他中断激励还存在才会执行下一个次序的中断,且查询次序本身是不能修改的。

4.3.2 中断处理

在这里插入图片描述

练习:使用INT0,控制led翻转

配置过程:

1.优先级设置;

2.中断触发条件设置;

3.中断允许;

4.中断处理函数,需要查看中断标志位时硬件清0还是需要软件清0;

根据上述过程,程序如下:

  1. void Priority_Setting()实现优先级设置,设置INT0时较低优先级;

  2. 设置下降沿触发中断,设置IT0=1;

  3. 允许中断,EA=1;EX0=1;

  4. 写中断处理函数,void exint0() interrupt 0,其中进中断函数时,中断标志位IE0会被硬件清0;

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

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

相关文章

在Blender和Zbrush中创建激光指示器,新手硬表面建模码住!

大家好,今天云渲染小编给大家带来的分享是硬表面建模,CG艺术家Lyubov使用Blender和Zbrush创建激光指示器的幕后花絮。 介绍 我叫 Lyubov,来自俄罗斯圣彼得堡,是一名 3D 建模的初学者。虽然学习还不到一年,但是我对它…

etcd安装

ETCD安装 windows版本 下载 下载地址https://github.com/etcd-io/etcd/releases 安装 其实也不用安装,下载解压后,得到如下 选中etcd.exe,右键→属性→兼容性→以管理员身份运行此程序勾上,当然,每次运行时候右键…

kettle作业循环实现

kettle作业循环实现 使用kettle作业中的JavaScript实现作业循环,这里是固定循环10次 JavaScript2 parent_job.setVariable("max",10); parent_job.setVariable("count",1); true;检验字段的值 JavaScript var current parent_job.getVari…

MySQL事务+存储引擎

文章目录 MySQL事务存储引擎1 事务1.1 事务的概念1.2 事务的ACID特点1.3 导致问题1.4 事务控制语句1.4.1 查看修改隔离级别1.4.2 使用set设置控制事务1.4.3 查看事务自动提交功能 2 存储引擎2.1 存储格式2.2 常用存储引擎2.3 查看表使用的存储引擎2.4 修改存储引擎2.5 InnoDB行…

证券市场基本概念

证券市场基本概念 一、 指数分类1.1 什么是指数1.2 指数分类 二 、交易所及板块2.1 交易所及板块2.2 股票代码规则 三 、指数、ETF、股票的关系3.1 指数和股票的关系3.2 指数和指数ETF的关系3.3 ETF概念 四、 股票行业分类4.1 申万行业分类4.2 股票与申万行业分类的关系 五 、指…

idea - 插件之 codeium(安装篇)

idea - 插件之 codeium 插件官网地址:https://codeium.com/ Idea 版本:2021.3.2 关于插件作用就不多做介绍,接下来开始正文。 由于目前有很多博客文章没有对 Idea 安装进行详细的讲解和遇到问题的处理讲解,所以我经过踩坑后&am…

【C++学习】C++的动态内存管理 | new和delete的底层 | 初识模板

目录 1. C的动态内存管理 2. new和delete的底层 3. 定位new 4. new和malloc 的区别总结 5. 模板 写在最后: 1. C的动态内存管理 上一篇文章已经大致介绍完new和delete的用法, 以及C和C语言两种动态内存管理方式的区别,这里简单总结一…

【MMCV python安装指南】

MMCV python安装指南 MMCV 介绍安装教程1.系统环境2.python版本3.torch版本4.mmcv版本 安装示例 MMCV 介绍 mmcv 是用于计算机视觉研究的基础 Python 库,支持 MMLAB 中的许多研究项目,例如 MMDetection https://github.com/open-mmlab/mmdetection MMAct…

arc163 C 思维构造

题意&#xff1a;https://atcoder.jp/contests/arc163/tasks/arc163_c 思路&#xff1a;本题构造主要就是围绕 初始放入2&#xff0c;3&#xff0c;6&#xff0c;然后一直将一个拆解直到满足大小。 /*keep on going and never give up*/ #include<cstdio> #include<…

【择校】肠子悔青,录取分数断层,超过第二名44分,超过最后一名146分!

一、学校及专业介绍 中南民族大学&#xff08;South-Central Minzu University&#xff09;坐落于湖北省武汉市&#xff0c;中华人民共和国国家民族事务委员会直属高校&#xff0c;位列湖北省“国内一流大学建设高校”、“少数民族高层次骨干人才计划”资格高校、全国深化创新创…

15. python从入门到精通——Pygame游戏编程

目录 游戏的原理 安装Pygame Pygame常用模块 Pygame的基本使用 实例:制作一个跳跃的小球游戏&#xff0c;如果碰到窗口边缘会改变小球移动方向 实现步骤&#xff1a; 运行效果&#xff1a; 小球图片&#xff1a; python代码&#xff1a; 开发Flappy Bird游戏 …

生成古风少女图片【InsCode Stable Diffusion美图活动一期】

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​ 目录 写在前面 Stable Diffusion 模型在线使用地址&#xff1a; 工具介绍 一.如何使用S…

基于Java的酒店管理系统设计与实现(源码+文档+报告+任务书)

本系统采用Java语言进行开发&#xff0c;实现了跨平台的部署。使用了MySQL数据库进行数据存储&#xff0c;保证了数据的稳定性与可靠性。通过使用Spring框架&#xff0c;实现了对各个模块的解耦&#xff0c;使得系统更易于维护与升级。前端使用了Node.jsVue以提供易用、美观的用…

spring复习:(4)AbstractEnvironment

该类中指定了激活profile属性的名称(spring.profiles.active)&#xff0c;默认profile属性的名称(spring.profiles.default)&#xff0c;以及默认的profile的名字(default)。

springboot项目集成nacos配置中心踩坑

前提 在使用nacos的配置中心功能&#xff0c;发现在application.yml中配置地址后仍然读取不到配置中心地址&#xff0c;配置项和值都是正确的。但就是读不到&#xff0c;现在来分析下 配置项 spring:application:name: test-servicemain:allow-bean-definition-overriding: …

Ubuntu 20.04 LTS x86_64 SPEC CPU 2006 cpu2006-1.2.iso 测试笔记

环境 安装依赖项 sudo apt install gfortran 挂载iso sudo mkdir /mnt/cpu2006 sudo mount cpu2006-1.2.iso /mnt/cpu2006 安装 cd /mnt/cpu2006 sh install.sh -d /home/speccpu/cpu2006 SPEC CPU2006 InstallationTop of the CPU2006 tree is /mnt/cpu2006Installing F…

【Vue3】学习笔记-toRef

作用 创建一个ref对象&#xff0c;其value值指向另一个对象中的某个属性。 语法 const nametoRef(person,‘name’) 应用 要将响应式对象中的某个属性单独提供给外部使用时 #扩展 toRefs与toRef功能一直&#xff0c;但可以批量创建多个ref对象,语法&#xff1a;toRefs(per…

浅谈消防应急照明和疏散指示系统在变电站的设计与应用

【摘要】&#xff1a;随着对消防安全重视程度的不断提高&#xff0c;消防设计要求更加严格。针对变电站的应用场景&#xff0c;以民用和工业建筑为对象设计的消防应急照明和疏散指示系统不宜直接套用。文章从变电站实际应用角度出发&#xff0c;梳理和对比了现行设计规范&#…

机器人制作开源方案 | 智能立体仓储系统模型

1. 功能说明 本文示例将通过程序控制模拟立体仓储系统的运动效果--模拟立体仓储系统进行运输货物时各个结构的运动方式。立体仓储系统的运动有整体系统的水平移动、载货台的纵向移动、货叉的平动&#xff0c;所有的运动表现形式都是旋转运动转化为平动。 2. 结构说明 该立体仓储…

netcat(nc)安装

网络工具中有“瑞士军刀”美誉的NetCat&#xff08;以下简称nc&#xff09;可以使用TCP或UDP协议的网络连接去读写数据。 问题 使用命令 nc -zv ip port 发现报错Ncat&#xff1a;Connection refused&#xff0c;其实是混淆了netcat&#xff08;nc&#xff09;与ncat where …