PIC知识点汇总

发布者:Haifeeng最新更新时间:2020-08-27 来源: eefocus关键字:PIC  结构体  共同体 手机看文章 扫描二维码
随时随地手机看文章

PICC变量的类型与定义

PICC变量及定义

1、当变量为多字节数据时,PICC按低字节存放在低地址、高字节存放在高地址的原则存放变量,并以最低字节的地址作为该变量的地址。例如int型变量i的值为0X1234,低字节0x34存放在0X30,高字节0x12存放在0X31,并以0x30作为变量i的地址。

2、单片机的带符号的整数均以补码方式存放。对于二进制数来说,先减一后取反和先取反后加1得到的结果是一样的。

3、标准C中没有位变量,位变量是PICC C语言中特有的。有了位变量,就可以方便的进行位操作,设置某一引脚是高电平还是低电平。

4、强制类型转换的一般表达式为 (类型说明符)(表达式) 作用:把表达式的运算结果强制转换成类型说明符所表达的类型 

如:(float)x; //强制把X转换成实型,不管X为何类型的变量

PICC变量修饰关键词


1、extern (外部)变量声明

如果一个C程序文件要使用一些有其他文件定义的变量或者引用由嵌入式汇编程序定义的变量,那么在本程序文件中要将这些变量声明成“extern”(外部)类型


2、volatile(易变)型变量声明

volatile 关键字是标准C中没有的,告诉PICC,这些变量是随机的,不要对变量进行随机处理。

在相关的头文件中,相关的寄存器都被定义成volatile型。


3、const (常数)型变量声明

在变量定义前冠以"const"关键词,变量将成为常数,程序运行过程中不能对其进行修改。

单片机的常数实际是存在于程序存储器中的,并以查表的形式返回值。通常单片机的程序存储器相对较大,可以存入较多的常数。

一个程序存储器单元(字)只能存储一个8位的字节常数,虽然程序存储器是14位的。

4、persistent(非初始化)常量声明

声明此类变量无须在复位时自动清零,并且在退出某些函数时这些变量仍然保留。

5、static(静态)常量声明

默认的变量都是自动变量,自动变量指的是当调用函数返回后这些局部变量不再保留,即不存在。若在声明中加入静态变量修饰词,在退出函数后,这些变量仍然保留。

6、bank(体)选择声明

由于PIC16系列单片机的RAM数据存储器分为4个体,因此在定义变量时要指明是哪个体,默认为体0.用bank1~bank3指定变量存放在相应的体。

设计者应当知道,自己编制的程序的数据存储器占用量是多少。

在PICC的变量定义中,对于全局变量还可以指定地址。例如:char AA @0X30


PICC中支持的结构体与共同体,与标准C没有区别。

PICC的指针:

1、指向RAM的指针 

PICC在编译C源程序时将指向RAM的指针操作最终用FSR来实现间接寻址。因此在定义指针时必须明确指定该指针所适用的寻址范围和指针变量本身存在的范围。例如 bank3 char *bank1 zz2定义了指向bank2/3的指针,指针本身存在于bank1中。

在用指向RAM的指针时,要注意体的位置匹配。

2、指向FLASHROM常数的指针 

PICC定义的常数是存放在程序存储器的,即FALSHROM,简称ROM.

指向常数的指针可以指向宁外一个常数而不必重复定义。

关键字:PIC  结构体  共同体 引用地址:PIC知识点汇总

上一篇:PIC16F887 SPI CAN 传输,操作MCP2515
下一篇:MPLAB X XC8编译器件入门 基于PIC18F45K80

推荐阅读最新更新时间:2024-11-05 23:11

PIC 喂狗,空语句等的写法
根据XC16编译器用户指南的说明: 看来这些说明是在头文件中。 在目录D:\Program Files\Microchip\xc16\v1.11\support\dsPIC33F\h下打开p33FJ32GS608.h头文件 看到是在头文件中定义的
[单片机]
<font color='red'>PIC</font> 喂狗,空语句等的写法
DS18B20和PIC单片机通讯源程序
ORG PIC54 GOTO MAIN ORG 0 ;---------------------- ;---------------------------- DELAY22 MOVLW D'200' ; DELAY 2*250=500mS MOVWF COUNT1 DE32 MOVLW D'250' ; 8*250=2mS MOVWF COUNT2 DE42 NOP ; 1+2+1=5uS DECFSZ COUNT2,1 GOTO DE42 DECF
[单片机]
基于CAN总线和PIC单片机的汽车开关电器盒设计
摘 要 :以Microchip公司的PIC18F45K80芯片为核心,给出了具有低成本。高扩展性的实用型多功能汽车开关电器盒的设计方法。该开关电器盒除了具有对汽车启动过程和行驶状态参数实时监测的功能外,与其他同类产品相比,还更加注重产品的实用性和扩展性,同时具备与汽车其他设备进行通信的特有功能。    0 引 言   随着现代汽车工业技术的不断发展进步,车上安装的电子设备在不断增加,从而使汽车综合控制系统中,有大量控制信号需要进行实时交换。CAN 总线作为一种可靠的汽车计算机网络总线,已经被广泛地推广到汽车控制系统的各个应用领域。将CAN 总线技术应用到汽车开关电器盒中,可使得各汽车计算机控制单元能够通过CAN 总线得到开关电
[模拟电子]
基于CAN总线和<font color='red'>PIC</font>单片机的汽车开关电器盒设计
利用PIC单片机让LCD闪烁
  使用 LCD 面板,信息可以通过多种方式显示。例如,如何将用户的注意力吸引到LCD面板的特定部分?一种不需要任何附加段的方式是产生闪烁效果。   以常见的时钟(见下图)应用为例。小时和分钟之间的“:”通常每秒闪烁一次(显示半秒,隐藏半秒)。   在缺少滴答声或通常伴随模拟外观时钟的秒针时,这可以显示时钟正在计时。它起到一种重要的作用,让用户知道时钟正在工作。   如果 电源 的电能即将耗尽,则通常整个时钟显示会开始闪烁。这使用户可以立即了解时钟不再显示正确的时间。   在用户设置时间时,通常使用闪烁来显示已进入了新模式,例如闪烁小时来指示正在设置小时,或者闪烁分钟来指示正在设置分钟。在简单时钟中,闪烁用于多种不同用途。如
[单片机]
利用<font color='red'>PIC</font>单片机让LCD闪烁
PIC16F877A TIMER1定时操作
/********************** Title:PIC16F877A TIMER1定时操作 Author:hnrain Date:2010-12-28 使用前置分频器 T1CKPS1 T1CKPS1 0 0 1 分频 TMR1时钟为晶振时钟/(4*1) 0 1 2 分频 TMR1时钟为晶振时钟/(4*2) 1 0 4 分频 TMR1时钟为晶振时钟/(4*4) 1 1 8 分频 TMR1时钟为晶振时钟/(4*8) TMR1是16位宽度的TMR1由2个8位的可读写的寄存器TMR1H和TMR1L组成。 TMR1有专门的启停控制位TMR1ON,通过软件可以任
[单片机]
使用带A/D的PIC芯片时,怎样才能提高A/D转换的精度?
1. 保证您的系统的时钟应是适合的。如果您关闭/打开A/D模块,应等待一段时间,该段时间是采样时间;如果您改变输入通道,同样也需等待这段时间,和最后的TAD(TAD为完成每位A/D转换所需的时间)。TAD可以在ADCON0中(ADCS1、ADCS0)中选择,它应在2US-6US之间。如果TAD太小,在转换过程结束时,没有完全被转换;如果TAD太长,在全部转换结束之前,采样电容上的电压已经下降。对该时间的选择的具体细节请参照有关的数据手册或应用公式。 2. 通常模拟信号的输入端的电阻太高(大于10Kohms)会使采样电流下降从而影响转换精度。若输入信号不能很快的改变,建议在输入通道口用0。1UF的电容;它将改变模拟通道的采样电压;由
[单片机]
PIC 单片机遇到的串口接收问题
在使用PIC16F1825/9芯片的串口接收时遇到一个问题,就是当串口快速接收时容易出现串口假死的现象,也就是程序运行正常,串口发送也是正常的,但是串口就是不能接收数据。经查询PIC数据手册发现: PIC数据快速接收但是又未及时处理的情况下,容易出现接收溢出错误。
[单片机]
<font color='red'>PIC</font> 单片机遇到的串口接收问题
基于UCC3895与PIC单片机的智能充电器
   0 引言   现代通讯设备、电子产品、电动车辆、 UPS 等普遍采用蓄电池作为电源,然而多数充电设备功能单一,通用性差,维护质量低,导致产品的使用效率大大降低。本文采用 UCC3895 和 PIC 单片机,针对常用的铅酸蓄电池,设计开发了一种智能充电器。    UCC3895 是 TI 公司生产的专用于 PWM 移相全桥 DC / DC 变换的新型控制芯片,可工作于电压模式,也可工作于电流模式,并且可实现输出脉冲占空比从 0 到 100 %相移控制,软启动和软停止可按要求进行调节;内置 7MHz 带宽的误差比较放大器;具有完善的限流及过流保护、电源欠压保护,基准欠压保护、软启动和软停止等功能。    PI
[电源管理]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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