
PIC
文章平均质量分 83
PIC
sllin
这个作者很懒,什么都没留下…
展开
-
【转】PIC单片机的配置字总结
平台为:MPLAB V8.92,这个ID有两个编译选项:DEBUG和RELEASE,那么可以根据系统预定宏来自动根据选择模式,配置配置字。一、PIC18F系列配置字编写MUC: PIC18F4550IDE: MPLAB V8.92编译器:MCC18 V3.47配置字讲解帮助手册在编译器如下目录:doc\hlpPIC18ConfigSet.chm例如:D:\Program Files\Microchip\mplabc18\v3.47\doc\hlpPIC18ConfigSet.chm原创 2021-01-25 14:46:30 · 1942 阅读 · 0 评论 -
【转】PIC单片机配置字
收藏 评论0分享到微博QQ微信LinkedIn1、对于PIC来说,状态字的配置尤其重要,其直接影响MCU的正常工作与否;2、以PIC18F45K22为例,打开mplab8.92,3、我们就可以看到配置字的说明文档:4、比如:Oscillator Selection bits:(振荡器选择配置字)HS是使用超过4M的石英晶体振荡器(外部晶振),其中HSHP为大于16Mhz,HSMP为4-16Mhz;XT是使用1M到4M的石英晶体振荡器。LP是使用低于1...原创 2021-01-25 13:37:10 · 1373 阅读 · 0 评论 -
【转】单片机的内存分配(变量的存储位置)详解
对于初学者而言,对单片机的内存分配往往最让人头疼,很多人学了单片机几年 都不知道单片机内部的内存使用情况是如何分配的。要了解 ROM、RAM启动,首先 需要对 链接器 Linker 如何分配内存有一定的了解。通常,对于栈生长方向向下的单片机,其内存一般模型是:一个进程运行时,所占用的内存,可以分为如下几个部分:1、栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量的值等。2、堆区(heap):一般由程序员分配释放,若程序员不释放,程序结束时可能由OS释放。3、全局变量、静态变.原创 2020-11-13 12:47:57 · 2166 阅读 · 0 评论 -
【转】PIC中的#pragma idata 和#pragma udata
PIC中的#pragma idata 和#pragma udata: idata表示已经初始化的数据。udata表示没有初始化的数据。 当一个数据块没有足够的空间用于存放一个连续的数据时(数组);此时便可用#pragma idata 或#pragma udata来定义一个新的存放数据块的区域。但是#pragma idata 或#pragma udata申请的空间也还是有限的,一般不能大于256,如果超过则只能另外想法办了。为什么不能大于256?可以看相关的IC链接文件.lk...原创 2020-11-13 10:54:43 · 331 阅读 · 0 评论 -
【转】Why we use #pragma configs in PIC controllers?
These#pragma configsconfigure settings which live in their own section of flash memory that is outside of your program code. They are available as soon as the PIC gets power, regardless where they are written in your code. This is important because somet..原创 2020-11-13 10:54:00 · 306 阅读 · 0 评论 -
【转】MicroChip C18编译器上手及环境设置
C18是MCHP老早针对PIC18高端片子自己出的编译器环境,可能是用户覆盖面的原因,个人感觉比PIC16上的Hi-tech PICC要难用很多。针对不同的单片机要安装不同升级包,因为官方的头文件支持一直在更新;使用较新的单片机时,建议安装最新的C18 upgrade installation升级包。下面说说不同之处和比较难配置的关键的几个点:--------------------------------------------------------------------------.原创 2020-11-13 10:45:07 · 1387 阅读 · 0 评论 -
【转】PIC单片机的 程序存储器,数据存储器,EEPROM区别
PIC的程序存储器是FLASH存储器,主要存储程序代码,掉电不丢失。 数据存储器是SRAM,主要存储一些程序的变量,掉电丢失。 EEPROM一般存储程序中的重要数据,掉电也不丢失。区别:FLASH:只能块擦除(叫块擦除更准确吧,原文是BLOCK),举例说明:比如你用的FLASH的BLOCK是512个字节(不同的FLASH大小不同),那么只有擦除过(所有位写“1”)的BLOCK才能重新写入,意思就是只能从“1”写到“0”,如果要从“0”改到“1”必须整块擦...原创 2020-11-13 10:21:27 · 2245 阅读 · 0 评论 -
【转】MPLAB中#pragma伪指令
段声明伪指令 #pragma,将当前段更改为MPLAB C18 分配相关类型的信息的段。段是位于特定存储器地址的应用程序的一部分。段可以包含代码或数据,可以位于程序存储器或数据存储器中。对于每种存储器,都有两种段类型。即:(1)程序存储器code: 包含可执行指令 romdata: 包含变量和常量(2) 数据存储器udata 包含静态分配未初始化的用户变量 idata包含静态分配已初始化的用户变量A.语法结构:段伪指令:# pragma udata [ 属性列表] ...原创 2020-11-13 10:18:36 · 420 阅读 · 0 评论 -
【转】安装c18 编译器
1.安装c18 3.0full 版本,安装2.https://www.microchip.com/development-tools/pic-and-dspic-downloads-archive下载3.38版本,安装 1) Download C18FAKE.EXE from address below hxxp://math.haifa.ac.il/robotics/SWdevEnv/2007/MICROC~1.40_/?C=N;O=D 2) Run C18FAK...原创 2020-11-10 10:53:06 · 1558 阅读 · 0 评论 -
【转】PIC 定时器中断1+外部中断0
PIC 的八位单片机只有一个中断入口(16位和32位的单片机就有多个)也就只能在程序里只能有一个中断子函数。如果开了两个或更多的中断那就把两个中断的处理都放在这一个中断子函数中效果:让数码管连续循环显示0~9,当有外部中断产生时,显示暂停5~7秒这里外部中断0属于高优先级,定时器中断1是外设中断系统,属于低优先级。在这里,外部中断的优先级必须比定时器中断的优先级高,不然在定时时无法对其产生相应的外部中断来控制它停止。#include__CONFIG(1,XT) ; ...原创 2020-11-10 09:50:27 · 1045 阅读 · 0 评论 -
【转】pragma interrupt high_isr nosave详细功能解释
编译环境为:Mplab x IDE v3.45编译器为:Mplab c18 v3.42#pragma code high_vecotr=0x08//高优先级中断入口void interrupt_at_high_vector(void){_asmGOTO high_isr_endasm}#pragma code#pragma interrupt high_isr nosave=TBLPTR, TBLPTRU, TABLAT, section("MATH_DATA"), section...原创 2020-11-09 18:50:01 · 908 阅读 · 0 评论 -
【转】MPLAB中#pragma伪指令
段声明pragma 伪指令将当前段更改为MPLAB C18 分配相关类型的信息的段。段是位于特定存储器地址的应用程序的一部分。段可以包含代码或数据,可以位于程序存储器或数据存储器中。对于每种存储器,都有两种段类型。即:(1)程序存储器a> code: 包含可执行指令b> romdata: 包含变量和常量(2) 数据存储器a>udata 包含静态分配未初始化的用户变量b>idata包含静态分配已初始化的用户变量A.语法结构:段伪指令:# pragma ud...原创 2020-11-09 14:23:36 · 269 阅读 · 0 评论 -
【转】Pickit 3 Programmer使用说明及 烧写程序步骤
1、下载Pickit 3 Programmer工具2、将Pikit 3的模式由MPlAB改为Pickit 3 Programmer模式见下图说明已修改成功,pickit 3已正常连接3.选择要芯片型号,选择pickit 3为芯片供电4.导入要烧写的hex文件5.点击write进行烧写,当提示programming successful说明烧写成功6。注意:当需要通过MPLAB烧写程序时,需通过Pickit 3 Programmer将Pickit 3恢复..原创 2020-11-09 13:18:00 · 3442 阅读 · 1 评论 -
【转】MPLAB使用PICKit3.5烧录程序说明
某次自己写烧录芯片的时候一直无法重新烧录,重新安装了IDE和更换了电脑都无法烧录成功,后来咨询了技术支持,应该是在某次更新固件的时候跟新没有完全成功,需要手动更新才可以正常使用,特记录一下开发环境:MPLAB IDE V8.92烧录工具: PICKit3.5step1: 选择芯片型号Configure->Select Device... ->选择你需要烧录的芯片step2: 选择烧录器Programmer-->Select Programmer(选择PiCkit原创 2020-11-09 13:14:15 · 9651 阅读 · 0 评论 -
【转】PIC单片机的命名规则
PIC XX XXX XXX (X) -XX X /XX 1 2 3 4 5 6 7 8 1.前缀: PIC MICROCHIP 公司产品代号,特别地:dsPIC为集成DSP功能的新型PIC单片机 2.系列号:10、12、16、18、24、30、33、32,其中 PIC10、PIC12、P...原创 2020-11-09 11:47:35 · 1772 阅读 · 0 评论 -
【转】PIC配置字产生的各类奇怪-神奇的问题
MPLAB X IDE 2.26XC8 V1.21 PROPIC18F25K22问题表现:1、参数传递过程中发生改变在单片机内运行时,调用任意一个带参的子函数,例如unsigned char I2cWriteSubAddr (unsigned char , unsigned char , unsigned char);参数都会被丢失或者改变。特别是多个参数里面的第一个参数。例如void main(void){I2cWriteSubAddr(0x10,0x05,0x42);while(1);}在 I2cWr原创 2020-11-09 11:45:33 · 361 阅读 · 0 评论 -
【转】PIC单片机之I2C通信-主-从模式
主模式:我们今天来讲I2C通信。那I2C通信的特点是什么能。我们一般使用的串口 (半双工异步串行通信)与I2C 有什么区别呢。 串口(半双工异步串行通信):就是好像朋友在对话。我可以主动和你讲话,你也可以主动和我讲话。 I2C:就好像上下级对话。一个领导面对一个或者多个员工。只有领导主动说话的份儿,下面的员工不能主动说话。只有领导问了,员工才能答。 I2C通信 I2C通信只需要两个引脚 一个数据线,一个时钟线。 数据线顾名思义就是用来传递数据的。时钟线是来决定数据...原创 2020-11-09 11:40:42 · 3203 阅读 · 0 评论 -
【转】PIC单片机入门笔记(新手学PIC必看)——基于PIC16F886
学习PIC单片机的目的是打算做一款433M无线开关,之前学习过51与AVR单片机,对8位单片机有一些基础,不过PIC单片机还是第一次接触,先从入门开始吧!入门实验最经典的是点亮一只LED了,这次也它为例走一遍PIC开发的整个流程。虽然C语言已成主流,由于PIC单片机汇编指令只有35条,记忆容易,这次就从非主流开始!一、准备工作1. 在二手市场买来一本【PIC单片机原理与应用】第4版。2. 在淘宝买来一个PIC的下载仿真器【PICkit3】。3. 从废旧设备上面拆下一片PIC16F886的28脚单片机原创 2020-11-09 11:36:31 · 3815 阅读 · 0 评论 -
【转】PIC单片机C语言简记
1.PICC安装: PICC编译器可以直接挂接在MPLAB-IDE集成开发平台下,实现一体化的编译连接和原代码调试。使用MPLAB-IDE内的调试工具ICE2000 、ICD2 和软件模拟器都可以实现原代码级的程序调试,非常方便。 首先必须在你的计算机中安装 PICC 编译器。安装成功后可以进入IDE ,选择菜单项Project Æ Set Language Tool Locations… ,打开语言工具挂接设置对话框。在对话框中选择“HI-TECH PICC Toolsuite”栏,展...原创 2020-11-09 11:29:05 · 1942 阅读 · 0 评论