tag 标签: pic24

相关博文
  • 热度 15
    2013-12-20 10:24
    1674 次阅读|
    3 个评论
    PIC24HJ系列的单片机提供三种类型的定时器: A型:定时器1 B型:定时器2,4,6,8 C型:定时器3,5,7,9 每一种都含有如下的寄存器: 1、16位定时计数寄存器:TMRx 2、16位周期寄存器:PRx 3、16位控制寄存器:TxCON 每一个定时器都含有跟中断有关的如下位: 中断使能,标志,优先级 A型定时器:能够操作在32K的内部时钟,可以通过外部时钟工作在异步模式,外部时钟可以在内部进行分频同步。 BC两种可以组成一个32位的计数器,C还可以触发一个AD转换。 A型:控制寄存器有如下控制位: 使能,在闲置模式下继续,定时器的GATED TIME累加位,输入时钟预分频位,外部时钟同步选择位,时钟选择(外部还是内部分频)。 B型:使能,在闲置模式下继续,定时器的GATED TIME累加位,输入时钟预分频位,32位模式选择,外部时钟同步选择位。 C型:……32位模式选择这个位没有,其余同B型   操作模式: 定时器模块可以工作在下面的几种模式下: 定时器模式 gated time模式 同步计数模式 异步技术模式(仅用于A型) 上面两种的时钟来自内部指令周期,后面两种用外部的时钟。 定时器模式的配置: TCS:时钟源配置 TSYNC:同步配置位(仅用于A型) TGATE:定时器GATE控制位 几种模式可以通过如下的设置来实现:     工作在定时器模式下的编程如下: 配置定时器去使能,先配置 选择内部时钟 关掉Tgate 选择分频 清定时器值 写入周期值(TIMER和TR做比较)   设置中断优先级 清中断标志 使能中断   开启定时器 编写中断服务程序   Tgate模式下,程序编写方法和上面相同,时序有一点不同,如下:    外部时钟为Gate输入,一个上升沿时,定时器开启,下降沿时,发生一次中断,定时器暂停。下一次上升沿时,计数器继续走…… 同步模式: 同步模式下,外部的时钟通过分频得到一个内部时钟,配置时: A模式配置为同步,BC的外部时钟本来就是同步的。 选择TCS来设置外部时钟源 这里注意,睡眠模式下,外部时钟源不可用。 这里,只是时钟源采用外部,编程基本上和上面的流程是一样的。   异步模式: 异步模式下,可以使用辅时钟来计时。 定时器在睡眠模式下,仍然可用。   中断: 中断通过中断使能,标志位和优先级来设置,中断标志在中断程序中记得要清空。 可以通过如下的程序来进行配置,这个程序在编译器中已经自带: void ConfigIntTimer1(unsigned int  config ); 此函数中,清空了标志,使能中断和配置输出参数的优先级。   如何配置成32位定时器: 32位的定时器通过如下组成:    这里注意,这种情况下的配置,通过C型来配置,B型进行的配置无效。 还有一个值得注意的是读写顺序,如下:    具体的程序编写流程可以参照下面的示范程序:    另外还有Tgate和同步模式,跟16位的使用是一样的。 还有一种情况,就是定时器在节能模式下的应用。 很显然,在睡眠模式下,系统时钟停止工作,所以基于内部时钟的同步也同时工作,只有A模式的异步时钟可用,此时选用辅助时钟的话,A型还可以继续使用。 在IDLE 模式下,如果设置了在idle模式下继续可用的位使能,则模块可以继续工作。   外设需要使用定时器的情况: 输入捕捉和输出比较可以用定时器作为时钟源,具体在具体的外设介绍中进行设置。 C型的定时器可以作为AD转换的触发信号 用外部时钟作为定时器的时钟,可以做为一个外部中断 设置为外部时钟或者Tgate模式时,引脚需要配置方向,而作为定时器时无需配置方向   在异步模式下,使用定时器1的资料,可以参考如下的官方文档: http://ww1.microchip.com/downloads/en/DeviceDoc/70244B.pdf                        
  • 热度 26
    2013-12-20 10:24
    3760 次阅读|
    0 个评论
    PIC24HJ头文件中包含了delay函数,定义如下: /************************** 延时函数头文件 **************************/ #include "Generic.h" #if defined(__PIC24H__) #ifndef Fcy #define Fcy 10000000 //10 000 000 10M #endif #endif   #define Delay_60nS_Cnt (Fcy * 0.00000006) #define Delay_150nS_Cnt (Fcy * 0.00000015) #define Delay_360nS_Cnt (Fcy * 0.00000036) #define Delay_450nS_Cnt (Fcy * 0.00000045) #define Delay_600nS_Cnt (Fcy * 0.0000006) #define Delay200uS_count (Fcy * 0.0002) #define Delay_1mS_Cnt (Fcy * 0.001) #define Delay_2mS_Cnt (Fcy * 0.002) #define Delay_5mS_Cnt (Fcy * 0.005) #define Delay_15mS_Cnt (Fcy * 0.015) #define Delay_1S_Cnt (Fcy * 1)     /* delays specific to each LCD type */ /* delay btw RS/RW signal to E signal */ #define DelayRSSetupTime_Cnt Delay_60nS_Cnt /* delay btw E rise and Data available */ #define DelayDBOutput_Cnt Delay_360nS_Cnt /* min E pulse width low */ #define DelayEPulseWidthLow_Cnt Delay_150nS_Cnt /* min E pulse width high */ #define DelayEPulseWidthHigh_Cnt Delay_450nS_Cnt /* E pulse cycle time */ #define DelayEPulseWidth_Cnt Delay_600nS_Cnt /* min Power On Reset time */ #define DelayPORXLCD_Cnt Delay_15mS_Cnt /* generic delay for LCD */ #define DelayXLCD_Cnt Delay_5mS_Cnt   //void delaynus(uint); 就是进行了一些简单的宏定义,没有看到实际的延时函数,然后找了一下PIC24FJ中的函数函数,是用于XLCD的,而里面的函数在src中已经定义了,进行移植怕出现问题。 然后在PIC24HJ的目录下找delay的函数,果然找到了一个,但是放在XLCD目录下,也就是说,这个是编译器一定定义好的,发现这个延时函数也是用于液晶的延时,定义的形式如下: void DelayDBOutput(void) /* provides delay for Data Output */ {  int i;  for(i=0;i   asm("clrwdt"); } 这里有一个CLRWDT,如何通过这样的形式实现延时?另外还有一个参数TCY_CNT_PER_LOOP这个是怎么用的? 这里的一条汇编语句,clrwdt应该是在函数函数中避免看门狗复位。 这样的话,延时函数还是需要自己来编写的,但是时钟的问题又出现了。   下面先引用一段关于XT,LP和   HS是使用超过4M的 石英晶体振荡器 。 XT是使用1M到4M的 石英晶体振荡器 。 LP是使用低于1M的陶瓷 振荡器 ,不是什么 感抗 震荡 上述都是用外部 晶振 ,只是所用 晶振 的材质和频率不同。 RC是不使用外部 晶振 ,直接用内部的RC时钟电路。 其中HS和XT因为用 石英晶体振荡器 ,所得时钟比较准确,适用于各种串口、can、TCPIP通信的场合。但缺点是频率大所以功耗也大。 用LP和RC的特点是功耗小,但LP频率低,陶瓷 振荡器 输出的时钟精度不够高,RC的误差更大。适用于不用通信的普通控制场合。 一共有四个时钟源,包括外部晶振,内部快速RC和慢速RC,以及一个辅助时钟源。 其中,外部晶振可以选择是否倍频,以及XT,HS,EC三种模式,就有6种时钟。 FRC包括不分频,固定为16和N分频,和PLL,一共有四种。 另外包括一个辅助晶振和一个低频的振荡器,一个有12种。 其中POSCMD选择外部时钟还是高速,低速的时钟模式:   其中HS模式为高增益模式,在高频时应用。       按照分频和倍频,可以将外部时钟设置到高达40M的Fcy,如下图:         这里,如果选用外部晶振为10M,然后通过PLLPRE分频到0.8M~8M,默认为/2,这样,为5M,然后,经过锁相环倍频, 这里默认为50,这样,得到的频率为250M,然后再经过PLLPOST,默认为/4,这样得到的是62.5M,超过了40M的限制。 应该设置PLLPOST为/8,则时钟为31.25M   下面是头文件对CLKDIV的申明,如下: __extension__ typedef struct tagCLKDIVBITS {   union {     struct {       unsigned PLLPRE:5;       unsigned :1;       unsigned PLLPOST:2;       unsigned FRCDIV:3;       unsigned DOZEN:1;       unsigned DOZE:3;       unsigned ROI:1;     };     struct {       unsigned PLLPRE0:1;       unsigned PLLPRE1:1;       unsigned PLLPRE2:1;       unsigned PLLPRE3:1;       unsigned PLLPRE4:1;       unsigned :1;       unsigned PLLPOST0:1;       unsigned PLLPOST1:1;       unsigned FRCDIV0:1;       unsigned FRCDIV1:1;       unsigned FRCDIV2:1;       unsigned :1;       unsigned DOZE0:1;       unsigned DOZE1:1;       unsigned DOZE2:1;     };   }; } CLKDIVBITS; 寄存器的结构如下:       OK,根据上面的设置,可以进行如下的编程: 采用10M的时钟,通过如下的时钟的初始化得到: void osc_init() {  //_CLKLOCK=0;  _PLLPRE=0;  _PLLDIV=0X1E;  _PLLPOST=0; } 得到一个40M的FCY,然后主程序中执行如下程序: int main(void) {  osc_init(); // uchar i;  mPORTBOutputConfig(IOPORT_BIT_9);  while(1)  {     mPORTBClearBits(IOPORT_BIT_9);  delayn(255);  mPORTBSetBits(IOPORT_BIT_9);  delayn(255);    }  return 0; } 查看汇编语言窗口,执行一条设置端口电平的指令的时间为:4个周期,这样,按照上面的设置,B9拉低电平,然后延时25*4+(25*6*255)=38.35us 25: mPORTBOutputConfig(IOPORT_BIT_9);  004F2 801630 mov.w 0x02c6,0x0000  004F4 2FDFF1 mov.w #0xfdff,0x0002  004F6 600001 and.w 0x0000,0x0002,0x0000  004F8 881630 mov.w 0x0000,0x02c6   如果设置PLLPRE为6,则一开始8分频,得到指令周期是10M,则一条设置端口的指令时间为4*100ns=400ns。 通过仿真验证程序OK.   而DOZE模式的设置,对端口是没有影响的,以为端口是外设,不会影响外设的时间,而只会影响到CPU. ;i+=tcy_cnt_per_loop)
  • 热度 25
    2013-12-19 16:35
    1937 次阅读|
    0 个评论
      先看经过整理以后的头文件: /************************************************************************/ /*输入捕捉模块头文件 */ /*修改:guitronic */ /*日期:2013.12.19 */ /*输入捕捉模块头文件 */ /*本头文件只针对PIC24HJ系列有效 */ /************************************************************************/   #if defined(__PIC24H__) #include p24Hxxxx.h #else #error "Does not build on this target" #endif   #ifndef __INCAP_H #define __INCAP_H   /* 相关寄存器复位初始值,可以根据需要进行修改 */ /* 这里注意没有IC0CON */ #define IC1CON_VALUE 0x0000 #define IC1BUF_VALUE 0x0000 #define IC2CON_VALUE 0x0000 #define IC2BUF_VALUE 0x0000 #define IC3CON_VALUE 0x0000 #define IC3BUF_VALUE 0x0000 #define IC4CON_VALUE 0x0000 #define IC4BUF_VALUE 0x0000 #define IC5CON_VALUE 0x0000 #define IC5BUF_VALUE 0x0000 #define IC6CON_VALUE 0x0000 #define IC6BUF_VALUE 0x0000 #define IC7CON_VALUE 0x0000 #define IC7BUF_VALUE 0x0000 #define IC8CON_VALUE 0x0000 #define IC8BUF_VALUE 0x0000     /*ICXCON各位宏定义 */ #define IC_IDLE_CON 0xdfff /* IC operate in sleep mode */ #define IC_IDLE_STOP 0xffff /* IC stop in sleep mode */   #define IC_TIMER2_SRC 0xffff /* Timer2 is the clock source for Capture */ #define IC_TIMER3_SRC 0xff7f /* Timer3 is the clock source for Capture */   #define IC_INT_4CAPTURE 0xffff /* Interrupt on fourth Capture*/ #define IC_INT_3CAPTURE 0xffdf /* Interrupt on third Capture */ #define IC_INT_2CAPTURE 0xffbf /* Interrupt on second Capture*/ #define IC_INT_1CAPTURE 0xff9f /* Interrupt on first Capture */   #define IC_INTERRUPT 0xffff /* Interrupt pin only in CPU sleep and idle mode */ #define IC_EVERY_16_RISE_EDGE 0xfffd /* Every 16th rising edge */ #define IC_EVERY_4_RISE_EDGE 0xfffc /* Every 4th rising edge */ #define IC_EVERY_RISE_EDGE 0xfffb /* Every rising edge */ #define IC_EVERY_FALL_EDGE 0xfffa /* Every falling edge */ #define IC_EVERY_EDGE 0xfff9 /* Every rising/falling edge */ #define IC_INPUTCAP_OFF 0xfff8 /* Input Capture Off */   /*中断使能和中断优先级设置宏定义*/ #define IC_INT_ON 0xffff /* Input Capture Enable */ #define IC_INT_OFF 0xfff7 /* Input Capture Disable */   #define IC_INT_PRIOR_0 0xfff8 /* Input Capture PriorityLevel 0 */ #define IC_INT_PRIOR_1 0xfff9 /* Input Capture PriorityLevel 1 */ #define IC_INT_PRIOR_2 0xfffa /* Input Capture PriorityLevel 2 */ #define IC_INT_PRIOR_3 0xfffb /* Input Capture PriorityLevel 3 */ #define IC_INT_PRIOR_4 0xfffc /* Input Capture PriorityLevel 4 */ #define IC_INT_PRIOR_5 0xfffd /* Input Capture PriorityLevel 5 */ #define IC_INT_PRIOR_6 0xfffe /* Input Capture PriorityLevel 6 */ #define IC_INT_PRIOR_7 0xffff /* Input Capture PriorityLevel 7 */   /* 下面定义捕获1~8的使能,优先级,开关捕捉,配置和读取函数 */ /**********************************************************/ #define EnableIntIC1 _IC1IE = 1 #define DisableIntIC1 _IC1IE = 0 #define SetPriorityIntIC1(priority) _IC1IP = priority /* CloseCapture 1 */ void CloseCapture1() __attribute__ ((section(".libperi"))); /* ConfigIntCapture1 */ void ConfigIntCapture1(unsigned int ) __attribute__ ((section (".libperi"))); /* OpenCapture1 */ void OpenCapture1 (unsigned int) __attribute__ ((section (".libperi"))); /* ReadCapture1 */ void ReadCapture1(unsigned int * buffer) __attribute__ ((section (".libperi")));   /**********************************************************/ #define EnableIntIC2 _IC2IE = 1 #define DisableIntIC2 _IC2IE = 0 #define SetPriorityIntIC2(priority) _IC2IP = priority /* CloseCapture 2 */ void CloseCapture2() __attribute__ ((section(".libperi"))); /* ConfigIntCapture2 */ void ConfigIntCapture2(unsigned int ) __attribute__ ((section (".libperi"))); /* OpenCapture2 */ void OpenCapture2 (unsigned int) __attribute__ ((section (".libperi"))); /* ReadCapture2 */ void ReadCapture2(unsigned int * buffer) __attribute__ ((section (".libperi"))); /**********************************************************/   #define EnableIntIC3 _IC3IE = 1 #define DisableIntIC3 _IC3IE = 0 #define SetPriorityIntIC3(priority) _IC3IP = priority /* CloseCapture 3 */ void CloseCapture3() __attribute__ ((section(".libperi"))); /* ConfigIntCapture3 */ void ConfigIntCapture3(unsigned int ) __attribute__ ((section (".libperi"))); /* OpenCapture3 */ void OpenCapture3 (unsigned int) __attribute__ ((section (".libperi"))); /* ReadCapture3 */ void ReadCapture3(unsigned int * buffer) __attribute__ ((section (".libperi"))); /**********************************************************/   #define EnableIntIC4 _IC4IE = 1 #define DisableIntIC4 _IC4IE = 0 #define SetPriorityIntIC4(priority) _IC4IP = priority /* CloseCapture 4 */ void CloseCapture4() __attribute__ ((section(".libperi"))); /* ConfigIntCapture4 */ void ConfigIntCapture4(unsigned int ) __attribute__ ((section (".libperi"))); /* OpenCapture4 */ void OpenCapture4 (unsigned int) __attribute__ ((section (".libperi"))); /* ReadCapture4 */ void ReadCapture4(unsigned int * buffer) __attribute__ ((section (".libperi"))); /**********************************************************/   #define EnableIntIC5 _IC5IE = 1 #define DisableIntIC5 _IC5IE = 0 #define SetPriorityIntIC5(priority) _IC5IP = priority /* CloseCapture 5 */ void CloseCapture5() __attribute__ ((section (".libperi"))); /* ConfigIntCapture5 */ void ConfigIntCapture5(unsigned int ) __attribute__ ((section (".libperi"))); /* OpenCapture5 */ void OpenCapture5 (unsigned int) __attribute__ ((section (".libperi"))); /**********************************************************/   /* ReadCapture5 */ void ReadCapture5(unsigned int * buffer) __attribute__ ((section (".libperi"))); #define EnableIntIC6 _IC6IE = 1 #define DisableIntIC6 _IC6IE = 0 #define SetPriorityIntIC6(priority) _IC6IP = priority /* CloseCapture 6 */ void CloseCapture6() __attribute__ ((section (".libperi"))); /* ConfigIntCapture6 */ void ConfigIntCapture6(unsigned int ) __attribute__ ((section (".libperi"))); /* OpenCapture6 */ void OpenCapture6 (unsigned int) __attribute__ ((section (".libperi"))); /* ReadCapture6 */ void ReadCapture6(unsigned int * buffer) __attribute__ ((section (".libperi"))); /**********************************************************/   #define EnableIntIC7 _IC7IE = 1 #define DisableIntIC7 _IC7IE = 0 #define SetPriorityIntIC7(priority) _IC7IP = priority /* CloseCapture 7 */ void CloseCapture7() __attribute__ ((section (".libperi"))); /* ConfigIntCapture7 */ void ConfigIntCapture7(unsigned int ) __attribute__ ((section (".libperi"))); /* OpenCapture7 */ void OpenCapture7 (unsigned int) __attribute__ ((section (".libperi"))); /* ReadCapture7 */ void ReadCapture7(unsigned int * buffer) __attribute__ ((section (".libperi"))); /**********************************************************/   #ifdef _IC8IF #define EnableIntIC8 _IC8IE = 1 #define DisableIntIC8 _IC8IE = 0 #define SetPriorityIntIC8(priority) _IC8IP = priority /* CloseCapture 8 */ void CloseCapture8() __attribute__ ((section (".libperi"))); /* ConfigIntCapture8 */ void ConfigIntCapture8(unsigned int ) __attribute__ ((section (".libperi"))); /* OpenCapture8 */ void OpenCapture8 (unsigned int) __attribute__ ((section (".libperi"))); /* ReadCapture8 */ void ReadCapture8(unsigned int * buffer) __attribute__ ((section (".libperi"))); /**********************************************************/   #endif /*头文件结束 */   从上面可以看出,捕获的功能很简单,就一个控制寄存器,和一个和其他资源公用的中断寄存器。 端口的功能也很简单,使能,优先级,开关捕捉,配置和读取函数。  
  • 热度 15
    2012-12-29 20:59
    1726 次阅读|
    0 个评论
      PIC24F 16bit 28pin starter Borad是一个比较老的PIC24/PIC33学习板,使用它做为PIC24单片机入门非常不错。这个板子的官方网址如下: http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGEnodeId=1406dDocName=en529760   我整理了一些以前写的例程,供大家参考。目前整理了10多个,每个例子展示了一个硬件模块或者功能的用法,都以最简单的方式,没有包含太多不相干的东西。此外,每个例子还带有Proteus仿真的例子。   为了方便交流,我把例子程序放在bitbucket.org上,大家可以使用Git工具下载(推荐使用tortoisehg。个人开发软件时,用Git比SVN更加方便,不需要服务器),也可以在bitbucket.org直接用浏览器下载。 例程Git下载 https://shaoziyang@bitbucket.org/shaoziyang/pic24f-16-bit-28-pin-starter-board-kit-demos 开发工具 MPLAB IDE 或 MPLABX C30编译器 Proteus仿真软件或MPLAB软件仿真 ICD2/PK2/PK3 硬件仿真器 tortoisehg 下载(因为直接下载非常困难,所以同时提供网盘下载) http://tortoisehg.bitbucket.org/download/index.html http://pan.baidu.com/share/link?shareid=187073uk=321377241  
  • 热度 25
    2011-11-14 08:51
    2619 次阅读|
    0 个评论
    LV 24-33 v6是一款开发系统支持64管脚,80管脚和100管脚的 PIC24 和 dsPIC33 单片机,可连接大量的外设。它板载众多部件,如USB2.0编程器,CAN收发器,测试和调试工具MikroICD,板载触摸屏,详细板载说明如下: 双RS-232与PC机或单片机之间的通讯通过DB9连接器进行。 用DIP开关可轻松配置系统。每个DIP开关配置系统的一个部分。 MMC/SD 卡插槽使你能够在工作中轻松使用 MMC/SD 存储器卡。  系统支持64,80和100个管脚 dsPIC33 和 PIC24 单片机。开发板带 PIC24FJ96GA010 2个电位器用于测试多路A/ D转换。输入可通过跳线配置。  通过移动一个跳线可选择USB取电或外部电源。电源开关使系统开或关。 3.3 单片机电源位于单片机附近,使它能够稳定工作。 所有单片机管脚都连接到2x5连接器以便进一步扩展。 96个LED(发光二极管)用来指示所有微控制器引脚的逻辑状态。 板载跳线用于上拉/下拉配置。这些跳线可用于所有引脚。  96个按钮是用来激励微控制器的数字输入,它们被连接到所有单片机管脚。  ICD2 连接器用于电路内调试器。也有一些跳线用于选择单片机管脚。 通过板载连接器可轻松连接LCD和开发板。该连接器也连接单片机引脚。 非常快的板载 USB2.0 编程器包含mikroICD。无需连接外部编程器。 通过板载跳线选择压下按钮(GND或+3.3 v)时作用的电压电平。 触摸屏可通过触摸屏连接器连接到板载控制器。 128x64 图形 LCD 通过板载连接器可轻松接连接到单片机管脚。 复位电路用来复位微控制器。它连接到微控制器的MCLR引脚。 LCD对比度电位器用于调整显示器的对比度。 两个 JTAG 端口用于支持电路内调试器和固件编程。 CAN 收发器 MCP2551 用于和其它单片机通讯。  USB通讯连接器带有LED指示灯用于连接单片机和USB设备。 64-K 位串口 SRAM23K640 使用 SPI 通讯接口。 GLCD对比度电位器用于调整显示器的对比度。   LV 24-33 v6板载编程器和电路内调试器,它是3合1开发系统 - 开发系统+板载USB2.0 编程器+板载MikroICD(电路内调试器):MikroICD是一种非常有效的硬件级实时调试工具。它能让你在主 PIC24 或 dsPIC33 单片机上执行 mikroC,mikroPascal 和 mikroBasic 程序,并且在程序运行的同时监测变量值、特定函数寄存器(SFR)、RAM 和 EEPROM 存储器模块。也有一个超快的 USB2.0 编程器用于微控制器的编程,现在支持更多的 PIC24 和 dsPIC33 单片机。
相关资源
  • 所需E币: 0
    时间: 2021-3-8 21:19
    大小: 1.06MB
    上传者: czd886
    基于PIC24单片机的智能照明控制系统设计
  • 所需E币: 5
    时间: 2020-7-1 09:45
    大小: 20.17MB
    上传者: 打杂007
    微控制器的基本C编程语法开始,涵盖了PIC24微控制器中断处理、存储器分配、通信接口、人机接口、视频处理、外围部件接口等模块的功能原理和C程序实现等内容。
  • 所需E币: 3
    时间: 2020-1-1 23:51
    大小: 342.28KB
    上传者: 238112554_qq
    最新一代PIC24和PIC18F器件包含的充电时间测量单元(CTMU)使用恒流源计算电容值的变化以及事件的间隔时间。运用半导体物理学的基本原理,同样的电流源也可以用来测量温度。这允许使用普通而廉价的二极管来取代相对昂贵的热敏电阻和温度传感器。……
  • 所需E币: 4
    时间: 2019-12-24 19:13
    大小: 188.62KB
    上传者: rdg1993
    TheMicrostickfor3VPIC24KSeriesDevicesisdesignedtoprovideaneasy-to-use,economicaldevelopmentenvironmentfor16-bitmicrocontrollers.Theboardincludesanintegrateddebugger/programmer,asocketforthetargetmicro-controllerchipandpinsthatfacilitateinsertionintoaprototypingboardforextremelyflexibledevelopment.Microstickfor3VPIC24KSeriesDevicesOverviewTheMicrostickfor3VPIC24KSeriesDevicesisdesignedtoprovideaneasy-to-use,economicaldevelopmentenvironmentfor16-bitmicrocontrollers.Theboardincludesanintegrateddeb……
  • 所需E币: 5
    时间: 2019-12-24 19:01
    大小: 1.49MB
    上传者: 二不过三
    Thischaptercontainsgeneralinformationthatwillbeusefultoknowbeforeusing16-bitlanguagetools.Itemsdiscussedinclude:•DocumentLayout•ConventionsUsedinthisGuide•RecommendedReading•TheMicrochipWebSite•myMicrochipPersonalizedNotificationService•CustomerSupportMPLABASSEMBLER,LINKERANDUTILITIESforPIC24MCUsanddsPICDSCsUser’sGuide2003-2011MicrochipTechnologyInc.DS51317JNotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperatingspecificat……
  • 所需E币: 5
    时间: 2019-12-24 17:51
    大小: 2.72MB
    上传者: 二不过三
    ThischaptercontainsgeneralinformationthatwillbeusefultoknowbeforeusingtheExplorer16DevelopmentBoard.Itemsdiscussedinthischapterinclude:•DocumentLayout•ConventionsUsedinthisGuide•WarrantyRegistration•RecommendedReading•TheMicrochipWebSite•DevelopmentSystemsCustomerChangeNotificationService•CustomerSupport•DocumentRevisionHistoryExplorer16DevelopmentBoardUser’sGuide2005MicrochipTechnologyInc.DS51589ANotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperatingspecificationscontainedinMicrochip’sDataSheets.Mostlikely,thep……
  • 所需E币: 4
    时间: 2019-12-24 17:51
    大小: 1.68MB
    上传者: givh79_163.com
    ThischaptercontainsgeneralinformationthatwillbeusefultoknowbeforeyouusetheMPLABStarterKitforPIC24F.Itemsdiscussedinthischapterinclude:ïDocumentLayoutïConventionsUsedinthisGuideïWarrantyRegistrationïRecommendedReadingïTheMicrochipWebSiteïDevelopmentSystemsCustomerChangeNotificationServiceïCustomerSupportïDocumentRevisionHistoryMPLABStarterKitforPIC24FUser’sGuide2008MicrochipTechnologyInc.DS51725ANotethefollowingdetailsofthecodeprotectionfeatureonMicrochipdevices:MicrochipproductsmeetthespecificationcontainedintheirparticularMicrochipDataSheet.Microchipbelievesthatitsfamilyofproductsisoneofthemostsecurefamiliesofitskindonthemarkettoday,whenusedintheintendedmannerandundernormalconditions.Therearedishonestandpossiblyillegalmethodsusedtobreachthecodeprotectionfeature.Allofthesemethods,toourknowledge,requireusingtheMicrochipproductsinamanneroutsidetheoperatingspecificationscontainedinMicroc……
  • 所需E币: 4
    时间: 2019-12-24 17:49
    大小: 52.15KB
    上传者: 16245458_qq.com
    ThePIC24Hdatawidthis16bits.Allinternalregistersanddataspacememoryareorganizedas16bitswide.Thedataspacecanbeaccessedasone64-Kbytelinearaddressrange(formicrocontroller(MCU)instructions).ThedataspacesisaccessedusingtwoAddressGenerationUnits(AGUs)forreadandwriteoperations.Figure3-1isanexampleofadataspacememorymap.Datamemoryaddressesbetween0x0000and0x07FFarereservedforthedevicespecialfunctionregisters(SFRs).TheSFRsincludecontrolandstatusbitsfortheCPUandperipheralsonthedevice.MCUinstructionscanuseanyWregisterasanaddresspointerforadatareadorwriteoperation.Inaddition,somePIC24HdevicescontainDMAanddual-portedSRAMmemory(DPSRAM).BoththeCPUandDMAcontrollercanwriteandreadto/fromaddresseswithintheDPSRAMwithoutinterference,suchasCPUstalls,resultinginmaximized,real-timeperformance.Formoreinformation,refertoSection22.“DMA”.Section3.DataMemoryHIGHLIGHTSThissectionofthemanualcontainsthefollowingtopics:3.1Introduction....................................................................................................................3-23.2DataSpaceAddressGeneratorUnit(AGU)..................................................................3-53.3DMARAM......................................................................................................................3-73.4RelatedApplicationNotes..............................................................................................3-8……
  • 所需E币: 4
    时间: 2019-12-24 17:50
    大小: 15.42MB
    上传者: 238112554_qq
    PIC24开发板CHAMELEONPIC16-BitUserManualv1.0“ExploringtheCHAMELEONPIC16-Bit……
  • 所需E币: 3
    时间: 2019-12-24 17:15
    大小: 224.95KB
    上传者: 微风DS
    Microchip是单片机(MCU)和模拟半导体的领先供应商。公司致力于生产满足嵌入式控制市场需求的产品。Microchip是以下产品的领先供应商:•8位通用单片机(PIC®MCU)•16位和32位单片机•16位dsPIC®数字信号控制器(DSC)•专用和标准的非易失性存储器器件•安全器件(KEELOQ®)•针对具体应用的标准产品要了解Microchip提供的产品列表,请索取Microchip产品线信息卡。您可以从当地销售办事处获取该资料,也可以从Microchip网站(www.microchip.com)下载该资料。本手册的第1部分介绍以下PIC24H16位器件:1简介第1章简介目录本章包括下列主题:1.1简介...............................................................................................................................1-21.2器件结构........................................................................................................................1-31.3……
  • 所需E币: 4
    时间: 2019-12-24 09:38
    大小: 87.38KB
    上传者: 微风DS
    PIC24最小系统板原理图……
  • 所需E币: 3
    时间: 2019-12-24 17:12
    大小: 250.24KB
    上传者: givh79_163.com
    本节简要介绍一些可用于PIC24H系列器件的软件和硬件开发工具。更多信息,请参见《16位设计工具和解决方案》(DS01033B_CN),该文档可从Microchip网站(www.microchip.com)获取。建议使用的Microchip工具包括:•MPLAB®集成开发环境(IntegratedDevelopmentEnvironment,IDE)•PIC24HMCU语言工具包,包括MPLABC30C编译器、汇编器、链接器和库管理器•数据监视与控制界面(DataMonitoringandControlInterface,DMCI)•MPLABSIM软件模拟器•MPLAB可视化器件初始化程序(VisualDeviceInitializer,VDI)•MPLABREALICE™•MPLABICD2在线调试器•MPLABPM326开发工具支持第26章开发工具支持目录本章包括下列主题:26.1简介.............................................................................................................................26-226.2PIC24H软件和硬件开发工具......................................................................................26-226.3PIC24H开发板...........……
  • 所需E币: 4
    时间: 2019-12-24 17:27
    大小: 258.83KB
    上传者: 978461154_qq
    本章提供关于PIC24H器件系列的I/O端口的信息。所有器件引脚(除VDD、VSS、MCLR和OSC1/CLKI外),均为外设与通用I/O端口所共用。通用I/O端口可供PIC24H监视和控制其他器件。大多数I/O引脚与备用功能复用。复用将取决于不同器件上的外设功能部件。一般来说,当某个外设正在工作时,其对应的引脚就不能被用作通用I/O引脚。第10章I/O端口目录本章包括下列主题:10.1简介.............................................................................................................................10-210.2I/OPORTx控制寄存器................................................................................................10-310.3外设复用......................................................................................................................10-510.4电平变化通知(CN)引脚..........................................................................................10-710.5休眠和空闲模式下的CN操作.........................................……