一乐电子

 找回密码
 请使用微信账号登录和注册会员

QQ登录

只需一步,快速开始

微信扫码登录

手机号码,快捷登录

手机号码,快捷登录

搜索
查看: 3377|回复: 18

[其他综合] 试玩PIC12F675(一) 应用中的几个问题

  [复制链接]
发表于 2011-1-13 08:35 | 显示全部楼层 |阅读模式
本帖最后由 倪大德 于 2011-1-13 08:41 编辑

      一些初涉PIC单片机的朋友,面对林林总总的不同系列各种型号,觉得无从下手,恐怕三分钟热血后,初始的兴趣也会消耗殆尽。其实和AVR51芯片一样,贵在坚持,入门不难。

有幸得到几片PIC12F675DIP8封装。看似简单,但是:“麻雀虽小,五脏齐全”。在12系列中,如果说PIC12F629是基本级的话,PIC12F675即为中档级。(虽只是多了几路AD,但 芯片可玩性大大增加).最近做了些小实验,以后将玩所得,慢慢和大家分享!共同学习!


由于12f675引脚有限,实验板也极其简洁。简简单单的焊上几根线,就可做实验。图一是网友自制的实验板,戏称“最小的单片机实验系统”。


图1.JPG

   

***************提示:以下内容较长,但很重要****************

       个别初玩PIC12F675的朋友。常有这样疑问:不知为什么?下载了已成熟的实验程序,就是运行不了。

于是到处发贴求助。而结果往往无人作答。不知道的想知道,知道的也不告诉你。。。。。!

其实不是不愿意告诉你,有些问题,看似简单,但却是一时很难说得清,道得明。如果你化时间仔细阅读PIC12F675手册。也许就不是问题。。。。。。

玩任何一种单片机,化些时间读一读对应的手册,也许一切问题就会迎刃而解!

     

一. 关于12F675 振荡器校准值

       由于12F675引脚有限,一般应用以选择内部晶振,(可以多二个IO口)但由于工艺原因,各芯片会有差异。实际应用时必须进行校正,工厂在芯片出厂前,已将振荡器校准设置值写入到最后一个程序内存位置。

       由于此校准值是在正常的程序内存区域,而一般下载程序是先中是先擦除再写入,初用12F675如不仔细地阅读手册,就可能擦除芯片的振荡器校准设置值。因此后果很严重,这样内部 4 Mhz 振荡器不会在正确的频率运行。更糟的是,有可能导致程序代码下载后无法正常运行,全面崩溃。

    

   虽有的烧写软件有此保护。

 虽在程序中,可专门写入一保护校验值的代码,但不一定每个编程员的都会这么做!

   

   因此还是要养成习惯:在烧录程序时,一定要先读出本芯片的振荡器校准设置值。以便保存好!

正确的方法是:

1.
在应用前一定要先用软件读出校准设置值。


2.
然后下载程序时将其和该写入的 PIC 的程序数据合并,一并写入芯片中。


3.查找地址 0x3FF 的最后程序内存位置,见下图2


如下面的屏幕转储中的红色带圆圈条目。请记下在此地址的十六进制值。

0X348C
10001100

图2.JPG

如何让每个芯片校准设置值获得永久标记,觉得一些国外的PIC玩家的方法十分可取。


1.先读出校准值。


2.再将其转换为二进制数。


在此示例中 8 C 二进制文件是 10001100

  

312F675刚好是8引脚,以1脚为高位,按顺时针方向做标记,

如图3


图3.JPG


对于一些校验值已擦除的芯片。想恢复可以参照如下方法:


请参阅:http://ledchasers.co.uk/projects/recal/recal.htm#PIC_code_for_recalibration



二.关于PIC12F675的烧录

      现在的版本很多,比较简单的可以可参阅 电子制作10-3期自制

图4.JPG

图5.JPG

三.关于配置位


有的程序没有写配置位,下载后,也是程序运行出错的原因之一。


初涉PIC的朋友经常碰到配置位的问题,总感觉手动设置配置位非常麻烦,而且容易出错。



本人习惯于在源程序中设定配置位,这样编译后,无论是用什么烧写工具,都不需要再进行配置位的设定了。更重要的是便于程序移植!


有关配置位的内容,

可参阅按装文件C:\HT-PIC\include 打开找到的pic12rf675文件。摘录如下。


#define CONFIG_ADDR
0x2007

// Bandgap Calibrations

#define BGHIGH
0x0x3FFF

#define BGLOW
0x0x0FFF

// Protection of data block

#define UNPROTECT
0x3FFF

#define CPD
0x3EFF

// Protection of program code

#define UNPROTECT
0x3FFF

#define PROTECT
0x3F7F

// Brown out detection enable

#define BOREN
0x3FFF

#define BORDIS
0x3FBF

// Memory clear enable

#define MCLREN
0x3FFF

#define MCLRDIS
0x3FDF

// Power up timer enable

#define PWRTDIS

0x3FFF

#define PWRTEN
0x3FEF

// Watchdog timer enable

#define WDTEN
0x3FFF

#define WDTDIS
0x3FF7

// Oscillator configurations

#define RCCLK
0x3FFF

#define RCIO
0x3FFE

#define INTCLK
0x3FFD

#define INTIO
0x3FFC

#define EC
0x3FFB

#define HS
0x3FFA

#define XT
0x3FF9

#define LP
0x3FF8



说明:


1.
以上仅是个人观点,有些资料源于网上。


2.
欢迎大家共同学习,交流!


 3.下次将介绍简洁的电压电流表的制作!

图6.JPG

    




 


   

评分

参与人数 2一乐金币 +20 收起 理由
无锡风 + 10 精品文章 可惜我学不会了 .......上午加到 ...
cosine + 10 好文章!

查看全部评分

发表于 2011-1-13 08:50 | 显示全部楼层
学习了,手上也有几片,继续跟着楼主向前走!
回复

使用道具 举报

发表于 2011-1-13 09:17 | 显示全部楼层
搬个板凳跟着学

评分

参与人数 1一乐金币 +10 收起 理由
无锡风 + 10 精品文章 可惜我学不会了

查看全部评分

回复

使用道具 举报

发表于 2011-1-13 09:24 | 显示全部楼层
谢谢LZ,正想学PIC呢
回复

使用道具 举报

发表于 2011-1-13 10:20 | 显示全部楼层
好!
回复

使用道具 举报

发表于 2011-1-13 10:34 | 显示全部楼层
我也来学习,看来串口线还是得买的
回复

使用道具 举报

发表于 2011-1-13 11:47 | 显示全部楼层
我也来学习,看来串口线还是得买的
dradeng 发表于 2011-1-13 10:34 [url=https://www.yleee.com.cn/images/common/back.gif]https://www.yleee.com.cn/images/common/back.gif[/url]



    这个得是真串口才行,只有2/3线(TXD/RXD)是不行的,呵呵.{:3_472:}
回复

使用道具 举报

发表于 2011-1-13 11:51 | 显示全部楼层
一些初涉PIC单片机的朋友,面对林林总总的不同系列各种型号,觉得无从下手,恐怕三分钟热血后,初始的 ...
倪大德 发表于 2011-1-13 08:35 [url=https://www.yleee.com.cn/images/common/back.gif]https://www.yleee.com.cn/images/common/back.gif[/url]



    不错!好文章.这东西感觉用来作电压表或是充电控制电路最好,I/O少,面积小.用串行驱动的LED数码管(595/164/4094等)就行了.校准值确实是个问题,俺当初在ALL-11上测试时就擦了一片,后来看DATASHEET才发现不能直接擦,呵呵.另外看用的是C,能否提供一个测试使用可靠的PICC?LITE不知道是否支持12F675.这片子当初马兄送了两片,后来在上林片转购了10片,一直放在那里.手头还有5片贴片的683,使用上应该类似,只是那个功耗更低的说.
回复

使用道具 举报

发表于 2011-1-13 12:40 | 显示全部楼层
来看看,了解一下,考拉的单片机7还没有出来吗?
回复

使用道具 举报

发表于 2011-1-13 13:01 | 显示全部楼层
来看看,了解一下,考拉的单片机7还没有出来吗?
itour 发表于 2011-1-13 12:40 [url=https://www.yleee.com.cn/images/common/back.gif]https://www.yleee.com.cn/images/common/back.gif[/url]



    内容都想好了,就是抽不出空写.这次说程序设计的基本概念.{:3_462:}
回复

使用道具 举报

本版积分规则

QQ|一淘宝店|手机版|商店|一乐电子 ( 粤ICP备09076165号 ) 公安备案粤公网安备 44522102000183号

GMT+8, 2025-11-2 23:14 , Processed in 0.040790 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表