《STC32G单片机原理及应用》全套教学课件_第1页
《STC32G单片机原理及应用》全套教学课件_第2页
《STC32G单片机原理及应用》全套教学课件_第3页
《STC32G单片机原理及应用》全套教学课件_第4页
《STC32G单片机原理及应用》全套教学课件_第5页
已阅读5页,还剩494页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

绪论迈进单片机的大门STC32G单片机原理及应用第0章绪论-迈进单片机的大门.pptx第1章STC32G12K128单片机.pptx第2章项目开发准备.pptx第3章-项目1:GPIO应用-GPIO输出驱动LED.pptx第4章项目2:GPIO应用-独立按键检测.pptx第5章项目3:外部中断.pptx第6章项目4:定时器应用-控制LED闪烁.pptx第7章-项目5:数码管显示.pptx第8章-项目6:矩阵键盘应用.pptx第9章-项目7:电源管理应用.pptx第10章-项目8:看门狗应用.pptx第11章-项目9:UART串口.pptx第12章-项目10:I2C总线接口.pptx第13章-项目11:ADC模数转换.pptx全套可编辑PPT课件本章内容:2单片机概述1STC32G单片机2自动化专业就业岗位1、自动化系统集成(非标自动化设备)(电气工程师(PLC),上位机软件工程师(含机器视觉)、测试工程师、机器人工程师)-控制柜级的设计2、自动化运维(自动化设备的运行维护)3、产品开发(嵌入式软件工程师、硬件工程师,如设计PLC)-板级设计,本科及以上4、技术支持工程师(本科)、技术销售工程师(自动化产品销售)……5、机器视觉算法工程师、算法工程师(运动控制、过程控制、算法优化)-要求硕士及以上1.1什么是单片机?智能家居:自助快递箱:1.1什么是单片机?智能家居智能家居智能手环自助快递箱控制器控制器控制器控制器单片机系统是实现所述“控制器”的可选方案之一。1.1什么是单片机?侧重于数值计算和

数据处理能力侧重于对被控制对象进行智能化控制高运算速度、高存储容量高可靠性、低功耗、低成本、单芯片化PC机、工作站、小型机大型机等单片机等通用计算机系统专用计算机系统自1946年人类发明数字计算机以来,计算机技术向着通用和专用两个不同的方向发展。1.1什么是单片机?

单片机是单片微型计算机的简称SingleChipMicrocomputer单个芯片由若干个芯片构成的微型计算机系统1.1什么是单片机?

单片微型计算机简称单片机,是典型的嵌入式微控制器(MicrocontrollerUnit),常用缩写MCU表示。单片机由运算器、控制器、存储器、输入输出接口等构成,相当于一个微型计算机系统。与计算机相比,单片机就是缺少了外围设备等,概况地讲:一块芯片就是一台计算机,它的体积小、重量轻、价格便宜,从而为人们学习、应用和开发提供了便利条件。

通俗讲:单片机就是一块集成芯片,但这块集成芯片具有一些特殊的功能,而这些功能的实现要靠我们使用者自己编程来完成。我们编程的目的就是要控制这块芯片的各个引脚在不同的时间输出不同的电平(专业术语叫时序),进而控制与单片机各个引脚相连接的外围电路的电气状态,一起完成某项工作。1.1什么是单片机?1.2单片机和桌面系统的基本架构

--单片机的结构

单片机是指单个集成电路(IntegratedCircuit,IC)芯片上的小型计算机(Microcomputer),也称为微控制器(MicrocontrollerUnit,MCU)MCU主要面向嵌入式应用,这些应用面向自动控制产品和设备比如汽车发动机的控制系统、植入式医疗设备、遥控器、办公机器、电器、电动工具、玩具和其他嵌入式系统

通常,在MCU内包含一个/多个中央处理器单元(CentralProcessingUnit,CPU)、易失性和非易失性存储器,以及可编程的输入和输出设备CPUEMIFROM/FlashSRAM

UART

GPIOTimerOSCIntControllerADCDAC1.2单片机和桌面系统的基本架构

--单片机的结构OSC为晶体振荡器(Oscillator)的英文缩写,它为MCU提供最基本的时钟源通过MCU内的相位锁相环(PhaseLockedLoop,PLL)电路,基于该时钟源可以产生不同频率和相位的其他时钟信号,以提供给MCU内的所有功能单元随着半导体技术的发展和芯片设计水平的不断提高,厂商经常在MCU内部集成了晶体振荡器,这样就不需要像以前那样需要在MCU外部连接晶体振荡器电路,这样既减少了系统硬件设计的复杂度,降低了系统设计成本,同时也提高了系统的可靠性MCU也仍然保留了从外部输入时钟源的能力。这样,就为系统的设计提供了更多的灵活性1.2单片机和桌面系统的基本架构

--单片机的结构CPU是中央处理单元(CentralProcessingUnit,CPU)的英文缩写,CPU是MCU中的核心功能单元从MCU外部获取的所有信息都要汇集到CPU进行处理,CPU将处理后的数据送到存储器或者外设CPU是指令集架构(InstructionSetArchitecture,ISA)的具体实现,也称为微架构(Microarchitecture),它所采用的ISA决定了MCU的性能和特点比如Intel和AMD的CPU采用的x86的ISA,但是两者的微架构实现有差异1.2单片机和桌面系统的基本架构

--单片机的结构单片机和桌面系统的基本架构

--单片机的结构SRAM是静态随机访问存储器(StaticRandomAccessMemory,SRAM)的英文缩写,主要用于暂时保存在程序运行过程中所需要的数据,它充当了易失性存储器的角色这种类型存储器的主要特点是需要上电来保存信息。当MCU断电时,保存在易失性存储器中的数据会丢失单片机和桌面系统的基本架构

--单片机的结构Flash是闪存(FlashMemory)的英文简称,主要用于保存程序代码,它充当了非易失性存储器的角色这种类型存储器的主要特点是不需要上电保存信息。当MCU断电时,程序代码仍然会保存在非易失性存储器中在闪存问世之前,MCU厂商经常使用只读存储器(ReadOnlyMemory,ROM)或一次性可编程ROM(OneTimeProgrammableROM,OTPROM)来保存程序代码GPIO为通用输入输出(GeneralPurposeInput&Output,GPIO)的英文缩写,它是MCU最基本的外设配置,也是MCU中最简单的外设MCU内的CPU可以直接驱动GPIO或读取GPIO的逻辑状态1.2单片机和桌面系统的基本架构

--单片机的结构Timer为定时器的英文单词,它是MCU中必不可少的基本外设定时器为MCU提供定时和计数功能,是MCU中提供最基本的外设配置当在MCU中运行嵌入式操作系统(OperatingSystem,OS)时,定时器也用于为OS提供“嘀嗒”时钟1.2单片机和桌面系统的基本架构

--单片机的结构IntController为中断控制器(InterruptController)的英文缩写,它是MCU中最基本的功能单元中断控制器为MCU提供了处理内部和外部事件的能力,使得MCU内的CPU能够以最高效和最快的速度响应并处理内部和外部事件1.2单片机和桌面系统的基本架构

--单片机的结构EMIF为外部存储器接口(ExternalMemoryInterface,EMIF)的英文缩写,它为MCU提供了连接片外SRAM芯片的能力通过该接口,用户可以在MCU外部连接多片SRAM芯片来扩展SRAM的总容量,以适应整个系统对程序运行期间所需要暂时保存大容量数据的需要显然,对于一些成本比较敏感的应用,扩展SRAM会增加系统的总成本。由于现代MCU中片内提供的SRAM容量足以保证低成本的嵌入式应用,因此只有在必要的情况下,才需要在MCU外部采用外接SRAM芯片的方式来扩展SRAM的总容量1.2单片机和桌面系统的基本架构

--单片机的结构ADC和DAC分别为模拟数字转换器(Analog-to-DigitalConverter,ADC)单元和数字模拟转换器单元(Digital-to-AnalogConvertor,DAC)的英文缩写随着集成电路设计技术的不断发展,MCU也向着混合信号的方向发展,最主要的表现就是在MCU内部集成了ADC和DAC单元这样,MCU就成为连接数据采集、处理和驱动控制的边缘设备,构建起了模拟和数字世界之间的“桥梁”1.2单片机和桌面系统的基本架构

--单片机的结构

此外,在一些对功耗比较敏感的应用中(比如使用电池为MCU供电的应用),要求MCU具有更加灵活的低功耗工作模式这些模式包括间歇工作模式、休眠模式或冬眠模式1.2单片机和桌面系统的基本架构

--单片机的结构从半导体工艺和设计技术的角度来看,MCU朝着片上系统(SystemonChip,SoC)的方向发展,即在MCU中集成的外设数量不断增加,集成的SRAM和闪存的容量也越来越大,CPU的性能也越来越高与以前的MCU相比,MCU的整体性能和复杂度在增加,但是MCU的总成本却保持不变,这符合“摩尔定理”所预测的半导体发展规律MCU的这种发展趋势进一步降低了系统总成本,并且进一步提高了整个系统的可靠性1.2单片机和桌面系统的基本架构

--单片机的结构1.2单片机和桌面系统的基本架构

--桌面系统的结构读者经常会问到,MCU与个人电脑(PersonalComputer,PC)和移动电话(也称为手机)上使用的微处理器(Microprocessor)有什么不同?个人电脑和手机主要面向桌面应用,它们搭载着Windows操作系统/Andriod操作系统/iOS操作系统1.2单片机和桌面系统的基本架构

--桌面系统的结构简化的桌面系统结构

CPUDRAM闪存I/OI/O1.2单片机和桌面系统的基本架构

--桌面系统的结构面向桌面的应用中,要求处理器外部扩展大容量同步动态随机访问存储器(SynchronousDynamicRAM,SDRAM)这种外扩存储器的容量一般为几十个GB的容量,甚至多达几个GB的容量而MCU内集成的SRAM存储器的容量一般为几十个KB的容量1.2单片机和桌面系统的基本架构

--桌面系统的结构处理器外部扩展了大容量NOR/NAND闪存,这种外扩的闪存容量最多达到几个GB,其容量也远远大于MCU内集成的闪存1.2单片机和桌面系统的基本架构

--桌面系统的结构由于处理器面向桌面应用,因此其外部连接的输入/输出设备也比MCU内集成的输入/输出设备的功能更加复杂比如,在面向桌面应用的处理器中提供了高性能的PCI/PCI-E接口,这种接口在MCU中就没有提供1.2单片机和桌面系统的基本架构

--桌面系统的结构此外,面向桌面的应用中所搭载操作系统的功能也远比MCU上所能搭载操作系统的功能复杂的多常见的,在MCU上搭载的嵌入式操作系统有μC-OS、FreeRTOS、RTX51-Tiny和RT-Thread等1.3单片机厂家简介1.意法半导体(ST)意法半导体的产品组合包含全面的微控制器,从强大的低成本8位MCU到基于ARM®的32位Cortex®-M0和M0+,Cortex®-M3,Cortex®-M4,Cortex®-M7闪存微控制器,具有多种外设选择。意法半导体还将这个范围扩大到包括一个超低功耗MCU平台。主要有STM8、STM32和SPC5三大系列。STM8STM8S-主流MCUSTM8L-超低功耗MCUSTM8AF和STM8AL-汽车用MCU

ST微控制器产品线1.3单片机厂家简介1.意法半导体(ST)STM32该家族Flash的32位微控制器基于Arm®Cortex®-m处理器设计单片机用户提供新的自由度。产品集高性能、实时性、数字信号处理、低功耗、低电压运行、互联性于一体,同时保持完整的集成与开发便利性。基于行业标准的核心,以及大量的工具和软件选择,因此无论是对于小型项目还是整个平台,这类产品都是理想的选择。STM32F103是ST旗下的一款常用的增强型系列微控制器,采用Cortex-M3内核,CPU最高速度达72MHz。该产品系列具有16KB~1MBFlash、多种控制外设、USB全速接口和CAN。适用于电力电子系统方面的应用、电机驱动、应用控制、医疗、手持设备、PC游戏外设、GPS平台、编程控制器(PLC)、变频器、扫描仪、打印机、警报系统、视频对讲、暖气通风、空调系统等。SPC5SPC5是汽车用32位微控制器,使用行业标准Power体系结构®和ST嵌入Flash技术的专利进行设计。它们将可伸缩的单、双核和多核解决方案(PowerArchitecturee200z0到e200z4)与创新的外围设备组合在一起,这些设备针对汽车应用程序进行了优化,如发动机管理、底盘、安全性、车身控制、高级驱动辅助,以及所有需要长期可靠性的应用程序。 1.3单片机厂家简介2.恩智浦半导体(NXPSemiconductors)

NXP公司的MCU产品线主要有LPC800系列、LPC1100系列、LPC51U68MCU和LPC54000系列。

LPC800系列为基本微控制器应用提供了一系列低功耗、节省空间、低引脚数的选项,是价格适当的入门级、8位MCU替代产品。LPC800系列MCU有别于一般的低端器件,包含差异化的产品特性,例如:NFC通信接口,互电容触摸,用于灵活配置各I/O引脚功能的开关矩阵,以及获得专利的SCTimer/PWM,为嵌入式设计人员提供了无与伦比的设计灵活性。LPC1100系列MCU的运行速度高达50MHz,具有行业标准连接的可扩展产品组合。这个多元化集团涵盖了USB、LCD和CAN等行业标准功能。某些产品包含12通道/12位ADC或I/OHandler(IOH)等特殊功能。1.3单片机厂家简介2.恩智浦半导体(NXPSemiconductors)

NXP公司的MCU产品线主要有LPC800系列、LPC1100系列、LPC51U68MCU和LPC54000系列。32位LPC51U68微控制器基于非常节能的Arm®Cortex®-M0+内核,其CPU工作频率高达100MHz,带有无晶振FSUSB,适用于嵌入式应用。它还具有更大的内存资源,包括96KB片上SRAM和256KB带闪存加速器的片上闪存编程存储器。LPC54000系列单核和双核MCU具备行业领先的下一代功效,是面向大众的节能、主流系列。LPC54000系列基于高性能的Arm®Cortex®-M4内核,带有可选的Cortex®-M0+协处理器。单Cortex®-M4选项适用于着重无软件分区的单核处理的架构。1.3单片机厂家简介3.Microchip美国微芯科技

Microchip(MicrochipTechnologyIncorporated)是全球领先的单片机和模拟半导体供应商,为全球数以千计的消费类产品提供低风险的产品开发、更低的系统总成本和更快的产品上市时间。产品线覆盖了8位、16位和32位单片机。8位单片机8位AVR单片机,有ATtiny、ATmega、ATxmega等系列;8位PIC单片机有数百款,引脚数从6到100,闪存最大为128KB,并且特定产品组合中的引脚和代码互相兼容。16位单片机主要有PIC24系列、dsPIC33F系列、dsPIC33EV系列和dsPIC33EP系列,16位PIC®MCU提供了SARADC、高速ADC和Δ-ΣADC,还提供了通用DAC和音频DAC。1.3单片机厂家简介3.Microchip美国微芯科技

Microchip(MicrochipTechnologyIncorporated)是全球领先的单片机和模拟半导体供应商,为全球数以千计的消费类产品提供低风险的产品开发、更低的系统总成本和更快的产品上市时间。产品线覆盖了8位、16位和32位单片机。8位单片机8位AVR单片机,有ATtiny、ATmega、ATxmega等系列;8位PIC单片机有数百款,引脚数从6到100,闪存最大为128KB,并且特定产品组合中的引脚和代码互相兼容。16位单片机主要有PIC24系列、dsPIC33F系列、dsPIC33EV系列和dsPIC33EP系列,16位PIC®MCU提供了SARADC、高速ADC和Δ-ΣADC,还提供了通用DAC和音频DAC。1.3单片机厂家简介32位单片机Microchip的32位系列提供范围广泛的产品,从业界最低功耗MCU到最高性能MCU,并配有新颖易用的软件解决方案。借助由Microchip各种开发工具、集成开发环境和第三方合作伙伴所提供开发工具组成的丰富生态系统,Microchip32位系列单片机可加速从安全物联网(IoT)应用到通用嵌入式控制的大量嵌入式设计。低端:SAMD、SAML和SAMC系列,内核为Cortex®M0+;PIC32MX1/2/5和PIC32MM系列,MIPS内核。中端:SAM4和SAMG系列,内核为Cortex®M4/M4F;PIC32MX3/4和PIC32MX5/6/7系列,MIPS内核。高性能:SAMS70/E70/V7x系列,ARM®Cortex®-M7内核,300MHz;PIC32MZ系列,MIPSM-Class内核:252MHz。传统32位单片机,包括AVR32系列、SAM7系列和SAM3系列。1.3单片机厂家简介4.德州仪器(TI)

TI提供具有有线和无线选项的低功耗、高性能微控制器(MCU)产品系列。主要有以下三大系列:SimpleLink™有线和无线MCU,是最广泛的差异化有线和无线Arm®MCU产品系列,由统一的开发环境提供支持,包括SimpleLink无线MCU、SimpleLink有线MCU和SimpleLink无线网络处理器。MSP430™超低功耗MCU,适用于工业传感和测量应用的超低功耗微控制器。包括超值系列MCU、电容式感应MCU和超声波和高性能传感MCU。C2000™实时控MCU,针对实时控制密集型应用(包括电动汽车、工业驱动器和数字电源)进行了优化。包括C2000Delfino™MCU、C2000Piccolo™MCU、C2000InstaSPIN™MCU和C2000F28xMCU系列。1.3单片机厂家简介5.Renesas瑞萨电子

Renesas微控制器和微处理器拥有广泛的内存和封装选项,它们速度快、可靠性高、成本低、性能环保。结合最新的工艺技术,可以集成大容量闪存,它们被广泛应用于各种应用,包括要求高质量和高可靠性的领域,如汽车工业。主要有三大系列,RL78、RX和RZ。

RL78是瑞萨电子的下一代微控制器系列,该系列拥有78K及R8C系列的优势特性并具有低功耗、高性能的出色表现。RL78系列是基于16位CISC架构带有超强的模拟量处理功能(也有RL78的8位内核)。RL78系列可应用于照明和汽车微控制器,包括通用LCD和ASSP等。RL78是专为超低功耗应用,使客户能够以较低的成本建立高集成度和高效节能的应用平台,最高工资频率可达32MHz。1.3单片机厂家简介5.Renesas瑞萨电子

RX系列是32位MCU,该系列具有增强功能和低功耗特点,采用32位的RX内核,可以轻松应用于电机控制、LCD显示、物联网产品和安全领域等,最高工资频率可达240MHz。RZ系列是瑞萨的高端32位ARM微处理器,为未来智能社会提供了所需的解决方案。基于一系列Arm®Cortex®-A7,A9,A15,以及R4的基础设备,瑞萨RZ系列微处理器可以帮助工程师轻松实现高分辨率的人机界面(HMI)、嵌入式视觉、实时工业以太网连接等重要功能应用。最高工资频率可达1.5GHz。1.3单片机厂家简介6.SiliconLabs

SiliconLabs公司在1996年于美国德州奥斯汀(Austin,Texas)成立,专门开发世界级的混合信号器件,是为实现更智能、更互联的世界而提供芯片、软件和解决方案的领先供应商。在节能型微控制器(MCU)领域也有一席之地。SiliconLabs公司的MCU产品线主要有两大系列,分别使用低功耗、基于EFM32™ARM®Cortex®的32位MCU(包括EFM32和Precision32设备)和基于EFM8™8051的8位MCU(包括EFM和C8051设备)。借助SimplicityStudio™开发工具,可以快速提供节能型传感器节点、智能仪表、可穿戴的或连接的物联网(IoT)系统。可以借助设备的灵活度和大量的软件示例,在更短时间内把触控、LCD接口、信号处理、USB连接和传感器由概念变成设计。1.3单片机厂家简介7.STCmicro(宏晶科技)

宏晶科技是全球最大的8051单片机设计公司,8051单片机全球第一品牌,中国大陆本土MCU领航者,在线编程(ISP)技术的领导者&推广者,也是单指令周期8051-MCU的主要推动者。主要的MCU产品有以下系列:STC89系列:兼容各家常规8051MCU,直接替换Atmel8051,NXP8051;STC12系列:兼容各家精简8051MCU,直接替换Atmel2051;STC15系列:高性价比单指令高性能高速8051MCU。STC8系列:STC8H,STC8G,STC8A,STC8C;STC32系列:STC32G,STC32F,32位8051MCU(2022年);Ai8051U系列/AI32G。STC89Cxx系列单片机是2005年中国本土推出的第一款具有全球竞争力且与MCS-51兼容的单片机,目前STC的最新主力单片有STC8系列、STC32系列Ai8051U系列。另外某一系列的单片机又有不同的类型和封装形式,继而可以满足客户的不同需求。1.4如何学习单片机-做有准备的人1.精神准备(1)从战略上藐视它。实际上就是控制单片机的引脚什么时候输出高电平,什么时候输出低电平,用这些高低变化的电平来控制外围电路,实现我们需要的各种功能。正所谓会者不难,难者不会,大家不懂这个东西,看起来感觉很神秘。所以大家只要认真踏实坚持学下去,肯定能学好这么技术。(2)从战术上要重视它。技术这东西,关键是坚持做下去,有恒心和决心,学习完几个例程后,就应该及时做实验,融合贯通,要想成为单片机高手,起码需要一年左右的单片机开发的历练才行。1.4如何学习单片机-做有准备的人2.软件准备(1)理论知识准备有人说“零基础”学单片机,这句话本来就是不现实的,学习单片机必须有一定的理论基础,C语言编程基础,电子基础(电阻、电容等)、模拟电路、数字电路等。不是去借本C语言、模电、数电的书,从头开始学,而是需要什么,就去查什么,现用现查。当然如果你前期已经系统地学过这些课程,那学习单片机就更加顺畅了。(2)开发工具准备不同的单片机有不同编程环境,主要有以下几种KeilC51、C251uVision(8051单片机常用)、CodeWarriorIDE、IARSystems。不同的开发环境功能类似,操作大同小异,掌握一种后很快就能上手其他。1.4如何学习单片机-做有准备的人我们使用的开发工具:KeilC251uVision1.4如何学习单片机-做有准备的人3.硬件准备(1)开发板的必要性学习单片机,建议大家一定要多做实验,一开始可以模仿官方提供的例程做些简单的实验。模仿是千万不要满足只在开发板上运行一下,一定要动手把程序敲进电脑,一句一句理解清楚,不懂的地方对照书本或者手册进行查阅,体会编程思路,然后再编译,下载,看实验现象。接着自己提出对实验结果的改变,再修改程序,如果能实现预定的实验效果,证明就基本理解了这个实验的内涵了。(2)仿真的局限性老师在上课使用仿真软件对实验结果进行一些形象的演示是可以的,还有如果初学者在完成某个项目,有些特定芯片开发板不具备,依赖一下仿真是可以的。但是实际开发和仿真软件却差别很大,比如在Proteus仿真中,LED不接限流电阻也是可以点亮的,但实际电路中万万不可的,这样往往会误导初学者。如果真心想学好单片机这门技术,那只能告诉你,拿起烙铁焊电路,动手写程序,远离仿真软件,靠软件仿真永远学不到真正的技术。1.5STC32G12K128引脚图(最小系统)1.2.1STC89C52LQFP-44引脚介绍1.5单片机C51基础知识介绍1.单片机C语言和标准C语言的比较(1)库函数标准C语言定义的库函数是按照通用微型计算机来定义的,而C51语言中的库函数是按51单片机的应用情况来定义的。(2)数据类型在C51语言中增加了几种针对51单片机的特有数据类型。例如,51单片机包含位操作空间和丰富的位操作指令,因此多了一种bit类型,以便同汇编语言一样,灵活地进行位指令操作。(3)变量的存储类型1.2.2单片机C51基础知识介绍1.单片机C语言和标准C语言的比较(3)变量的存储类型(先简单了解)C51语言中变量的存储类型与51单片机的存储器相关。从存储器类型上,51单片机有片内、片外程序存储器,片内、片外数据存储器。片内存储器中,又有直接寻址和间接寻址之分,因此对应code、edata和xdata。使用不同的存储器会影响程序的效率,不同的存储类型对应不同的硬件系统和不同的编译结果。但标准C语言,对存储类型的要求不高,一般都缺省,那就默认auto类型。1.5单片机C51基础知识介绍1.单片机C语言和标准C语言的比较(4)输入和输出

由于单片机没有显示器,C51语言的输入输出是单片机的串行口来实现的,使用输入/输出指令之前,必须对串口进行初始化。(5)函数使用C51语言中有专门的中断函数,而标准C语言中没有。1.5单片机C51基础知识介绍2.C51中常用的头文件

硬盘盘符:\Keil_v5\C251\INC通常有stc32g.h,math.h,ctype.h,stdio.h,stdlib.h,absacc.h,intrins.h。最常用的有stc32g.h,intrins.h,math.hstc32g.h是定义stc32g单片机SFR特殊功能寄存器的,SFR的英文全称是SpecialFunctionRegister。math.h是定义数学函数的,比如求绝对值、求方根、求正弦和余弦等,该头文件中包含有各种数学运算函数,当我们需要使用时可以直接调用函数,无须我们再自己编写。1.5单片机C51基础知识介绍2.C51中常用的头文件

intrins.h

本征库函数,1.5单片机C51基础知识介绍3.学习单片机应该掌握的核心内容(1)单片机最小系统:单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。对传统51系列单片机来说,最小系统除单片机本身外,一般应该包括:电源、晶振电路和复位电路(STC32G芯片内部)。(2)I/O口操作:输出控制电平高低,输入检测电平高低。(3)定时器:重点掌握最常用的方式0。(4)中断:掌握外部中断、定时器中断和串口中断,主要涉及到中断的初始化和中断服务函数的编写。(5)串口通信:掌握单片机与计算机之间通信,单片机之间通信。(6)A/D和D/A接口:掌握单片机与A/D和D/A接口的扩展,打通数字世界与模拟世界的连接。第1章STC32G12K128单片机1.1STC32G单片机简介STC32G单片机概述STC32G单片机是深圳国芯人工智能有限公司推出的一款基于8051内核的单时钟(1T)32位单片机,在相同的工作频率下,STC32G系列单片机比传统的8051约快70倍。STC32G单片机有STC32G12K128、STC32G8K64和STC32F12K60三个产品线。

内部集成高精度RC时钟和高可靠复位电路,因此可以不需要外部晶振和外部复位电路;在ISP编程时可设置工作频率,并有4级复位门槛电压可选;具备宽电压、高速、高可靠、低功耗、强抗静电、较强抗干扰和超级加密等特点。单片机基本信息核心特性时钟系统STC32G单片内部有4个可选时钟源:内部高精度IRC时钟(可ISP编程时调整频率)内部32KHz的低速IRC外部4M~33M晶振或外部时钟信号内部PLL输出时钟。用户代码中可自由选择时钟源,时钟源选定后可再经过8-bit的分频器分频后再将时钟信号提供给CPU和各个外设(如定时器、串口、SPI等)。可选时钟源时钟分配机制IDLE模式下,MCU停止给CPU提供时钟,CPU无时钟,CPU停止执行指令,但所有的外设仍处于工作状态,此时功耗约为1.3mA(6MHz工作频率)。IDLE模式ST0P模式即为主时钟停振/省电模式,即传统的掉电模式/停电模式/停机模式,此时CPU和全部外设都停止工作,功耗可降低到1uA以下。低功耗模式STOP模式提供4个串口、5个定时器、2组针对三相电机控制能够输出互补/对称/带死区控制信号的16位高级PWM定时器以及I2C、SPI、USB、CAN、LIN接口。数字外设提供超高速12位ADC、比较器等模拟外设。外设资源模拟外设指令集与硬件扩展STC32G系列单片机有268条指令,包含32位加减法指令和16位乘除法指令。硬件扩充了32位硬件乘除单元MDU32(包含32位除以32位和32位乘以32位)。指令集特点硬件扩展STC32G系列单片机内部集成了增强型的双数据指针。通过程序控制,可实现数据指针自动递增或递减功能以及两组数据指针的自动切换功能。数据指针功能增强型双数据指针封装与外观图1-1为LQFP48封装的STC32G12K128单片机外观图。外观图展示1.2资源配置与引脚1.2.1资源配置内部资源详解1.内核2.Flash存储器高速32位8051内核(1T),其工作速度约为传统8051的70倍。具有49个中断源,4级中断优先级。支持硬件USB端口直接下载和普通串行端口下载。支持硬件SWD实时仿真,通过P3.0/P3.1进行(需要借助STC-USBLink1工具)。含最大128KBFlash程序存储器(ROM),用于存储用户程序。支持用户配置EEPROM大小,512B单页擦除,擦写次数可达10万次以上。内部资源详解3.SRAM(共12KB)4.时钟控制4KB内部SRAM(edata)。8KB内部扩展RAM(内部xdata)。注:edata和xdata是变量的存储类型,决定存储位置。误差:±0.30%(25℃)。温漂:-1.35%~+1.30%(-40℃~85℃)/-0.76%~+0.98%(-20℃~65℃)。内部32kHz低速IRC(误差较大)。注:官方说只能调试应急用,一般用于实时时钟芯片。外部晶振(4MHz~33MHz)和专门的外部时钟,可通过软件启动。内部PLL输出时钟(注:PLL输出的96MHz/144MHz信号可独立作为高速PWM和高速SPI的时钟源)。内部资源详解5.复位6.中断硬件复位:上电复位,复位电压值为1.7~1.9V(在单片机未使能低压复位功能时有效);复位引脚复位,出厂时P5.4被默认设为I/O端口引脚,进行ISP下载时可将P5.4设置为复位引脚(注意:当设置P5.4为复位引脚时,复位电平为低电平);看门狗溢出复位;低压检测复位,提供4级低压检测电压,即2.0V、2.4V、2.7V、3.0V。软件复位:可以软件方式对复位触发寄存器进行写入与复位操作。提供49个中断源:INT0、INT1、INT2、INT3、INT4、定时器0、定时器1、定时器2、定时器3、定时器4、USART1、USART2、UART3、UART4、ADC模数转换、LVD低压检测、SPI、I2C、比较器、PWMA、PWMB、USB、CAN1、CAN2、LIN、LCMIF彩屏接口中断、RTC实时时钟、所有的IO中断(8组)、串口1的DMA接收和发送中断、串口2的DMA接收和发送中断、串口3的DMA接收和发送中断、串口4的DMA接收和发送中断、I2C的DMA接收和发送中断、SPI的DMA中断、ADC的DMA中断、LCD驱动的DMA中断以及存储器到存储器的DMA中断。提供4个中断优先级。内部资源详解7.数字外设(1)5个16位定时器:定时器0、定时器1、定时器2、定时器3、定时器4,其中定时器0的模式3具有NMI(不可屏蔽中断)功能,定时器0和定时器1的模式0为16位自动重载模式。(2)2个高速同步/异步串口:串口1(USART1)、串口2(USART2),波特率时钟源最快可为FOSC/4。支持同步串口模式、异步串口模式、SPI模式、LIN模式、红外模式(IrDA)、智能卡模式(ISO7816)。(3)2个高速异步串口:串口3、串口4,波特率时钟源最快可为FOSC/4。(4)2组高级PWM:可实现8通道(4组互补对称)带死区的控制的PWM,并支持外部异常检测功能。(5)SPI:3组硬件SPI(一组独立SPI,两组USART的SPI模式)支持主机模式和从机模式以及主机/从机自动切换(注:3组SPI均支持DMA)(6)I2C:支持主机模式和从机模式。(7)RTC:支持年、月、日、时、分、秒、次秒(1/128秒),并支持时钟中断和一组闹钟。(8)USB:USB2.0/USB1.1兼容全速USB,6个双向端点,支持4种端点传输模式(控制传输、中断传输、批量传输和同步传输),每个端点拥有64字节的缓冲区。(9)CAN:两个独立的CAN2.0控制单元。内部资源详解7.数字外设(10)LIN:3组硬件LIN(一组独立LIN,两组USART的LIN模式)一个独立的LIN控制单元(支持1.3和2.1版本)。(11)MDU32:硬件32位乘除法器(包含32位除以32位、32位乘以32位)。(12)I/O口中断:所有的I/O均支持中断,每组T0I/O中断有独立的中断入口地址,所有的I/O中断可支持4种中断模式:高电平中断、低电平中断、上升沿中断、下降沿中断。I/O口中断可以进行掉电唤醒,且有4级中断优先级。(13)LCD驱动模块:支持8080和6800两种接口以及8位和16位数据宽度。(14)DMA:支持SPI移位接收数据到存储器、SPI移位发送存储器的数据、I2C发送存储器的数据、I2C接收数据到存储器、串口1/2/3/4接收数据到的存储器、串口1/2/3/4发送存储器的数据、ADC自动采样数据到存储器(同时计算平均值)、LCD驱动发送存储器的数据、以及存储器到存储器的数据复制。(15)硬件数字ID:支持32字节。内部资源详解8.模拟外设(1)ADC转换器:超高速ADC,支持12位高精度15通道(通道0~通道14)的模数转换,ADC的通道15用于测试内部参考电压(芯片在出厂时,内部参考电压调整为1.19V,误差±1%)。(2)比较器:一组比较器。9.GPIOSTC32G12K128单片机最多有60个GPIO:P0~P7端口引脚(不含P1.2、P5.5~P5.7)均支持准双向口模式、强推挽输出模式、开漏模式、高阻输入模式4种模式。除P3.0和P3.1外,其余所有IO口上电后的状态均为高阻输入状态,用户在使用IO口时必须先设置IO口模式。另外每个IO均可独立使能内部4K上拉电阻。1.2.2工作特性工作电压工作温度封装形式1.9~5.5V(当工作温度低于-40℃时,工作电压不得低于3.0V)。-40~85℃:可使用内部高速IRC(36MHz或以下)和外部晶振。-40~125℃:当温度高于85℃时请使用外部耐高温晶振,且工作频率控制在24MHz以下。STC32G12K128单片机有LQFP64、LQDP48、LQFP32、PDIP40共4种封装形式。1.2.3引脚与引脚功能引脚图与基本说明图1-3STC32G12K128单片机引脚图(LQFP64封装)。1.2.3引脚与引脚功能引脚功能详细说明有4个专用引脚:引脚19(电源正极VCC、A/D转换器电源正极AVCC)引脚21(电源地GND、A/D转换器电源地AGND、A/D转换器参考电压源负极VREF-)引脚20(A/D转换器参考电压正极VREF+)引脚17(USB内核电源稳压脚UCAP)。除此4个引脚外,其他引脚都可用作IO端口引脚。不需要外部配置时钟与复位电路,也就是说STC32G12K128单片机只需要接上电源就是一个单片机最小系统了。1.2.3引脚与引脚功能(1)P0口1.2.3引脚与引脚功能(2)P1口1.2.3引脚与引脚功能(3)P2口1.2.3引脚与引脚功能(4)P3口1.2.3引脚与引脚功能(5)P4口1.2.3引脚与引脚功能(6)P5口1.2.3引脚与引脚功能(7)P6口1.2.3引脚与引脚功能(8)P7口1.2.4STC32G12K128系列单片机与STC89C52RC参数对比 1.2.5选择国产STC32G12K128系列单片机理由国际形势与国产芯片发展背景STC32G12K128系列优势美西方国家对中国半导体产业实施全面出口管制,限制高算力芯片及产业链上下游环节。中国半导体发展关系国家安全和技术自主可控。不需外部晶振/不需外部复位电路,可对外输出时钟和低电平复位信号给外围设备。有片上EEPROM功能。可直接仿真,无需专用仿真器,在系统可编程,支持远程升级功能。比传统8051快约70倍,指令效率高,支持32位加减法、乘除法运算。具备12位高速ADC,支持外部参考源测量电池电压。超低功耗模式,典型功耗低至0.4μA。支持位操作,操作灵活。01021.3STC32G12K128的存储系统存储系统架构存储系统架构STC32G12K128单片机提供24位寻址空间,最多能够访问16MB的存储器(8MB数据存储器+8MB程序存储器)。程序存储器和数据存储器是统一编址的。单片机的所有程序存储器都是片上Flash存储器,不能访问外部程序存储器。系统寻址空间数据存储器在物理和逻辑上分为两个地址空间:内部RAM(edata)和内部扩展RAM(xdata)。存储系统的编址详见表1-10。数据存储器结构存储系统架构STC32G12K128单片机存储系统编址1.3.1程序存储器功能程序存储器用于存放用户程序、固定不变的数据及表格等信息。STC32G12K128单片机的程序存储空间有128KB,地址范围为FE0000H~FFFFFFH。其中,FF0000H~FFFFFFH的64KB程序空间与传统8051单片机的0000H~FFFFH空间兼容,称为code区域;FE0000H~FEFFFFH的64KB程序空间为扩展程序空间,称为ecode区域。1.3.1程序存储器功能单片机复位后,程序计数器(PC)的内容为FF0000H,从FF0000H单元开始执行程序。中断服务程序的入口地址(又称中断向量)也位于程序存储器。在程序存储器中,每个中断都对应一个固定的中断服务程序(中断服务函数)入口地址。当中断发生并得到响应后,单片机就会自动跳转到相应的入口地址去执行中断服务程序。外部中断0(INT0)的中断服务程序入口地址是FF0003H,定时/计数器T0(TIMER0))的中断服务程序入口地址是FF000BH,外部中断1(INT1)的中断服务程序入口地址是FF0013H,定时/计数器T1(TIMER1)的中断服务程序入口地址是FF001BH等。中断服务程序的入口地址(中断向量)详见后续章节相关内容。由于相邻入口地址的间隔区间仅仅有8B(Byte,字节),一般情况下无法保存完整的中断服务程序,因此在中断响应的地址区域存放一条无条件转移指令,指向真正存放中断服务程序的空间。1.系统复位程序起始地址与中断向量地址1.3.1程序存储器功能程序读取等待时间的选择由程序读取等待控制寄存器(WTST)实现。每条指令实际的执行时钟数为指令时钟数加上程序存储器的等待时钟数。2.程序读取等待时间的控制1.3.1程序存储器功能当程序代码的大小在64KB内时,选择Large模式;当程序代码的大小超64KB时,选择Huge模式,并需要保证单个函数、单个文件的代码大小,以及单个表格的数据量也在64KB以内,同时还需要设置ExternalMemory。3.KeilC251中对程序存储器的设置1.3.2数据存储器STC32G12K128单片机的edata区域可对32bit/16bit/8bit的数据进行单时钟读写访问,其xdata区域可对16bit/8bit的数据进行读写访问。edata区域的SRAM最大存储深度为64KB;xdata区域的SRAM最大存储深度为8MB。STC32G12K128单片机的SRAM总共有12KB(4KBedata+8KBxdata)。edata的地是000000H~000FFFH,单时钟周期存取,访问速度快,可作为堆栈使用,成本高;xdata的地址范围是010000H~~011FFFH,存取需要2~3个时钟周期,访问速度慢,成本低。1.3.2数据存储器STC32G12K128单片机的edata共4KB,其中低端的256B与传统8051的DATA区域(256B)完全兼容,可分为2个部分,低128B的RAM(可直接寻址也可间接寻址,00H~1FH为工作寄存器组,20H~7FH为位寻址区,每个存储位都可以直接访问)和高128B的RAM(只能间接寻址)。特殊功能寄存器SFR分布在80H~FFH区域,只可直接寻址。工作寄存器组有4个,分别称为0组、1组、2组和3组,每组有8个地址单元,当前工作寄存器的8个地址单元可分别用R0~R7来表示。通过PSW或PSW1中的RS1、RS0来选择当前工作寄存器组。1.edata(000000H~000FFFH)1.3.2数据存储器在C语言代码中将变量声明在edata区域,即可实现单时钟周期进行32bit/16bit/8bit的读写操作:charedatabCounter;//在edata区域声明单字节变量(单时钟周期进行8bit读写操作)intedatawCounter; //在edata区域声明双字节变量(单时钟周期进行16bit读写操作)longedatadwCounter; //在edata区域声明四字节变量(单时钟周期进行32bit读写操作)。1.edata(000000H~000FFFH)1.3.2数据存储器访问STC32G12K128单片机的xdata(内部扩展RAM的方法与访问传统8051单片机外部扩展RAM的方法相同,但是此行为不影响P0、P2、RD、WR和ALE等端口的信号。在C语言中,要想使用xdata,在定义变量时采用xdata关键字声明存储类型即可,如:unsignedcharxdatai;2.xdata(010000H~011FFFH)1.3.2数据存储器在C语言代码中将变量声明在xdata区域,即可实现8bit/16bit的读写操作,如:charxdatabCounter;//在xdata区域声明单字节变量(3/2个时钟周期进行8bit读/写操作)intxdatawCounter;//在xdata区域声明双字节变量(3/2个时钟周期进行16bit读/写操作)是否可以访问xdata,由辅助寄存器AUXR中的B1(EXTRAM)位控制。当EXTRAM=0时,禁止访问外部扩展RAM,即允许访问内部扩展RAM(xdata);当EXTRAM=1时,允许访问外部扩展RAM,即禁止访问内部扩展RAM(xdata)。需要根据系统时钟的数值对xdata进行访问,访问速度由CKCON中的CKCON.2~CKCON.0O(CKCON[2:0])控制,默认值为7。2.xdata(010000H~011FFFH)1.3.3EEPROMSTC32G12K128单片机内部集成了大容量的EEPROM。利用ISP/IAP技术可将内部DataFlash当作EEPROM使用,擦写次数在10万次以上。EEPROM可分为若干个扇区,每个扇区为512B。EEPROM的写操作只能将1写为0,当需要将0写为1时,则必须执行扇区擦除操作。EEPROM的读/写操作是以1B为单位进行的,而EEPROM擦除操作是以1扇区(512B)为单位进行的,在执行擦除操作时,如果目标扇区中有需要保留的数据,则必须预先将这些数据读取到RAM中暂存,待擦除完成后再将保存的数据和需要更新的数据一起写回EEPROM/DataFlash。所以,在使用EEPROM时,建议同一次修改的数据放在同一个扇区,不是同一次修改的数据放在不同的扇区,不一定要把扇区用满。EEPROM可用于保存一些需要在应用过程中修改并且掉电不丢失的数据。在用户程序中,可以对EEPROM进行字节读/字节编程/扇区擦除操作。在工作电压偏低时,建议不要进行EEPROM操作,以免数据丢失。1.3.3EEPROMEEPROM的起始地址固定为FE0000H。EEPROM的大小需要在进行ISP下载时设置,若要设置用户EEPROM的大小为64KB,即从“设置用户EEPROM大小”的下拉选项中选择“64K”。1.EEPROM的大小及地址1.3.3EEPROM访问EEPROM的方式有两种:IAP方式和MOV方式。IAP方式可对EEPROM执行读、写、擦除操作,但MOV方式只能对EEPROM进行读操作,而不能进行写和擦除操作。2.EEPROM的操作1.3.3EEPROM(1)IAP数据寄存器:IAP_DATA。在进行EEPROM的读操作时,命令执行完成后读出的EEPROM数据保存在IAP_DATA中。在进行EEPROM的写操作时,在执行写命令前,必须将待写入的数据存放在IAP_DATA中,再发送写命令。擦除EEPROM命令与IAP_DATA寄存器无关。(2)IAP地址寄存器:IAP_ADDRE、IAP_ADDRH、IAP_ADDRL。EEPROM地址有24位,IAP_ADDRE存放其高8位,IAP_ADDRH存放其中间8位,IAP_ADDRL存放其低8位。2.EEPROM的操作1.3.3EEPROM(3)IAP命令寄存器:IAP_CMD。CMD[2:0]用于发送EEPROM操作命令。000:空操作。001:读EEPROM字节命令。读取目标地址ADDR[23:0]所在的1字节。010:写EEPROM字节命令。写目标地址ADDR[23:0]所在的1字节。011:擦除EEPROM扇区。擦除目标地址ADDR[23:9]所在的1扇区(512B)。(4)IAP控制寄存器:IAP_CONTR。2.EEPROM的操作1.3.3EEPROMIAPEN:EEPROM操作使能控制位。当IAPEN=0时,禁止EEPROM操作:当IAPEN=1时,使能EEPROM操作。SWBS、SWRST:软件复位控制位,其具体用法详见本书软件复位相关内容。CMDFAIL:EEPROM操作失败状态位,需要通过软件清零。当CMD_FAIL=0时,说明EEPROM操作正确;当CMD_FAIL=1时,说明EEPROM操作失败。2.EEPROM的操作1.3.3EEPROM(5)IAP触发寄存器:IAP_TRIG。设置完EEPROM读、写、擦除的命令寄存器、地址寄存器、数据寄存器及控制寄存器后,需要向触发寄存器IAP_TRIG依次写入5AH、A5H(顺序不能交换)两个触发命令来触发相应的读、写、擦除操作。2.EEPROM的操作1.3.3EEPROM(6)IAP等待时间控制寄存器:IAP_TPS。根据不同的工作频率来设置IAP_TPS。以IAP方式访问EEPROM时,不同操作的操作时间是不一样的:读取1个字节需要4个系统时钟周期,写1个字节需要30~40us,擦除1个扇区(512B)需要4~6ms。EEPROM操作所需的时间是硬件自动控制的,用户只需要正确设置IAP_TPS寄存器即可。IAP_TPS=系统工作频率/1000000(小数部分四舍五入进行取整)。例如系统工作频率为12MHz,则IAP_TPS设置为12;系统工作频率为22.1184MHz,则IAP_TPS设置为22;系统工作频率为5.5296MHz,则IAP_TPS设置为6。2.EEPROM的操作第2章项目开发准备2.1KeilC251集成开发环境单片机开发环境的重要性开发环境的作用单片机应用程序的编辑、编译一般都采用Keil集成开发环境实现,程序的调试通常采用硬件在线仿真调试。Keil能够实现汇编语言源程序和C语言源程序的输入、编辑与编译,生成机器代码文件,还能够实现模拟调试及与目标电路板的在线调试。国外开发工具的现状目前,针对不同的单片机主要的开发环境有Keil、IAR、CCS等,无一例外都是国外厂家的软件。在全球科技竞争日益激烈的背景下,西方国家针对中国企业在工具软件方面进行制裁,而工具软件安全性和可控性直接关系到国家的安全和战略利益。国内发展建议在特定的时代背景下,为了避免受制于人,国内厂商应加大在工具软件领域的研发投入,加强自主研发能力,形成自主可控的技术体系。作为用户,也要大力支持国产工具软件的发展。2.1.1KeilC251集成开发环境登录Keil官网https://wwwkeilcom/,点击“Download”进入下载页面2.1.2软件安装双击安装程序,在弹出“LicenseAgreement”界面中勾选“Iagree……”,单击“Next”在弹出的“WelcometoKeiluVision”界面中单击“Next”按钮进入下一步。选择安装路径,默认的安装路径是C:\Keil_v5,填写个人信息,单击“Finish”完成安装。(不要有中文路径)2.1.3添加型号和头文件到KeilC251中(1)打开AiCube-ISP在线编程软件(可从STC官方网站下载),然后在软件右边功能区的“Keil仿真设置”界面中单击“添加型号和头文件到Keil中添加STC仿真器驱动到Keil中”按钮2.1.4应用KeilC251进行程序的输入、编辑与编译并生成机器代码1.新建项目文件夹在项目目标处新建一个当前项目的文件夹,用于存放当前项目的相关文件如D:/STC32G工程目录/DEMO。2.新建项目(1)打开KEILC251软件,单击项目菜单中的“Project”-“NewuVisionProject”,在弹出的界面中选择上面的工程目录,输入新建项目名称“DEMO”,点击保存2.1.4应用KeilC251进行程序的输入、编辑与编译并生成机器代码2.新建项目(2)选择目标芯片。见图2-11所示,在弹出的界面中单击下拉按钮,选择“STCMCUDatabase”,在STC库中选择“STC32G12K128Series”芯片,然后单击“OK”按钮,完成“DEMO”项目的创建。2.1.4应用KeilC251进行程序的输入、编辑与编译并生成机器代码3.新建文件(1)单击“File”菜单中的“New”项,弹出新建文件(Text1)界面,单击保存按钮。(2)输入源程序文件名与文件类型。在文件保存界面中,输入文件名与文件类型,即demo.c,单击“保存”按钮,完成“demo.c”的创建。2.1.4应用KeilC251进行程序的输入、编辑与编译并生成机器代码4.将源文件添加到当前项目中鼠标右键单击“SourceGroup1”并选择“AddExistingFilestoGroup'SourceGroup1'...",见图2-14所示;在弹出的界面中选择“demo”(即demo.c),单击“Add”按钮,关闭添加文件界面。可以在左边“SourceGroup1”下看到已经添加的文件。2.1.4应用KeilC251进行程序的输入、编辑与编译并生成机器代码5.设置输出“Hex”文件单击工具栏中的按钮、按下快捷键“Alt+F7”或者选择菜单“Project”中的“OptionforTarget‘Target1’”,可以打开编译环境设置界面。在“Output”标签页中勾选“CreatHexfile”项,HEXFormat:HEX-80,按“OK”保存,即可在项目编译完成后自动生成HEX格式的目标文件。2.2STC32G12K128单片机硬件实验平台2.2.1STC大学推广计划实验箱(9.6)1.STC32G12K128单片机最小系统实验箱硬件框图2.2.1STC大学推广计划实验箱(9.6)2.电源控制与指示模块2.2.1STC大学推广计划实验箱(9.6)3.程序下载通信模块2.2.1STC大学推广计划实验箱(9.6)4.独立键盘模块2.2.1STC大学推广计划实验箱(9.6)5.LED灯显示模块2.2.1STC大学推广计划实验箱(9.6)6.LED数码管显示模块2.2.1STC大学推广计划实验箱(9.6)7.LED数码管位驱动模块2.2.1STC大学推广计划实验箱(9.6)8.矩阵键盘模块2.2.1STC大学推广计划实验箱(9.6)9.基准电压模块2.2.1STC大学推广计划实验箱(9.6)10.NTC测温模块2.2.1STC大学推广计划实验箱(9.6)11.串行端口2的RS232通信电路及通信指示电路2.2.1STC大学推广计划实验箱(9.6)12.串行端口2与串行端口3的TTL电平通信电路2.2.1STC大学推广计划实验箱(9.6)13.红外遥控发射与接收模块2.2.1STC大学推广计划实验箱(9.6)14.SPI接口电路2.2.1STC大学推广计划实验箱(9.6)15.AD转换(ADC)键盘电路2.2.1STC大学推广计划实验箱(9.6)16.比较器正极输入电路2.2.1STC大学推广计划实验箱(9.6)17.蜂鸣器电路2.2.1STC大学推广计划实验箱(9.6)18.DS18B20模块2.2.1STC大学推广计划实验箱(9.6)19.LCD12864模块2.2.1STC大学推广计划实验箱(9.6)20.TFT彩屏的引脚插座2.2.1STC大学推广计划实验箱(9.6)21.并行扩展32KBRAM电路2.2.1STC大学推广计划实验箱(9.6)22.I2C电路-24C022.2.2STC32G12K128单片机迷你核心学习板

STC32G12K128单片机迷你核心学习板基于STC32G12K128单片机开发,每个I/O端口都接有LED灯指示电路,下载程序直接采用USB端口通信,该学习板有2个版本:一是STC32G12K128转STC89C52双列直插引出(“降龙棍”核心板),二是STC32G12K128直接以64引脚引出(“屠龙刀”核心板)。

“降龙棍”核心板采用LOFP48封装芯片,对标STC89C52芯片双列直插引出40个引脚,包括电源通断控制电路、复位按钮、P3.2按钮、P3.3按钮、电源端口以及TypeC端口等。“屠龙刀”核心板采用LQFP64封装芯片,内置电源通断控制电路、3.3V电源、复位按钮、P3.2按钮、P3.3按钮、P3.4按钮、P3.5按钮、测温电路、PWM输出滤波电路(3路)、CAN总线收发器、LIN总线收发器、STC-USBLink1端口、基准电源及TypeC端口等。2.3在线编程与在线仿真2.3.1在线可编程(ISP)电路

STC32G12K128单片机采用最新的在线编程技术,可直接利用PC与STC32G12K128单片机的USB端口进行通信,实验箱默认采用此方式进行通信,但采用该通信方式时,暂不支持在线仿真。2.3.2应用程序的下载与运行使用USB线将STC实验箱9.6的J4端与电脑正确连接,打开STC的ISP下载软件“AiCube-ISP-v6.95Y或以上版本。单片机型号选择“STC32G12K128”。此时“扫描串口”处显示为空白或“COM”。2.3.2应用程序的下载与运行进入USB下载模式需要先按住实验箱上的P3.2/INT0按键/接地,然后按一下SW19(ON/OFF)电源按键/断电,接着松开ON/OFF电源按键/上电,最后可松开P3.2/INT0按键。可识别出“STCUSBWriter(HID1)”设备。2.3.2应用程序的下载与运行点击AiCube-ISP界面中的“打开程序文件”按钮,在出现的打开程序代码文件的对话框中选择需要下载的HEX文件,点击“打开”按钮,点击“下载/编程”,将程序下载到单片机中。即可在开发板上观察到LED4点亮的状态。2.3.3AiCube-ISP的其他功能(1)KeilC251集成开发环境的设置:一是添加STC系列单片机机型、STC系列单片机头文件,以及STC仿真器;二是生成仿真芯片。(2)串行端口助手:AiCube-ISP可作为计算机RS232串行端口的控制终端,控制计算机RS232串行端口发送与接收数据。(3)HID助手:AiCube-ISP可作为PC的USB控制终端,控制USB端口发送与接收数据,而且AiCube-ISP还内嵌了用于USB端口通信的8位LED数码管显示器。(4)波特率计算器:AiCube-ISP可用于自动生成STC各系列、型号单片机串行端口应用编程时所需波特率的设置。(5)软件延时计算器:AiCube-ISP可用于自动生成软件延时程序。(6)定时器计算器:AiCube-ISP可用于自动生成定时器初始化设置程序。(7)指令表:AiCube-ISP可提供STC单片机的指令系统,包括汇编符号、机器代码、运行时间等。(8)示例程序:AiCube-ISP含有STC各系列、型号单片机的应用示例程序。(9)STC硬件数学库:AiCube-ISP含有用于STC各系列、型号单片机的16位、32位乘除法运算及浮点运算的数学函数。(10)封装引脚:AiCube-ISP含有STC各系列、型号单片机的引脚图。2.4工程训练2.4.1STC32G12K128单片机的在线编程与在线调试1.任务要求与控制方法任务要求:使用P3.3引脚的按键SW18控制P6口所接的LED灯组,当按键松开时,LED灯组闪烁;按键按下时,LED灯自右向左循环点亮。2.任务实施工程项目建立步骤及设置参考2.1小节,项目名称为“LED.uvprojx”,源文件为“LED.c”,代码如下。#include"STC32G.h"#include"intrins.h"typedef unsignedchar u8;typedef unsignedint u16;typedef unsignedlong u32;#defineMAIN_Fosc24000000UL //定义主时钟频率voiddelay_ms(u8ms);//本地函数声明voidmain(void){u8temp=0xfe;

u8i;

WTST=0;//设置程序指令延时参数,为0可将CPU执行指令的速度设为最快EAXFR=1;//扩展寄存器(XFR)访问使能CKCON=0;//提高访问XRAM速度P0M1=0x00;P0M0=0x00;//设置为准双向口P1M1=0x00;P1M0=0x00;//设置为准双向口P2M1=0x00;P2M0=0x00;//设置为准双向口P3M1=0x00;P3M0=0x00;//设置为准双向口P4M1=0x00;P4M0=0x00;//设置为准双向口P5M1=0x00;P5M0=0x00;//设置为准双向口P6M1=0x00;P6M0=0x00;//设置为准双向口P7M1=0x00;P7M0=0x00;//设置为准双向口P40=0;

//开启LED灯组电源2.4.1STC32G12K128单片机的在线编程与在线调试while(1){P6=0x00; //输出低电平点亮LED

delay_ms(250);

P6=0xff;

delay_ms(250); if(P33==0) //按键按下{ for(i=0;i<8;i++) {

P6=temp; temp=_crol_(temp,1); delay_ms(250); }}}}voiddelay_ms(u8ms){u16i;do{i=MAIN_Fosc/6000;while(--i);}while(--ms);}2.4.1STC32G12K128单片机的在线编程与在线调试用双公头USB线连接PC与实验箱,打开AiCube-ISP软件。(1)选择目标单片机的型号。(2)按住SW18(P3.3)按键,按一下SW19(电源开关)键,松开SW19,观察到扫描串行端口窗口出现“STCUSBWriter(HID1)”信息时,松开SW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论