还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
单板机详细教学课件第一章单板机概述单板机是将微处理器CPU、存储器、输入/输出接口及其他功能部件集成在一块印刷电路板上的计算机系统它是嵌入式系统的重要组成部分,具有体积小、功耗低、可靠性高等特点单板机与单片机、系统机的区别与联系单片机将CPU、RAM、ROM、I/O等集成在一个芯片内,功能相对有限单板机将CPU及其他组件集成在一块电路板上,功能更强大系统机由多板卡组成,通常指台式电脑等复杂系统典型应用领域•工业控制自动化生产线、数控机床•智能仪表电表、水表、气表•家用电器智能冰箱、洗衣机、空调•医疗设备心电监护、血压测量•通信设备路由器、基站控制器单板机发展简史年11976Intel推出MCS-48系列单片机,这是最早的单片机之一,包含8048/8049等型号,具有1KB ROM和64B RAM,开启了微控制器时代2年1980Intel推出MCS-51系列
(8051)单片机,成为影响深远的经典产品该系列拥有4KB ROM和128B RAM,以及定时器和中断系统等功能,奠定了单片年代31990机架构的基础PIC系列微控制器由Microchip公司推出,采用RISC架构,具有高效率和低功耗特点同时,各种单板机开始大量应用于工业控制领域4年后2000ARM架构的单板机迅速发展,如ARM Cortex-M系列微控制器同时,开源硬件平台如Arduino和Raspberry Pi出现,使单板机进入教育和爱好者领现代5域现代单板机集成度更高,性能大幅提升处理器主频可达数百MHz甚至GHz级别,内存容量从KB级别提升到MB/GB级别,同时集成无线通信、USB、以太网等多种高速接口单板机的核心组成12芯片存储器CPU单板机的核心控制单元,负责指令的获取、解码和执行根据架构不同,可分为8位、16位、32位存储器分为程序存储器和数据存储器两类甚至64位CPU常见的有程序存储器(ROM/Flash)存储程序代码,通常为非易失性存储器•Intel8051系列(8位)数据存储器(RAM)存储运行时数据,为易失性存储器•PIC系列(8/16位)EEPROM存储需要保存的参数、配置等信息•ARM Cortex-M系列(32位)现代单板机通常集成多种存储器,例如Flash+SRAM+EEPROM的组合•RISC-V架构处理器(开源指令集)CPU的主频、指令集、流水线结构等因素决定了单板机的性能上限34接口电源管理与时钟电路I/O用于连接外部设备,实现数据交换,主要包括提供稳定的工作电压和时序信号通用I/O(GPIO)用于基本的输入输出控制电源管理稳压电路、复位电路、低功耗模式控制串行接口UART、SPI、I2C等时钟电路晶振、RC振荡器、PLL倍频电路并行接口8位/16位数据总线看门狗定时器监控系统运行状态,防止程序死机特定功能接口USB、以太网、CAN总线等良好的电源管理和时钟电路是保证单板机稳定运行的基础I/O接口决定了单板机与外界交互的能力单板机结构示意图中央处理器()存储器模块CPU单板机的大脑,负责执行指令、处理数据,控制各个部件的工作CPU内部通包括程序存储器(ROM/Flash)和数据存储器(RAM),分别用于存储程序常包含算术逻辑单元(ALU)、控制单元、寄存器组等代码和运行时数据根据冯·诺依曼架构或哈佛架构的不同,存储器的组织方式也有所区别输入输出接口电源与时钟/连接外部设备的桥梁,包括通用I/O口、串行接口、并行接口等这些接口通为整个系统提供稳定的工作电压和时钟信号,是系统正常运行的基础保障电常通过总线与CPU相连,实现数据交换源管理电路还负责复位控制、低功耗模式等功能单板机的工作原理程序存储器中指令顺序执行单板机工作过程基于存储程序原理,CPU从程序存储器中按地址顺序读取指令并执行一个完整的指令周期包括取指令CPU根据程序计数器PC内容,从程序存储器读取指令指令译码解析指令操作码,确定要执行的操作执行指令完成指令规定的操作,如数据传送、算术运算等更新PC准备取下一条指令通过总线访问存储器和CPU I/O单板机内部各功能单元通过三种总线相互连接数据总线双向传输数据,宽度决定了一次可传输的数据量地址总线指定访问的存储单元或I/O端口地址控制总线传输读/写、中断请求等控制信号接口实现数据交互I/O单板机通过I/O接口与外部设备进行数据交换,主要有两种实现方式存储器映射I/O将I/O端口作为存储器地址空间的一部分独立编址I/O I/O端口有独立的地址空间,使用专用I/O指令访问指令执行周期示意图工作过程示例假设单板机要控制一个LED灯
1.CPU从程序存储器读取设置P
1.0为输出指令
2.CPU执行该指令,配置I/O口
3.读取P
1.0输出高电平指令
4.执行该指令,通过I/O接口输出高电平单板机的输入输出设备按键输入传感器显示控制执行设备LED最常见的人机交互输入设备,通过检测按键状态变化实现用户输入用于感知外部物理量的装置,将物理信号转换为电信号输入单板机最常见的输出设备,用于显示状态或数据执行控制命令的输出设备常见的有•单个LED灯指示系统状态•蜂鸣器发出声音提示•独立按键每个按键单独连接到I/O口•温湿度传感器DHT
11、DS18B20等•数码管显示显示数字信息•继电器控制大功率设备•矩阵键盘通过行列扫描方式检测多个按键•光敏元件光敏电阻、光电管•LED点阵显示图形或文字•电机驱动控制直流电机、步进电机•触摸按键利用电容感应原理工作•加速度传感器测量运动状态•LED液晶屏显示复杂图形界面•舵机精确角度控制•气体传感器检测特定气体浓度简单控制示例I/O控制(输出示例)按键检测(输入示例)LED//8051单板机点亮P
1.0口LED灯void main{P1=0xFE;//P
1.0输出低电平,LED点亮while1;//无限循环}//检测P
3.0按键并控制P
1.0LEDvoid main{P1=0xFF;//初始化P1口,LED熄灭while1{ifP3_0==0{//按键按下P1_0=0;//LED点亮}else{P1_0=1;//LED熄灭}}}单板机编程基础编程语言选择程序结构汇编语言直接对应机器指令,执行效率高,但开发效率低,不同芯片汇编指令差异大系统初始化包括I/O口配置、定时器初始化、中断设置、外设初始化等这是程序的第一步,为后续运行做准备C语言应用最广泛,兼顾执行效率和开发效率,可移植性好主循环C++支持面向对象编程,但资源消耗较大程序的主体部分,不断循环执行,包括数据采集、处理、显示和控制等功能主循环通常是一个无限循环Python等在资源丰富的单板机上可用,开发效率高常用指令介绍中断服务程序数据传送指令MOV、PUSH、POP等响应外部事件或定时器触发的程序,优先级高于主循环,用于处理需要及时响应的事件算术指令ADD、SUB、MUL、DIV等逻辑指令AND、OR、XOR、NOT等//典型的单板机程序结构(C语言)#include//包含寄存器定义//函数声明void init_systemvoid;void delay_msunsigned int ms;//中位操作指令SETB、CLR、CPL等断服务函数void timer0_isrvoid interrupt1{//处理定时器中断}void mainvoid{//系统初始化init_system;//跳转指令JMP、JZ、JNZ等主循环while1{//数据采集//数据处理//控制输出//延时delay_ms100;}}子程序指令CALL、RET等开发注意事项典型单板机型号介绍系列系列系列8051PIC ARM Cortex-M由Intel公司推出的经典8位单片机,是最具影响力的单片机系列之由Microchip公司推出的RISC架构单片机,具有高效率和低功耗基于ARM架构的32位微控制器,性能强大,是现代单板机的主流一特点选择主要特点主要特点主要特点•8位CPU,最高工作频率12MHz•8/16位RISC架构CPU•32位RISC架构,性能优越•哈佛架构,程序和数据存储器分离•高代码效率,一条指令通常为一个机器周期•多种子系列M0/M0+(入门级)、M3(均衡型)、M4•内部包含4KB ROM、128B RAM•丰富的片内外设ADC、PWM、I2C、SPI等(带DSP和FPU)、M7(高性能)•4个8位并行I/O口•低功耗设计,多种省电模式•支持Thumb-2指令集,提高代码密度•2个16位定时器/计数器•支持在线串行编程(ICSP)•丰富的片上外设•1个全双工串行接口典型型号PIC16F
84、PIC18F452等•低功耗设计,多级休眠模式•强大的调试能力典型型号AT89C
51、AT89S
52、STC89C52等应用领域便携设备、传感器节点、电池供电系统典型型号STM32F
103、STM32F
407、NXP LPC系列应用领域工业控制、智能家电、学习入门应用领域工业控制、医疗设备、物联网终端、智能仪表其他常见单板机平台系列系列系列AVR ESPMSP430由Atmel公司开发,Arduino平台使用的是AVR芯片乐鑫科技推出的带Wi-Fi功能的单片机德州仪器推出的超低功耗16位单片机•8位RISC架构,性能优良•集成Wi-Fi模块,适合物联网应用•极低的功耗,适合电池供电•Flash程序存储器,易于更新•ESP
8266、ESP32等型号•多种休眠模式•丰富的片内外设•低成本、高集成度•丰富的模拟外设单板机详细介绍8051内部结构8051单板机采用哈佛架构,程序存储器和数据存储器分离其核心组成包括部分CPU•8位CPU核心,支持布尔处理•丰富的寄存器组8个8位通用寄存器(R0-R7)•累加器A、B寄存器、程序状态字PSW•数据指针DPTR(16位)存储器结构程序存储器最大可寻址64KB的ROM/Flash内部RAM128字节直接寻址区域•0-1Fh4组寄存器组(R0-R7)•20-2Fh位寻址区(可按位操作)•30-7Fh通用数据区特殊功能寄存器(SFR)控制寄存器区,80h-FFh外部RAM最大可扩展64KB片内资源I/O口4个8位并行I/O口(P0-P3)定时器2个16位定时器/计数器(T0/T1)串行接口1个全双工UART中断系统•2个外部中断(INT0/INT1)•2个定时器中断(TF0/TF1)•1个串行口中断(RI/TI)的特殊功能寄存器()8051SFR口寄存器定时器寄存器I/OP080h第0并行口,开漏输出,需外接上拉电阻TMOD89h定时器工作模式寄存器P190h第1并行口,内置上拉电阻TCON88h定时器控制寄存器P2A0h第2并行口,内置上拉电阻TH0/TL08Ch/8Ah定时器0高/低字节P3B0h第3并行口,内置上拉电阻,兼具特殊功能TH1/TL18Dh/8Bh定时器1高/低字节单板机引脚图与功能8051引脚功能分类电源引脚VCC40脚+5V电源GND20脚电源地时钟引脚XTAL119脚外接晶振输入XTAL218脚外接晶振输出复位引脚RST9脚系统复位,高电平有效I/O口P032-39脚第0并行口,8位P11-8脚第1并行口,8位P221-28脚第2并行口,8位P310-17脚第3并行口,8位存储器控制EA31脚外部程序存储器使能ALE30脚地址锁存使能PSEN29脚程序存储器使能8051标准DIP40封装引脚图端口引脚的复用功能口脚口脚P032-39P11-8P0口为8位双向I/O口,具有开漏特性,需外接上拉电阻扩展存储器时,P0口复用为数据总线(D0-D7)和低8位地址总线(A0-A7)P1口为8位双向I/O口,内置上拉电阻在标准8051中仅用作通用I/O,在增强型8051中可能具有其他复用功能P
0.0~P
0.7通用I/O P
1.0~P
1.7通用I/O复用功能地址/数据总线复用复用功能在增强型8051中可能用于ADC、PWM等单板机开发环境搭建硬件准备开发板集成单板机芯片及基本外设的电路板,便于快速上手初学者建议选择功能齐全、资料丰富的开发板,如•8051系列STC89C52开发板•ARM系列STM32F103开发板•开源平台Arduino UNO、ESP32开发板仿真器用于在线调试程序的工具,可实时观察CPU寄存器、变量值等信息•8051系列USB模拟器•ARM系列ST-Link、J-Link•JTAG/SWD调试器编程器开发流程简述将编译好的程序下载到单板机Flash中的工具•8051系列USB-ISP下载器需求分析•ARM系列ST-Link、J-Link(兼具调试功能)明确系统功能、性能指标、硬件资源需求•AVRISP mkII(用于AVR系列)软件工具电路设计•集成开发环境(IDE)根据需求设计硬件电路,选择合适的芯片和外设Keil C51适用于8051系列,包含编辑器、编译器、调试器Keil MDK适用于ARMCortex系列IAR EmbeddedWorkbench支持多种单片机程序编写Arduino IDE适用于Arduino平台使用IDE编写程序代码,组织程序结构STM32CubeIDE适用于STM32系列•仿真软件编译链接Proteus电路仿真软件,可仿真多种单片机Multisim电路仿真软件将源代码编译成单板机可执行的二进制文件•烧录软件STC-ISP用于STC系列单片机下载调试第一个单板机程序示例点亮灯的程序设计LED目标控制单板机的P
1.0口,使连接在该引脚的LED灯点亮硬件连接•LED阴极连接到P
1.0口•LED阳极通过限流电阻连接到VCC程序设计思路
1.配置P
1.0口为输出模式(8051默认为输出)
2.向P
1.0口输出低电平
(0),使LED点亮
3.加入适当延时,使LED闪烁语言程序代码C#include//包含8051寄存器定义//定义LED控制引脚sbit LED=P1^0;//P
1.0口定义为LED//延时函数,约1msvoid Delay1ms{unsigned inti;fori=0;i1000;i++;}//延时函数,可设置延时时间void DelayMsunsigned intms{unsignedinti;fori=0;i编译、下载、调试步骤01创建工程在Keil C51中创建新工程,选择目标单片机型号(如AT89C51/STC89C52)02添加源文件创建并添加C源文件,输入程序代码03编译工程中断系统与定时器应用中断的概念与分类中断是指CPU暂停当前程序的执行,转而处理某个紧急事件的机制中断发生后,CPU自动保存现场,跳转到中断服务程序执行,完成后返回原程序继续执行中断按来源分类外部中断由外部事件触发,如按键按下定时器中断由定时器溢出触发串口中断由串口收发数据触发ADC中断由模数转换完成触发其他外设中断如SPI、I2C等通信完成触发中断源及优先级8051中断源中断向量优先级外部中断0INT00003H最高(可设置)定时器0溢出TF0000BH次高(可设置)外部中断1INT10013H次低(可设置)定时器1溢出TF1001BH最低(可设置)串口RI/TI0023H可设置定时器工作原理8051单片机内置两个16位定时器/计数器(T0和T1),可用于产生精确的时间间隔、测量脉冲宽度、计数外部事件等定时器的工作模式模式013位定时器/计数器模式116位定时器/计数器(最常用)模式28位自动重装载定时器/计数器模式3分割模式(T0分割为两个8位定时器)定时器相关寄存器TMOD定时器模式寄存器TCON定时器控制寄存器TH0/TL0定时器0高/低字节TH1/TL1定时器1高/低字节实例定时闪烁灯LED串口通信基础串口通信原理及协议串口寄存器介绍8051串行通信是指数据一位一位地顺序传送,相对于并行通信,其特点是连线少、传输距离远,但速度相对较慢8051内置一个全双工UART,通过P
3.0RXD和P
3.1TXD引脚实现串行通信相关寄存器包括通信基本特点寄存器(串口控制寄存器,)UART SCON98H全双工通信可同时收发数据SM
0、SM1串口工作模式选择异步传输收发双方各自有时钟,通过起始位同步波特率串行通信的速率,常用值有
4800、
9600、115200等SM2多机通信控制位数据格式起始位1位+数据位5-9位+校验位0-1位+停止位1-2位REN接收使能控制位TB8发送的第9位数据RB8接收的第9位数据TI发送中断标志位RI接收中断标志位串口工作模式模式0同步移位寄存器,波特率固定为晶振频率/12模式18位UART,波特率可变(最常用)模式29位UART,波特率固定为晶振频率/32或/64模式39位UART,波特率可变寄存器(串口数据缓冲寄存器,)SBUF99H实际包含两个独立的寄存器发送缓冲器和接收缓冲器向SBUF写数据时使用发送缓冲器,从SBUF读数据时使用接收缓冲器常见波特率设置波特率应用场景2400~4800低速设备,如简单控制系统扩展技术I/O扩展的必要性I/O单板机的I/O口数量有限,当需要控制大量外设时,需要使用I/O扩展技术例如,8051系列单片机只有4个8位并行口(32个I/O引脚),如果需要控制更多LED、开关、显示器等设备,就需要进行I/O扩展使用外部扩展芯片移位寄存器74HC59574HC595是一种8位串入并出移位寄存器,只需使用单板机的3个I/O引脚,就可以控制8个输出端口多片级联可实现更多输出工作原理DATA串行数据输入端CLOCK时钟输入端,上升沿时移位寄存器移位LATCH锁存输入端,上升沿时将移位寄存器数据锁存到输出寄存器Q0-Q78位并行输出端Q7串行输出端,可连接下一片74HC595的DATA端实现级联接口扩展芯片PCF8574I2C I/O使用I2C总线,只需2根线(SCL、SDA)即可控制8位I/O口通过不同地址可连接多片,最多扩展64个I/O口接口位扩展芯片MCP23017I2C16I/O扩展的接口方式I/O单片提供16个I/O口,通过I2C总线控制,可连接多片扩展更多I/O口串行接口扩展使用SPI、I2C等串行总线接口的扩展芯片,只需少量I/O引脚即可控制多个外设SPI接口74HC
595、74HC
165、MAX7219等I2C接口PCF
8574、MCP
23017、PCF8591等并行接口扩展使用地址译码方式,通过地址总线和数据总线扩展I/O口I/O口扩展芯片
8255、82C55等存储器映射方式使用74系列锁存器/缓冲器复用技术通过时分复用、矩阵扫描等方式,用少量I/O口控制多个设备矩阵键盘m×n按键只需m+n个I/O引脚动态显示多位数码管共用段选信号实例使用扩展显示控制74HC595LED。
个人认证
优秀文档
获得点赞 0