版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
STC单片机原理及应用第一部分
单片机基础原理模块二STC8单片机的系统结构学习目标学习及素养目标了解单片机的基本概念和特点。•了解当前主流单片机的种类及应用。引言本模块介绍STC8A8K64S4A12单片机的内部结构、功能特性、引脚功能、存储器结构、时钟与复位、通用I/O接口等内容,还要对STC单片机的程序开发环境和过程进行介绍。通过学习,可了解单片机的基本功能特性和程序开发方法,为后续进一步学习各功能模块工作原理和编程方法打下基础。单元一STC8单片机的内部结构STC8系列单片机通过内部总线实现各部件的连接,主要包括运算器、控制器、存储器、通用I/O接口、串口、IIC接口,以及其他各种I/O接口。单元一STC8单片机的内部结构单元一STC8单片机的内部结构2.1.1运算器STC8系列单片机的运算器以8位ALU为核心,以累加器、寄存器B、程序状态寄存器、比较器、暂存器TMP1和TMP2,以及其他必要的逻辑电路进行辅助,共同完成单片机的算术逻辑运算功能。(1)累加器累加器(ACC)在指令系统中记作A,是一个8位寄存器,在指令系统中出现的最为频繁,在很多指令中具有特殊的用途,常用于存放各类指令的操作数及运算结果。单元一STC8单片机的内部结构2.1.1运算器(2)寄存器B寄存器B也是一个8位寄存器,在指令系统中用于配合累加器ACC构成16位的存储空间,实现乘法、除法指令中操作数及运算结果的存放。对于其他非乘除法指令,寄存器B可用作暂存器。单元一STC8单片机的内部结构2.1.1运算器(3)程序状态寄存器程序状态寄存器(programstatusword,PSW)也称为程序状态字,用于存放指令执行后的各种标志位状态,如各种运算类指令执行结果的特征标志,这些标志位常作为判断条件用于配合其他跳转指令形成分支或循环程序。表2-1所示为PSW各个位的定义情况,这些位的0/1状态大多是由指令执行过程中的逻辑电路自动形成的,而有些位可由用户通过指令进行设置。单元一STC8单片机的内部结构2.1.1运算器(3)程序状态寄存器单元二STC8单片机的功能特性STC8系列单片机中包含中央处理器、程序存储器(Flash)、数据存储器(SRAM)、定时器/计数器、掉电唤醒专用定时器,以及I/O接口、高速A/D转换等丰富的I/O模块。STC8系列单片机几乎包含了数据采集和控制中所需要的所有单元模块,可称得上是一个真正的片上系统(SystemonChip)。单元二STC8单片机的功能特性STC8的主要功能特性主要包含以下方面:①内核:具有超高速8051内核(1T),比传统8051单片机约快12倍以上,指令代码完全兼容传统8051单片机,22个中断源,4级中断优先级,支持在线仿真。②Flash存储器:支持最大64KBFlash空间,用于存储用户代码,支持用户配置EEPROM大小,512B单页擦除,擦写次数可达10万次以上。支持在系统编程方式(ISP)更新用户应用程序,无须专用编程器。支持单芯片仿真,无须专用仿真器,理论断点个数无限制。单元二STC8单片机的功能特性③SRAM:支持128B内部直接访问RAM(存储类型:DATA),128B内部间接访问RAM(存储类型:IDATA),8192B内部扩展RAM(存储类型:XDATA),外部最大可扩展64KBRAM(存储类型:XDATA)。④时钟控制:包含3种时钟源选择方案,内部24MHz高精度IRC(ISP编程时可进行上下调整),内部32kHz低速IRC(误差较大),外部晶振(4~33MHz)和外部时钟。单元二STC8单片机的功能特性⑤复位⑥中断⑦GPIO⑧数字外设⑨模拟外设⑩LCD控制模块⑪DMA⑫工作电压与工作温度⑬封装单元三STC8单片机的引脚功能STC8A8K64D4单片机有多封装形式,引脚数量也有64、48、44等不同的版本,以便适应不同工程项目的设计需求。引脚数较多的封装版本通常是增加了一定数量的通用I/O引脚及I/O接口的数量,且不同封装和引脚数量的单片机在引脚的功能和分布上具有兼容性,方便用户进行单片机的软硬件设计。单元三STC8单片机的引脚功能图2-2所示为LQFP封装,64引脚的STC8单片机的引脚图。将芯片上丝印文字放正观察,左下方小圆点处为1号引脚,其他引脚按逆时针顺序依次排列。单元三STC8单片机的引脚功能(1)P0口P0口包含8位口线,其引脚编号及对应功能见表2-2。单元四STC8单片机的存储器结构程序员编写的用户程序以及程序运行时所需要的变量、堆栈等空间都需要在存储器中实现,了解和掌握单片机存储器的结构、地址空间和读写方式对编写单片机应用程序十分重要。STC8单片机的存储器包含程序存储器和数据存储器,它们各自独立编址,需要通过不同的指令访问不同的存储空间,称为哈佛结构。单元四STC8单片机的存储器结构STC8单片机片内在物理上有3个相互独立的存储区域,即FlashROM、片内基本RAM和片内扩展RAM。在使用时可以分为4个空间,即程序Flash、数据Flash(EEPROM)、片内RAM和片内扩展RAM。单元四STC8单片机的存储器结构2.4.1程序FlashSTC8A8K64S4A12单片机内部集成了64KB的Flash程序存储器,用于存放用户程序、数据以及表格等信息,其地址范围是0000H~FFFFH,如图2-3所示。单元四STC8单片机的存储器结构2.4.2数据FlashSTC8系列单片机中都包含有数据Flash存储器,实现EEPROM的功能。其以字节为单位读/写数据,以512B为页单位进行擦除,利用ISP/IAP技术可在线反复编程擦写10万次以上。单元四STC8单片机的存储器结构2.4.3基本RAMSTC8系列单片机内部基本RAM的结构如图2-4所示,共有256B,可分为低128B和高128B两部分,地址空间分别为00H~7FH和80H~FFH。单元四STC8单片机的存储器结构2.4.4片内扩展RAMSTC8A8K64S4A12单片机中除了256B的基本RAM外,还集成了8KB的内部扩展RAM区,地址范围为0000H~1FFFH。单元五STC8单片机的时钟与复位传统8051单片机的时钟和复位信号都是由片外器件提供的,而STC15、STC8系列单片机在片内集成了时钟和复位电路,节省了在片外扩展的硬件开销,提高了集成度。2.5.1STC8单片机的时钟STC8系列单片机的系统时钟的产生主要涉及时钟选择寄存器CKSEL和时钟分频寄存器CLKDIV,分别实现对时钟源选择、主时钟分频,以及时钟输出的控制。所产生的系统时钟SYSclk将为单片机内的CPU和所有I/O设备提供工作时钟。单元五STC8单片机的时钟与复位2.5.1STC8单片机的时钟单元五STC8单片机的时钟与复位2.5.1STC8单片机的时钟1.时钟源STC8单片机的时钟选择寄存器CKSEL单元五STC8单片机的时钟与复位2.5.1STC8单片机的时钟1.时钟源CKSEL中MCKSEL[1:0]两位用于选择时钟源单元五STC8单片机的时钟与复位2.5.1STC8单片机的时钟2.主时钟分频主时钟源输出信号并不直接提供给单片机CPU和其他I/O接口使用,而是通过一个可编程时钟分频器输出系统时钟提供给单片机CPU和内部接口单元五STC8单片机的时钟与复位2.5.1STC8单片机的时钟3.时钟输出STC8单片机具有通过引脚向外输出时钟的功能。CKSEL寄存器中的MCLKO_S为主时钟输出选择位,当其为1时,分频后的主时钟从P1.6引脚输出;当其为0时,分频后的主时钟从P5.4引脚输出。单元五STC8单片机的时钟与复位2.5.2STC8单片机的复位复位可以使单片机的CPU及其他功能部件从某一确定的初始状态开始运行,复位操作在单片机程序的调试阶段及运行阶段都起着非常重要的作用。STC8单片机的复位分为硬件复位和软件复位两种。1.硬件复位(1)掉电/上电复位与MAX810专用复位电路复位(2)低压检测复位(3)外部复位引脚复位(4)看门狗定时器复位单元五STC8单片机的时钟与复位2.5.2STC8单片机的复位2.软件复位单片机在执行用户程序过程中也有可能需要对单片机进行复位操作,这种复位称为软件复位。STC8单片机通过IAP_CONTROL寄存器的SWBS位和SWRST位实现软件复位。SWRST叫作软件复位触发位,默认状态为0,当该位为1时,软件控制单片机产生复位。SWBS位控制软件复位后的启动选择。单元五STC8单片机的时钟与复位2.5.2STC8单片机的复位3.冷启动复位与热启动复位根据单片机复位时所处的运行环境还可以将复位分为冷启动复位和热启动复位。系统由掉电到再次上电引起的硬件复位称为冷启动复位,系统在运行过程中引发的复位称为热启动复位。单元六STC8单片机的通用I/O接口单片机内部的各类指令和数据都要通过通用I/O接口与外界进行沟通。一款单片机的通用I/O接口的数量、性能、编程方法等特性从一定意义上决定了这款单片机的整体性能。2.6.1通用I/O接口相关寄存器STC8单片机的通用I/O接口包括P0~P7,每一个I/O接口都需要通过一组寄存器来进行I/O接口的配置以及实现对I/O接口的使用,这些寄存器包括端口数据寄存器、端口配置寄存器、端口上拉电阻控制寄存器及端口施密特触发控制寄存器。单元六STC8单片机的通用I/O接口1.端口数据寄存器P0~P7端口数据寄存器见表2-20,它是单片机内外的数据通道,实现CPU对端口数据的读/写操作。当给对应的位写0时,即输出低电平到端口缓冲区;当给对应的位写1时,即输出高电平到端口缓冲区。当读取端口时,需要先将端口置1,才能正确读出端口状态,即端口对应引脚上的电平。单元六STC8单片机的通用I/O接口1.端口数据寄存器单元六STC8单片机的通用I/O接口2.端口配置寄存器端口配置寄存器也称模式控制寄存器,用于设置通用I/O接口的工作模式,通过8组寄存器来完成对每一个端口的模式设置。以P0口为例,P0口的配置寄存器为P0M0和P0M1单元六STC8单片机的通用I/O接口3.端口上拉电阻控制寄存器STC8系列单片机中每个端口都集成了上拉电阻,用户无须再额外设计上拉电阻,进一步降低了硬件电路成本。用户可以通过XSFR中的PxPU寄存器(x为0~7)选择是否使用内部上拉电阻,见表2-23。单元六STC8单片机的通用I/O接口3.端口上拉电阻控制寄存器单元六STC8单片机的通用I/O接口2.6.2通用I/O接口的工作模式在STC8单片机中能用作通用I/O接口的引脚在前面已经做过介绍,所有这些I/O接口都可以工作在4中工作模式下,即准双向输出、强推挽输出、仅为输入(高阻)和开漏输出。不同的工作模式使用于不同的应用场景,通过端口模式寄存器实现对I/O接口工作模式的设置。单元六STC8单片机的通用I/O接口1.准双向输出模式STC8单片机通用I/O接口的默认工作模式即为准双向输出模式。准双向输出模式下,当口线输出为高电平“1”时,驱动能力很弱,允许外部电路将其拉低;当输出为低电平“0”时,I/O接口驱动能力很强,可以吸收相当大的电流。因此,I/O接口可用于直接输出,不需要重新配置口线的输出状态。单元六STC8单片机的通用I/O接口1.准双向输出模式单元六STC8单片机的通用I/O接口2.强推挽输出模式强推挽输出模式下拉结构与开漏输出和准双向口的下拉结构相同。不同的是,强推挽输出模式下,I/O接口的上拉是持续的强上拉。若输出高电平,输出拉电流最大可达20mA;若输出低电平,输出灌电流最大也可达20mA。当从端口引脚输入数据时,必须先将端口锁存器置为高电平,即向端口写1,使T2截止。强推挽输出模式一般用于需要更大驱动电流的情况下。单元六STC8单片机的通用I/O接口2.强推挽输出模式单元六STC8单片机的通用I/O接口3.仅为输入(高阻)模式仅为输入(高阻)工作模式可直接从端口引脚读入数据,不需要先对端口写1。仅为输入(高阻)工作模式时不提供吸收20mA电流的能力。单元六STC8单片机的通用I/O接口4.开漏输出模式开漏输出工作模式下I/O接口输出的下拉结构与强推挽输出和准双向口一致,输出电路与准双向口一致。输出驱动无任何负载,即开漏状态,输出时必须外接上拉电阻。单元六STC8单片机的通用I/O接口2.6.3通用I/O接口典型外设电路通用I/O接口驱动发光二极管的典型电路如图2-11所示。因单片机I/O引脚本身的驱动能力有限,在实际使用中应尽量采用灌电流的驱动方式,以提高系统的可靠性。所以,推荐采用图中电路驱动方式。发光二极管是单片机系统中简单实用的输出设备,可用于各类状态或数据的输出。单元六STC8单片机的通用I/O接口2.6.3通用I/O接口典型外设电路按键电路是单片机系统中典型的输入设备,可实现控制操作或数据的输入。图2-12所示为单片机驱动按键的典型电路,四条输入线接到单片机的I/O口上,当按下按键S1时,+5V通过电阻R1然后再通过按键S1最终进入GND形成一条通路,那么这条线路的全部电压都加到了R1这个电阻上,KEYIN1这个引脚就是个低电平。当松开按键后,线路断开,就不会有电流通过,那么KEYIN1和+5V就应该是等电位,是一个高电平。此时,就可以通过KEYIN这个I/O口的高低电平来判断是否有按键按下。单元六STC8单片机的通用I/O接口2.6.3通用I/O接口典型外设电路单元七实训——第一个单片机程序要进行单片机应用的开发,除了熟悉单片机的基本结构和工作原理外,还要熟练掌握单片机应用程序开发所用的计算机语言和开发环境。可用于进行单片机程序开发的计算机语言主要有汇编语言、C、C++、Java、Python,以及图形化开发语言Scratch等,其中使用最多的是C语言和汇编语言。无论使用哪种语言,都需要有专门的集成开发环境(integrateddevelopmentenvironment,IDE)支持。单元七实训——第一个单片机程序2.7.1开发环境的搭建单片机项目的开发环境是指用于进行单片机程序开发及调试所用到的相关软件工具的集合。开发环境应能够实现单片机程序源代码的编辑、编译,单片机运行环境参数的配置,目标代码(HEX文件)的下载,单片机程序的调试等功能。STC单片机的开发环境主要包括用于进行程序开发、调试所使用的Keil,以及用于进行HEX文件下载所使用的STC_ISP工具软件。单元七实训——第一个单片机程序2.7.1开发环境的搭建1.KeilKeil由KeilSoftware公司(已于2005年被ARM公司收购)开发,是一款全球流行的集成开发环境,它包括代码编辑器、编译器、调试器和仿真器等工具,可用于编写和调试单片机、嵌入式系统代码。Keil支持多种嵌入式系统架构,包括ARM、8051、C166和ST10等。本教书用Keil工具实现单片机汇编语言和C语言的开发与调试。演示Keil的下载及安装过程单元七实训——第一个单片机程序2.7.1开发环境的搭建2.STC_ISPSTC_ISP是一款由STC公司专门为STC系列单片机项目开发所推出的软件工具,从软件名称可以看出该软件主要用于实现STC单片机目标代码的ISP下载。除此功能外,它还包含串口助手、软件延时计算器、定时器计算器等实用工具。STC_ISP软件可在STC官网首页下载,该软件是一款绿色免费软件,无须安装即可运行使用。演示STC_ISP软件的下载过程及其基本功能单元七实训——第一个单片机程序2.7.2单片机程序开发【例2-1】基于STC8A8K64S4A12单片机设计电路及程序,实现通过按键开关控制8位LED灯中的一个小灯产生不同方向的流水灯效果,系统上电后最低位小灯点亮并开始连续左移,移动到最左端后下一次从最右端开始继续移动,按动开关后小灯变为右移,移动到最右端后下一次从最左端开始继续移动,依次循环。单元七实训——第一个单片机程序1.设计电路使用单片机P3.2驱动按键,使用P6的8位口线驱动8位LED灯,按照之前给出的小灯及按键的典型驱动电路,设计此例题电路图,如图2-16所示。单元七实训——第一个单片机程序2.设计代码单元七实训——第一个单片机程序3.建立工程和代码编译基于Keil平台的单片机程序的开发是以工程为单位来管理单片机程序的各种资源的。进行单片机程序开发一般包含新建工程、编辑源代码、编译并生成目标代码3个基本步骤。(1)新建工程打开Keil软件,选择Project→NewμVisionProject命令,如图2-17所示。单元七实训——第一个单片机程序(1)新建工程单元七实训——第一个单片机程序(1)新建工程选择NewμVisionProject命令后打开新建工程对话框,如图2-18所示。在此对话框中为新建的工程指定工程文件存放的目录以及新建的工程名。单元七实训——第一个单片机程序(1)新建工程单击“保存”按钮后系统将提示选择哪种单片机CPU数据库文件,如图2-19所示。默认数据库为DeviceDatabase,其中包含Acer、Atmel等多种常见的兼容8051CPU内核的单片机型号,如图2-20所示。单元七实训——第一个单片机程序(1)新建工程单击“保存”按钮后系统将提示选择哪种单片机CPU数据库文件,如图2-19所示。默认数据库为DeviceDatabase,其中包含Acer、Atmel等多种常见的兼容8051CPU内核的单片机型号,如图2-20所示。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年制冷工(中级)职业鉴定考试题库(含答案)
- 教师资格证综合素质试题及答案
- 2025年中级安全工程师《(金属)安全生产专业实务》考试题库(含答案)
- 高速公路绿化及环境保护工程施工组织设计
- 2025年安徽正高(护理学)考试真题卷(含答案)
- 土方运输工程施工方案及工艺方法
- 全国10月高等教育自学考试儿科护理学试题及答案解析
- (完整版)铝合金推拉窗施工方案
- 长方形和正方形的周长
- 2026陕西宝鸡市中医医院西关院区合同制病区护士招聘80人备考题库一套附答案详解
- 《免疫抑制剂汇总》课件
- 集团人力资源专业任职资格管理体系
- 国家中小学智慧教育平台培训专题讲座
- 食堂用电安全知识-食堂用电管理规定
- 隐性债务培训课件
- 海外中国戏曲研究译丛:讲述中国戏剧
- 信息论-基础理论与应用(第5版)PPT完整全套教学课件
- 登高车安全操作规程
- 贵州2023年贵阳银行内部审计人员招聘上岸提分题库3套【500题带答案含详解】
- 2023年湖南省法检两院笔试真题及答案书记员法律知识
- SB/T 10029-2012新鲜蔬菜分类与代码
评论
0/150
提交评论