关于头文件的进一步理解基于PIC单片机

发布者:温馨的家庭最新更新时间:2016-05-16 来源: 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单片机 定时器初值计算
下一篇:PIC单片机利用视觉暂留现象显示字符

推荐阅读最新更新时间:2024-03-16 14:53

PIC单片机】-- IIC相关知识
00 写在前面 该系列的文章,源自于担任过PIC单片机课程的助教,主要向学弟们讲解了几节实验课的内容。在此记录上课的一些知识。 本系列文章主要介绍的内容: 实验1–介绍和基本I/O–按钮和LED(学习嵌入式的第一步就是点一个灯,就像学习编程语言的第一步都是写一个“hello world”代码) 实验2–MPLAB+PICkit 3+LCD+I/O(这次主要是介绍液晶显示屏的使用,很多时候我们系统的调试都需要用到,比如做一个测温系统,那我们就可以通过液晶显示屏,显示传感器采集的数值,然后再通过软件来做进一步的处理) 实验3–ADC(这个是模数转化实验,就是之前模数电学习那些知识的一个综合运用) 实验4–串行通信–UA
[单片机]
【<font color='red'>PIC单片机</font>】-- IIC相关知识
PIC单片机-Mplab的使用与实践
目录: 一、Mplab IDE的使用 1、Mplab IDE建立工程 1)简述 2)建立工程 3)调试 (1)源程序编译 (2)模拟仿真设置 (3)端口设置 (4)添加变量到Watch (5)查看ROM、RAM使用情况 (6)查看软仿真时间 2、Mplab IDE硬件仿真 1)简述 2)接入PICkit3出现Target Device ID (00000000) does not match expected Device ID (00002460) 3)首次使用PICkit3出现PK3Err0040 4)接入PICkit3烧录时要设置电源 5)Maplab的输出窗口看不见
[单片机]
<font color='red'>PIC单片机</font>-Mplab的使用与实践
如何采用PIC单片机更新LCD数据
要更新LCD,可以修改LCDDATA寄存器的内容,以点亮或不点亮LCD显示器上的每个像素。应用固件通常将修改创建为与显示器上的元素(例如字符位置、条形图、电池显示等)相对应的缓冲区变量。 当应用调用显示更新时,存储在缓冲区变量中的值必须转换为正确的像素位设置,像素位位于LCD DATA寄存器中。 对于静态类波形,可以随时写LCD数据寄存器,而不会产生负面影响。但对于动态类波形,必须每隔一个LCD帧才能写LCD数据寄存器,以确保动态类波形的两个帧彼此互补。否则,会将直流偏压施加给LCD。 应当仅在允许写操作时才写LCD数据寄存器,允许写操作由LCD CON寄存器中的WA位置l指示。 在PIC16C926器件中,没
[单片机]
如何采用<font color='red'>PIC单片机</font>更新LCD数据
s3c2440的2440init.s详解
;========================================= ; NAME: 2440INIT.S ; DESC: C start up codes ; Configure memory, ISR ,stacks ; Initialize C-variables ; HISTORY: ; 2002.02.25:kwtark: ver 0.0 ; 2002.03.20:purnnamu: Add some functions for testing STOP,Sleep mode ; 2003.03.14:DonGo: Modified for 2440. ;=
[单片机]
基于PIC单片机产生SPWM信号控制逆变桥的方法设计
1 前 言 随着信息技术的不断发展和计算机应用的日益普及,高新技术设备对供电质量的要求越来越高,很多设备都要求电源能够持续提供恒频恒压、无崎变的纯正弦波交流电,不间断电源UPS就是用来给这些设备供电的。UPS一般采用正弦脉宽调制(SPWM)的控制方法将直流电逆变成正弦波交流电。目前,SPWM控制波形的产生一般有三种方式:1、用分立元件电路产生,主要由三角波发生器、正弦波发生器和比较器组成。分立元件电路复杂,调试困难,成本高,可靠性差,因此一般很少采用。2、用专用集成芯片产生,专用集成芯片功能强大,输出波形质量高,应用比较广泛。3、用单片机实现,现在许多单片机都具有产生SPWM波的功能,采用单片机可使电路简单可靠,而且还方便对系统其
[单片机]
基于<font color='red'>PIC单片机</font>产生SPWM信号控制逆变桥的方法设计
PIC单片机实例9:PC机与单片机串行全双工通信
1. 实例目的: 本实例完全建立在计算机软件的基础上,利用PROTEUS软件构建一个单片机系统,利用VB编写一个计算机控制软件和单片机系统串行通信,计算机上的控制软件可以发送一个值在0 999之间的数,在单片机系统上显示出来,单片机系统上也可输入一个相同值域的数并在计算机控制软件上显示出来。本实例主要是为了展示虚拟串行通信的仿真。 2. 系统配置 本实例虽然简单,但是要想看到想要的仿真结果,建立虚拟的串口连接是必不可少的。要想仿真串行通信,必须要把单片机系统上的串行口与计算机上的串行口连接,这样他们之间才能传输数据,但由于是仿真,实际没有相连接,所以需要创建一对虚拟串行口并使他们相连,这里我使用的是这个软件Virtual Ser
[单片机]
<font color='red'>PIC单片机</font>实例9:PC机与单片机串行全双工通信
51单片机keilC中头文件absacc.h作用
当51单片机通过8255和锁存器74LS273来扩展IO时,经常用到头文件absacc.h。 在程序中,用 #include absacc.h 即可使用其中定义的宏来访问绝对地址,包括:CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD 例如: rval=CBYTE ;指向程序存贮器的0002h地址 rval=XWORD ;指向外RAM的0004h地址 KEIL 中ABSACC.H 定义如下: #ifndef __ABSACC_H__ #define __ABSACC_H__ #define CBYTE ((unsigned char volatile code *) 0) #de
[单片机]
基于PIC单片机的CO2焊机数字化控制系统
1 引言 CO2气体保护焊自从上世纪五十年代问世以来,就以高效、节能、低成本等特点受到人们极大的关注,已广泛应用于汽车、造船、航空航天、石油化工机械、农机和动力机械等制造部门 。目前使用的CO2焊机主要有抽头式、晶闸管式和逆变式等几种型式,其中,抽头式焊机在国内仍占有不小的市场份额。近些年来,随着计算机和自动控制技术的快速发展,现代CO2焊机已从传统的分立元件控制向集成化、数字化和智能化控制方向转变,以适应焊接技术不断发展的需要。 本研究用性价比高、抗干扰能力强的PIC单片机来控制抽头式CO2焊机,通过软件实现对焊机送丝速度和工作时序的数字化控制,并使其具有点焊、断续焊、二/四步控制等多种功能,以降低控制电路的复杂性、增
[单片机]
基于<font color='red'>PIC单片机</font>的CO2焊机数字化控制系统
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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