PICCXX单片机应用与设计_第1页
PICCXX单片机应用与设计_第2页
PICCXX单片机应用与设计_第3页
PICCXX单片机应用与设计_第4页
PICCXX单片机应用与设计_第5页
已阅读5页,还剩130页未读 继续免费阅读

下载本文档

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

文档简介

前言面向应用的嵌入式系统在我国方兴未艾

微控制器,也就是单片机(MCU),在80年代进入中国。由于微控制

器容易学、容易用,倍受青眯。这种把中央处理器、存储器、外设器

件及I/O做在同一块芯片上的器件总是作为应用系统中的控制部件

使用。现在,做在微控制器芯片上的外设部件越来越多,功能不断增

强。针对具体的应用,利用微控制器可以设计出十分复杂的系统,这

种系统称作嵌入式系统。在杭州召开的’99全国单片微机学术交流

会暨多国单片微机产品展览会上,许多专家呼吁要提高对嵌入式系统

的认识。

目前,在全世界,嵌入式系统带来的工业年产值已超过1万亿美

元。预计在美国,单是使用嵌入式电脑的全数字电视产品每年将产生

1500亿美元的新市场。美国未来学家尼葛洛庞帝曾预言,四、五年

后,嵌入式智能工具将是继PC和因特网后最伟大的发明。就目前国

内微控制器的应用状况,全国微机单片机学会理事长陈章龙教授说,

从整体来讲,在中国,微控制器的应用水平还不高,主要是用8位微

控制器,用量也不大,绝大多数是用于IC卡设备等仪器仪表和控制

领域中。嵌入式系统的核心部件是各种类型的嵌入式处理器,据不完

全统计,全世界嵌入式处理器的品种已经过千,流行的结构有30多

种,其中以我们熟悉的PIC系列结构的产品为最多。据中国单片机公

共实验室高级工程师吕京建介绍,嵌入式处理器分为两大类,一类是

以通用计算机中的CPU为基础的嵌入式微控制器,另一类是微控制

器。与微处理器相比,微控制器具有单片化、体积小、功耗低、可靠

性高、芯片上的个设资源丰富等特点,目前已成为嵌入式系统的主流

器件。嵌入式微处理器的软件是实现嵌入式系统功能的关键,为了提

高执行速度和系统的可靠性,嵌入式系统中的软件一般都固化在存储

器芯片或微控制器中。

嵌入式系统是面向应用的,因此它可以应用在现代化工业的各个

领域,如:航天、航空、军事、家用消费商品、仪器仪表、各种控制

系统及3c系统。尤其在国内主要应用于家电消费类产品、通信和计

算机外设等。

而福州高奇电子科技有限公司正在对MCU的广泛应用起着强大的

推动作用。高奇电子科技有限公司创办于一九九三年十月,是一家专

业的半导体集成电路授权代理商和专业集成电路应用、设计公司。目

前代理、销售多家著名半导体厂商的产品,如单片机、E2PR0M、保安

器件、电压检测器、LCD/VFD驱动器、电话来电识别(CallerID)

以及交换机用的Switch、Codec芯片等等;同时,设有专业的研发部

门,已经研制了一系列电子产品整机方案,这些方案包括完整的软硬

件设计资料及样机,可提供给整机厂商直接采用生产。公司的工程部

门还可以为客户量身定做,增加和删改功能以体现客户的产品特色。

高奇公司坚持“以专业的态度和水准,供优质产品、创名牌服务”的

经营理念,将全部资源专注于半导体IC的应用设计、行业市场的专

用IC(ASIC)设计以及IC市场营销,并将不断开拓出电子产品新领

域,并缩短研发时间,使产品与下面就介绍一种简单的PIC单片机系

列。时代同步。

下面就介绍一种简单的PIC单片机系列。

第一章PIC12c5XX功能原理

PIC12C5XX是美国Microchip公司推出的8位单片机,也是世界上第

一个8脚封装的8位单片机系列。

§1.1功能特点

一、高性能RISC结构CPU

・精简指令集,仅33条单字节指令,易学易用

­除地址分支跳转指令为双周期指令外,其余所有指令皆为

单周期指令

•执行速度:DC〜lus

•二级硬件堆栈

•直接、间接、相对三种寻址方式

二、功能部件特性

•8位定时器/计数器TIMER0,带8位预分频器

•大驱动电流,I/O脚可直接驱动数码管(LED)显示

-每个I/。引脚最大控电流25mA

-每个I/O引脚最大灌电流20mA

・内置上电复位电路(POR)

•复位定时器,保障复位正常

•内部MCLR复位端加上拉电路,无需外接上拉

•内置自振式看门狗,防程序死锁

•程序保密位,可防止程序代码的非法拷贝

•低功耗睡眠功能

・I/O引脚可唤醒睡眠

•内置4MHzRC型振荡源,可省外接振荡

•可选外接振荡

-RC:低成本阻容振荡

-XT:标准晶体/陶瓷振荡

-LP:低速晶体,低功耗振荡

三、CMOS工艺特性

•低功耗

<2mA@5V,4MHz

-15nA@3V,32KHz

-<1uA低功耗睡眠(Sleep)模式下

•全静态设计

•宽工作电压范围:2.5V〜5.5V

•宽工作温度范围:

商用级:0℃〜+70℃

-工业级:一40℃〜+85℃

-汽车级:一40°。〜+125℃

§1.2型号及引脚介绍

PIC12c5XX目前有二种型号,见下表:

定输

I/O封装

型号振荡EPROMRAM时入电压范围

线(DIP/SOIC)

器线

512X25X

12C508DC~4Mhz1152.5V-5.5V8

128

1024X41X

12C509DC~4Mhz1152.5V-5.5V8

128

表1.1PIC12C5XX型号功能表

各型号管脚图如下:

PDIP,SOIC,WindowedCERDIP

图1.112c508/509引脚

下表描述了各引脚的功能。

引脚属缓冲类

引脚名功能

序号性型

双向I/O口线,带可编程弱上拉,

GP07I/OTTL/ST

并具电平变化唤醒睡眠功能

双向I/O口线,带可编程弱上拉,

GP16I/OTTL/ST

并具电平变化唤醒睡眠功能

双向I/O口线,并可设置为计数

GP2/T0CK15I/OST

器TIMER0的外部信号输入端

单向输入口线,也可设置为芯片

复位端。当设为复位端MCLR时,

GP3/MCLR4ITTL低电平有效。

当作为输入口线时,带可编程弱

上拉及电平变化唤醒睡眠功能

双向I/O口线,(使用片内RC振

GP4/0SC23I/OTTL

荡源时,也可作为晶振输出端)

双向I/O口线,(使用片内RC振

GP5/OSC1/CLKIN2I/OTTL/ST荡源时,也可作为晶振输入端或

外部振荡输入端)

VDD1——正电源

VSS8——地

注:ST—斯密特触发器

表1.2PIC12c5XX引脚功能

从上表可看出,PIC12c5XX最多可以有5根I/O口线和1根输入

口线(GP3)o

§1.3PIC12C5XX内部结构

PIC12C5XX的总线结构采用的是数据总线(8位)和指令总线(12

位)独立分开的“哈佛结构”,所以它具有精简指令集(RISC)的特

点,速度快,效率高,并且功耗很低。

PIC12C5XX在一个芯片上集成了8位的算术逻辑运算单元(ALU),

0.5K〜1K的12位程序存储器,25〜41个8位数据寄存器以及8位的

计数器,上电复位电路,复位定时器,看门狗等等。

图1.2PIC12c5XX内部结构

ROM丘PROM-

3GPO

512x12or三

GP1

1024x12蓼

GP2TT0CKI

Program中

GP3^MCLRJVPP

Memory承

1GPWSC2

_GPWSC1/CLK1N

mxa

EfPKDM

l:Hl.

MMnofy

RC12CLSXX

§1.4指令周期和流水作业

PIC12C5XX的指令周期被分频成4个不重叠的节拍Q1〜Q4,程序

计数器PC在Q1节拍增1,而指令是在Q4节拍从程序存储器中取出

并置入指令译码器,并在下一个指令周期被执行,如下图所示:

图1.3指令周期

指令的执行贯穿Q1〜Q4节拍。

如上所述,当CPU在执行一条指令的同时,下一条指令的代码

也同时被取出置入指令译码器,准备在下一指令周期执行,这就是

PIC的流水作业方式,也是RISC结构单片机的特点,这种特点使单

片机的运行速度可以达到很高。

除了地址分支跳转指令的执行周期是2个指令周期外,其余所有指令

都是单周期指令,见下图:

图1.4流水作业

1.MOVLW03H|Fetch1Execute1

2.MOVWFGPIOFetch2Execute2

3.CALLSUB_1Fetch3Execute3

4.BSFQPIOrBIT1Fetch4Flush

FetchSUB1ExecuteSUB1|

AJIinstructionsaresinglecycle,exceptforanyprogrambrandies.Thesetaketwocyclessincethefetch

instructionis'•flushed"fromthepipelinewhilethenewinstructionisbeingfetchedandthenexecuted.

§1.5程序存储器和堆栈

PIC12C5XX的程序存储器为12位长,其中PIC12C508为512字节,

而PIC12c509为1024字节。复位向量为地址0,因为最后一个字节

(PIC12C508为地址1FFH,PIC12C509为地址3FFH)存放有片内RC

实际振荡的校正系数,其形式为指令MOVLWXX,用户不要使用这个

字节,所以用户的程序应从地址000H开始存放,注意这点和PIC16C5X

有所不同。

Note1:AddressOOOOtibecomesttie

effectiveresetvector.Location

OlFFh(P1C12C5O8,PlC12C50aA,

PIC12CE518)orlocation03FFh

(P»C12C5O9,P1C12C509A.

P1C12CR509A.PIC12CE519)con-

tanstheMOVLMxxINTERNALRC

osallalorcalibfationvalue

图L5程序存储器和堆栈

PIC12c5XX把程序存储器以512字节为单位进行分页管理,这样

PIC12c508有一个页面程序区,而PIC12c509有2个页面程序区,由

状态寄存器STATUS中的PA0位(STATUS<5>)确定程序区的页面。

这是因为PIC是RISC结构,所有指令都是单字节,在PIC12c5XX中,

一条指令中所包含的地址信息只有9位,只能直接寻址一个页面(512

字节);对于12c509,则还要由PAO位来辅助寻址2个页面(1024

字节)的程序空间,即程序当需从一个页面跳转到另一个页面时

(CALL、GOT。指令),应事先根据要跳转去的页面,把PA0位置为

相应的值,请参阅状态寄存器的描述。

PIC12c5XX的堆栈有2层,有自己独立的空间,不占用程序存储器。

注意它只能容纳二层子程序嵌套调用。堆栈的长度是12位,和PC长

度一致,可以存放子程序调用时的PC值。

对堆栈的压入操作由子程序调用指令CALL完成,出栈操作则由子程

序返回指令RETLW完成,请参阅第二章中这二条指令的详介。

§1.6数据存储器

PIC12C5XX的数据存储器(RAM)由一些寄存器组成,分为特殊寄存

器和通用寄存器二种。在PIC单片机中,对任何部件的操作都表现为

对某一寄存器的操作,所以编程非常简单明了。

地址:地址:FSR<6:5>=00FSR<6:5>=01

7070

OOhINDF*OOhINDF*20h

OlhTMROOlhTMRO

02hPCL02hPCL映

03hSTATUS03hSTATUS

04hFSR04hFSR

05hOSCCAL05hOSCCAL

06hGPIO06hGPIOBankO

07h07h

通用寄存器

■OFh2Fh

通用寄存器

■lOh通用寄存器通用寄存器30h

IFhIFhCBankO)(Bankl)

a.12C508b.12C509

*:非实际存在的寄存器,参见§1.6.1中详介。

图L6寄存器结构

从上图可看到,OOh〜06h为特殊寄存器,其余为通用寄存器。

PIC12C508有25个通用寄存器,而PIC12c509则有41个通用寄存器,

其中25个在Bank。,另16个在Bankl,关于寄存器的Bank方式,请

参阅§1.6.1的FSR寄存器描述。

§1.6.1特殊寄存器

一、INDF(地址:OOh)——间址寄存器

INDF是一个物理上不存在的寄存器,只是一个逻辑寄存器,用来进

行间接寻址,实际的寻址地址为FSR<4:0》的值。

例:MOVLW10h

MOVWFFSR;实际地址10h(F10

寄存器)--*FSR

MOVLW55h

MOVWFINDF;数据55h-*F10

INCFFSR;FSR增1(FSR=llh)

MOVWFINDF;数据55h-Fil

参阅后面FSR寄存器的描述。

二、TMRO(地址:Olh)——定时器/计数器寄存器

二、TMRO(地址:Olh)——定时器/计数器寄存器

TMR0对应于TIMER0,它是一个8位的定时器/计数器(在PIC16c5X

中称其为RTCC),请参阅§1.8详介。

三、PCL(地址:02h)——程序计数器PC〈7:0>

PIC12c5XX程序计数器PC最多可寻址1K(1024)程序区:

型号PC长度寻址空间PC复位值

PIC12C5089512IFFh

PIC12C5091010243FFh

单片机一复位,PC值被置为全“1”指向程序区的最后一个字节。前

面我们提过,这个地址存放的是芯片出厂时已放入的MOVLWXX指令

(其中XX是片内振荡校正系数),所以单片机复位后会执行这条指

令,然后PC马上翻转到000h,开始执行用户的程序代码。注意,页

面选择位PA0复位时也被清零,所以这时页面处于0页,请参阅有

关状态寄存器STATUS的描述。

对于“GOTO”指令,它的指令码中含有跳转地址的低9位,即PC〈8:0〉,

对于PIC12c509来说,状态寄存器的第5位(STATUS<5>)还会被置

入PC〈9》,以选择程序页面,从而寻址1K的程序空间。

GOTOInstruction

11109870

-IIIII却"l

T1

|instruetexiWord|

PAO

70

□IIIIm

S1AJUS

图1.7GOTO指令寻址方式

对于“CALL”指令或其他涉及会修改PCL的指令,它们的指令码中仅

包含目的地址的低8位,即PC〈7:0〉,而PC〈8>总是会被硬件自动清

零,状态寄存器第5位(STATUS〈5>)也会被置入PC〈9>以选择程序

页面(对于PIC12c509而言)。见下图:

图1.8CALL指令或修改PCL的指令寻址方式

从上图可看出,由于执行这些指令硬件总会清PC<8>=0,所以它们的

起始地址都必须限于放在每个程序页面的上半区,即头上的256个字

节空间内(Oh〜FFh或200h〜2FFh)。

四、STATUS(地址:03h)状态寄存器

STATUS寄存器包含了ALU的算术状态、芯片复位状态、程序页面位

等信息。STATUS可以被读/写,但是其中的复位状态位TO、PD不能

由软件设置,它们的状态如何决定§1.12.7会有详细描述。

图L9状态寄存器

在加法运算时,c是进位位;在减法运算时,C是借位的反。

例a:

CLRFF10;F10=0

MOVLW1;W=1

SUBWFF10;F10-W=-l(FFH),

C=0(运算结果为负)

例b:

MOVLW1;W=1

MOVWFF10;F10=l

CLRW;W=0

SUBWFF10;F1O-W=1,C=1(运算

结果为正)

PD和TO两位可用来判断芯片复位的原因,GPWUF位也是用来判断芯

片复位类型,请参阅§1.12.7描述。

五、FSR(地址:04h)——选择寄存器

FSR和INDF寄存器(地址:00h)配合完成间接寻址,请参阅前面有

关INDF寄存器的描述。FSR寄存器宽度为5位,FSR〈4:0>用来间接

寻址32个寄存器,FSR<5>则用来选择寄存器体(Bank),见下图:

直接寻址方式间接寻址方式

FSRV5葭……国B<4:0>FSR<5>43210

I体选择I,寄存器选择|

I体选择II寄存器选择II______I_______I

>0001^——1

OOh।——―।20h

(映像到

BarikO)

OFh2Fh

10h30h

IFh1113Fh

BankOBankl

图1.10直接/间接寻址方式

a、PIC12C508:不存在寄存器体选,FSR〈5>恒为“1”

b、PIC12C509:FSR<5>=1Bankl,

FSR<5>=0BankOo

六、OSCCAL(地址:05h)——内部振荡校正系数寄存器

PIC12c5XX内部集成有RC振荡供用户选择使用,0SCCAL〈7:4〉包含

了该振荡电路的校正系数,其上电初始值为“0H1”,请参阅§1.11.4

有关内部RC振荡的描述。

七、GPIO(地址:06h)——I/O寄存器

PIC12C5XX有一个6位的I/O口,它在寄存器中的映像就是GPIO寄

存器,GPI0<5:0>对应于I/O口线GP5:GP0,GPI0<7:6>未用,恒为“0”。

八、TRIS——I/O方向控制寄存器

TRIS是GP口线方向控制寄存器,用户不能直接寻址,必须通过执行

“TRIS6”指令来设置它。当执行“TRIS6”指令后,W寄存

器的内容即会被置入TRIS中。“1”将相应的I/O口线设为输入态(高

阻态),“0”则被设为输出态。但是有二点例外,即GP3永远是输

入态而GP2有可能由OPTION寄存器设置为输入态(TOCKI),而不理

会TRIS中的设置内容。请参阅§1.2关于I/O口的描述。

例:

MOVLWOFh;W="00001111”

TRIS6;TRIS="001111”,

GP0:GP3为输入态

GP4:GP5为输出态

各种复位都会置TRIS为全“1”。

九、OPTION——参数定义寄存器

OPTION用来定义一些芯片工作参数,见下图所示:

GPWUGPPUT0SCTOSEPSAPS2PSIPSO

预分除魏

11iTMRD比率WDT比率

0001:211

0011:412

0101:814

Oil1:1618

1001:321:16

1011:641:32

1101:1281:64

1111:2561:128

预分嘱1分彘

0:分给TIMER0定时器

1:分给WDT看门狗

TIMER0触发沿选择

0:上升沿触发

1:下降^触发

TIMER0信号源

0:内吾计旨令周期

1:外部T0CKI引脚

GPO,GP1,GP3霞上拉选择

0=使能

1=关闭

GP0,GP1,GP3电平变化唤醒选择

0=使能

1=关闭

图1.11OPTION寄存器

OPTION也是不能由用户直接寻址的,必须由执行“OPTION”指令来

把W寄存器中的内容置入OPTION寄存器,如下例:

MOVLW7;W=“00000111”

OPTION;W-OPTION

各种复位都会置OPTION为全“1”。

注意即使TRIS中相应的GP2方向位是“0”,如果将TOCS置为“1”,

则GP2也会被强置为输入态,即为T0CKI输入线。

有关OPTION各位的定义,请参阅各自相应的章节。

十、W——工作寄存器

W寄存器用来存放指令中的第二个操作数,或用来进行内部数据传送,

或存放运算结果,是最常用的寄存器。

§1.6.2通用寄存器

PIC12C508:07h—IFh;BankO

PIC12C509:07h—IFh;BankO

30h—3Fh;Bankl

通用寄存器在上电后的值是随机的,所以它属RAM性质。

§1.7I/O口

PIC12c5XX只有一个I/O口,对应的映像寄存器为GPIO(地址:06h),

其中GPI0<5:0>对应GP5:GP0,GPI0<7:6〉未用,永为“0”。注意,

GP3仅可作为输入,是单向I/。口线。另外,GP5、GP4、GP3及GP2

还可以由用户定义成各种特殊功能口线,一旦它们被用作特殊用途,

则永远读为“0”。GPO、GP1和GP3还带有可编程的弱上拉和“电平

变化唤醒功能”(即唤醒正处于睡眠状态下的芯片),关于这点请参

阅OPTION寄存器的描述。如果GP3被用户定义为复位输入端(MCLR),

则它的弱上拉自动有效,但“电平变化唤醒”特性被自动关闭。

GPIO口线的方向由TRIS寄存器控制,详情参见§1.6.1中有关TRIS

寄存器的描述。

§1.7.1I/O口结构

一根I/O口线的结构如下图所示:

图1.12I/O口结构

除了GP3只能单向作为输入口外,其余的GPIO口皆可由用户定义为

输入/输出态。作为输入口时没有锁存,外部信号必须保持到让CPU

读入为止(例如:MOVFGPIO,W)o作为输出则有锁存,可以保持

直到被新的值取代为止。

I/O端的输入/输出态由TRIS寄存器的值控制,当TRIS将“1”置入

I/O控制器时Q1和Q2都处于截止态,所以I/O端即呈高阻态(输入

态)。当执行I/O读指令(如MOVF6,W),把当前I/O

端的状态读入数据总线。当TRIS将“0”置入I/O控制器时,Q1和

Q2的导通情况将要由数据锁存器Q端的状态来决定。当写入数据为

“1”时,Q端为低电平0,则Q1导通,I/O输出为高电平。反之,

当写入数据为“0”时,Q端为“1”,则Q2导通,I/O端输出为低电

平。I/O读写时序如图1.13所示。

§1.7.2I/O口使用注意事项

1、I/O方向转置的问题

某时候可能需要一个I/O口一会做输入,一会又做输出。这就是I/O

方向的转置。在编写这种I/O转置程序时必须注意,有些指令如位设

置指令(BSF、BCF)写I/O口时是先从I/O读入其状态,执行位操作

后再将结果写回去覆盖原来的内容(输出的结果放在I/O口的数据锁

存器)。

举个例子来说:“BSF6,5”这条指令的目的是要把B口的第6

位置为高电平“1”。执行这条指令时,先把整个B口当前的状态内

容读入到CPU,把第6位置成“1”后再把结果(8个位)重新输出到

B口。如果B口中的有一个I/O端是需要方向转置的(比如说bitl),

而这时是处于输入态,那么B口的状态值重新写入后,B口的数据锁

存器1的锁存值就是当前B口Bitl的状态。这可能和先前Bitl作

为输出时所锁存的值不同,所以当Bitl再转置成输出态时,出现在

Bitl端的状态就可能和先前的输出态不同了。

2、I/O的“线或”和“线与”

从图1.12看出PICI/O端输出电路为CMOS互补推挽输出电路。因此

与其他这类电路一样,当某个PICI/O端设置为输出状态时,不能与

其他电路的输出端接成“线或”或“线与”的形式,否则可能引起输

出电流过载,烧坏PIC。如需要与其他电路接成“线或”电路时,PIC

I/O端必须置于“1”状态或输入状态,并外接下拉电阻。电阻的阻

值根据实际电路和PICI/O端最大电流来决定。

3、I/O口的连续操作

一条写I/O的指令,对I/。真正写操作是发生在指令的后半周期(参

照图L13)。而读I/O的指令却是在指令的周期开始就读取I/O端

状态。所以当你连续对一个I/O端写入再读出时,必须要让I/O端上

的写入电平有一个稳定的时间,否则读入的可能是前一个状态,而不

是最新的状态值。一般推荐在两条连续的写,读I/O口指令间至少加

一条NOP指令。

例:

MOVWF6;写I/O

NOP;稳定I/O电平

MOVF6,W;读1/0

4、噪声环境下的I/O操作

在噪声环境下(如静电火花),I/O控制寄存器可能因受干扰而变化。

比如I/O口可能会从输入态自己变成输出态,对于这种情形,WDT也

是无法检测出来的。因此如果你的应用环境是较恶劣的,建议你每隔

一定的间隔,都重新定义一下I/O控制寄存器。最保险的方法当然是

对I/。读写前都定义一下I/。控制寄存器(但是实践证明对于大多数

的应用都不必做到这样,只是提请你注意噪声干扰)。

□1|Q2|Q1|Q2|Q3\04;Qi|Q2|Q3|04Q1|Q2|Q3|04

i,

PC(PC<1X.,iThisexampleshowsawritetoGPIOfollowed

r1।

InstructonbyareadfromGPIO

letcfied'।

MOVWFGPIOMOVFGPIO.VV•।NOPNOP

,1Datasetuptime=(0.25TCY-TPD)

•।

where:TCY=instructioncycle

GP5GP0i;

■TPD=propagationdelay

।*

Rartpin।•PortpinTherefore,athigherdockfrequencies,a

wriltEhere」1writefollowedbyareadmaybeproblematic

一;厂

I--.I1

executed卜

MOVWFGPIO:MOVGPIO.WNOP

(Writeto•(Read

GP1O>;GPIO)

图1.13I/O口连续读/写时序

§1.8定时器/计数器TIMERO

TIMERO是一个8位的定时器/计数器,其对应的映像寄存器是TMRO

(地址:Olh),可由用户程序直接读写,并且可带有8位的预分频

器。它用于对外加在GP2/T0CKI引脚上的外部信号进行计数(计数器)

或对内部指令时钟进行计时(定时器),在PIC16c5X中它被称为RTCCo

TIMERO及其相关电路如图1.14所示。从图中可看出TIMERO工作状

态由OPTION寄存器控制,其中OPTION寄存器的TOSC位用来选择

TIMERO的计数信号源,当TOSC为“1”时,信号源为内部时钟,TOSC

为为"时,信号源为来自T0CKI引脚的外部信号。OPTION寄存器的

PSA位控制预分频器(Prescaler)分配对象,当PSA位为"1",分

配给TIMERO,即外部或内部信号经过预分频器分频后再输出给

TIMEROo预分频器的分频比率由OPTION内的PSO〜PS2决定。这时

涉及写TMR0寄存器的指令均同时将预分频器清零,OPTION寄存器内

容保持不变,即分配对象、分频比率等均不变。OPTION的TOSE位用

于选择外部计数脉冲触发沿。当TOSE为“1”时为下降沿触发,为“0”

时则上升沿触发。

图1.14TIMERO方块图

TIMERO计数器采用递增方式计数,当计数至FFH时,在下一个计数

发生后,将自动复零,重新开始计数,从此一直循环下去。TIMERO

对其输入脉冲信号的响应延迟时间为2个机器周期,不论输入脉冲是

内部时钟、外部信号或是预分频器的输出。响应时序见图1.15。

TIMERO对外部信号的采样周期为2个振荡周期,因此当不用预分频

器时,外加在TOCKI引脚上的脉冲宽度不得小于2个振荡周期即1/2

指令周期。同时,当使用预分频器时,预分频器的输出脉冲周期不得

小于指令周期,因此预分频器最大输入频率可达N,fosc/4,N为预

分频器的分频比,但不得大于50MHz。

PC;Q11O2|8|O4;51sl:QY|Q2|Q3|Q4:Q1|O2|8|3:QI|Q2|Q3|Q4;Q1|Q2|8|Q4:QI|Q2|Q3|Q4;Q“Q2|8|O4;

{ProgGtfnIiii

Counlsr)(,[IIXPU«441PC»6>

ii•i

Instruction1'MOVWFTM,RMO3rTMRO.W,M5/FTMRDW,MOVT1MRL-.W,MOVF,MOVFTMRO.Wii

iiI1

iiii

iiI1

TtnorV,I;HIK.TJ*2X.NUI!¥!]f十MML

।।ifi

।।:f

Inslrucbcn।।

EiooaAad।।t!Read7MR0:

'WrteTMRO!RsadTMRGIRaadlMRO;-v..:ir.'K1;Ro»dTMRD

cotttoiriaanoadsNIOraadsNTOreadsNTDroadsNTO*1readsNTO*2

图1.15a.TIMERO时序图:内部时钟/无预分频器

:::Ql|Q2|Q3|Q4Ql|Q2|Q3|Q4:Ql|a2|Q3|O4:Ql|Q2|8|Q4:Ql|O2|8|a:

PC5|Q2|Q3|Q4Ql|Q2|8|O4Ql|Q2|8|a4

(Program

Couhtar>1PC»2PC43IPL.4I

InstruebonJ:MOVbVFTMRO•MO/fIMRU.WMCA/FFMRDViMOVFrMRD.W•MCAfFTfcWu.W•MCVF'MRJXW'

y-[■

TbnaOIaT

温馨提示

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

评论

0/150

提交评论