⑴ PIC单片机config配置问题
我专门给你编了个PIC16F1823的C程序,用的是PICC9.8。
其配置位的含义,请把这些程序编译后在MPLABIDE的配置位窗口看,就知道了。
程序实现对一个端口的LED闪亮功能,图为在PROTEUS仿真的结果,证明结果是正确的,我用的是PROTEUS7.9的,低的版本没有这个单片机。
#include<pic.h>
//第一个配置设置为:振荡器为内部RC,各种功能(看门狗,上电定时器等)
__CONFIG(0x09E4);
//第二个配置设置为:关闭PLL锁相环,掉电复位电压为2.4V,低电压写使能
__CONFIG(0x3EFF);
#defineLEDRA5
voidDELAY(unsignedint);
voidmain(void)
{ //未对ODSCCON设置,即用默认的500kHz的内部振荡器,指令周期为8us
TRISA5=0;
LED=1;
while(1)
{ DELAY(3);
LED=!LED;
}
}
voidDELAY(unsignedintn)
{ unsignedinti;
for(i=0;i<n;i++)
{ NOP();
NOP();
NOP();
NOP();
}
}
⑵ 那位高人可以提供几个国外的单片机网站啊最好是PIC单片机
学习单片机, 硬件最好是到图书馆去查找资料, 基本上硬件接口都是通用的,
另外,用的最多的是芯片手册.
软件嘛, 学习PIC的教程基本上就够了. 在对芯片编程时, 按照通讯协议和编程格式, 自己写一般就没有多大问题了.
基础知识是最重要的, 别人的东西看见了, 吸收消化了, 才能流进自己的血液里.
⑶ 求一个PIC单片机学习的网站
资料(PDF芯片)查询类网站:
IC/PDF查询 http://www.21icsearch.com
电子元器件查询 http://www.chinadz.com/
IC/PDF查询 http://www.ic37.com/
器件手册 http://www.datasheet5.com/
电子技术文章资源下载类
今日电子 http://www.epc.com.cn
中国电子资源网:http://www.ec66.com
中国电子进修网 http://www.studydz.com
电子设计技术网: http://www.ednchina.com
21IC http://www.21IC.COM
电子工程专辑: http://www.eetchina.com
国际电子商情: http://www.esmchina.com
北极星电子技术网http://www.bjx.com.cn
大虾电子网 http://www.daxia.com/
ET电子技术网 http://www.et-dz.com
老古开发网 http://www.laogu.com
我爱研发网 http://www.52rd.com/
变频技术应用 http://www.chinabianpin.com/
网易电器 http://co.163.com/index_dq.htm
中国IT技术门户 http://develop.csai.cn/
无线电 http://www.radio.com.cn/
电子爱好者 http://www.etuni.com/
PCB信息网 http://web.pcbinfo.net/
中国PCB技术网 http://www.pcbtech.net/
电子论坛
电子论坛 http://www.ecbbs.com/
21IC社区 http://bbs.21ic.com
综合电子论坛 http://www.avrw.com/bbs/
电子产品世界论坛 http://forum.eepw.com.cn
中电网技术论坛 http://bbs.eccn.com/
中国电子进修论坛:http://bbs.studydz.com
光电论坛 http://www.oecr.com/bbs/
大虾电子论坛 http://www.daxia.com/bibis/
电子工程世界论坛 http://bbs.eeworld.com.cn
国际电子技术论坛 http://bbs.elec.cc/
伟纳单片机论坛 http://www.willar.com/forum.asp
中国PCB论坛 http://www.pcbbbs.com/index.htm
家电论坛 http://www.jd-bbs.com
广播论坛 http://bbs.leowood.net
EDA专业论坛 http://www.edacn.net/bbs/
研发BBS http://www.52rd.com/bbs/
电子工程博客
中国电子工程博客 http://www.mcublog.com/blog
21IC博客 http://blog.21ic.com
工控博客 http://blog.gkong.com/
电源网博客 http://www.dianyuan.com/blog/
EDA博客 http://www.ednchina.com/blog
中国电子网博客 http://blog.electron.cn
电子人博客 http://www.dianziren.com
中国子设计网博客 http://www.cediy.com
中电网博客 http://blog.eccn.com/
进修博客 http://www.studydz.com/html/blog.html
工控博客 http://blog.gkong.com
电路图
电子电路图网: http://www.cndzz.com
电路图 http://circuit.eeworld.com.cn/
单片机类
单片机平凡网 http://www.mcustudio.com
单片机 http://www.8951.com/
AVR单片机 http://www.avrvi.com/
周立功单片机 http://www.zlgmcu.com/home.asp
晶控电子 http://www.hificat.com/
PIC学习网: http://www.pic16.com
嵌入式技术网 http://www.icembed.com/
DSP专业资讯网 http://dsp.blueidea.com/
⑷ pic 单片机 参考文献
PIC8位单片机的基本组成
PIC系列8位单片机为适应各种不同的用途,有多种型号可供选用。但是,尽管PIC单片机有不同的档次和型号,但其最基本的组成则大同小异。因此,在这里先从型号PIC16F84的单片机入手,讨论其基本组成。PIC16F84是双列直插式(DIP)塑料封装,最大时钟频率可达4MHz。现为Microchip公司的独家产品,关于其具体技术指标,可查阅该公司的产品手册,或在网址www.microchip.com上查找。
PIC16F84单片机的引脚排列可参阅本期本版的16F8X系列简介一文。本文的附图是该器件的主要组成部分。PIC16F84虽然体积不大,但仍然是一个完整的计算机,它有一个中央处理器(CPU)、程序存储器(ROM)、数据寄存器(RAM)和两个输入/输出口(I/O口)。
和其它品种的单片机一样,CPU是此单片机的“首脑”,它从程序存储器中读取和执行指令。在取指和执行时,还可同时对数据寄存器进行取数(前已介绍PIC16F84采用哈佛结构)。由附图可明显看出,程序存储器和数据存储器各有一条总线与CPU相连。有些CPU将CPU内部的寄存器与其外部的RAM是分开管理的,但PIC单片机不是这样,它的通用数据RAM也归为寄存器,称为File寄存器。在PC16F84中,有68个字节的通用RAM,其地址为0CH~4FH。
除了通用数据寄存器外,还有一些专用寄存器,其中最常用的工作寄存器为“W寄存器”。CPU将工作数据存放在W寄存器中。寄存器W的作用与其它单片机中的“累加器A”相似。此外,还有几个专用寄存器,它们分别以某种方式控制PIC的运作。
PIC16F84的程序存储器是由Flash(闪速)EPROM构成,它可用电来记录和擦除,而在断电时,仍可保留其内容。PIC单片机有些型号的程序存储器用的是EPROM,需要用紫外线来擦除;还有一些型号是一次性可编程(OTP)的产品(一经编程便不能再擦除)。
PIC16F84有两个输入/输出口,即A口和B口。每个口的每个引脚可单独设定为输入或输出。各个口的位是从0开始编号的。当A口为输出方式时,其第4位(即RA4)为开路集电极(或开路漏极)输出,而B口及A口其它各位为常规的全CMOS驱动电路。这些功能必须注意,否则会在编程时出错。CPU对每个端口都按一个字节8位来处理,但A口只有5位引脚。
PIC输入与COMS兼容,所以PIC输出可驱动TTL或CMOS逻辑芯片。每个输出引脚可以流出或吸入20mA电流,即使一次只用了一个引脚亦是如此。
摘 要:在介绍空调室内机控制器功能的基础上,从软件的规划着手,详细介绍了室内机软件的总体设计过程、详细设计过程以及编码的实现,并在此基础上重点给出了空调室内机运行模式的特点和结合这些特点如何用MPLAB集成开发环境去实现各运行模式。
关键词:空调;控制器;单片机;软件设计
单片机软件实现是单片机系统应用的重点,他是在硬件设计基础上实现程序设计的重要环节。单片机程序设计一般包括以下几个步骤:软件规划、流程图编制、代码编写。由于单片机系统具有软硬件紧密结合的特点,因此在基于某种单片机系统的软件开发时,应充分了解该系统实现的硬件环境,同时也应该在系统设计与硬件设计阶段,对软件设计有一个大体的规划。因此,本文在介绍室内机控制器功能的基础上,重点讨论如何用软件实现该室内机的功能。
一:PIC16C71的问题和对策
问题1:在芯片进入低功耗睡眠模式 (SLEEP MODE)后,其振荡脚将处于浮态,这将使芯片的睡眠功耗上升,比原手册中的指标高了10μA以上。
对策:在振荡脚OSC1和地 (GND)之间加一10MΩ电阻可防止OSC1进入浮态,且不会影响正常振荡。
问题2:RA口方向寄存器TRISA目前只是一个4位寄存器,对应于RA0~RA3,并非手册中所言是8位寄存器,对应于RA0~RA4,即RA4并没有相应的输入/输出方向控制位,它是一个具有开极输出,施密特输入I/O脚。
对策:避免使用对RA口进行读-修改-写指令(如BCF RA, BSF RA),以免非意愿地改变RA4的输入/输出状态。对于RA口的操作应采用寄存器的操作方式(MOVWF RA)。
问题3:当CPU 正在执行一条对INTCON寄存器进行读-修改-写指令时,如果发生中断请求,则读中断例程会被执行二次。这是因为当中断请求发生后INTCON寄存器中的GIE位会被硬件自动清零(屏蔽所有中断),并且程序转入中断例程入口(0004H)。当GIE位被清零后,如果这时正好CPU在执行一条对 INTCON的读-修改-写指令(如BSF INTCON等),则 GIE位还会被写回操作重新置1,这样会造成CPU二次进入中断例程。
对策:如果在程序中需对INTCON的某一中断允许位进行修改,则应事先置GIE=0
,修改完成后再恢复GIE=1。
…………..
BCF INTCON, GIE
BSF INTCON, ×××
BSF INTCON, GIE
…………..
图1
问题4:当芯片电压VDD加电上升时间大于100μs时,电源上电复位电路POR和电源上电延时器PWRT可能不能起正常的作用,而使芯片的复位出现不正常(即PC≠复位地址)。一般在这种情况下建议不要采用PWRT。
对策:如果VDD上升时间很长,此芯片一般需较长的电源上电延时,可靠的电源上电延时方法如图1所示,在MCLR端外接复位电路。
问题5:如果在A/D转换中用RA3作为参考电压输入,则最大满量程误差(NFS)要大于手册中的指标。实际情况如表1所示。
表1 A/D满量程误差表
VREF源
(5.12V) 满量程误差
(NFS)
VDD <±1 LSb
RA3 <±2.5 LSb
二:PIC16C84的问题和对策
问题1:PIC16C84的内部的E2PROM数据存储器的E/W周期偶尔会超出最大值(10ms)。
对策:在程序中应该用EECON1寄存器中的WR位来判断写周期的完成,或是启用“写周期完成中断”功能,这两种方法可保证写入完成。
问题2:VDD和振荡频率的关系如表2所示。
VDD 振荡方式 最高频率
2V-3V RC, LP 2MHZ,200MHZ
3V-6V RC,XT,LP 4MHZ,200MHZ
4.5V-5.5V HS 10MHZ