专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
PIC单片机
关于PIC的复位启动问题,请教高手
2020-02-09 11:40
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
8902
24
24
我用PIC18F252,把程序下载下去后,并不会像AVR单片机那样可以直接启动,按下复位按钮还是不能运行,然后我用手在电路板底部摸了一会就能如期运行了,每次都这样,加了复位电路还是一样,请教高手,该如何设置?
还有在源程序里面如何改写配置位???
先多谢指点!
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
24条回答
chuyu111
2020-02-11 04:14
在电脑里找到别人写的一个帖子 没署名作者 拿来主义了
【picc18应用笔记:在源程序中设置配置位】
笔者在使用picc18进行基于PIC18F452的软件开发时,发现对于18系列的单片机,手动设置配置位非常麻烦,而且容易出错,所以考虑在源程序中设定配置位,这样编译后,无论是用什么烧写工具,都不需要再进行配置位的设定了。
对于HI-TECH C18 , 配置字的设定通过宏 __CONFIG(n,x)来实现.
宏__CONFIG(n,x)的声明在文件pic18.h中,各位元的声明在对应芯片型号的头文件中.18F452的例程如下
#include pic18.h
The declaration of __CONFIG(n,x) is in pic18.h
The __CONFIG(n,x) directive defines configuration data within is in pic18fxx2.h
__CONFIG(1,RC) ;
__CONFIG(2,PWRTDIS & WDTPS1 & WDTEN ) ;
__CONFIG(4,STVRDIS) ;
void main(void)
{
your code
}
在pic18.h中,__CONFIG(n,x)的声明如下
#define __CONFIG(n, x) asm(tpsect config,class=CONFIG);
asm(global config_word ___mkstr(n));
asm(config_word ___mkstr(n));
asm(torg (___mkstr(n)-1)2);
asm(tdw ___mkstr(x))
部分在pic18.h中的声明大体如下,具体请参考对应的头文件。
Configuration bit values
Config. Register 1
#define OSCSEN 0xDFFF enable oscillator system clock
#define OSCSDIS 0xFFFF
oscilator types
#define RCRA6 0xFFFF RC wOSC2 config as RA6
#define HSPLL 0xFEFF HS wPLL Enabled, Clk Freq = 4xFreq Osc.
#define ECRA6 0xFDFF EC wOSC2 config. as RA6
#define ECDB4 0xFCFF EC wOSC2 as divide by 4 clock output
#define RC 0xFBFF
#define HS 0xFAFF
#define XT 0xF9FF
#define LP 0xF8FF
Config. Register 2
Brown Out reset
#define BOREN 0xFFFF Brown-out reset enable
n代表 Config. Register n, 例如__CONFIG(1,x); 1 代表Config. Register 1, X可为OSCSEN,RC等。
!!!最后还应该注意的是如果在源程序中进行配置位设置,如果使用的软件版本(比如使用picc18
的8.20版本和MPLAB6.30)较低,虽然编译不会有问题,但可能会出现配置位设置混乱,推荐使用pic
c18的8.35版本和MPLAB7.0以上。安装HTSOFT的软件时,也必须保证完全安装,尤其是一定要安装MPLAB_toolsuites工具。
加载中...
查看其它24个回答
一周热门
更多
>
相关问题
PIC单片机不同的IO口驱动74HC573驱动共阴极的数码管,有的段不亮
1 个回答
一种简单精确的pic延时方法
21 个回答
谁熟悉PIC的产品发布时间的,帮看看PIC18F47K40啥版本IDE能开发
12 个回答
求AN1078对应的源代码下载地址
5 个回答
PIC单片机应用技巧
4 个回答
相关文章
一种用PIC单片机主时钟驱动的老式挂钟
0个评论
×
关闭
采纳回答
向帮助了您的知道网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
PIC单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
×
付费偷看金额在0.1-10元之间
确定
×
关闭
您已邀请
0
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
【picc18应用笔记:在源程序中设置配置位】
笔者在使用picc18进行基于PIC18F452的软件开发时,发现对于18系列的单片机,手动设置配置位非常麻烦,而且容易出错,所以考虑在源程序中设定配置位,这样编译后,无论是用什么烧写工具,都不需要再进行配置位的设定了。
对于HI-TECH C18 , 配置字的设定通过宏 __CONFIG(n,x)来实现.
宏__CONFIG(n,x)的声明在文件pic18.h中,各位元的声明在对应芯片型号的头文件中.18F452的例程如下
#include pic18.h
The declaration of __CONFIG(n,x) is in pic18.h
The __CONFIG(n,x) directive defines configuration data within is in pic18fxx2.h
__CONFIG(1,RC) ;
__CONFIG(2,PWRTDIS & WDTPS1 & WDTEN ) ;
__CONFIG(4,STVRDIS) ;
void main(void)
{
your code
}
在pic18.h中,__CONFIG(n,x)的声明如下
#define __CONFIG(n, x) asm(tpsect config,class=CONFIG);
asm(global config_word ___mkstr(n));
asm(config_word ___mkstr(n));
asm(torg (___mkstr(n)-1)2);
asm(tdw ___mkstr(x))
部分在pic18.h中的声明大体如下,具体请参考对应的头文件。
Configuration bit values
Config. Register 1
#define OSCSEN 0xDFFF enable oscillator system clock
#define OSCSDIS 0xFFFF
oscilator types
#define RCRA6 0xFFFF RC wOSC2 config as RA6
#define HSPLL 0xFEFF HS wPLL Enabled, Clk Freq = 4xFreq Osc.
#define ECRA6 0xFDFF EC wOSC2 config. as RA6
#define ECDB4 0xFCFF EC wOSC2 as divide by 4 clock output
#define RC 0xFBFF
#define HS 0xFAFF
#define XT 0xF9FF
#define LP 0xF8FF
Config. Register 2
Brown Out reset
#define BOREN 0xFFFF Brown-out reset enable
n代表 Config. Register n, 例如__CONFIG(1,x); 1 代表Config. Register 1, X可为OSCSEN,RC等。
!!!最后还应该注意的是如果在源程序中进行配置位设置,如果使用的软件版本(比如使用picc18
的8.20版本和MPLAB6.30)较低,虽然编译不会有问题,但可能会出现配置位设置混乱,推荐使用pic
c18的8.35版本和MPLAB7.0以上。安装HTSOFT的软件时,也必须保证完全安装,尤其是一定要安装MPLAB_toolsuites工具。
一周热门 更多>