PIC12C5某单片机应用与设计.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《PIC12C5某单片机应用与设计.doc》由会员分享,可在线阅读,更多相关《PIC12C5某单片机应用与设计.doc(138页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、前言前言 面向应用的嵌入式系统在我国方兴未艾面向应用的嵌入式系统在我国方兴未艾微控制器,也就是单片机(MCU),在 80 年代进入中国。由于微控制器容易学、容易用,倍受青眯。这种把中央处理器、存储器、外设器件及 I/O 做在同一块芯片上的器件总是作为应用系统中的控制部件使用。现在,做在微控制器芯片上的外设部件越来越多,功能不断增强。针对具体的应用,利用微控制器可以设计出十分复杂的系统,这种系统称作嵌入式系统。在杭州召开的99 全国单片微机学术交流会暨多国单片微机产品展览会上,许多专家呼吁要提高对嵌入式系统的认识。目前,在全世界,嵌入式系统带来的工业年产值已超过 1 万亿美元。预计在美国,单是使
2、用嵌入式电脑的全数字电视产品每年将产生 1500 亿美元的新市场。美国未来学家尼葛洛庞帝曾预言,四、五年后,嵌入式智能工具将是继 PC 和因特网后最伟大的发明。就目前国内微控制器的应用状况,全国微机单片机学会理事长陈章龙教授说,从整体来讲,在中国,微控制器的应用水平还不高,主要是用 8 位微控制器,用量也不大,绝大多数是用于 IC 卡设备等仪器仪表和控制领域中。嵌入式系统的核心部件是各种类型的嵌入式处理器,据不完全统计,全世界嵌入式处理器的品种已经过千,流行的结构有 30 多种,其中以我们熟悉的 PIC 系列结构的产品为最多。据中国单片机公共实验室高级工程师吕京建介绍,嵌入式处理器分为两大类,
3、一类是以通用计算机中的 CPU 为基础的嵌入式微控制器,另一类是微控制器。与微处理器相比,微控制器具有单片化、体积小、功耗低、可靠性高、芯片上的个设资源丰富等特点,目前已成为嵌入式系统的主流器件。嵌入式微处理器的软件是实现嵌入式系统功能的关键,为了提高执行速度和系统的可靠性,嵌入式系统中的软件一般都固化在存储器芯片或微控制器中。嵌入式系统是面向应用的,因此它可以应用在现代化工业的各个领域,如:航天、航空、军事、家用消费商品、仪器仪表、各种控制系统及 3C 系统。尤其在国内主要应用于家电消费类产品、通信和计算机外设等。而福州高奇电子科技有限公司正在对 MCU 的广泛应用起着强大的推动作用。高奇电
4、子科技有限公司创办于一九九三年十月,是一家专业的半导体集成电路授权代理商和专业集成电路应用、设计公司。目前代理、销售多家著名半导体厂商的产品,如单片机、E2PROM、保安器件、电压检测器、LCD/VFD 驱动器、电话来电识别(Caller ID)以及交换机用的 Switch、Codec 芯片等等;同时,设有专业的研发部门,已经研制了一系列电子产品整机方案,这些方案包括完整的软硬件设计资料及样机,可提供给整机厂商直接采用生产。公司的工程部门还可以为客户量身定做,增加和删改功能以体现客户的产品特色。高奇公司坚持“以专业的态度和水准,供优质产品、创名牌服务”的经营理念,将全部资源专注于半导体 IC
5、的应用设计、行业市场的专用 IC(ASIC)设计以及 IC 市场营销,并将不断开拓出电子产品新领域,并缩短研发时间,使产品与下面就介绍一种简单的 PIC 单片机系列。时代同步。下面就介绍一种简单的 PIC 单片机系列。第一章第一章 PIC12C5XXPIC12C5XX 功能原理功能原理PIC12C5XX 是美国 Microchip 公司推出的 8 位单片机,也是世界上第一个 8 脚封装的 8 位单片机系列。1.11.1 功能特点功能特点一、高性能 RISC 结构 CPU精简指令集,仅 33 条单字节指令,易学易用除地址分支跳转指令为双周期指令外,其余所有指令皆为单周期指令执行速度: DC1s
6、二级硬件堆栈直接、间接、相对三种寻址方式 二、功能部件特性8 位定时器/计数器 TIMER0,带 8 位预分频器大驱动电流,I/O 脚可直接驱动数码管(LED)显示- 每个 I/O 引脚最大控电流 25mA- 每个 I/O 引脚最大灌电流 20mA内置上电复位电路(POR)复位定时器,保障复位正常内部 MCLR 复位端加上拉电路,无需外接上拉内置自振式看门狗,防程序死锁程序保密位,可防止程序代码的非法拷贝低功耗睡眠功能I/O 引脚可唤醒睡眠内置 4MHz RC 型振荡源,可省外接振荡可选外接振荡- RC: 低成本阻容振荡 - XT: 标准晶体/陶瓷振荡 - LP: 低速晶体,低功耗振荡三、CM
7、OS 工艺特性低功耗2mA 5V,4MHz-15A 3V,32KHz-1A 低功耗睡眠(Sleep)模式下全静态设计宽工作电压范围:2.5V5.5V宽工作温度范围:商用级: 070-工业级:4085-汽车级:40125 1.21.2 型号及引脚介绍型号及引脚介绍 PIC12C5XX 目前有二种型号,见下表:型 号 振 荡EPROM RAM定时器输入线I/O线电压范围封装(DIP/SOIC)12C508DC4Mhz512122581152.5V-5.5V812C509DC4Mhz10241241 81152.5V-5.5V8表 1.1 PIC12C5XX 型号功能表各型号管脚图如下:PDIP,S
8、OIC,Windowed CERDIP VDDGP5/OSC1/CLKINGP4/OSC2GP3/MCLR/VPPGP0GP1GP2/T0CK1图 1.1 12C508/509 引脚 下表描述了各引脚的功能。 引脚名 引脚序号 属性 缓冲类型 功能 GP07I/O TTL/ST双向 I/O 口线,带可编程弱上拉,并具电平变化唤醒睡眠功能GP16I/O TTL/ST双向 I/O 口线,带可编程弱上拉,并具电平变化唤醒睡眠功能GP2/T0CK15I/OST双向 I/O 口线,并可设置为计数器 TIMER0 的外部信号输入端GP3/MCLR4ITTL单向输入口线,也可设置为芯片复位端。当设为复位端
9、MCLR 时,低电平有效。当作为输入口线时,带可编程弱上拉及电平变化唤醒睡眠功能GP4/OSC23I/OTTL双向 I/O 口线,(使用片内 RC振荡源时,也可作为晶振输出端)GP5/OSC1/CLKIN2I/O TTL/ST双向 I/O 口线,(使用片内 RC振荡源时,也可作为晶振输入端或外部振荡输入端)VDD1电源正电源VSS8电源地注:ST 斯密特触发器 表 1.2 PIC12C5XX 引脚功能从上表可看出,PIC12C5XX 最多可以有 5 根 I/O 口线和 1 根输入口线(GP3)。1.31.3 PIC12C5XXPIC12C5XX 内部结构内部结构PIC12C5XX 的总线结构采
10、用的是数据总线(8 位)和指令总线(12 位)独立分开的”哈佛结构”,所以它具有精简指令集(RISC)的特点,速度快,效率高,并且功耗很低。PIC12C5XX 在一个芯片上集成了 8 位的算术逻辑运算单元(ALU),0.5K1K 的 12 位程序存储器,2541 个 8 位数据寄存器以及 8 位的计数器,上电复位电路,复位定时器,看门狗等等。图 1.2 PIC12C5XX 内部结构1.41.4 指令周期和流水作业指令周期和流水作业PIC12C5XX 的指令周期被分频成 4 个不重叠的节拍 Q1Q4,程序计数器 PC 在 Q1 节拍增 1, 而指令是在 Q4 节拍从程序存储器中取出并置入指令译码
11、器,并在下一个指令周期被执行, 如下图所示:图 1.3 指令周期指令的执行贯穿 Q1Q4 节拍。如上所述,当 CPU 在执行一条指令的同时, 下一条指令的代码也同时被取出置入指令译码器,准备在下一指令周期执行,这就是PIC 的流水作业方式,也是 RISC 结构单片机的特点,这种特点使单片机的运行速度可以达到很高。除了地址分支跳转指令的执行周期是 2 个指令周期外,其余所有指令都是单周期指令, 见下图: 图 1.4 流水作业1.51.5 程序存储器和堆栈程序存储器和堆栈PIC12C5XX 的程序存储器为 12 位长,其中 PIC12C508 为 512 字节,而 PIC12C509 为 1024
12、 字节。复位向量为地址 0,因为最后一个字节(PIC12C508 为地址 1FFH,PIC12C509 为地址 3FFH)存放有片内 RC实际振荡的校正系数,其形式为指令 MOVLW XX,用户不要使用这个字节,所以用户的程序应从地址 000H 开始存放,注意这点和PIC16C5X 有所不同。 图 1.5 程序存储器和堆栈PIC12C5XX 把程序存储器以 512 字节为单位进行分页管理,这样PIC12C508 有一个页面程序区,而 PIC12C509 有 2 个页面程序区,由状态寄存器 STATUS 中的 PA0 位(STATUS) 确定程序区的页面。这是因为 PIC 是 RISC 结构,所
13、有指令都是单字节,在 PIC12C5XX 中,一条指令中所包含的地址信息只有 9 位,只能直接寻址一个页面(512 字节);对于 12C509,则还要由 PA0 位来辅助寻址 2 个页面(1024 字节)的程序空间,即程序当需从一个页面跳转到另一个页面时(CALL、GOTO 指令),应事先根据要跳转去的页面,把 PA0 位置为相应的值,请参阅状态寄存器的描述。PIC12C5XX 的堆栈有 2 层,有自己独立的空间,不占用程序存储器。注意它只能容纳二层子程序嵌套调用。堆栈的长度是 12 位,和 PC长度一致,可以存放子程序调用时的 PC 值。对堆栈的压入操作由子程序调用指令 CALL 完成,出栈
14、操作则由子程序返回指令 RETLW 完成,请参阅第二章中这二条指令的详介。1.61.6 数据存储器数据存储器PIC12C5XX 的数据存储器(RAM)由一些寄存器组成,分为特殊寄存器和通用寄存器二种。在 PIC 单片机中,对任何部件的操作都表现为对某一寄存器的操作,所以编程非常简单明了。* : 非实际存在的寄存器,参见1.6.1 中详介。图 1.6 寄存器结构从上图可看到,00h06h 为特殊寄存器,其余为通用寄存器。PIC12C508 有 25 个通用寄存器,而 PIC12C509 则有 41 个通用寄存器,其中 25 个在 Bank0,另 16 个在 Bank1,关于寄存器的 Bank 方
15、式,请参阅1.6.1 的 FSR 寄存器描述。1.6.11.6.1 特殊寄存器特殊寄存器 一、INDF(地址:00h) 间址寄存器INDF 是一个物理上不存在的寄存器,只是一个逻辑寄存器,用来进行间接寻址,实际的寻址地址为 FSR的值。例: MOVLW 10hMOVWF FSR ;实际地址10h(F10 寄存器)FSRMOVLW 55hMOVWF INDF ;数据 55hF10INCF FSR ;FSR 增 1(FSR=11h)MOVWF INDF ;数据 55hF11参阅后面 FSR 寄存器的描述。二、TMR0(地址:01h) 定时器/计数器寄存器二、TMR0(地址:01h) 定时器/计数器
16、寄存器TMR0 对应于 TIMER0,它是一个 8 位的定时器/计数器(在 PIC16C5X中称其为 RTCC),请参阅1.8 详介。三、PCL(地址:02h) 程序计数器 PCPIC12C5XX 程序计数器 PC 最多可寻址 1K(1024)程序区:型 号PC 长度寻址空间PC 复位值PIC12C50895121FFhPIC12C5091010243FFh单片机一复位,PC 值被置为全“1”指向程序区的最后一个字节。前面我们提过,这个地址存放的是芯片出厂时已放入的 MOVLW XX 指令(其中 XX 是片内振荡校正系数),所以单片机复位后会执行这条指令,然后 PC 马上翻转到 000h,开始
17、执行用户的程序代码。注意,页面选择位 PA0 复位时也被清零,所以这时页面处于 0 页,请参阅有关状态寄存器 STATUS 的描述。对于“GOTO”指令,它的指令码中含有跳转地址的低 9 位,即PC,对于 PIC12C509 来说,状态寄存器的第 5 位(STATUS)还会被置入 PC,以选择程序页面,从而寻址 1K的程序空间。 图 1.7 GOTO 指令寻址方式对于“CALL”指令或其他涉及会修改 PCL 的指令,它们的指令码中仅包含目的地址的低 8 位,即 PC,而 PC总是会被硬件自动清零,状态寄存器第 5 位(STATUS)也会被置入 PC以选择程序页面(对于 PIC12C509 而言
18、)。见下图: 图 1.8 CALL 指令或修改 PCL 的指令寻址方式从上图可看出,由于执行这些指令硬件总会清 PC=0,所以它们的起始地址都必须限于放在每个程序页面的上半区,即头上的 256个字节空间内(0hFFh 或 200h2FFh)。四、STATUS(地址:03h) 状态寄存器STATUS 寄存器包含了 ALU 的算术状态、芯片复位状态、程序页面位等信息。STATUS 可以被读/写,但是其中的复位状态位 TO、PD 不能由软件设置,它们的状态如何决定1.12.7 会有详细描述。图 1.9 状态寄存器在加法运算时,C 是进位位;在减法运算时,C 是借位的反。例 a: CLRF F10 ;
19、F10=0MOVLW 1 ;W=1SUBWF F10 ;F10-W=-1(FFH),C=0(运算结果为负)例 b: MOVLW 1 ;W=1MOVWF F10 ;F10=1CLRW ;W=0SUBWF F10 ;F10-W=1,C=1(运算结果为正)PD 和 TO 两位可用来判断芯片复位的原因,GPWUF 位也是用来判断芯片复位类型,请参阅1.12.7 描述。五、FSR(地址:04h) 选择寄存器FSR 和 INDF 寄存器(地址:00h)配合完成间接寻址,请参阅前面有关 INDF 寄存器的描述。FSR 寄存器宽度为 5 位,FSR用来间接寻址 32 个寄存器,FSR 则用来选择寄存器体(Ba
20、nk),见下图:图 1.10 直接/间接寻址方式a、PIC12C508: 不存在寄存器体选,FSR恒为“1”。b、PIC12C509: FSR=1 Bank1,FSR=0 Bank0。六、OSCCAL(地址:05h) 内部振荡校正系数寄存器PIC12C5XX 内部集成有 RC 振荡供用户选择使用,OSCCAL 包含了该振荡电路的校正系数,其上电初始值为“0111”,请参阅1.11.4 有关内部 RC 振荡的描述。七、GPIO(地址:06h) I/O 寄存器PIC12C5XX 有一个 6 位的 I/O 口,它在寄存器中的映像就是 GPIO 寄存器,GPIO对应于 I/O 口线 GP5:GP0,G
21、PIO未用,恒为“0”。八、TRIS I/O 方向控制寄存器TRIS 是 GP 口线方向控制寄存器,用户不能直接寻址,必须通过执行“TRIS 6”指令来设置它。当执行“TRIS 6”指令后,W 寄存器的内容即会被置入 TRIS 中。“1”将相应的 I/O 口线设为输入态(高阻态),“0”则被设为输出态。但是有二点例外,即 GP3 永远是输入态而 GP2 有可能由 OPTION 寄存器设置为输入态(T0CKI),而不理会 TRIS 中的设置内容。请参阅1.2 关于 I/O 口的描述。例:MOVLW 0Fh ;W=“00001111”TRIS 6 ;TRIS=“001111”,GP0:GP3 为输
22、入态GP4:GP5 为输出态各种复位都会置 TRIS 为全“1”。九、OPTION 参数定义寄存器OPTION 用来定义一些芯片工作参数,见下图所示:图 1.11 OPTION 寄存器OPTION 也是不能由用户直接寻址的,必须由执行“OPTION”指令来把 W 寄存器中的内容置入 OPTION 寄存器,如下例:MOVLW 7 ;W=“00000111”OPTION ;WOPTION各种复位都会置 OPTION 为全“1”。注意即使 TRIS 中相应的 GP2 方向位是“0”,如果将 TOCS 置为“1”,则 GP2 也会被强置为输入态,即为 T0CKI 输入线。有关 OPTION 各位的定义
23、,请参阅各自相应的章节。十、W 工作寄存器W 寄存器用来存放指令中的第二个操作数,或用来进行内部数据传送,或存放运算结果,是最常用的寄存器。1.6.21.6.2 通用寄存器通用寄存器PIC12C508: 07h 1Fh ;Bank0PIC12C509: 07h 1Fh ;Bank030h 3Fh ;Bank1通用寄存器在上电后的值是随机的,所以它属 RAM 性质。1.71.7 I/OI/O 口口PIC12C5XX 只有一个 I/O 口,对应的映像寄存器为 GPIO(地址:06h),其中 GPIO 对应 GP5:GP0,GPIO未用,永为“0”。注意,GP3 仅可作为输入,是单向 I/O 口线。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PIC12C5 单片机 应用 设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内