注意:本实验的芯片是PIC24FJ256DA210,用到的开发环境是:MPLAB IDE v8.92 编译工具是xc16-gcc.exe
PIC单片机在硬件仿真的时候如果配置字配置不好,会出现不能仿真的后果,会有下面提示:
PK3Err0040: The target device is not ready for debugging.
Please check your configuration bit settings and program
the device before proceeding.
如下图:
这时候我的配置字是这样的:
_CONFIG1( WDTPS_PS32768 & FWPSA_PR128 & ALTVREF_ALTVREDIS & WINDIS_OFF & FWDTEN_OFF & ICS_PGx2 & GWRP_OFF & GCP_OFF & JTAGEN_OFF)
_CONFIG2( POSCMOD_XT & IOL1WAY_OFF & OSCIOFNC_OFF & OSCIOFNC_OFF & FCKSM_CSDCMD & FNOSC_PRIPLL & PLL96MHZ_ON & PLLDIV_DIV2 & IESO_OFF)
_CONFIG3( WPFP_WPFP255 & SOSCSEL_SOSC & WUTSEL_LEG & ALTPMP_ALTPMPEN & WPDIS_WPDIS & WPCFG_WPCFGDIS & WPEND_WPENDMEM)
配置字中关于硬件仿真的有两个地方十分关键:
1.关闭写保护WPDIS_WPDIS
2.设置好正确的仿真端口 ICS_PGx2
这里的写保护倒是关闭了,但是仿真引脚端口配置有问题,我们看配置字关于仿真管脚的说明:
下面对比一下本实验板的电路图:
仿真器管脚
单片机管脚:
对比一下说明说我们可以可以看出:
ICS<1:0>这两个位应该配置成11
但是有一点要说明ICS_PGx1才是吧ICS<1:0>配置成11,而不是ICS_PGx3,,这一点我是实验出来的,修改配置字后如下:
_CONFIG1( WDTPS_PS32768 & FWPSA_PR128 & ALTVREF_ALTVREDIS & WINDIS_OFF & FWDTEN_OFF & ICS_PGx1 & GWRP_OFF & GCP_OFF & JTAGEN_OFF)
_CONFIG2( POSCMOD_XT & IOL1WAY_OFF & OSCIOFNC_OFF & OSCIOFNC_OFF & FCKSM_CSDCMD & FNOSC_PRIPLL & PLL96MHZ_ON & PLLDIV_DIV2 & IESO_OFF)
_CONFIG3( WPFP_WPFP255 & SOSCSEL_SOSC & WUTSEL_LEG & ALTPMP_ALTPMPEN & WPDIS_WPDIS & WPCFG_WPCFGDIS & WPEND_WPENDMEM)
这时候再次仿真将不会有任何的问题,仿真步骤如下:
先全局编译,点击下图中所圈的按钮:
编译结果如下:
然后就是先把程序下载进单片机:
下载结果如下:
下面就是仿真了,在本实验中,在下面这个函数前打断点:
然后全速运行,执行到这里,这里要说明的一点是,运行程序并不是运行到打断点的地方,而是断点的下一句话:
好了所有的内容讲到,这里
题外话:本例程是PIC控制S6E63D6为主控芯片的OLED液晶,液晶模块是:IGF240320MC28N01爱维信光电.pdf
到今天晚上的这个点为止我还是没有能够调出这个液晶来,现在看看本实验的波形把
好了,本实验到这里结束
关键字:PIC单片机 硬件仿真 配置字问题
引用地址:
PIC单片机之硬件仿真的配置字问题
推荐阅读最新更新时间:2024-11-05 16:48
PIC单片机CCS之C语言(#INT_DEFAULT的应用)
#INT_DEFAULT 语法: #int_default 目的:如果PIC触发一个中断且没有设置任何中断标志位, 则下面的函数将被调用.如果有一个中断标志,但一次都没触发,则#int_default函数也可被调用. 例子:#int_default default_isr(){ printf( Unexplained interrupt\r\n );
[单片机]
PIC单片机有什么特点和优势_pic方法介绍
PIC系列单片机有什么特点和优势? 自从我95年接触PIC单片机以来,便一直热衷于这种单片机的开发与应用。有不少朋友问我:PIC到底有什么优势?也许你也会有这样的疑问,所以我在这里略谈几点自己的看法。 1) PIC最大的特点是不搞单纯的功能堆积,而是从实际出发,重视产品的性能与价格比,靠发展多种型号来满足不同层次的应用要求。就实际而言,不同的应用对单片机功能和资源的需求也是不同的。比如,一个摩托车的点火器需要一个I/O较少、RAM及程序存储空间不大、可靠性较高的小型单片机,若采用40脚且功能强大的单片机,投资大不说,使用起来也不方便。PIC系列从低到高有几十个型号,可以满足各种需要。其中,PIC12C508单片机仅
[单片机]
PIC单片机编程入门之超简单的点灯程序
IO口控制 方向寄存器 TRISA~TRISAE 比如 TRISB=0x00; // 1为输入, 0为输出 , 这样就把portB端口全部设为输出 数据寄存器 PORTA~PORTE 比如 PORTB=0x01; // 1为置高,0为置低 , 这样就把portB1口置高,其它portB口置低 例: 点灯程序 #include __CONFIG (0x3B31);// pic单片机需要进行寄存器配置,详见手册 void main() { TRISD=0xfe; // 把RD1端口设为输出 PORTD=0x01; // 把RD1端口置高 //RD1=1; PORTD 和 RD一样的 whil
[单片机]
PIC单片机-测试例程汇总
目录: 一、端口的定义与while(1)的使用 二、延时 1、通过语句延时程序(带参数) 2、通过语句延时程序(不带参数) 3、C程序延时时间计算 4、keil时间调试 三、外设 1、单按键检测与蜂鸣器发声(可控制发几声) 2、I2C端口模拟 3、DS18B20数字温度传感器(数码管显示) ----------------------------------------- PIC单片机C语言之PIC16F887(4MhZ晶振) --------------------------------------------------------------------------------------------------
[单片机]
PIC单片机AD通道转换函数
由于PIC单片机有八路AD转换通道,如果每路都写一个转换函数,哪样非常麻烦并且不便于写程序,缘此我写了一段如下转换可实现八路通用的函数: uchar get_ad(uchar n) //带通道选择的AD采样函数 { uchar advalu; ADCON0=n; ADCON1=0x80; //1000 0000右对齐 delay(2); //延时等待 ADGO=1; //启动AD转换 while(ADGO); //等待AD转换结束 advalu=ADRESH; //读AD转换的值 advalu*=256; //将读回的AD值左移八位 ad
[单片机]
PIC单片机程序设计需要注意的一些问题及看法
一、区分指令的大小写 编写PIC单片机的源程序,除了源程序的开始处需要严格的列表指令外,还须注意源程序中字母符号的大小写规则,否则在PC机上汇编程序时不会成功。在源程序中都会使用伪指令INCLUDE。这条指令将列表中指定的单片机文件(在MPLAB中)渎入源程序作为源程序的一部分,所以凡是MPLAB中有关该单片机已有的寄存器在源程序中无须再用赋值指令(EQU)赋值,这就使所建立的源程序大为简化。 此外,由于有了伪指令INCLUDE,所以根据MPLAB软件中的格式,在源程序中的操作数凡是涉及MPLAB已规定的寄存器名称的,其字母一律只能大写,不能小写。其余操作码、符号字母可任意大小写,但0x中的X应小写。否则汇编不会成功。鉴于上述
[单片机]
PIC单片机adc转换并显示
#INCLUDE P16F877.inc W_TEMP EQU 20H ; 实际上20H、A0H、120H和1A0H STATUS_TEMP EQU 21H ;在体0中建立保护单元 PCLATH_TEMP EQU 22H ;在体0中建立保护单元 ORG 000H GOTO A1 ORG 004H;定时中断入口地址 GOTO ZD01; ORG 0CH ;******************************************** ; 数据表 ;******************************************** Q1 ADDWF PCL,1
[单片机]
讨论PIC单片机软件异步串行口实现方法
在用单片机开发各种嵌入式应用系统时,异步串行通信是经常要用到的一种通信模式,很多应用中还要求实现多路异步串行通信。大家平时熟悉的各种厂家的单片机,绝大部分片上只提供一个硬件UART模块,利用它可以方便实现一路串行通讯。PIC系列单片机也不例外,在其丰富的产品家族成员中,除高端系列(PIC17/18)一些型号片上带有两路硬件UART模块外,其它大部分型号片上只有一路UART,一些低端廉价的PIC单片机甚至还不带硬件UART。为了提高系统的性能价格比,就要求设计工程师用软件增加实现一路或多路异步串行通信。很多工程师对用软件实现的UART在可靠性和效率方面持怀疑态度,其实关键问题是看软件采用何种方式来实现可靠的UART功能。
[单片机]