|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
为了给前一段时间学习PIC16F616型单片机的一个总结和方便大家的交流,我写了这篇关于PIC单片机的学习心得,都是在看了手册和编程调试后用自己的语言组织的,其中有不足或者有疑问的地方希望大家能及时的给予纠正和批评,提出宝贵的意见。5 m7 D# p( r6 D Y" c% A
PIC单片机的概述4 F6 b5 u q# B' U2 D' x& \$ X
PIC16F616是一款14引脚、8位的CMOS单片机。采用精简指令集,仅有35条指令,由于采用了数据总线和指令总线分离的哈佛总线结构,使得除少量指令不是单周期之外,大部分的指令都是单周期指令。这样有利于提高单片机的运行速度和执行效率。( X1 r9 q9 J5 e v! V7 f
PIC16F616这款单片机供电电压可以在2V到5。5V之间,内部集成了一个RC振荡器,频率可以配置成8MHZ或者4MHZ,也可以用外部晶振提供时钟。内部集成有AD转换、比较器等硬件模块,还具有上电复位、欠压复位、看门狗、代码保护等功能。三个定时器、PWM发生器等可以由用户编程。下面我来一一介绍关于PIC单片机的这些模块和功能。2 i. c/ v% h$ C
存储器! c! S) i h4 {* [1 h5 c" s* {' n
PIC16F616分为程序存储其和数据存储器,程序存储器的大小是2048words,数据存储器的大小是128bytes。
/ o9 Q4 l- ]- n. n& P+ a4 ?: B8 ` 程序存储器中0000H的地址为复位地址,当上电或者看门狗计时器等复位的时候,均会导致PC指针指向复位地址。地址0004H为中断地址,当无论发生什么中断的时候,PC指针就会指向此地址。在地址0005H~07FFH可以移植程序。- \( C' Y' c5 T# N, N9 F! D
数据存储器分为两个部分,分别叫做bank0和bank1,其中bank0的地址范围为:00H-7FH,Bank1的地址范围为80H-FFH。一般的寄存器都放在里面。可以通过寄存器STATUSL里面的RP0位来选择bank0和bank1。
3 O* T2 x+ M! s, f 在编程序的时候要注意的是,当你要操作的寄存器在bank0的时候,先要选择bank0(将寄存器STATUS的RP0位置0),然后再对你所要操作的寄存器进行操作,当你要操作的寄存器在bank1的时候,同理先要选择bank1。
) _0 }$ i, {( x, e4 P* |$ h 如果想要定义一些变量,可以在数据存储器20H开始的地址定义,定义的地址范围为20H-7FH。一般这么多就够用了。$ ^7 @! a% p' Q5 r3 S& d' L8 S! e2 ]( G
PIC的输入输出端口
/ g N G6 K( V3 X7 n' h 在学习这个部分的时候,曾经遇到过一些问题。PIC单片机的引脚不多,大多都是复用引脚,例如AD、IO、比较器、外接晶振等等,所以在配置端口的时候,一定要知道每个功能怎样设置才能实现的,在这一小节中,我要讲的是通用IO口的设置问题。: j: d y3 N* z% K- }9 L2 c" C/ s
PIC16F616有12个IO口,但是有一个引脚(RA3)只能作为输入引脚用,不能用作输出,另外,A口具有电平变化中断的功能,而C口没有,在设计的时候要注意。
]% k. d8 H. @! D. g9 e D |
|