选修-单片机作业第1/2次

第一次作业

433b68c714d04cf6b4ac4d85c444e8b4.png

085e09bde6b34373b11e619cd60fcc0a.png

第二次作业

681dd987615d429b90b7771e769eceea.png

1、51 系列单片机片内由哪几个部分组成?各个部件的最主要功能是什么?

51系列单片机的内部主要由以下几个部分组成,每个部件的主要功能如下:

1. **中央处理器(CPU)**:这是单片机的核心,负责执行程序指令和处理数据。它通常是一个8位的微处理器,具有布尔处理能力和位处理能力。

2. **存储器**:

   - **ROM(只读存储器)**:用于存储程序代码,通常是掩膜ROM或EPROM,用户在编程后无法更改。

   - **RAM(随机存取存储器)**:用于存储运行时的数据,如变量和临时数据。

3. **并行I/O接口**:提供多个8位并行端口(如P0、P1、P2、P3),用于与外部设备进行数据通信。

4. **串行接口**:通常包括一个全双工的串行端口(TXD、RXD),用于与其他设备进行串行通信。

5. **定时器/计数器**:提供至少两个16位的定时器/计数器(T0、T1),用于执行定时或计数任务。

6. **中断系统**:包含多个中断源和优先级控制,允许单片机在特定事件发生时暂停当前任务,转而处理中断请求。

7. **特殊功能寄存器(SFR)**:一组用于控制单片机特定功能的寄存器,如I/O端口控制、定时器设置、中断控制等。

8. **系统时钟电路**:提供时钟信号,是单片机运行的基础,确保指令的同步执行。

9. **电源电路**:为单片机提供稳定的电源供应。

这些部件共同协作,使得51系列单片机能够执行各种嵌入式应用任务。由于其结构简单、成本低廉且易于编程,51系列单片机在工业控制、家用电器、汽车电子等领域得到了广泛应用。

2、某51单片机系统的程序存储器用量约20KB,除使用片内的4KB ROM外,另外扩展16KB。请问EA信号应如何连接?

在51系列单片机中,EA(External Access)信号用于控制是否访问外部存储器。当EA信号连接到高电平(Vcc)时,单片机将访问外部存储器;当EA信号连接到低电平(GND)时,单片机将访问内部存储器。

对于您提到的系统,程序存储器总用量为20KB,其中片内ROM为4KB,需要额外扩展16KB的外部存储器。在这种情况下,您应该将EA信号连接到低电平(GND),以便单片机在执行程序时能够访问到外部扩展的存储器。

这样设置的原因是,当EA为低电平时,单片机的地址线可以直接访问外部存储器,而不需要通过内部ROM。由于片内ROM只有4KB,而程序需要的存储空间为20KB,所以必须使用外部存储器来提供额外的16KB空间。通过将EA连接到GND,确保了单片机在执行程序时会首先尝试从外部存储器中读取指令。

3、51 单片机程序状态字寄存器 PSW 各位的功能是什么?

51单片机的程序状态字寄存器(PSW)是一个8位的寄存器,用于存储程序执行过程中的状态信息。PSW的各位及其功能如下:

1. **CY (Carry Flag) - 位 7**:

   - 进位标志位。在算术运算中,如果产生了进位(例如加法中的进位或减法中的借位),CY位将被置为1。在逻辑运算中,如果结果为0,CY位也被置为1。

2. **AC (Auxiliary Carry Flag) - 位 6**:

   - 辅助进位标志位。在4位二进制运算中,如果产生了进位(例如BCD码的加法),AC位将被置为1。在某些特定的指令中,如ADD A, @Ri(带进位的寄存器间接寻址加法)指令,AC位也会被使用。

3. **F0 (Flag 0) - 位 5**:

   - 保留位。在51单片机的标准指令集中,F0位没有定义的功能,通常保持为0。但是,某些扩展指令集或特定应用可能会使用这个位。

4. **RS1 (Register Bank Select 1) - 位 4**:

   - 寄存器组选择位1。用于选择寄存器组,与RS0一起,可以提供4个不同的寄存器组(0、1、2、3),以便在不同的寄存器组之间切换。

5. **RS0 (Register Bank Select 0) - 位 3**:

   - 寄存器组选择位0。与RS1一起,用于选择寄存器组。

6. **OV (Overflow Flag) - 位 2**:

   - 溢出标志位。在算术运算中,如果结果超出了8位的范围,OV位将被置为1。例如,当两个正数相加得到一个负数,或者两个负数相加得到一个正数时,就会发生溢出。

7. **P (Parity Flag) - 位 1**:

   - 奇偶校验标志位。这个位反映了累加器(Accumulator)中1的个数的奇偶性。如果1的个数是偶数,P位为1;如果是奇数,P位为0。

8. **SF (Sign Flag) - 位 0**:

   - 符号标志位。这个位是累加器的最高位(即符号位),用于表示结果的正负。如果SF位为1,表示结果为负;如果为0,表示结果为正。

PSW寄存器的这些位在程序执行过程中非常重要,它们提供了程序状态的重要信息,可以用于条件跳转、中断处理和状态检查等。

4、51 单片机内部 RAM 可分为几个区?各区的地址区间及主要作用是什么?

51单片机的内部RAM(随机存取存储器)通常可以分为以下几个区域,每个区域的地址区间和主要作用如下:

1. **数据存储区(Data Memory)**:

   - 地址区间:通常从00H到1FH(即0x00到0x1F),共32个字节。

   - 主要作用:用于存储程序执行过程中的临时数据,如局部变量、中间计算结果等。

2. **特殊功能寄存器区(SFR)**:

   - 地址区间:从20H到2FH(即0x20到0x2F),共16个字节。

   - 主要作用:用于存储控制单片机各种功能的寄存器,如I/O端口控制寄存器、定时器/计数器控制寄存器、中断控制寄存器等。

3. **位寻址区(Bit Addressable Memory)**:

   - 地址区间:从20H到2FH(与SFR区重叠),但位寻址区是针对SFR区中的某些寄存器的特定位进行寻址。

   - 主要作用:允许程序员直接访问和操作SFR中特定寄存器的特定位,提供了更细粒度的控制。

4. **栈区(Stack Memory)**:

   - 地址区间:从30H到7FH(即0x30到0x7F),共128个字节。

   - 主要作用:用于存储程序执行过程中的返回地址和临时数据,如中断服务程序的返回地址、函数调用的局部变量等。

5. **外部数据存储器扩展区(External Data Memory Extension)**:

   - 地址区间:从80H到FFH(即0x80到0xFF),这部分地址空间用于访问外部RAM或ROM。

   - 主要作用:扩展单片机的存储能力,允许程序访问更大的数据存储空间。

需要注意的是,51单片机的标准内部RAM大小为128字节,但这个数字可能会根据不同的51系列单片机型号而有所不同。例如,某些型号可能具有更大的内部RAM。此外,外部数据存储器扩展区的大小和地址区间也会根据单片机的型号和外部存储器的配置而变化。

5、MCS-51 单片机的 PC 和 DPTR 都是 16 位寄存器,各有什么功能?

在MCS-51单片机中,PC(程序计数器)和DPTR(数据指针)都是16位寄存器,但它们的功能和用途有所不同:

1. **程序计数器(PC, Program Counter)**:

   - **功能**:PC用于存储下一条要执行的指令的地址。在执行指令时,CPU会自动从当前指令的地址(即PC的当前值)读取指令,然后更新PC以指向下一条指令的地址。这样,CPU就可以顺序地执行程序中的指令。

   - **特点**:PC是一个只读寄存器,程序员不能直接写入PC的值。它由CPU内部的指令执行流程控制。

2. **数据指针(DPTR, Data Pointer)**:

   - **功能**:DPTR用于存储外部数据存储器或程序存储器(ROM)的地址。它通常用于间接寻址模式,特别是在需要访问外部存储器或执行长地址空间操作时。DPTR由两个8位寄存器组成,分别是DPH(数据指针高字节)和DPL(数据指针低字节),它们共同组成一个16位地址。

   - **特点**:DPTR可以被程序员通过指令直接读写,以设置特定的外部数据存储器地址或ROM地址。在某些指令中,如MOVX A, @DPTR(将外部数据存储器的地址指向的数据移动到累加器A),DPTR用于指定操作的地址。

总结来说,PC是用于指令流控制的寄存器,它确保CPU能够顺序地执行程序中的指令;而DPTR则用于数据存储器的间接寻址,它允许CPU访问外部存储器或ROM中的特定位置。两者都是MCS-51单片机中非常重要的寄存器,对于程序的执行和数据访问起着关键作用。

第二次作业手写版

9481696ee5e647409a4a3d5583c3e08d.png

9759caa677684b149ee611aba4ecf9c5.png

3d4e2c178cef472bafd076be13364e8d.png

06f9e70c3b5c4389b3ab02f9a9991ca8.png

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

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

相关文章

uniapp隐藏状态栏并强制横屏

uniapp隐藏状态栏并强制横屏 1.manifest.json中: "screenOrientation": ["landscape-primary", //可选,字符串类型,支持横屏"landscape-secondary" //可选,字符串类型,支持反向横屏]…

算法 环形数组是否存在循环 力扣执行速度击败100%

目录 题目 leetcode 457 求解思路 代码 结果 题目 leetcode 457 存在一个不含 0 的 环形 数组 nums ,每个 nums[i] 都表示位于下标 i 的角色应该向前或向后移动的下标个数: 如果 nums[i] 是正数,向前(下标递增方向&#xff0…

每日一题 — 三数之和

15. 三数之和 - 力扣(LeetCode) 思路: 双指针思想先给数组排序然后固定一个数、再设left、right指针,nums[left] nums[right] -nums[a]大于的话right--,小于的话left每次处理完left、right之后需要判断去重i也需要判…

计算机网络(五)

网络层 网络层的主要目的是实现网络互连,进而实现数据包在各网络之间的传输。 要实现网络层,主要解决三个问题: ①网络层向运输层提供怎样的服务?(“可靠传输“、”不可靠传输“) ②网络层寻址 ③路由选择…

乡村治理深度解析:策略、挑战与解决方案

毋庸置疑,在今天这个崭新的时代,乡村治理的过程已然向我们发出了挑战。为了迎难而上,我们必须摒弃陈旧观念,勇敢迎接并大胆尝试探索与实践新的思路!为了达到这一宏伟目标,我们需要首先廓清如下关键概念&…

第九个实验:一维数组和二维字符串数组的输入而输出

实验内容: 新建一维数组 新建二维字符串数组 输入内容,运行结果,在输出界面中显示输入的内容 第一步:新建项目 第二步:编程 添加一个INT数控件和字符串控件 修改控件: 复制前面板控件

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

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

有点炫酷有点diao的免费wordpress模板主题

这是一款经典的免费wordpress主题,被广泛应用于多个行业的网站。 https://www.wpniu.com/themes/189.html

Vue 监听器:让你的应用实时响应变化

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

Python 一步一步教你用pyglet制作汉诺塔游戏

目录 汉诺塔游戏 1. 抓取颜色 2. 绘制圆盘 3. 九层汉塔 4. 绘制塔架 5. 叠加圆盘 6. 游戏框架 汉诺塔游戏 汉诺塔(Tower of Hanoi),是一个源于印度古老传说的益智玩具。这个传说讲述了大梵天创造世界的时候,他做了三根金刚…

【刷题】Leetcode 415 字符串相加 和 34 字符串相乘

刷题 Leetcode 415 字符串相加题目描述 思路一(模拟大法版!!!)Leetcode 34 字符串相乘题目描述 思路一(模拟大法版)Thanks♪(・ω・)ノ谢谢阅读!&…

Angular基础---HelloWorld---Day3

文章目录 0.ng-model 的几种不同的class属性1.ng-model 的引用与属性的调用2.表单验证: (模版引用变量、ngModel 、ngif一起使用)3.根据class属性的值ng-invalid ,设置动态变化的样式 0.ng-model 的几种不同的class属性 引用ng-model 元素的c…

2024年软件测试怎么自我提升?“我“该如何做?

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、掌握基本的测试…

【C#图解教程】笔记

文章目录 1. C#和.NET框架.NET框架的组成.NET框架的特点CLRCLICLI的重要组成部分各种缩写 2. C#编程概括标识符命名规则: 多重标记和值格式化数字字符串对齐说明符格式字段标准数字格式说明符标准数字格式说明符 表 3. 类型、存储和变量数据成员和函数成员预定义类型…

有什么针对新闻媒体行业的安全解决方案

对媒体行业而言,门户网站是最易受到攻击的地方。常见的攻击方式有网页篡改、挂马和被植入暗链等。门户网站作为新闻媒体对外的第一扇门,通常承载了大量的流量,一旦遭到攻击,造成的影响会更具有可怕的“传播力”。那么我们应该如何…

车载诊断协议DoIP系列 —— AL IPv6地址分配通用DoIP报头结构

车载诊断协议DoIP系列 —— AL IPv6地址分配&通用DoIP报头结构 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自…

Python栅格数据克里金插值

目录 结果输入文件核心代码 结果 输入文件 1、需要有经纬度信息以及对应的单点值 2、还要用到一个研究区的矢量文件,当然上面点的经纬度信息要在该矢量文件以内 核心代码 file_path workspace1# Attempt to read the Excel filedf readDataFile(file_path)dat…

vxe-table配合Export2Excel导出object类型数据{type,count}。表格数据呈现是利用插槽,导出只要count该怎么做

先贴一张数据来: 一、然后是vxe-grid的columns配置: 然后就正常用封装好的Export2Excel就行。 碰到一次在控制台报错: 没复现出来,大概就说是count咋样咋样。 以后碰到的话再说,各位要用的话也注意看看 二、或者 用js…

适配器模式已经在SpringMVC中的源码实现

介绍: 1、适配器模式将某个类的接口转换成客户端期望的另一种接口表示 2、目的:兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为:包装器。 3、属于:结构型模式 4、分3类:1&#xff0…

ESP8266开发板 + DHT11+远程开关+ThingsCloud+APP+QQ邮件推送告警

ESP32 是乐鑫公司推出的 WiFi 芯片,它不仅支持 WiFi 和 BLE,还可以作为可编程的 MCU,通过 Espressif IDF、Arduino 等框架编写固件,用于非常广泛的物联网场景。 这个教程我们分享如何在 Arduino IDE 中使用 ThingsCloud ESP SDK&…