||
时钟:PIC单片机的时钟可以来自内部振荡电路,也可以来自外部输入。
内部振荡电路是有2个,一个是校准过的500K振荡电路,一个是没有校准过的31K的振荡电路。内部振荡电路按照频率可以分为:高频内部振荡器(16M)中频内部振荡器(500K)低频内部振荡器(31K),高频和中频都是通过500K的振荡电路为基准,倍频上去的,并且可以通过寄存器配置工作频率。具体的配置涉及到的寄存器还是挺多的,这里以后再详细了解。
外设输入的时钟有两类,一个是通过外接晶振产生的,外接OSC1和OSC2管脚(常用),另一个是直接外接时钟,外接CLKIN管脚。外部时钟按照工作的频率也分为高功耗(4-32M)中等功耗(0.5-4M)低功耗(0-0.5M)。因为外部时钟直接输入不常用,我们这里就只讨论外接晶体振荡器的用法。外接的晶体振荡器在配置字里面配置。配置好后,OSC1和OSC2就只能晶振的连接管脚了。PIC也有几个寄存器是关于时钟的,具体配置以后再详细讨论。
内存:PIC单片机内部有3种内存区域,1,RAM;2,FLASH;3,EEPORM;
PIC16F1828的FLASH大小是4k,共4096个字节,最后的地址为0xfff,芯片复位后PC地址指针指向0x000地址取数据,中断后地址指针PC指向的是0x004;这个图是FLASH的结构:
可以看到,PC地址指针是15位,最大访问地址是0x7FFF,也就是32K的FLASH数据。还有前面是15个硬件堆栈,完全是独立的,不占用FLASH或者RAM地址。
PIC16F1828有256字节的RAM,如下图的格式:
具体每一个地址的RAM怎么分配在手册后面也有,这256个RAM是不包括特殊功能寄存器的。
EEPROM也是独立的地址空间,读写都有规定的时序。EEPROM用来保存一些掉电不能丢失的数据。
仿真调试接口:(在线串行编程)
PIC16F1828提供了5个接口,用来连接调试仿真器的。这个5个管脚是:ICSPCLK;ICSPDAT; MCLR/VPP; VDD; VSS。连接方式如下:
看图片可以知道,仿真器是直接可以和单片IO连接的,可以没有上拉电阻,如果为了保护单片机,其实还可以在所有的IO上串1K的限流电阻。
复位:
上电复位;
欠压复位;
MCLR复位;
WDT复位;
RESET复位;
堆栈上下溢出复位;
PIC的复位源还是蛮多的,复位后,地址指针PC在0x000处,可以根据复位后一些状态寄存器来判断是哪种复位。
PIC的外部复位管脚是MCLR管脚,不过因为有内部掉电复位,一般可以不用接外部复位。