您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > C/C++资料 > PIC12C5XX单片机应用与设计
前言面向应用的嵌入式系统在我国方兴未艾微控制器,也就是单片机(MCU),在80年代进入中国。由于微控制器容易学、容易用,倍受青眯。这种把中央处理器、存储器、外设器件及I/O做在同一块芯片上的器件总是作为应用系统中的控制部件使用。现在,做在微控制器芯片上的外设部件越来越多,功能不断增强。针对具体的应用,利用微控制器可以设计出十分复杂的系统,这种系统称作嵌入式系统。在杭州召开的’99全国单片微机学术交流会暨多国单片微机产品展览会上,许多专家呼吁要提高对嵌入式系统的认识。目前,在全世界,嵌入式系统带来的工业年产值已超过1万亿美元。预计在美国,单是使用嵌入式电脑的全数字电视产品每年将产生1500亿美元的新市场。美国未来学家尼葛洛庞帝曾预言,四、五年后,嵌入式智能工具将是继PC和因特网后最伟大的发明。就目前国内微控制器的应用状况,全国微机单片机学会理事长陈章龙教授说,从整体来讲,在中国,微控制器的应用水平还不高,主要是用8位微控制器,用量也不大,绝大多数是用于IC卡设备等仪器仪表和控制领域中。嵌入式系统的核心部件是各种类型的嵌入式处理器,据不完全统计,全世界嵌入式处理器的品种已经过千,流行的结构有30多种,其中以我们熟悉的PIC系列结构的产品为最多。据中国单片机公共实验室高级工程师吕京建介绍,嵌入式处理器分为两大类,一类是以通用计算机中的CPU为基础的嵌入式微控制器,另一类是微控制器。与微处理器相比,微控制器具有单片化、体积小、功耗低、可靠性高、芯片上的个设资源丰富等特点,目前已成为嵌入式系统的主流器件。嵌入式微处理器的软件是实现嵌入式系统功能的关键,为了提高执行速度和系统的可靠性,嵌入式系统中的软件一般都固化在存储器芯片或微控制器中。嵌入式系统是面向应用的,因此它可以应用在现代化工业的各个领域,如:航天、航空、军事、家用消费商品、仪器仪表、各种控制系统及3C系统。尤其在国内主要应用于家电消费类产品、通信和计算机外设等。而福州高奇电子科技有限公司正在对MCU的广泛应用起着强大的推动作用。高奇电子科技有限公司创办于一九九三年十月,是一家专业的半导体集成电路授权代理商和专业集成电路应用、设计公司。目前代理、销售多家著名半导体厂商的产品,如单片机、E2PROM、保安器件、电压检测器、LCD/VFD驱动器、电话来电识别(CallerID)以及交换机用的Switch、Codec芯片等等;同时,设有专业的研发部门,已经研制了一系列电子产品整机方案,这些方案包括完整的软硬件设计资料及样机,可提供给整机厂商直接采用生产。公司的工程部门还可以为客户量身定做,增加和删改功能以体现客户的产品特色。高奇公司坚持“以专业的态度和水准,供优质产品、创名牌服务”的经营理念,将全部资源专注于半导体IC的应用设计、行业市场的专用IC(ASIC)设计以及IC市场营销,并将不断开拓出电子产品新领域,并缩短研发时间,使产品与下面就介绍一种简单的PIC单片机系列。时代同步。下面就介绍一种简单的PIC单片机系列。第一章PIC12C5XX功能原理PIC12C5XX是美国Microchip公司推出的8位单片机,也是世界上第一个8脚封装的8位单片机系列。§1.1功能特点一、高性能RISC结构CPU·精简指令集,仅33条单字节指令,易学易用·除地址分支跳转指令为双周期指令外,其余所有指令皆为单周期指令·执行速度:DC~1μs·二级硬件堆栈·直接、间接、相对三种寻址方式二、功能部件特性·8位定时器/计数器TIMER0,带8位预分频器·大驱动电流,I/O脚可直接驱动数码管(LED)显示-每个I/O引脚最大控电流25mA-每个I/O引脚最大灌电流20mA·内置上电复位电路(POR)·复位定时器,保障复位正常·内部MCLR复位端加上拉电路,无需外接上拉·内置自振式看门狗,防程序死锁·程序保密位,可防止程序代码的非法拷贝·低功耗睡眠功能·I/O引脚可唤醒睡眠·内置4MHzRC型振荡源,可省外接振荡·可选外接振荡-RC:低成本阻容振荡-XT:标准晶体/陶瓷振荡-LP:低速晶体,低功耗振荡三、CMOS工艺特性·低功耗<2mA@5V,4MHz-15μA@3V,32KHz-<1μA低功耗睡眠(Sleep)模式下·全静态设计·宽工作电压范围:2.5V~5.5V·宽工作温度范围:商用级:0℃~+70℃-工业级:-40℃~+85℃-汽车级:-40℃~+125℃§1.2型号及引脚介绍PIC12C5XX目前有二种型号,见下表:型号振荡EPROMRAM定时器输入线I/O线电压范围封装(DIP/SOIC)12C508DC~4Mhz512×1225×81152.5V-5.5V812C509DC~4Mhz1024×1241×81152.5V-5.5V8表1.1PIC12C5XX型号功能表各型号管脚图如下:PDIP,SOIC,WindowedCERDIPVDD——GP5/OSC1/CLKIN——GP4/OSC2——GP3/MCLR/VPP————VSS——GP0——GP1——GP2/T0CK1图1.112C508/509引脚下表描述了各引脚的功能。引脚名引脚序号属性缓冲类型功能GP07I/OTTL/ST双向I/O口线,带可编程弱上拉,并具电平变化唤醒睡眠功能GP16I/OTTL/ST双向I/O口线,带可编程弱上拉,并具电平变化唤醒睡眠功能GP2/T0CK15I/OST双向I/O口线,并可设置为计数器TIMER0的外部信号输入端GP3/MCLR4ITTL单向输入口线,也可设置为芯片复位端。当设为复位端MCLR时,低电平有效。当作为输入口线时,带可编程弱上拉及电平变化唤醒睡眠功能GP4/OSC23I/OTTL双向I/O口线,(使用片内RC振荡源时,也可作为晶振输出端)GP5/OSC1/CLKIN2I/OTTL/ST双向I/O口线,(使用片内RC振荡源时,也可作为晶振输入端或外部振荡输入端)VDD1电源—正电源VSS8电源—地注:ST─斯密特触发器表1.2PIC12C5XX引脚功能从上表可看出,PIC12C5XX最多可以有5根I/O口线和1根输入口线(GP3)。§1.3PIC12C5XX内部结构PIC12C5XX的总线结构采用的是数据总线(8位)和指令总线(12位)独立分开的”哈佛结构”,所以它具有精简指令集(RISC)的特点,速度快,效率高,并且功耗很低。PIC12C5XX在一个芯片上集成了8位的算术逻辑运算单元(ALU),0.5K~1K的12位程序存储器,25~41个8位数据寄存器以及8位的计数器,上电复位电路,复位定时器,看门狗等等。图1.2PIC12C5XX内部结构§1.4指令周期和流水作业PIC12C5XX的指令周期被分频成4个不重叠的节拍Q1~Q4,程序计数器PC在Q1节拍增1,而指令是在Q4节拍从程序存储器中取出并置入指令译码器,并在下一个指令周期被执行,如下图所示:图1.3指令周期指令的执行贯穿Q1~Q4节拍。如上所述,当CPU在执行一条指令的同时,下一条指令的代码也同时被取出置入指令译码器,准备在下一指令周期执行,这就是PIC的流水作业方式,也是RISC结构单片机的特点,这种特点使单片机的运行速度可以达到很高。除了地址分支跳转指令的执行周期是2个指令周期外,其余所有指令都是单周期指令,见下图:图1.4流水作业§1.5程序存储器和堆栈PIC12C5XX的程序存储器为12位长,其中PIC12C508为512字节,而PIC12C509为1024字节。复位向量为地址0,因为最后一个字节(PIC12C508为地址1FFH,PIC12C509为地址3FFH)存放有片内RC实际振荡的校正系数,其形式为指令MOVLWXX,用户不要使用这个字节,所以用户的程序应从地址000H开始存放,注意这点和PIC16C5X有所不同。图1.5程序存储器和堆栈PIC12C5XX把程序存储器以512字节为单位进行分页管理,这样PIC12C508有一个页面程序区,而PIC12C509有2个页面程序区,由状态寄存器STATUS中的PA0位(STATUS5)确定程序区的页面。这是因为PIC是RISC结构,所有指令都是单字节,在PIC12C5XX中,一条指令中所包含的地址信息只有9位,只能直接寻址一个页面(512字节);对于12C509,则还要由PA0位来辅助寻址2个页面(1024字节)的程序空间,即程序当需从一个页面跳转到另一个页面时(CALL、GOTO指令),应事先根据要跳转去的页面,把PA0位置为相应的值,请参阅状态寄存器的描述。PIC12C5XX的堆栈有2层,有自己独立的空间,不占用程序存储器。注意它只能容纳二层子程序嵌套调用。堆栈的长度是12位,和PC长度一致,可以存放子程序调用时的PC值。对堆栈的压入操作由子程序调用指令CALL完成,出栈操作则由子程序返回指令RETLW完成,请参阅第二章中这二条指令的详介。§1.6数据存储器PIC12C5XX的数据存储器(RAM)由一些寄存器组成,分为特殊寄存器和通用寄存器二种。在PIC单片机中,对任何部件的操作都表现为对某一寄存器的操作,所以编程非常简单明了。*:非实际存在的寄存器,参见§1.6.1中详介。图1.6寄存器结构从上图可看到,00h~06h为特殊寄存器,其余为通用寄存器。PIC12C508有25个通用寄存器,而PIC12C509则有41个通用寄存器,其中25个在Bank0,另16个在Bank1,关于寄存器的Bank方式,请参阅§1.6.1的FSR寄存器描述。§1.6.1特殊寄存器一、INDF(地址:00h)──间址寄存器INDF是一个物理上不存在的寄存器,只是一个逻辑寄存器,用来进行间接寻址,实际的寻址地址为FSR4:0的值。例:MOVLW10hMOVWFFSR;实际地址10h(F10寄存器)→FSRMOVLW55hMOVWFINDF;数据55h→F10INCFFSR;FSR增1(FSR=11h)MOVWFINDF;数据55h→F11参阅后面FSR寄存器的描述。二、TMR0(地址:01h)──定时器/计数器寄存器二、TMR0(地址:01h)──定时器/计数器寄存器TMR0对应于TIMER0,它是一个8位的定时器/计数器(在PIC16C5X中称其为RTCC),请参阅§1.8详介。三、PCL(地址:02h)──程序计数器PC7:0PIC12C5XX程序计数器PC最多可寻址1K(1024)程序区:型号PC长度寻址空间PC复位值PIC12C50895121FFhPIC12C5091010243FFh单片机一复位,PC值被置为全“1”指向程序区的最后一个字节。前面我们提过,这个地址存放的是芯片出厂时已放入的MOVLWXX指令(其中XX是片内振荡校正系数),所以单片机复位后会执行这条指令,然后PC马上翻转到000h,开始执行用户的程序代码。注意,页面选择位PA0复位时也被清零,所以这时页面处于0页,请参阅有关状态寄存器STATUS的描述。对于“GOTO”指令,它的指令码中含有跳转地址的低9位,即PC8:0,对于PIC12C509来说,状态寄存器的第5位(STATUS5)还会被置入PC9,以选择程序页面,从而寻址1K的程序空间。图1.7GOTO指令寻址方式对于“CALL”指令或其他涉及会修改PCL的指令,它们的指令码中仅包含目的地址的低8位,即PC7:0,而PC8总是会被硬件自动清零,状态寄存器第5位(STATUS5)也会被置入PC9以选择程序页面(对于PIC12C509而言)。见下图:图1.8CALL指令或修改PCL的指令寻址方式从上图可看出,由于执行这些指令硬件总会清PC8=0,所以它们的起始地址都必须限于放在每个程序页面的上半区,即头上的256个字节空间内(0h~FFh或200h~2FFh)。四、STATUS(地址:03h)──状态寄存器STATUS寄存器包含了ALU的算术状态、芯片复位状态、程序页面位等信息。STATUS可以被读/写,但是其中的复位状态位TO、PD不能由软件设置,它们的状态如何决定§1.12.7会有详
本文标题:PIC12C5XX单片机应用与设计
链接地址:https://www.777doc.com/doc-7027789 .html