pic关于头文件的进一步理解(基于PIC单片机 C18编译器)

发布者:幸福的时光最新更新时间:2016-08-28 来源: eefocus关键字:pic  头文件 手机看文章 扫描二维码
随时随地手机看文章
       一:关于处理器的寄存器定义
      针对处理器的寄存器定义文件是一个汇编文件,包含特定器件上所有特殊功能寄存器的定义。编译时,针对处理器的寄存器定义文件将被编译成需要链接到应用程序的目标文件 。
       例如,在 PIC18C452 针对处理器的寄存器定义文件中, PORTA  定义为:
SFR_UNBANKED0 UDATA_ACS H'f80'
PORTA
PORTAbits RES 1 ; 0xf80
第一行指定 PORTA 所在的数据寄存器存储区和这个存储区的起始地址。 PORTA 有两个标号, PORTAbits 和 PORTA,都指向同一个地址 (本例中是 0xf80)。
       二:关于头文件声明
      针对处理器的头文件是包含特殊功能寄存器外部声明的 C 文件,特殊功能寄存器在寄存器定义文件中定义。
      例如,在PIC18C452 的针对处理器头文件中, PORTA  声明为:
extern volatile near unsigned char PORTA;
和:
extern volatile near union  {
  struct {
    unsigned RA0:1;
    unsigned RA1:1;
    unsigned RA2:1;
    unsigned RA3:1;
    unsigned RA4:1;
    unsigned RA5:1;
    unsigned RA6:1;
  } ;
  struct {
    unsigned AN0:1;
    unsigned AN1:1;
    unsigned AN2:1;
    unsigned AN3:1;
    unsigned T0CKI:1;
    unsigned SS:1;
    unsigned OSC2:1;
  } ;
  struct {
    unsigned :2;//填充前两位
    unsigned VREFM:1;
    unsigned VREFP:1;
    unsigned :1;//此位被填充
    unsigned AN4:1;
    unsigned CLKOUT:1;
  } ;
  struct {
    unsigned :5;//填充前五位
    unsigned LVDIN:1;
  } ;
} PORTAbits ;
第一个声明指定 PORTA 是一个字节 (unsigned char)。由于变量是在寄存器定义文件中定义的,因此需要 extern  修饰符。 volatile 修饰符告知编译器不能假定 PORTA 能保留赋给它的值。 near  修饰符指定了端口位于存取 RAM 中。第二个声明指定 PORTAbits是可位寻址的匿名结构的联合 。特殊功能寄存器中的每一位可能有不只一种功能 (因此会有不只一个名称),因此联合中对于同一个寄存器有多个结构定义。所有结构定义中的各位分别针对寄存器中相同的位。如果一个位只有一个功能,那么在其它结构定义中,这一位只是被填充。例如,在第三和第四个结构中, PORTA 的第 1 位 和第 2 位只是被填充,因为它们只有两个名称;而第 6 位有四个名称,在每个结构中都指定了第 6 位。
关键字:pic  头文件 引用地址:pic关于头文件的进一步理解(基于PIC单片机 C18编译器)

上一篇:PIC C18编译器 错误can not fit the section. 解决方法
下一篇:PIC单片机 C编程技巧

推荐阅读最新更新时间:2024-03-16 15:07

自己用C语言写单片机PIC16 serial bootloader
  为什么自己写bootloader   我的第一款自己的serial bootloader是为Microchip PIC16单片机写的UART bootloader,我命其名为HyperBootloader_PIC16. 为什么取这个名字,下面会讲。很多朋友可能会问为什么要自己写bootloader, 百度上一搜,有不少下载下来直接就可以用。比如ds30_Loader 就很不错,免费,还支持Microchip很多系列的单片机。是没错,但是网上搜到的bootloader用C语言写的少得可怜,或者不能用,或者不是用XC8编译的(Microchip 的C编译器)。它们绝大多数都是用汇编写的,包括ds30_Loader。对于不怎么用汇编
[单片机]
自己用C语言写单片机<font color='red'>PIC</font>16 serial bootloader
PIC单片机驱动RT1602C程序
P IC 单片机 驱动RT1602C程序 RT1602C驱动 UART 串口输出,波特率为19200 按键扫描: 键1控制 LCD 的显示状态,接收状态或是发送状态 键2循环控制UART将要输出的子串口 AD转换功能 UART串口接收中断 TIME1定时器中断 具体请参考硬件连接图,(注意按键部分的硬件设计有些问题,请自行修改,但不影响软件功能) 你可以学到: 1.良好的程序书写习惯 2. 多任务程序设计基础 3. 模块化程序设计 同时,欢迎各路高手指教,谢谢! 非常抱歉的告诉大家,我的2007年度巨献中可能有一个宏BUG,该BUG是非常难以发现的, 但却存在BUG产生的可能: 在中断进入和退出的压栈和出
[单片机]
基于单片机PIC18F4550的USB接口设计
引言   USB是一种快速的、双向同步传输的、廉价并可以进行热插拔的串行接口。利用USB总线技术,开发适用于科学研究和工业牛产的各种仪器仪表设备,借以取代传统计算机测控系统中采用串行RS232或并行接口的仪器仪表设备,使计算机测控系统更加高效实时,方便灵活。   利用USB总线的数据采集方案有两种,一种是采用普通单片机加上专用的USB通信芯片。该方案可充分利用开发人员原有的硬件资源和软件知识,开发成本较低,但系统的设计和调试较为麻烦,且电磁兼容性差,容易造成主机不能识别USB设备。另一种是利用具有USB接口功能的单片机。使用这些专用芯片构成的数据采集系统电路设计简单,调试方便,电磁兼容性好。然而,目前大部分具有USB功能的单片
[模拟电子]
基于单片机<font color='red'>PIC</font>18F4550的USB接口设计
PIC单片机之I2C通信-主-从模式
主模式: 我们今天来讲I2C通信。那I2C通信的特点是什么能。我们一般使用的串口 (半双工异步串行通信)与I2C 有什么区别呢。 串口(半双工异步串行通信):就是好像朋友在对话。我可以主动和你讲话,你也可以主动和我讲话。 I2C:就好像上下级对话。一个领导面对一个或者多个员工。只有领导主动说话的份儿,下面的员工不能主动说话。只有领导问了,员工才能答。 I2C通信 I2C通信只需要两个引脚 一个数据线,一个时钟线。 数据线顾名思义就是用来传递数据的。时钟线是来决定数据传输的速度。当时钟线为高电平时,数据线上的数据才会被认为是有效的。 数据线的 数据有四种状态 : 高电平,低电平,下降沿(高电平变低电平),上
[单片机]
<font color='red'>PIC</font>单片机之I2C通信-主-从模式
PIC16F616单片机学习经验总结
1.前言   为了给前一段时间学习PIC16F616型单片机的一个总结和方便大家的交流,我写了这篇关于PIC单片机的学习心得,都是在看了手册和编程调试后用自己的语言组织的,其中有不足或者有疑问的地方希望大家能及时的给予纠正和批评,提出宝贵的意见。   2.PIC单片机的概述   PIC16F616是一款14引脚、8位的CMOS单片机。采用精简指令集,仅有35条指令,由于采用了数据总线和指令总线分离的哈佛总线结构,使得除少量指令不是单周期之外,大部分的指令都是单周期指令。这样有利于提高单片机的运行速度和执行效率。   PIC16F616这款单片机供电电压可以在2V到5.5V之间,内部集成了一个RC振荡器,频率可以配置成8
[单片机]
PIC单片机的程序设计经验分享
PIC单片机(Peripheral Interface Controller)是一种用来开发去控制外围设备的集成电路(IC)。一种具有分散作用(多任务)功能的CPU。本内容讲述了PIC单片机中的程序设计方面的学习 1、PIC单片机程序的基本格式 先介绍二条伪指令: EQU ——标号赋值伪指令 ORG ——地址定义伪指令 PIC16C5X单片机在RESET后指令计算器PC被置为全“1”,所以PIC16C5X几种型号芯片的复位地址为: PIC16C54/55:1FFH PIC16C56:3FFH PIC16C57/58:7FFH 一般来说,PIC单片机的源程序并没有要求统一的格式,大家可以根据自己的风格来编写。但这里我们推荐一种清
[单片机]
<font color='red'>PIC</font>单片机的程序设计经验分享
PIC 指令周期
一、PIC指令周期计算: 设工作频率为:F(MHz); 1个指令周期为 1/(F/4) 秒。 二、PIC的指令 即汇编指令,不同系列指令数不一样。 8位单片机共有三个级别,有相对应的指令集。基本级PIC系列芯片共有指令33条,每条指令是12位字长;中级PIC系列芯片共有指令35条,每条指令是14位字长;高级PIC系列芯片共有指令58条,每条指令是16位字长。其指令向下兼容。
[单片机]
PIC单片机在智能双电源装置中的应用
作者Email: c8051@21cn.com 1. 智能双电源装置的简介 随着对供电可靠性的要求也越来越高,很多场合用两路电源来保证供电的可靠性。当常用电源异常,智能双电源装置能自动切换到备用电源,智能双电源装置就是这种在两路电源之间进行可靠切换、以保证供电的装置。在医院、宾馆和矿山等有广泛的应用。 智能双电源装置由开关本体和控制器两部分组成。开关本体由电机通过机械联锁机构控制常用电源的断路器和备用电源的断路器的分合,进而控制电源的切换。控制器通过对电压的采样来判断电源是否异常,如果出现异常应产生相应的切换。 2. PIC16F877A的简介 美国Microchip公司的PIC 8位单片机其生产史1
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved