单片机实用技术.docx
- 文档编号:8911254
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:24
- 大小:257.38KB
单片机实用技术.docx
《单片机实用技术.docx》由会员分享,可在线阅读,更多相关《单片机实用技术.docx(24页珍藏版)》请在冰豆网上搜索。
单片机实用技术
单片机实用技术
作者:
shenxq301
1首先介绍经济使用的单片机AVR
使用学习板快速入门,尤其实用于在校学生和刚刚工作的工程技术人员。
AVRmega16学习板
单价:
240元
该学习板可以从正规途径买到正版,当然也可从旧货市场购买。
1.1AVR器件的基本知识
下面分别对单片机芯片中所集成的各个组成部分予以简要介绍。
1.MCU单元
MCU单元部分包括了CPU、时钟系统、复位、总线控制逻辑等电路。
CPU是按照面向测控对象、嵌入式应用的要求设计的,其功能有进行算术、逻辑、比较等运算和操作,并将结果和状态信息与存储器以及状态寄存器进行交换(读/写)。
时钟和复位电路实现上电复位、信号控制复位,产生片内各种时钟及功耗管理等。
总线控制电路则产生各类控制逻辑信号,满足MCU对内部和外部总线的控制。
其中,内部总线用以实现片内各单元电路的协调操作和数据传输,而外部总线控制用于单片机外围扩展的操作管理。
2.片内存储器
单片机的存储器一般分成程序存储器和数据存储器,它们往往构成相互独立的两个存储空间,分别寻址,互不干扰。
在这一点上,与通用计算机系统的结构是不同的。
通用计算机系统通常采用“Von-Neumann”结构,在这种结构体系中采用了单一的数据总线用于指令和数据的存取,因此数据和指令是存放在同一个存储空间中的,CPU使用同一条数据总线与数据和程序进行交换。
而单片机的内部结构通常使用“Harvard”体系结构,在这种体系中采用分开的指令和数据总线,以及分开的指令和数据地址空间。
单片机采用Harvard双(多)总线结构的优点是,指令和数据空间完全分开,分别通过专用的总线同CPU交换,可以实现对程序和数据的同时访问,提高了CPU的执行速度和数据的吞吐率。
早期的单片机,如典型的8031单片机,在片内只集成少量的数据存储器RAM(128/256字节),没有程序存储器。
因此程序存储器和大容量的数据存储器需要进行片外的扩展,增加外围的存储芯片和电路,这给构成嵌入式系统带来了麻烦。
后期的单片机则在片内集成了相当数量的程序存储器,如与8031兼容的AT89S51、AT89S52在片内集成了4K/8K的Flash程序存储器。
而现在新型的单片机,则在片内集成了更多数量和更多类型的存储器。
如AVR系列的Atmega16在片内就集成了16K字节的Flash程序存储器,1K字节的RAM数据存储器,以及512字节的EEPROM数据存储器,这就大大方便了应用。
3.程序存储器
程序存储器用于存放嵌入式系统的应用程序。
由于单片机嵌入式系统的应用程序在开发调试完成后不需要经常改变,因此单片机的程序存储器多采用只读型ROM存储器,用于永久性的存储系统的应用程序。
为适应不同产品、用户和不同场合的需要,单片机的程序存储器有以下几种不同形式:
①ROMLess型。
该种形式的单片机片内没有集成程序存储器,使用时必须在单片机外部扩展一定容量的EPROM器件。
因此,使用这种类型的单片机就必须使用并行扩展总线,增加芯片,增加了硬件设计的工作量。
②EPROM型。
单片机片内集成了一定数量的EPROM存储器用于存放系统的应用程序。
这类单片机芯片的上部开有透明窗口,可通过约15分钟的紫外线照射来擦除存储器中的程序,再使用专用的写入装置写入程序代码和数据,写入次数一般为几十次。
③MaskROM型。
使用种类型的单片机时,用户要将调试好的应用程序代码交给单片机的生产厂家,生产商在单片机芯片制造过程的掩膜工艺阶段将程序代码掩膜到程序存储器中。
这种单片机便成为永久性专用的芯片,系统程序无法改动,适合于大批量产品的生产。
④OTPROM型。
这种类型的单片机与MaskROM型的单片机有相似的特点。
生产商提供新的单片机芯片中的程序存储器可由用户使用专用的写入装置一次性编程写入程序代码,写入后也无法改动了。
这种类型的单片机也是适用于大批量产品的生产。
华东师范大学电子科学技术系马潮2005.3.16
⑤FlashROM型。
这是一种可供用户多次擦除和写入程序代码的单片机。
它的程序存储器采用快闪存储器(FlashMemory),现在可实现大于1万次的写入操作。
内部集成FlashROM型单片机的出现,以及随者Flash存储器价格的下降,使得使用FlashROM的单片机正在逐步淘汰使用其它类型程序存储器的单片机。
由于FlashROM可多次擦除(电擦除)和写入的特性,加上新型的单片机又采用了在线下载ISP技术(InSystemProgram--既无需将芯片从系统板上取下,直接在线将新的程序代码写入单片机的程序存储器中。
),不仅为用户在嵌入式系统的设计、开发和调试带来了极大的方便,而且也适用于大批量产品的生产,并为产品的更新换代提供了更广阔的空间。
4.数据存储器
单片机在片内集成的数据存储器一般有两类:
随机存储器RAM和电可擦除存储器EEPROM。
①随机存储器RAM。
在单片机中,随机存储器RAM是用来存储系统程序在运行期间的工作变量和临时数据的。
一般在单片机内部集成一定容量(32字节至512字节或更多)的RAM。
这些小容量的数据存储器以高速RAM的形式集成在单片机芯片内部,作为临时的工作存储器使用,可以提高单片机的运行速度。
在单片机中,常把内部寄存器(如工作寄存器、I/O寄存器等)在逻辑上也划分在RAM空间中,这样即可以使用专用的寄存器指令对寄存器进行操作,也可将寄存器当做RAM使用,为程序设计提供了方便和灵活性。
对一些需要使用大容量数据存储器的系统,就需要在外部扩展数据存储器。
这时,单片机就必须具备并行扩展总线的功能,同时外围也要增加RAM芯片和相应的地址锁存、地址译码等电路。
这不仅增加了硬件设计的工作量,产品的成本,同时降低了系统的可靠性。
②电可擦除存储器EEPROM。
一些新型的单片机,在芯片中还集成了电可擦除存储器型EEPROM的数据存储器。
这类数据存储器用于存放一些永久或比较固定的系统参数,如放大倍率、电话号码、时间常数等。
EEPROM的寿命大于10万次,具有掉电后不丢失数据的特点,并且通过系统程序可以随时修改,这些特性都给用户设计开发产品带来极大的方便和想象空间。
5.输入/输出(I/O)端口
为了满足嵌入式系统“面向控制”的实际应用需要,单片机提供了数量众多、功能强、使用灵活的输入/输出端口,简称I/O。
端口的类型可分为以下几种类型:
①并行总线输入/输出端口(并型I/O口)。
用于外部扩展存储器或扩充I/O等使用,包括数据总线、地址总线和读写控制信号等。
②通用数字I/O端口。
用于外部电路逻辑信号的输入和输出控制。
③片内功能单元的输入/输出端口。
如:
定时器/计数器的计数脉冲输入,外部中断源信号的输入等。
④串行I/O通信口。
用于系统之间或与采用专用串行协议的外围芯片之间的连接和交换数据。
如:
UART串行接口(RS-232),I2C串行接口,SPI串行接口,USB串行口等。
⑤其它专用接口。
一些新型的单片机还在片内集成了某些专用功能的模拟或数字的I/O端口,如A/D输入、D/A输出接口,模拟比较输入端口,脉宽调制(PWD)输出端口等。
更有的单片机还将LCD液晶显示器的接口也集成到单片机芯片中了。
为了减少芯片引脚的数量,又能提供更多性能的I/O端口给用户使用,大多数的单片机都采用了I/O端口的复用技术,既某一端口,它即可作为一般通用的数字I/O端口使用,也可作为某个特殊功能的端口使用,用户可根据系统的实际需要来定义使用。
这样就为设计开发提供了方便,大大拓宽了单片机的应用范围。
6.操作管理寄存器。
华东师范大学电子科学技术系马潮2005.3.16
操作管理寄存器也是单片机芯片中的重要组成部分之一。
它的功能是管理、协调、控制和操作单片机芯片中的各功能单元的使用和运行。
这类寄存器的种类有:
状态寄存器、控制寄存器、方式寄存器、数据寄存器等等。
各种寄存器的定义、功能、状态、相互之间的关系和应用相对比较复杂,而且往往同相应的功能单元的使用紧密相关,因此,用户应非常熟悉各个寄存器的作用以及如何与不同的功能单元的配合使用,这样才能通过程序指令对其编程操作,以实现对单片机芯片中各种功能的正确使用,充分发挥单片机的所有特点和性能,设计和开发出高性能、低成本的电子产品。
可以这样讲,当你对某个单片机芯片中各个操作管理寄存器的作用、功能、定义非常透彻的掌握了,那么你已经完全精通和能够熟练使用该单片机了。
AVR系列产品是采用新架构生产的芯片,整个系列都具有良好的相似性,芯片结构也非常容易理解和掌握。
好了,
现在我们就来开始看看AVR器件的基本知识吧。
首先,AVR系列产品可以分为3大种类:
tinyAVR(简化版芯片)
AVR(常用芯片)
megaAVR(增强型)
这3类器件的区分是很明显的,譬如tiny芯片在管脚和功能上有所裁减。
但是3类器件都采用同样的结构和存储器管理
方式,如果将外围管脚以及一些特殊的模块除去,每一个AVR芯片都具有相同的内核,这样的性能保证升级芯片时
非常的便利。
有些适用于特殊领域的AVR器件带有SRAM、EEPROM、扩展SRAM接口、ADC、UART等等模块。
选择合适的AVR芯片
从上面的介绍来看3类AVR芯片是有差别的,我们可以从芯片的性能上去区分:
高性能的——mega
AVR,简化版本的——tinyAVR,在两者之间的——标准AVR。
1.2互联网上下载AVRSTUDIO4
首先,请放松,我们首先要做的只是下载AVR开发软件和相关的资料。
下载前确保这些软件有效,下载的时间
取决于你连接互联网的速度。
下载以下文件到你的计算机中(如C:
\Temp)
AVRSTUDIO4
(~15MB)
ThisfilecontainstheAVRStudio4Program.This
programisacompletedevelopmentsuite,andcontains
aneditorandasimulatorthatwewillusetowriteour
code,andthenseehowitwillrunonanAVRdevice.
AssemblySampleCode
(~1kB)
ThisfilecontainstheAssemblySamplecodeyouwill
needtocompletethisguide.
AT90S8515Datasheet
(~4MB)
ThisistheDatasheetfortheAT90S8515AVR
Microcontroller.Thisisaconvenient"GettingStarted"
device.Fornowyoudon'thavetoworryaboutthe
differenttypesofAVRmicros.You'llseethattheyare
verymuchalike,andifyoulearnhowtouseone(eg.
8515),youwillbeabletouseanyotherAVRwithout
anyproblems.
InstructionSet
Manual
(~2MB)
ThisistheInstructionSetManual.Thisdocumentis
veryusefulifyouwantdetailedinformationabouta
specificinstruction.
AVRSTUDIO4:
这个文件是一个完整的开发工具,包括编辑、仿真功能,利用这个工具,我们可以编辑源
代码,并在AVR器件上运行。
这个文件大概15MB。
代码实例:
这是一个用于演示完整代码,大概1KB。
AT90S8515数据手册:
这是AT90S8515芯片的完整资料。
AT90S8515芯片是一款非常容易上手的AVR芯片
。
现在你不用担心AVR其他型号的产品,以后你会发现AVR系列产品有非常大的相似性,你掌握了一款芯片
(比如说8515),学会其他芯片也非常容易。
这个文件大概4MB。
指令说明:
如果你要详细的了解各种指令的话,这个文件非常有用。
这个文件大概2MB。
如果以上的文件你都下载了,下面的工作就是安装软件了。
安装AVRStudio4
AVRStudio现在也提供版本3,不过版本4将逐步替代版本3。
使用WindowsNT/2000/XP的用户请注意,安装AVRStudio软件时,必须使用管理员(Administrator)权限登陆,这
是Windows系统限定只有管理员才可以安装新器件。
安装过程:
1.双击AVRSTUDIO.EXE文件。
这是一个自解压文件,双击后系统询问将文件解压到哪个目录底下,一般情况
下是放在系统默认临时目录下,这个目录是隐藏在你的硬盘中的。
为了记忆方便,一般输入指定的目录,如
C:
\temp。
2.当所有文件解压缩完成以后,打开temp目录,双击SETUP.EXE文件。
好了,开始安装了,推荐适用默认的安装路径,当然,用户也可以设定自己的安装路径,但是在指南中,我们使用默认路径。
好了,开发工具安装好了,就这么简单。
现在你可以开始编写代码,在AVR器件上运行了。
注意,将芯片资
料和指令说明放在旁边,这些资料以后经常用到。
1.3开始学习编写AVR代码
学习新的知识是非常有意思的,当然,也可能遇到一些小小的麻烦。
对于学习AVR编程,一个可行的办法是读完全
部的资料,但是这个方法在时间和对芯片的理解上可能有不小的问题。
在这里,我们通过一个简单的方法,包括:
找一些事先写好、可以工作的代码
理解这些代码是如何工作的
按照自己的需要修改代码
在这次学习中,我们采用AT90S8515芯片,现在开始花点时间把芯片的说明书看一下。
学会看AVR的芯片说明书
看AVR的芯片说明书可能是一件非常恐怖的事情,因为AVR的芯片说明书有时长达350页。
将这样的说明书从头到尾
读完并且记忆下来是十分长并痛苦的。
现在你不需要这样做,芯片说明书详细记录了芯片的技术资料,你只是在需要
了解某个方面的时候才需要翻阅相关的内容。
打开AVR芯片的说明书,你会发现说明书大体上分成以下几个部分
第一页讲述关键信息和列表
总体介绍芯片架构
外围设备介绍
存储器编程
芯片性能
寄存器介绍
命令总结
封装信息
这样排列有非常大的便利,当你熟悉适用AT90S8515芯片说明书以后,再看其他AVR产品的说明书也会觉得非常容
易。
在这次整个学习过程中,你需要参看AT90S8515芯片数据手册中有关架构介绍部分的内容(在说明书的开始)
,这段内容包含了非常重要的信息,包括AVR芯片的存储器、地址以及其他信息。
另外一个非常重要的部分是命令总结。
如果你要自己编写AVR代码的话,这部分的内容至关重要。
如果你想深入了
解命令的话,那就参看芯片数据手册前面的内容。
1.4利用AVRSTUDIO4进行开发
好了,现在你已经安装了开发软件,也知道了AVR的基本知识,也拥有了芯片数据手册,下面,我们就开始进行AV
R芯片的开发吧。
AVRStudio4的界面
提示:
如果你还没有安装AVRStudio4开发软件,你可以参考前面的章节来安装软件。
创建一个新的项目
启动AVRStudio4的方式如下:
点击开始-〉程序-
〉ATMELAVR工具。
AVRStudio启动后,你将看到一个对话框。
我们需要创建一个新的项目,点击“CreateNew
Project”按钮。
配置项目参数
这个步骤包括选择我们要创建什么类型的项目,设定名称以及存放的路径。
这个过程包括五个步骤:
(1)在对话框左边选中Assemblyprogram,表明你要创建一个项目。
(2)输入项目的名称。
项目的名称可以随意定义,在例子中我们用了“Leds”。
(3)我们需要AVRStudio自动产生一个汇编文件,在例子中,我们用了“Leds”。
2PIC单片机
2.1如何学习PIC单片机
⏹在产品的设计中,对于PIC单片机的选型采用的是“因地制宜”的策略——根据需要合理选择各种系列产品,这样可以做到产品的最佳“性价比”。
这也是PIC单片机的一种“优势”。
如洗衣机、电冰箱或电梯控制系统等会采用从低到高不同的PIC系列产品。
⏹由于PIC单片机各个档次之间存在于指令不完全兼容的特点,那么如何选择、从那个系列入手学习呢?
1.16FXXX:
具有丰富的内部模块、完整的指令系统和良好的向下兼容性。
适合初学入门的系列;
2.18FXXX:
高效的16位指令系统、大容量的ROM和RAM结构使其更适合C语言编程。
更为丰富的内部某块和8位的硬件乘法器使其具备DSP的性能。
学习的高级阶段。
2.2PIC微控制器的历史和特征
⏹1989年Microchip公司开发了一种8位的微控制器:
PIC(PeripheralInterfaceControler
———外围接口控制器);
⏹将少量的RAM、ROM、一个定时器和一些I/O端口全部集成在一个8脚的芯片上;
⏹在不到10年的时间内,Microchip公司已经把这个如此简陋的产品发展成主流的8位微控制器这是一个奇迹;
PIC微控制器的产品系列
10XXX
12XXX
14XXX
16XXX:
应用最广泛的8位机产品,14位指令宽度
18XXX:
8位机中的高档产品,16位指令宽度。
它们全部都是8位机系列(内部的数据总线为8位),8位机的特点:
CPU每次处理数据的能力为8位,如果超过8位就必须事先将其截为8位后再分别处理。
PIC18系列单片机的特性
与其它PIC系列单片机一样,采用精简指令集RISC、流水作业、丰富的内部模块、低功耗大电流驱动等。
为了更适合单片机的C语言开发,18系列设计成较大的信息存储空间。
如:
2M的程序存储器空间;
4K的数据存储空间;
这种设计极大的方便了C语言的设计与编程。
(一)高性能RISCCPU
⏹C编译器优化体系结构/指令设置;
⏹兼容PIC16和PIC17指令源代码;
⏹高达2MB的程序存储器;
⏹高达4KB的数据存储器;
(二)优越的外围功能模块特征
⏹最大拉/灌电流可达25mA;
⏹3个外部中断引脚;
⏹4个定时器TMR0、TMR1、TMR2、TMR3;
⏹捕捉/比较/脉宽调制(CCP)模块/增强型CCP模块;
⏹两种工作方式的主同步串行通讯(MSSP):
⏹①SPI主控方式(支持所有4种SPI工作模式);
⏹②I2C主控/从动方式;
⏹可寻址的USART模块:
支持RS-485和RS-232串口,并行从动口模式,支持中断支持位。
(三)高级模/数转换特性
⏹10位、8通道的模/数(A/D)转换模块:
⏹可利用休眠状态进行转换,以减少系统干扰、提高精度;
⏹模拟比较模块:
可编程多路输入/输出技术;
⏹比较器参考电压模块;
⏹可编程的低电压探测模块(PLVD):
支持低电压检测时产生中断;
⏹可编程的锁定复位(BOR);
(四)特殊的单片机特性
⏹增强功能的FLASH可经受100,000次擦/写操作;
⏹EEPROM可经受1,000,000次擦/写操作;
⏹FLASH/数据EEPROM数据保存期可超过40年;
⏹软件控制自动可改编程序(在线升级);
⏹上电复位电路(POR)、上电延迟定时器(PWRT)和振荡器起振定时器(OST);
⏹片内RC振荡的看门狗定时器(WDT)保证可靠运行;
⏹低功耗睡眠模式(Sleep);
⏹可选择不同的振荡器工作方式:
①4锁相环(主振荡器);
②2路振荡器(32KHz)时钟输入;
⏹通过两个引脚可进行在线串行编程(ICSP);
⏹通过2个脚在线调试器。
(五)CMOS芯片工艺性能
⏹低电压,高速度FLASH/EEPROM技术;
⏹全静态设计;
⏹宽范围的工作电压:
2.0-5.5V;
⏹工业级和扩展级温度范围;
⏹低功耗:
—在5V、4MHz下典型值1.6mA;
—在3V、32KHz下典型值25uA;
—待机电流典型值0.2uA。
2.3PIC微控制器的产品局限性
⏹由于历史原因:
PIC单片机的产品是逐渐从低向高发展。
其中最明显的特征是:
随着产品性能的提高其内部的硬件结构也在变化。
如程序存储器ROM的宽度会随着产品性能的升级而加宽,且指令系统也在扩充。
1.12XXX的指令宽度为12位,指令系统为33条;
2.16XXX系列的指令宽度为14位,指令系统为35条;
3.18XXX系列的指令宽度为16为,指令系统为58条。
⏹这种特点决定了不同系列的产品其指令系统没有很好的兼容性。
2.4PIC微控制器的程序ROM
⏹与其他厂家的微控制器一样,用于存储程序代码或常数的程序ROM其结构、特点决定了其实用的环境和应用的价值。
1.其大小决定了系统程序的容量。
在广泛使用C语言编程的今天,采用大容量结构设计显得尤为重要;
1.ROM的制造工艺决定了微控制器的使用特点和制造成本,这也与半导体工艺的发展水平相关;
(一)UV—EPROM的PIC微控制器
⏹早期微控制器ROM的工艺结构。
需配合“紫外线擦除器”和“程序烧写器”完成程序的写入;
⏹使用“紫外线擦除器”中的紫外线照射芯片大约20分钟,利用“光—化学”反应将芯片中的旧程序擦除;
⏹再使用“程序烧写器”将新程序烧写到芯片中。
⏹早期产品,用于产品的研制阶段。
这类芯片的最大缺点是擦除时间长,目前已经被淘汰。
⏹芯片本身有一个明显的特征:
在芯片正面的中央有一个大约直径10mm透明窗口,为紫外线照射提供一个入射的光路通道。
(二)带闪存flash的PIC18FXXX
⏹与UV—EPROM相比,flash闪存程序存储器采用“电擦除”技术,具有速度快,擦除次数多的优点。
因此闪存ROM已经取代UV—EPROM,是当前广泛采用的模式;
⏹PIC18FXXX系列微控制器采用闪存ROM结构。
擦除程序不用外加“擦除器”,但烧写程序时需要“程序烧写器”。
⏹在PIC产品中是以F为来表示的,如:
PIC18F458等;
⏹当使用程序烧写器烧写程序时,首先要擦除旧程序然后烧写新程序。
擦除和写入的过程是由编程器自动进行的。
⏹这类芯片适用于产品的研制阶段,需要不断修改、调试程序的场合。
(三)PIC单片机的OPT版本
⏹OPT(onetimeprogrammable)——一次性编程技术。
⏹在PIC产品中是以C为来表示OPT结构的,如:
PIC16C432等;
⏹与闪存flash工艺结构的芯片相比,具有较低的制造成本。
因此,适合当程序调试成功后进行大规模的生产的情况,这样可有效降低生产成本;
⏹OPT芯片只能进行一次编程,一旦程序烧写进去就永远无法修改。
因此此类芯片不适合开发阶段的使用。
(四)PIC单片机的掩模版本
⏹所谓“掩模”技术是指:
将编写好并调试成功的源程序代码直接交给生产微控制器的厂家,由芯片制造厂家在制造芯片的过程中将用户程序一同烧入的模式;
⏹在所有ROM的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 实用技术