pic单片机怎么在MPLAB设定初始EEPROM

pic单片机怎么在MPLAB设定初始EEPROM,第1张

用DE伪指令
举例:
ORG 0x2100 ;这是PIC16F628A的EEPROM虚拟地址,当然
;不同的芯片是不同的
DE 0x00, 0x01, 0x02, 0x03 ;初始化EEPROM数据
picc编译器
EEPROM 数据
有些PIC单片机支持用外部编程器对内部的EEPROM进行编程。
__EEPROM_DATA()可以将用于初始化的数据放入HEX文件中,如:
__EEPROM_DATA(0, 1, 2, 3, 4, 5, 6, 7)
可将0-7八个数放入HEX文件中,在用外部的编程器进行编程时将 这八个数写入PIC单片机中。
__EEPROM_DATA不是用于运行时写入EEPROM数据的,在运行时请用 EEPROM_READ(), EEPROM_WRITE()。

信号中配置字是配置字
PIC的配置位
来源:21ic作者:
关键字:PIC
⼀配置字
PIC单⽚机的配置字可以⽤__CONFIG命令来定义
# include
__CONFIG(x)
其中x是配置字,头⽂件中定义了相应的配置说明符,如:
__CONFIG(WDTDIS & XT & UNPROTECT);
这将关闭看门狗,设置XT振⽅式,程序不加密。注意:不同的配置符间⽤'&'相联,未定义的部分保留未编程状态。详细的情况请参考头⽂件及PIC数据⼿册
⼆ID 位置
有些PIC单⽚机在程序空间外还有ID空间,可⽤下⾯的⽅法来定义:
# include
__IDLOC(x) 其中x是ID标⽰,如:
__IDLOC(15F0);
将ID的四个单元定义为:1, 5, 15, 0 ID的具体位置由所指定的PIC芯⽚⾃动设定。
三EEPROM 数据
有些PIC单⽚机⽀持⽤外部编程器对内部的EEPROM进⾏编程。
__EEPROM_DATA()可以将⽤于初始化的数据放⼊HEX⽂件中,如:
__EEPROM_DATA(0, 1, 2, 3, 4, 5, 6, 7)
可将0-7⼋个数放⼊HEX⽂件中,在⽤外部的编程器进⾏编程时将这⼋个数写⼊PIC单⽚机中。
__EEPROM_DATA不是⽤于运⾏时写⼊EEPROM数据的,在运⾏时请⽤EEPROM_READ(), EEPROM_WRITE()。
pic 18 __config 配置位 PIC18的__CONFIG设置与PIC16的不⼀样。PIC16的如:
__CONFIG(_CP_OFF&_WDT_ON&_BODEN_ON&_PWRTE_ON&_RC_OSC); 是写在⼀起的。
PIC18 不写在⼀起,CONFIG17是分开写的。如:
__CONFIG(1,IESODIS&FCMDIS&HS);
__CONFIG(2,BOREN&PWRTEN&WDTDIS&WDTWINDIS&WDTPS32K);
__CONFIG(3,MCLREN);
__CONFIG(4,DEBUGEN&XINSTEN&STVRDIS);
__CONFIG(5,UNPROTECT);
__CONFIG(N,X) 函数原型在PIC18。H⽂件中。⾥⾯的各项设置在
PIC18Fxx22。H中。
上⾯的各项设置意义是:
//各项内容在PIC18FXX22H⽂件中定义
//1振荡器切换OFF&故障保护时钟监视器OFF&⾼速模式
//2⽋压复位ON&上电延时ON&看门狗OFF&看门狗分频数
//3mclr⽤于复位脚
//4使能后台调试器&使能指令集扩展&堆栈溢出不复位
//5代码不保护
PIC单⽚机的配置位对于单⽚机运⾏起关键作⽤,若没配置正确是⽆法正常⼯
作的,该怎么配置呢,请先下载 MPLAB C18 中⽂使⽤指南。
PIC16系列只有⼀组配置位,⽽18系列却有多组,弄清楚其含义正确配置即可。
⼀.配置字
PIC单⽚机的配置字可以⽤__CONFIG命令来定义:
# include
__CONFIG(x)
其中x是配置字,头⽂件中定义了相应的配置说明符,如:
__CONFIG(WDTDIS & XT & UNPROTECT);
这将关闭看门狗,设置XT振⽅式,程序不加密。注意:不同的配置符间⽤'&'相联,未定义的部分保留未编程状态。详细的情况请参考头⽂件及PIC数据⼿册
⼆.ID 位置
有些PIC单⽚机在程序空间外还有ID空间,可⽤下⾯的⽅法来定义:
# include
__IDLOC(x) 其中x是ID标⽰,如:
__IDLOC(15F0);
将ID的四个单元定义为:1, 5, 15, 0 ID的具体位置由所指定的PIC芯⽚
⾃动设定。
三.EEPROM 数据
有些PIC单⽚机⽀持⽤外部编程器对内部的EEPROM进⾏编程。
__EEPROM_DATA()可以将⽤于初始化的数据放⼊HEX⽂件中,如:
__EEPROM_DATA(0, 1, 2, 3, 4, 5, 6, 7)
可将0-7⼋个数放⼊HEX⽂件中,在⽤外部的编程器进⾏编程时将这⼋个数
写⼊PIC单⽚机中。
__EEPROM_DATA不是⽤于运⾏时写⼊EEPROM数据的,在运⾏时请⽤ EEPROM_R EAD(), EEPROM_WRITE()。
pic 18 __config 配置位 PIC18的__CONFIG设置与PIC16的不⼀样。PIC16
的如:
__CONFIG(_CP_OFF&_WDT_ON&_BODEN_ON&_PWRTE_ON&_RC_OSC); 是写在⼀起的。
PIC18 不写在⼀起,CONFIG17是分开写的。如:
__CONFIG(1,IESODIS&FCMDIS&HS);
__CONFIG(2,BOREN&PWRTEN&WDTDIS&WDTWINDIS&WDTPS32K);
__CONFIG(3,MCLREN);
__CONFIG(4,DEBUGEN&XINSTEN&STVRDIS);
__CONFIG(5,UNPROTECT);
__CONFIG(N,X) 函数原型在PIC18。H⽂件中。⾥⾯的各项设置在PIC18Fxx2 2。H中。
上⾯的各项设置意义是:
//各项内容在PIC18FXX22H⽂件中定义
//1振荡器切换OFF&故障保护时钟监视器OFF&⾼速模式
//2⽋压复位ON&上电延时ON&看门狗OFF&看门狗分频数
//3mclr⽤于复位脚
//4使能后台调试器&使能指令集扩展&堆栈溢出不复位
//5代码不保护
写程序的时候可以设置,在MPLAB软件⾥也可以设置。如果⽤某些PIC专⽤
的烧录⼯具也可以再烧录界⾯来设置。
学PIC的单⽚机⾸先就必须要学CONFIG配置位等内部寄存器。下⾯是各种设
置配置位的⽅法:
1:在汇编程序⾥加⼊__CONFIG xxxxx(注意下划线_是两条不是⼀条,后⾯
的“xxxxx”是你需要配置的各个配置位信息。⽐如:__CONFIG _CP_OFF & _ DEBUG_ON & _WRT_ENABLE_ON &
_CPD_OFF & _LVP_OFF & _BODEN_OFF & _PW RTE_ON & _WDT_OFF & _XT_OSC
2:在C语⾔程序⾥加⼊__CONGFIG(xxxxxx);,(如上⾯说的xxxxx是配置
信息,config前的下划线还是两条,如:__CONFIG(INTOSCIO & WDTDIS & B ORDIS & PWRTEN);注意有个分号“;”相关头⽂件可以看到单独配置位的关键

3:还有就是在MPLAB软件⾥设置,建⽴好项⽬后,点击菜单栏的configure,然后是configuration bit,打开窗⼝后修改配置位。

5
百度文库VIP限时优惠现在开通,立享6亿+VIP内容
立即获取
配置字——精选推荐
配置字
PIC的配置位
来源:21ic作者:
关键字:PIC
⼀配置字
PIC单⽚机的配置字可以⽤__CONFIG命令来定义:
# include
__CONFIG(x)
其中x是配置字,头⽂件中定义了相应的配置说明符,如:
第 1 页
__CONFIG(WDTDIS & XT & UNPROTECT);
这将关闭看门狗,设置XT振⽅式,程序不加密。注意:不同的配置符间⽤'&'相联,未定义的部分保留未编程状态。详细的情况请参考头⽂件及PIC数据⼿册

你的程序有问题?
RA0=1时,RB6=1,除此外看不到让RB6=0的代码。
所以RB6一旦为1,就不可能为0了。
——————
我没用过PIC。
不过如果是TTL的话,悬空意味著高电平。你应该明确接地。CMOS器件也会使用兼容TTL的接口。
我建议你可以看一下PIC的端口结构,对它裏面的电路有个大概的了解。

把这些头文件放到和yyc同一个目录下就可以了,如果不能改目录,那么在包含的时候就改动或者
在MPLAB里查看有多少空间没用,然后在程序里添加如下汇编指令:
一般是知道了程序空间哪里有空余的,并知道空余的首地址xxx
ORG xxxH
BCF INTCON,7,0 ;关中断
GOTO 00H ;跳回首地址
…… ;中间省略N行指令
BCF INTCON,7,0 ;关中断
GOTO 00H ;跳回首地址
上述指令有多少剩余的空间就填多少条,没有什么捷径就是复制粘贴。

第一步打开matlab,命令行窗口输入feature('memstats')
第二步按回车键之后,可以看到matlab的物理内存,交换页面,虚拟内存,最大连续可用内存块内存使用情况,其中PhysicalMemory(RAM)是物理内存,分别是使用了多少物理内存,可用多少物理内存,总共多少物理内存
第三步PageFile(Swapspace)是交换页面,下面三个也是使用内存,可用内存,总共内存
第四步VirtualMemory(AddressSpace)是虚拟内存使用情况,分别是使用虚拟内存,可用虚拟内存,总共虚拟内存
第五步LargestContiguousFreeBlocks是最大连续可用内存块内存使用情况


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/yw/13362392.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-22
下一篇 2023-07-22

发表评论

登录后才能评论

评论列表(0条)

保存