PICC单片机应用与设计Word下载.docx
《PICC单片机应用与设计Word下载.docx》由会员分享,可在线阅读,更多相关《PICC单片机应用与设计Word下载.docx(72页珍藏版)》请在冰豆网上搜索。
而福州高奇电子科技有限公司正在对MCU的广泛应用起着强大的推动作用。
高奇电子科技有限公司创办于一九九三年十月,是一家专业的半导体集成电路授权代理商和专业集成电路应用、设计公司。
目前代理、销售多家着名半导体厂商的产品,如单片机、E2PROM、保安器件、电压检测器、LCD/VFD驱动器、电话来电识别(CallerID)以及交换机用的Switch、Codec芯片等等;
同时,设有专业的研发部门,已经研制了一系列电子产品整机方案,这些方案包括完整的软硬件设计资料及样机,可提供给整机厂商直接采用生产。
公司的工程部门还可以为客户量身定做,增加和删改功能以体现客户的产品特色。
高奇公司坚持“以专业的态度和水准,供优质产品、创名牌服务”的经营理念,将全部资源专注于半导体IC的应用设计、行业市场的专用IC(ASIC)设计以及IC市场营销,并将不断开拓出电子产品新领域,并缩短研发时间,使产品与下面就介绍一种简单的PIC单片机系列。
时代同步。
下面就介绍一种简单的PIC单片机系列。
第一章?
PIC12C5XX功能原理
PIC12C5XX是美国Microchip公司推出的8位单片机,也是世界上第一个8脚封装的8位单片机系列。
§
功能特点
一、高性能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)模式下
全静态设计
宽工作电压范围:
~
宽工作温度范围:
商用级:
0℃~+70℃
-工业级:
-40℃~+85℃
-汽车级:
-40℃~+125℃
型号及引脚介绍
PIC12C5XX目前有二种型号,见下表:
型?
号
振?
荡
EPROM
RAM
定时器
输入线
I/O线
电压范围
封装(DIP/SOIC)
12C508
DC~4Mhz
512×
12
25×
8
1
5
12C
表?
PIC12C5XX型号功能表
各型号管脚图如下:
PDIP,SOIC,WindowedCERDIP
VDD——>
GP5/OSC1/CLKIN<
——>
GP4/OSC2<
GP3/MCLR/VPP——>
<
——VSS
GP0
GP1
GP2/T0CK1
图?
12C508/509引脚
下表描述了各引脚的功能。
引脚名
引脚序号
属性
缓冲类型
功能
7
I/O
TTL/ST
双向I/O口线,带可编程弱上拉,并具电平变化唤醒睡眠功能
6
ST
双向I/O口线,并可设置为计数器TIMER0的外部信号输入端
GP3/MCLR
4
I
TTL
单向输入口线,也可设置为芯片复位端。
当设为复位端MCLR时,低电平有效。
当作为输入口线时,带可编程弱上拉及电平变化唤醒睡眠功能
GP4/OSC2
3
双向I/O口线,(使用片内RC振荡源时,也可作为晶振输出端)
GP5/OSC1/CLKIN
2
双向I/O口线,(使用片内RC振荡源时,也可作为晶振输入端或外部振荡输入端)
VDD
电源
—
正电源
VSS
地
注:
ST─斯密特触发器
PIC12C5XX引脚功能
从上表可看出,PIC12C5XX最多可以有5根I/O口线和1根输入口线(GP3)。
PIC12C5XX内部结构
PIC12C5XX的总线结构采用的是数据总线(8位)和指令总线(12位)独立分开的”哈佛结构”,所以它具有精简指令集(RISC)的特点,速度快,效率高,并且功耗很低。
PIC12C5XX在一个芯片上集成了8位的算术逻辑运算单元(ALU),~1K的12位程序存储器,25~41个8位数据寄存器以及8位的计数器,上电复位电路,复位定时器,看门狗等等。
指令周期和流水作业
PIC12C5XX的指令周期被分频成4个不重叠的节拍Q1~Q4,程序计数器PC在Q1节拍增1,而指令是在Q4节拍从程序存储器中取出并置入指令译码器,并在下一个指令周期被执行,如下图所示:
指令周期
指令的执行贯穿Q1~Q4节拍。
如上所述,当CPU在执行一条指令的同时,下一条指令的代码也同时被取出置入指令译码器,准备在下一指令周期执行,这就是PIC的流水作业方式,也是RISC结构单片机的特点,这种特点使单片机的运行速度可以达到很高。
除了地址分支跳转指令的执行周期是2个指令周期外,其余所有指令都是单周期指令,见下图:
流水作业
程序存储器和堆栈
PIC12C5XX的程序存储器为12位长,其中PIC12C508为512字节,而PIC12C509为1024字节。
复位向量为地址0,因为最后一个字节(PIC12C508为地址1FFH,PIC12C509为地址3FFH)存放有片内RC实际振荡的校正系数,其形式为指令MOVLWXX,用户不要使用这个字节,所以用户的程序应从地址000H开始存放,注意这点和PIC16C5X有所不同。
PIC12C5XX把程序存储器以512字节为单位进行分页管理,这样PIC12C508有一个页面程序区,而PIC12C509有2个页面程序区,由状态寄存器STATUS中的PA0位(STATUS<
5>
)确定程序区的页面。
这是因为PIC是RISC结构,所有指令都是单字节,在PIC12C5XX中,一条指令中所包含的地址信息只有9位,只能直接寻址一个页面(512字节);
对于12C509,则还要由PA0位来辅助寻址2个页面(1024字节)的程序空间,即程序当需从一个页面跳转到另一个页面时(CALL、GOTO指令),应事先根据要跳转去的页面,把PA0位置为相应的值,请参阅状态寄存器的描述。
PIC12C5XX的堆栈有2层,有自己独立的空间,不占用程序存储器。
注意它只能容纳二层子程序嵌套调用。
堆栈的长度是12位,和PC长度一致,可以存放子程序调用时的PC值。
对堆栈的压入操作由子程序调用指令CALL完成,出栈操作则由子程序返回指令RETLW完成,请参阅第二章中这二条指令的详介。
数据存储器
PIC12C5XX的数据存储器(RAM)由一些寄存器组成,分为特殊寄存器和通用寄存器二种。
在PIC单片机中,对任何部件的操作都表现为对某一寄存器的操作,所以编程非常简单明了。
*:
非实际存在的寄存器,参见§
1.6.1中详介。
寄存器结构
从上图可看到,00h~06h为特殊寄存器,其余为通用寄存器。
PIC12C508有25个通用寄存器,而PIC12C509则有41个通用寄存器,其中25个在Bank0,另16个在Bank1,关于寄存器的Bank方式,请参阅§
1.6.1的FSR寄存器描述。
1.6.1?
特殊寄存器?
一、INDF(地址:
00h)──间址寄存器
INDF是一个物理上不存在的寄存器,只是一个逻辑寄存器,用来进行间接寻址,实际的寻址地址为FSR<
4:
0>
的值。
例:
MOVLW?
10h
MOVWF?
FSR?
;
实际地址10h(F10寄存器)→FSR
55h
INDF?
数据55h→F10
INCF?
FSR增1(FSR=11h)
数据55h→F11
参阅后面FSR寄存器的描述。
二、TMR0(地址:
01h)──定时器/计数器寄存器
TMR0对应于TIMER0,它是一个8位的定时器/计数器(在PIC16C5X中称其