单片机

单片机原理及应用第二节课

↘锁芯ラ 提交于 2020-03-06 00:06:30
1.MCS-51系列单片机的内部结构: 主要功能特点:(高性能八位单片机) 8位CPU 128B数据存储器RAM(52系列有256B) 4KB程序存储器ROM/EPROM 特殊功能寄存储器区 5个中断源,2个中断优先级 32根I/O线(4个8位并行口) 2个16位定时/计数器(52子系列有3个) 1个全双工异步串行口 1位布尔处理机 片外可扩展64Kb程序存储器ROM和64KB数据存储器RAM 片内振荡器及时钟电路 2.内部结构: (1)CPU(中央处理器) 中央处理器是单片机的核心,它是一个8位的CPU,用于实现运算和控制功能,主要由运算器和控制器两个主要部分组成。 (2)数据存储器(RAM) 片内128B(52子系列有256B),用于存放可读写的数据。如果片内容量不够,片外最多可扩64KB。掉电后,数据丢失。 (3)程序存储器(EPROM/ROM) 片内集成有4Kb(52子系列有8KB),用于存放程序和原始数据。如片内容量不够,片外可外扩至64KB。掉电后,数据不丢失,通电后又可立即使用。 (4)中断系统 通常计算机只有一个CPU,但可能同时要输入输出,运行程序等,借助中断控制系统可足以完成多项任务。MCS-51系列有5个中断源(52子系列有6个),2个中断优先权。 (5)定时器/计数器 2个16位定时器/计数器(52子系列有3个),4种工作方式。 (6)并行I/O口

单片机原理及应用第三节课

岁酱吖の 提交于 2020-03-05 23:59:05
1单片机的存储器结构,程序存储器 (1)MCS-51系列单片机的存储器结构 单片机的存储结构有两种: (1)哈佛结构 即程序存储器和数据存储器分开,相互独立 (2)普林斯顿结构 即程序存储器和数据存储器是统一的,地址空间统一编址 对于MCS-51系列单片机主要特点是程序存储器和数据存储器的寻址空间是相互独立的,各有各的寻址机构和寻址方式。(哈佛结构) (2)程序存储器(ROM) (3)总结 2.数据存储器(RAM) (1)数据存储器的分类 (2)片内数据存储器 小知识点:用户可使用的16位寄存器是DPTA。 (3)片外数据存储器 (4)总结 3.单片机的时序 低功耗节点模式 (1)单片机的CPU时序 (2)MCS-51单片机的低功耗节点模式 题目: 单片机程序设计中经常用到中断,在C51语言中用中断序号,汇编语言中称入口地址,二者是对应的,外部中断0的序号及入口地址为 0,0003H。 来源: CSDN 作者: 孤寒rm- 链接: https://blog.csdn.net/qq_44907926/article/details/104519033

单片机内存分配

。_饼干妹妹 提交于 2020-03-05 15:49:45
  谈到内存,我们都会想到PC,对于单片机或者arm来说也是存在内存的,简单的理解是:内存嘛……就是存放东西的地方,只不过这个东西是数据而已,好了,还是把重点放在mcu上面,对于一款mcu来说,在性能描述的时候都会告诉sram,flash的容量大小,对于初学者来说,也不会去考虑和理会这些东西,拿到东西就只用。其实不然,这些量都是十分重要的,仔细想想,代码为什么可以运行,代码量是多少,定义的int、short等等类型的变量究竟是怎么分配和存储的,这些问题都和内存有关系。   首先单片机的内存可以大小分为ram和rom,这里就不再解释ram和rom的区别了,我们可以将其等效为flash和sram,其中根据flash和sram的定义可得,flash里面的数据掉电可保存,sram中的并不可以,但是sram的执行速度要快于flash,可以将单片机的程序分为code(代码存储区)、RO-data(只读数据存储区)、RW-data(读写数据存储区)和ZI-data(零初始化数据区)。在MDK编译器下可以观察到在代码中这4个量的值,如下图1所示: 图1: 图2:   其中code和RO-data存储在flash中,所以两者之和为单片机中flash需要分配给它们的空间大小(并且等于代码所生成的.bin文件大小),另外RW-data和ZI-data存储在sram中

关于单片机的GPIO的模式

给你一囗甜甜゛ 提交于 2020-03-05 11:58:30
GPIO的输入模式 这里描述的是STM的MCU,其他的MCU自己举一反三 输入浮空:既不上拉,也不下拉,呈现的是高阻态; 输入上拉:上拉(高电平) 输入下拉:下拉(低电平) 模拟输入:一般用来做ADC的读取 GPIO的输出模式 开漏输出 开漏复用功能 推挽式输出 推挽式复用功能 STM32系列有开漏复用功能和推挽式复用功能,就是开漏输出和推挽式输出模式多了IO发复用的功能,这里我详细介绍下比较常用的开漏输出和推挽式输出,介绍这两个模式之前,先复习下MOS管的知识 总结一下,MOS管做开关的要求: 1.输入端到输出端的方向必须与寄生二极管导通的方向相反,否则是起不来开关的作用的; 2.|Ugs|>|Ugs(th)| Ugs(th)指的是G极的阈值电压,详细的数据可以在对应的数据手册上看到; 推挽输出 推挽输出的内部结构如图所示,一个PMOS与NMOS连接,当PMOS导通,NMOS截至时,OUT输出的就是VDD;相反当PMOS截至时,NMOS导通时,OUT输出的就是GND; 开漏输出 开漏输出的结构与推挽输出的不太一样,它只有NMOS,所以当NMOS导通时输出GND,但是截至时并没有PMOS,所以也没有输出VDD,呈现高阻态,想要输出VDD只能向上图所示外加上拉电阻; (完) 欢迎各位大佬指出错误 来源: https://www.cnblogs.com/dmfdz/p/12419085

STM32单片机 关于超声波模块的学习(1)

不问归期 提交于 2020-03-03 14:16:32
分享一篇我刚刚弄完的一个超声波模块的学习 超声波模块的介绍: 1.单片机的一个IO口发送高电平的信号给Trig,信号时间要大于10us 2.然后模块的内部会发送方波 3.然后Echo会给单片机的IO口发送高电平,这个高电平持续的时间是超声波模块从碰到物体再返回的时间 模块的连接问题 我使用的是CH340G模块与电脑进行通信 编程思路: 1、先需要去配置定时器(基本定时器也可以,我用的是TIM2),还有串口的配置,还有延时函数的配置(推荐大家使用systick定时器)因为比较精准 2、基本的配置好了下面就要去写程序了 先随便定义两个IO口,连接Trig的IO口配置要推挽输出,连接Echo的IO口要浮空输入。 3、我看好多大神写的程序都是给Trig一个超过10us的高电平的时候进行了位操作和51很像,是定义在了sys.h这个头文件里。其实这个位操作在keil5中我没有看到有sys.h这个头文件,其实没有咱们也可以用STM32中的库函数去代替 4、给Trig发送高电平可以直接用GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);函数 5、检测Echo传给IO口的高电平时使用 uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);函数

51单片机-串口-串口发送显示

元气小坏坏 提交于 2020-03-03 08:07:38
51单片机-串口-串口发送显示 1. 视频 bilibili视频地址: https://www.bilibili.com/video/av92932152 51单片机-串口-串口发送显示 2. 文件 文件下载链接: https://download.csdn.net/download/weixin_43130546/12203484 3. 串口 PCON 电源管理寄存器 SCON 串口控制寄存器 模式&波特率 (宋雪松P183) SCON主要用模式1,的波特率 对应的,要用定时器T1&T2的模式2 TH1 = TL1 = 256 - 晶振值/12/2/16/波特率 (256是TL1的溢出值,12指12个时钟周期,16是硬件因素) SBUF 两个SBUF寄存器,分别负责接收和发送缓冲 4. 串口配置代码 EA = 1 ; void ConfigUART ( unsigned long baud ) { TH1 = 256 - ( 11059200 / 12 / 32 ) / baud ; TL1 = TH1 ; SCON = 0x50 ; TMOD & = 0x0F ; TMOD | = 0x20 ; ET1 = 0 ; ES = 1 ; TF1 = 0 ; TR1 = 1 ; } void InterruptUART ( void ) interrupt 4 { if ( RI )

课外扩展(一)

匆匆过客 提交于 2020-03-03 04:31:44
认识嵌入式系统 嵌入式系统简介 嵌入式系统由硬件和软件组成.是能够独立进行运作的器件。其软件内容只包括软件运行环境及其操作系统。硬件内容包括信号处理器、存储器、通信模块等在内的多方面的内容。嵌入式系统是以应用为中心,以现代计算机技术为基础,能够根据用户需求(功能、可靠性、成本、体积、功耗、环境等)灵活裁剪软硬件模块的专用计算机系统。 要点概括: 以应用为中心:强调嵌入式系统的目标是满足用户的特定需求。就绝大多数完整的嵌入式系统而言,用户打开电源即可直接享用其功能,无需二次开发或仅需少量配置操作。 专用性:嵌入式系统的应用场合大多对可靠性、实时性有较高要求,这就决定了服务于特定应用的专用系统是嵌入式系统的主流模式,它并不强调系统的通用性和可扩展。这种专用性通常也导致嵌入式系统是一个软硬件紧密集成的最终系统,因为这样才能更有效地提高整个系统的可靠性并降低成本,并使之具有更好的用户体验。 以现代计算机技术为核心:嵌入式系统的最基本支撑技术,大致上包括集成电路设计技术、系统结构技术、传感与检测技术、嵌入式操作系统和实时操作系统技术、资源受限系统的高可靠软件开发技术、系统形式化规范与验证技术、通信技术、低功耗技术、特定应用领域的数据分析、信号处理和控制优化技术等,它们围绕计算机基本原理,集成进特定的专用设备就形成了一个嵌入式系统。 软硬件可裁剪:嵌入式系统针对的应用场景如此之多

第一节嵌入式系统设计课程总结心得

谁说胖子不能爱 提交于 2020-03-03 00:33:39
一、什么是嵌入式技术? 嵌入式开发概述 1.嵌入式软件和非嵌入式软件的区别 2.嵌入式开发与单片机开发的区别 3.嵌入式开发的优缺点非嵌入式开发也就是所说的裸机开发,常见的非嵌入式芯片如3G手机。传统开发是软件和硬件之间的直接耦合,单片机的开发就属于传统开发,单片机的开发顺序通常是查看原理图----代码编写----下载烧录,对于相同类型的不同芯片,通常原理图都有区别,所以编写的代码不可能适用所有芯片,这就需要更改代码实现功能。 传统开发的缺点也就很明显了: 1.软件的移植性差(适配平台能力差),由一个平台转移到另一个平台的能力由于每一次转移都需要重写代码,适配能力就比较差。 2.传统开发的缺点还有一直存在的效率低,功耗高。 3.开发人员的能力要求(软硬通吃),开发人员软件和硬件都需要掌握。而嵌入式系统在软件和硬件之间移植了操作系统,在操作系统之上做上层应用开发,在操作系统之下做底层开发,而操作系统相当于一个管家,通过管理软件和硬件资源有效提高了软件的移植性,而且上层应用开发和底层开发以及操作系统开发的工程师功能划分清晰。嵌入式开发多任务机制,提供了丰富的网络协议,提供了开源软件和库。嵌入式开发的缺点就在于硬件配置提升的困难。 二、做一名嵌入式技术开发者的基础标准 1.上层应用软件开发:精通一门语言熟悉一款操作系统数据结构/算法 2.嵌入式底层软件开发:精通C

作为单片机的心脏,晶振的这些问题你一定要了解

有些话、适合烂在心里 提交于 2020-03-02 11:13:24
在初学单片机的时候,总是伴随很多有关于晶振的问题,其实晶振就如同人的心脏,是血液的脉搏。把单片机的晶振问题搞明白了,51 单片机的其他问题迎刃而解。 什么是晶振 晶振一般叫做晶体谐振器,是一种机电器件,是用电损耗很小的石英晶体经精密切割磨削并镀上电极焊上引线做成。 晶振,全称是石英晶体振荡器,是一种高精度和高稳定度的振荡器。通过一定的外接电路来,可以生成频率和峰值稳定的正弦波。而单片机在运行的时候,需要一个脉冲信号,做为自己执行指令的触发信号,可以简单的想象为:单片机收到一个脉冲,就执行一次或多次指令。 对于单片机来说晶振是很重要的,可以说是没有晶振就没有时钟周期,没有时钟周期就无法执行程序代码,那样的话单片机就无法工作。 晶振与单片机周期 单片机工作时,是一条一条地从 RoM 中取指令,然后一步一步地执行。单片机访问一次存储器的时间,称之为一个机器周期,这是一个时间基准。—个机器周期包括 12 个时钟周期。如果一个单片机选择了 12MHz 晶振,它的时钟周期是 1/12us,也是一个晶振周期。它的一个机器周期是 12×(1/12)us,也就是 1us。 机器周期不仅对于指令执行有着重要的意义,而且机器周期也是单片机定时器和计数器的时间基准。例如一个单片机选择了 12MHz 晶振,那么当定时器的数值加 1 时,实际经过的时间就是 1us,这就是单片机的定时原理。 单片机晶振的作用

基于单片机的金属探测器设计

人走茶凉 提交于 2020-03-02 04:20:51
功能 基于STC89C51单片机设计了一款智能型金属探测仪,该设计能够利用电磁感应原理对金属进行探测。进行金属探测时,感应线圈中变化方向的电流能够产生变化的磁场。若有金属接近感应线圈时,变化的磁场能够在金属内部产生闭合的感应电流,感应电流产生的电磁场能够反过来对原磁场作用,从而促使振荡频率发生变化,进而能够通过单片机检测出金属的存在。本文设计的智能金属探测仪具有以下功能: 1、能够对钥匙、刀具等金属的检测; 2、能够通过两个按键调整阈值频率; 3、能将阈值频率存储到单片机的内部EEPROM区域,实现掉电记忆功能; 4、LCD1602液晶显示屏显示当前振荡频率和设定的阈值频率; 5、当检测到有金属时能够通过蜂鸣器报警。 实物图 来源: CSDN 作者: 正在格式化…… 链接: https://blog.csdn.net/GSH_Hello_World/article/details/90236130