PICC提供了相关的预处理指令以实现在源程序中定义单片机的配置字和标记单元。
1)定义工作配置字
在源程序中定义PIC单片机工作配置字的重要性在前面章节中已经阐述。在用PICC写程序时同样可以在C原程序中定义,具体方式如下:
__CONFIG(HS&UNPROTECT&PWRTEN&BORDIS&WDTEN);
上面的关键词“__CONFIG”(注意前面有两个下划线符)专门用于是芯片配置字的设定,后面括号中的各项配置位符号在特定型号单片机的头文件中已经定义(注意不是pic.h头文件),相互之间用逻辑“与”操作符组合在一起。这样定义的配置字信息最后将和程序代码一起放入同一个HEX文件。
在这里列出了适用于16F7x系列单片机配置位符号预定义,其它型号或系列的单片机配置字定义方式类似,使用前查阅一下对应的头文件即可。
/*振荡器配置*/
#defineRC 0x3FFF//RC振荡
#defineHS 0x3FFE//HS模式
#defineXT 0x3FFD//XT模式
#defineLP 0x3FFC//LP模式
/*看门狗配置*/
#defineWDTEN0x3FFF//看门狗打开
#defineWDTDIS 0x3FFB//看门狗关闭
/*上电延时定时器配置*/
#definePWRTEN0x3FF7//上电延时定时器打开
#definePWRTDIS0x3FFF//上电延时定时器关闭
/*低电压复位配置*/
#defineBOREN0x3FFF//低电压复位允许
#defineBORDIS 0x3FBF//低电压复位禁止
/*代码保护配置*/
#defineUNPROTECT0x3FFF//没有代码保护
#definePROTECT0x3FEF//程序代码保护
2)定义芯片标记单元
PIC单片机中的标记单元定义可以用下面的__IDLOC(注意前面有两个下划线符)预处理指令实现,方法如下:
__IDLOC(1234);
其特殊之处是括号内的值全部为16进制数,不需要用“0x”引导。这样上面的定义就设定了标记单元内容为01020304。
关键字:PIC单片机 配置字 芯片标记
引用地址:
PIC单片机如何定义配置字与芯片标记
推荐阅读最新更新时间:2024-11-16 21:22
PIC单片机之I/O控制操作分析
一、I/O介绍 I/O(input/output),即输入/输出端口。每个设备都会有一个专用的I/O地址,用来处理自己的输入输出信息。CPU与外部设备、存储器的连接和数据交换都需要通过接口设备来实现,前者被称为I/O接口,而后者则被称为存储器接口。 二、I/O控制的主要功能 计算机原理说的是I/O控制器是控制计算机输入输出的一个最基本的控制系统。通过这个控制系统计算机才可以与外界进行交流互动;这个系统包括了计算机最基本的输入功能比如键盘、鼠标等还有计算机最基本的输出功能,打印功能。当然还包括其他的很多很多的计算机其他外部设备。这个系统是计算机比较核心的一个计算机系统了,很是复杂。原因就是连接他的外设很多,计算机系统
[单片机]
PIC单片机实现二进制码与压缩BCD码的相互转换
编写子程序Bin2BCD、BCD2Bin实现二进制数到压缩BCD码的相互转换。待转换的二进制数存放在w寄存器内,子程序调用完成后得到的BCD码仍存放在w寄存器内返回。例如: movlw .45 ; w=45 call Bin2BCD ; nop ; w=0x45 一、实现二进制数到压缩BCD码的转换 二进制数转压缩BCD码的方法是将二进制码左移8次,每次移位后都检查低四位是否大于4,如果大于4则低四位加3,否则不加;高4位做同样处理。 list p=16f877A ;标明所用的处理器类型 #include p16f877A.inc ;调用头文件 __CONFIG _CP_OFF &
[单片机]
PIC单片机在ICD做lcd显示时钟演示程序
;************************************************* ;* CLKTEST.ASM * ;************************************************* ;* ICDDEMO教学实验板 lcd显示时钟演示程序 * ;************************************************* include p16f877.inc ;*---- ; 定义 LCD数据& 控制I/O口 LCD_DATA equ PORTB LCD_CNTL1 equ PORTB LCD_CNTL2 equ PORTA ; 定义 LCD控制相应的I
[单片机]
PIC单片机编程小技巧
在pic单片机编程当中,会遇到这个问题,程序已经没有问题,也烧录成功了,硬件也上电了,但是为什么什么反应也没有呢? 后来我发现是我的configuration bits没有配置好,以下是我总结出来,如何让PIC正常工作的所需作的检查,前提是代码没有问题。 1、选择好芯片; 2、设置好Configuration Bits; 3、系统上电; 针对Configuration Bits;我在pic16f873a的设置如下: 当然不同芯片设置不同,具体参见各个cpu的数据手册了。 在系统启动后,比如振动器起振了,系统还是不如所愿,那么就检查一下代码的逻辑正确与否,当然也不能排除硬件上的问题,软硬结合才能找到问题的所在。
[单片机]
PIC单片机是什么?有什么优势?
一、引言 据统计,我国的单片机年容量已达1-3亿片,且每年以大约16%的速度增长,但相对于世界市场我国的占有率还不到1%。这说明单片机应用在我国才刚刚起步,有着广阔的前景。培养单片机应用人才,特别是在工程技术人员中普及单片机知识有着重要的现实意义。 当今单片机厂商琳琅满目,产品性能各异。针对具体情况,我们应选何种型号呢?首先,我们来弄清两个概念:集中指令集(CISC)和精简指令集(RISC)。采用CISC结构的单片机数据线和指令线分时复用,即所谓冯.诺伊曼结构。它的指令丰富,功能较强,但取指令和取数据不能同时进行,速度受限,价格亦高。采用RISC结构的单片机数据线和指令线分离,即所谓哈佛结构。这使得取指令和取数据可同时进行,且
[单片机]
基于CAN总线和PIC单片机的汽车开关电器盒设计
0 引 言 随着现代汽车工业技术的不断发展进步,车上安装的电子设备在不断增加,从而使汽车综合控制系统中,有大量控制信号需要进行实时交换。CAN 总线作为一种可靠的汽车计算机网络总线,已经被广泛地推广到汽车控制系统的各个应用领域。将CAN 总线技术应用到汽车开关电器盒中,可使得各汽车计算机控制单元能够通过CAN 总线得到开关电器盒中的工作数据,又能对开关电器盒的各个继电器进行精准的控制,从而达到减少汽车线束、提高通信可靠性、降低系统成本、避免系统功能重复、提高系统工作效率的目的。 1 汽车开关电器盒设计方案 本开关电器盒采用的是基于Microchip 公司生产的PIC18F45K80 芯片作为主芯片的设计方
[单片机]
PIC单片机入门_MPLAB 集成开发环境和 MPASM编译器
1.七大汇编指令 1.1 #INCLUDE 语法: #include “文件名.*” 或 文件名.* 或无括号 或 引号 示例: #INCLUDE p12f675.inc 1.2 #DEFINE 用于定义变量和分配初始值;用户友好的名字被分配给常数,寄存器 ,管脚名等. 使程序易读; 例: #DEFINE MYCONSTANT H’5A’ 1.3 _ _CONFIG 设置配置位 1.4 ORG 语法: ORG address 例: ORG 0x0000 描述: 定义起始地址(0x0000). 1.5 EQU 语法: label equ expr 例: Seconds EQU 0x24 描述: 定义
[单片机]