pic16f684引脚功能及c程序

电子常识

2585人已加入

描述

        PIC16F684功能介绍

 

 

  PIC16F684单片机带有Flash程序储存结构,主要存放由用户预编好的程序和一些固定不变的数据。程序存储器共有2K×16位程序单元空间。

  PIC16F684单片机数据存储区主要包括特殊功能寄存器和通用寄存器两部分,用于存放CPU在执行过程中产生的的中间数据或预置参数,共有128字节单元空间。

  PIC16F684单片机配置有3个功能较强的多功能定时器模块:TMR0(8位)、TMR1(16位)、TMR2(8)。除TMR2以外都可以作为计数器使用。每个定时器/计数器都配有不同比例的预分频器。

  PIC16F684单片机嵌入了一个具有较强功能的看门狗定时器WDT,能够有效防止因环境干扰而引起系统程序“飞益”。WDT的定时/计数脉冲是由芯片内专用的的RC振荡器产生的。它的工作环境不需要任何外部器件,也与单片机的时钟电路无关。这样即使单片机的时钟停止,WDT仍能继续工作。

  PIC16F684单片机嵌入了一个8路10位AD,用来将外部模拟信号转换成单片机可以接受的和处理的数字信号。A/D转换采用主次比较法,参考电压既可以使用标准的VDD和VSS信号,也可以使用外加参考电压的方式。

  PIC16F684引脚图:

pic16f684

  PIC16F684引脚说明

  1、

  VCC:C=circuit 表示电路的意思, 即接入电路的电压;

  VDD:D=device 表示器件的意思, 即器件内部的工作电压;

  VSS:S=series 表示公共连接的意思,通常指电路公共接地端电压;

  VEE:E=electron 通常指负电压供电;

  VDDH:H=high 表示高压,即高压供电端;

  VPP:编程/擦除电压,片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

  2、

  RA(0~5):具有可编程上拉和电平变化的PORTA I/O口,A口;

  T1CKI:Timer1时钟;

  OSC(1~2):晶振/谐振器;

  CLKIN:外部市政输入、RC振荡器连接。

  3、

  AN(0~7):A/D通道输入;

  T1G:Timer1门控;

  CLKOUT:输出。

  4、

  MCLR:带有内部上拉的主复位;

  VPP:编程电压。

  5、

  RC(0~5) :具有可编程上拉和电平变化的PORTC I/O口,C口;

  CCP1:捕捉输入、比较输出;

  P1A:PWM输出。

  6、

  C2OUT:比较器2输出;

  P1B:PWM输出。

  7、

  P1C:PWM输出。

  8、

  P1D:PWM输出。

  9、

  C2IN-:比较器2输入。

  10、

  C2IN+:比较器2输入。

  11、

  T0CKI:Timer0时钟输入;

  INT:外部中断;

  C1OUT:比较器1输出。

  PIC16F684各个引脚介绍:

  12、

  C1IN-:比较器1输入;

  Vref:A/D外部参考电压;

  ICSPCLK:串行编程时钟。

  13、

  ICSPDAT:串行编程数据I/O;

  ULPWU:超低功耗唤醒输入。

  14、

  VCC:C=circuit 表示电路的意思, 即接入电路的电压;

  VDD:D=device 表示器件的意思, 即器件内部的工作电压;

  VSS:S=series 表示公共连接的意思,通常指电路公共接地端电压;

  VEE:E=electron 通常指负电压供电;

  VDDH:H=high 表示高压,即高压供电端;

 

  VPP:编程/擦除电压,片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

  PIC16F684功能图框:

pic16f684

  程序存储器构成

  PIC16F684具有一个13位程序计数器,可以对8k x 14的程序存储空间进行寻址。 而PIC16F684仅在物理上实现了第一个2k x 14(0000h-07FFh)的存储空间。访问该边界以外的单元将导致实际访问存储器的第一个2k x 14存储空间。 复位向量地址为0000h,中断向量地址为0004h如下图:

pic16f684

  PIC16F684程序存储器映射和堆栈

 

  pic16f684c程序:

  #include

  《pic.h》

  #define uchar unsigned char

  #define uint unsigned int

  __CONFIG(0xF2C4);

  void delay(uint x)

  {

  uint a,b;

  for(a=x;a》0;a--)

  for(b=110;b》0;

  b--);

  }

  void main()

  {

  OSCCON = 0x70;

  。。.

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分