最新日志

发表于:2008-6-27 8:18:32
标签:资料  华为  单片机  硬件  PCB  

0

ZIDDU上的资料(比较全)

华为资料:

File1: http://cn.ziddu.com/download.php?uid=b6uglZ2uZ7Oh4palZrKWlJqiaLGem50%3D6

File2: http://cn.ziddu.com/download.php?uid=aLCdlZyobayemZbzaKqZnJGlbKebm5Y%3D6

File3: http://cn.ziddu.com/download.php?uid=baqalpysaKufnJSls6yZlJyiZbCWlput5

File4: http://cn.ziddu.com/download.php?uid=aa6glZSubaub4palZLKWlJqiZrGcmJs%3D4

包括:华为PCB布线规范.pdf

华为软件编程规范.pdf

华为无线传播理论.pdf

华为硬件工程师手册_全.pdf

下面继续……………………

 

  

点击此处查看原文 >>

系统分类: 资源共享   |    用户分类:    |    来源: 整理

评论(5) | 阅读(44)
发表于:2008-3-16 6:41:43
标签:EDA  

2

EDA技术的概念

EDA技术的概念

EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。

现在对EDA的概念或范畴用得很宽。包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。

EDA设计可分为系统级、电路级和物理实现级。

2 EDA常用软件

EDA工具层出不穷,目前进入我国并具有广泛影响的EDA软件有:multiSIM7(原EWB的最新版本)、PSPICE、OrCAD、PCAD、Protel、Viewlogic、Mentor、Graphics、Synopsys、LSIIogic、Cadence、MicroSim等等。这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同进还可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。

(下面是关于EDA的软件介绍,有兴趣的话,旧看看吧^^^)


下面按主要功能或主要应用场合,分为电路设计与仿真工具、PCB设计软件、IC设计软件、PLD设计工具及其它EDA软件,进行简单介绍。

2.1 电子电路设计与仿真工具

我们大家可能都用过试验板或者其他的东西制作过一些电子制做来进行实践。但是有的时候,我们会发现做出来的东西有很多的问题,事先并没有想到,这样一来就浪费了我们的很多时间和物资。而且增加了产品的开发周期和延续了产品的上市时间从而使产品失去市场竞争优势。有没有能够不动用电烙铁试验板就能知道结果的方法呢?结论是有,这就是电路设计与仿真技术。

说到电子电路设计与仿真工具这项技术,就不能不提到美国,不能不提到他们的飞机设计为什么有很高的效率。以前我国定型一个中型飞机的设计,从草案到详细设计到风洞试验再到最后出图到实际投产,整个周期大概要10年。而美国是1年。为什么会有这样大的差距呢?因为美国在设计时大部分采用的是虚拟仿真技术,把多年积累的各项风洞实验参数都输入电脑,然后通过电脑编程编写出一个虚拟环境的软件,并且使它能够自动套用相关公式和调用长期积累后输入电脑的相关经验参数。这样一来,只要把飞机的外形计数据放入这个虚拟的风洞软件中进行试验,哪里不合理有问题就改动那里,直至最佳效果,效率自然高了,最后只要再在实际环境中测试几次找找不足就可以定型了,从他们的波音747到F16都是采用的这种方法。空气动力学方面的数据由资深专家提供,软件开发商是IBM,飞行器设计工程师只需利用仿真软件在计算机平台上进行各种仿真调试工作即可。同样,他们其他的很多东西都是采用了这样类似的方法,从大到小,从复杂到简单,甚至包括设计家具和作曲,只是具体软件内容不同。其实,他们发明第一代计算机时就是这个目的(当初是为了高效率设计大炮和相关炮弹以及其他计算量大的设计)。

电子电路设计与仿真工具包括SPICE/PSPICE;multiSIM7;Matlab;SystemView;MMICAD LiveWire、Edison、Tina Pro Bright Spark等。下面简单介绍前三个软件。

①SPICE(Simulation Program with Integrated Circuit Emphasis):是由美国加州大学推出的电路分析仿真软件,是20世纪80年代世界上应用最广的电路设计软件,1998年被定为美国国家标准。1984年,美国MicroSim公司推出了基于SPICE的微机版PSPICE(Personal-SPICE)。现在用得较多的是PSPICE6.2,可以说在同类产品中,它是功能最为强大的模拟和数字电路混合仿真EDA软件,在国内普遍使用。最新推出了PSPICE9.1版本。它可以进行各种各样的电路仿真、激励建立、温度与噪声分析、模拟控制、波形输出、数据输出、并在同一窗口内同时显示模拟与数字的仿真结果。无论对哪种器件哪些电路进行仿真,都可以得到精确的仿真结果,并可以自行建立元器件及元器件库。

②multiSIM(EWB的最新版本)软件:是Interactive Image Technologies Ltd在20世纪末推出的电路仿真软件。其最新版本为multiSIM7,目前普遍使用的是multiSIM2001,相对于其它EDA软件,它具有更加形象直观的人机交互界面,特别是其仪器仪表库中的各仪器仪表与操作真实实验中的实际仪器仪表完全没有两样,但它对模数电路的混合仿真功能却毫不逊色,几乎能够100%地仿真出真实电路的结果,并且它在仪器仪表库中还提供了万用表、信号发生器、瓦特表、双踪示波器(对于multiSIM7还具有四踪示波器)、波特仪(相当实际中的扫频仪)、字信号发生器、逻辑分析仪、逻辑转换仪、失真度分析仪、频谱分析仪、网络分析仪和电压表及电流表等仪器仪表。还提供了我们日常常见的各种建模精确的元器件,比如电阻、电容、电感、三极管、二极管、继电器、可控硅、数码管等等。模拟集成电路方面有各种运算放大器、其他常用集成电路。数字电路方面有74系列集成电路、4000系列集成电路、等等还支持自制元器件。MultiSIM7还具有I-V分析仪(相当于真实环境中的晶体管特性图示仪)和Agilent信号发生器、Agilent万用表、Agilent示波器和动态逻辑平笔等。同时它还能进行VHDL仿真和Verilog HDL仿真。

③MATLAB产品族:它们的一大特性是有众多的面向具体应用的工具箱和仿真块,包含了完整的函数集用来对图像信号处理、控制系统设计、神经网络等特殊应用进行分析和设计。它具有数据采集、报告生成和MATLAB语言编程产生独立C/C++代码等功能。MATLAB产品族具有下列功能:数据分析;数值和符号计算、工程与科学绘图;控制系统设计;数字图像信号处理;财务工程;建模、仿真、原型开发;应用开发;图形用户界面设计等。MATLAB产品族被广泛应用于信号与图像处理、控制系统设计、通讯系统仿真等诸多领域。开放式的结构使MATLAB产品族很容易针对特定的需求进行扩充,从而在不断深化对问题的认识同时,提高自身的竞争力。

2.2 PCB设计软件

PCB(Printed-Circuit Board)设计软件种类很多,如Protel、OrCAD、Viewlogic、PowerPCB、Cadence PSD、MentorGraphices的Expedition PCB、Zuken CadStart、Winboard/Windraft/Ivex-SPICE、PCB Studio、TANGO、PCBWizard(与LiveWire配套的PCB制作软件包)、ultiBOARD7(与multiSIM2001配套的PCB制作软件包)等等。

目前在我国用得最多当属Protel,下面仅对此软件作一介绍。

Protel是PROTEL(现为Altium)公司在20世纪80年代末推出的CAD工具,是PCB设计者的首选软件。它较早在国内使用,普及率最高,在很多的大、中专院校的电路专业还专门开设Protel课程,几乎所在的电路公司都要用到它。早期的Protel主要作为印刷板自动布线工具使用,其最新版本为Protel DXP,现在普遍使用的是Protel99SE,它是个完整的全方位电路设计系统,包含了电原理图绘制、模拟电路与数字电路混合信号仿真、多层印刷电路板设计(包含印刷电路板自动布局布线),可编程逻辑器件设计、图表生成、电路表格生成、支持宏操作等功能,并具有Client/Server(客户/服务体系结构), 同时还兼容一些其它设计软件的文件格式,如ORCAD、PSPICE、EXCEL等。使用多层印制线路板的自动布线,可实现高密度PCB的100%布通率。Protel软件功能强大(同时具有电路仿真功能和PLD开发功能)、界面友好、使用方便,但它最具代表性的是电路设计和PCB设计。

2.3 IC设计软件

IC设计工具很多,其中按市场所占份额排行为Cadence、Mentor Graphics和Synopsys。这三家都是ASIC设计领域相当有名的软件供应商。其它公司的软件相对来说使用者较少。中国华大公司也提供ASIC设计软件(熊猫2000);另外近来出名的Avanti公司,是原来在Cadence的几个华人工程师创立的,他们的设计工具可以全面和Cadence公司的工具相抗衡,非常适用于深亚微米的IC设计。下面按用途对IC设计软件作一些介绍。

①设计输入工具

这是任何一种EDA软件必须具备的基本功能。像Cadence的composer,viewlogic的viewdraw,硬件描述语言VHDL、Verilog HDL是主要设计语言,许多设计输入工具都支持HDL(比如说multiSIM等)。另外像Active-HDL和其它的设计输入方法,包括原理和状态机输入方法,设计FPGA/CPLD的工具大都可作为IC设计的输入手段,如Xilinx、Altera等公司提供的开发工具Modelsim FPGA等。

②设计仿真工作

我们使用EDA工具的一个最大好处是可以验证设计是否正确,几乎每个公司的EDA产品都有仿真工具。Verilog-XL、NC-verilog用于Verilog仿真,Leapfrog用于VHDL仿真,Analog Artist用于模拟电路仿真。Viewlogic的仿真器有:viewsim门级电路仿真器,speedwaveVHDL仿真器,VCS-verilog仿真器。Mentor Graphics有其子公司Model Tech出品的VHDL和Verilog双仿真器:Model Sim。Cadence、Synopsys用的是VSS(VHDL仿真器)。现在的趋势是各大EDA公司都逐渐用HDL仿真器作为电路验证的工具。

③综合工具

综合工具可以把HDL变成门级网表。这方面Synopsys工具占有较大的优势,它的Design Compile是作为一个综合的工业标准,它还有另外一个产品叫Behavior Compiler,可以提供更高级的综合。

另外最近美国又出了一个软件叫Ambit,据说比Synopsys的软件更有效,可以综合50万门的电路,速度更快。今年初Ambit被Cadence公司收购,为此Cadence放弃了它原来的综合软件Synergy。随着FPGA设计的规模越来越大,各EDA公司又开发了用于FPGA设计的综合软件,比较有名的有:Synopsys的FPGA Express, Cadence的Synplity, Mentor的Leonardo,这三家的FPGA综合软件占了市场的绝大部分。

④布局和布线

在IC设计的布局布线工具中,Cadence软件是比较强的,它有很多产品,用于标准单元、门阵列已可实现交互布线。最有名的是Cadence spectra,它原来是用于PCB布线的,后来Cadence把它用来作IC的布线。其主要工具有:Cell3,Silicon Ensemble-标准单元布线器;Gate Ensemble-门阵列布线器;Design Planner-布局工具。其它各EDA软件开发公司也提供各自的布局布线工具。

⑤物理验证工具

物理验证工具包括版图设计工具、版图验证工具、版图提取工具等等。这方面Cadence也是很强的,其Dracula、Virtuso、Vampire等物理工具有很多的使用者。

⑥模拟电路仿真器

前面讲的仿真器主要是针对数字电路的,对于模拟电路的仿真工具,普遍使用SPICE,这是唯一的选择。只不过是选择不同公司的SPICE,像MiceoSim的PSPICE、Meta Soft的HSPICE等等。HSPICE现在被Avanti公司收购了。在众多的SPICE中,HSPICE作为IC设计,其模型多,仿真的精度也高。

2.4 PLD设计工具

PLD(Programmable Logic Device)是一种由用户根据需要而自行构造逻辑功能的数字集成电路。目前主要有两大类型:CPLD(Complex PLD)和FPGA(Field Programmable Gate Array)。它们的基本设计方法是借助于EDA软件,用原理图、状态机、布尔表达式、硬件描述语言等方法,生成相应的目标文件,最后用编程器或下载电缆,由目标器件实现。生产PLD的厂家很多,但最有代表性的PLD厂家为Altera、Xilinx和Lattice公司。

PLD的开发工具一般由器件生产厂家提供,但随着器件规模的不断增加,软件的复杂性也随之提高,目前由专门的软件公司与器件生产厂家使用,推出功能强大的设计软件。下面介绍主要器件生产厂家和开发工具。

①ALTERA:20世纪90年代以后发展很快。主要产品有:MAX3000/7000、FELX6K/10K、APEX20K、ACEX1K、Stratix等。其开发工具-MAX+PLUS II是较成功的PLD开发平台,最新又推出了Quartus II开发软件。Altera公司提供较多形式的设计输入手段,绑定第三方VHDL综合工具,如:综合软件FPGA Express、Leonard Spectrum,仿真软件ModelSim。

②ILINX:FPGA的发明者。产品种类较全,主要有:XC9500/4000、Coolrunner(XPLA3)、Spartan、Vertex等系列,其最大的Vertex-II Pro器件已达到800万门。开发软件为Foundation和ISE。通常来说,在欧洲用Xilinx的人多,在日本和亚太地区用ALTERA的人多,在美国则是平分秋色。全球PLD/FPGA产品60%以上是由Altera和Xilinx提供的。可以讲Altera和Xilinx共同决定了PLD技术的发展方向。

③Lattice-Vantis:Lattice是ISP(In-System Programmability)技术的发明者。ISP技术极大地促进了PLD产品的发展,与ALTERA和XILINX相比,其开发工具比Altera和Xilinx略逊一筹。中小规模PLD比较有特色,大规模PLD的竞争力还不够强(Lattice没有基于查找表技术的大规模FPGA),1999年推出可编程模拟器件,1999年收购Vantis(原AMD子公司),成为第三大可编程逻辑器件供应商。2001年12月收购Agere公司(原Lucent微电子部)的FPGA部门。主要产品有ispLSI2000/5000/8000,MACH4/5。

④ACTEL:反熔丝(一次性烧写)PLD的领导者。由于反熔丝PLD抗辐射、耐高低温、功耗低、速度快,所以在军品和宇航级上有较大优势。ALTERA和XILINX则一般不涉足军品和宇航级市场。

⑤Quicklogic:专业PLD/FPGA公司,以一次性反熔丝工艺为主,在中国地区销售量不大。

⑥Lucent:主要特点是有不少用于通讯领域的专用IP核,但PLD/FPGA不是Lucent的主要业务,在中国地区使用的人很少。

⑦ATMEL:中小规模PLD做得不错。ATMEL也做了一些与Altera和Xilinx兼容的片子,但在品质上与原厂家还是有一些差距,在高可靠性产品中使用较少,多用在低端产品上。

⑧Clear Logic:生产与一些著名PLD/FPGA大公司兼容的芯片,这种芯片可将用户的设计一次性固化,不可编程,批量生产时的成本较低。

⑨WSI:生产PSD(单片机可编程外围芯片)产品。这是一种特殊的PLD,如最新的PSD8xx、PSD9xx集成了PLD、EPROM、Flash,并支持ISP(在线编程),集成度高,主要用于配合单片机工作。

顺便提一下:PLD(可编程逻辑器件)是一种可以完全替代74系列及GAL、PLA的新型电路,只要有数字电路基础,会使用计算机,就可以进行PLD的开发。PLD的在线编程能力和强大的开发软件,使工程师可以几天,甚至几分钟内就可完成以往几周才能完成的工作,并可将数百万门的复杂设计集成在一颗芯片内。PLD技术在发达国家已成为电子工程师必备的技术。

2.5 其它EDA软件

①VHDL语言:超高速集成电路硬件描述语言(VHSIC Hardware Deseription Languagt,简称VHDL),是IEEE的一项标准设计语言。它源于美国国防部提出的超高速集成电路(Very High Speed Integrated Circuit,简称VHSIC)计划,是ASIC设计和PLD设计的一种主要输入工具。

②Veriolg HDL:是Verilog公司推出的硬件描述语言,在ASIC设计方面与VHDL语言平分秋色。

③其它EDA软件如专门用于微波电路设计和电力载波工具、PCB制作和工艺流程控制等领域的工具,在此就不作介绍了。

3 EDA的应用

EDA在教学、科研、产品设计与制造等各方面都发挥着巨大的作用。在教学方面,几乎所有理工科(特别是电子信息)类的高校都开设了EDA课程。主要是让学生了解EDA的基本概念和基本原理、掌握用HDL语言编写规范、掌握逻辑综合的理论和算法、使用EDA工具进行电子电路课程的实验验证并从事简单系统的设计。一般学习电路仿真工具(如multiSIM、PSPICE)和PLD开发工具(如Altera/Xilinx的器件结构及开发系统),为今后工作打下基础。

科研方面主要利用电路仿真工具(multiSIM或PSPICE)进行电路设计与仿真;利用虚拟仪器进行产品测试;将CPLD/FPGA器件实际应用到仪器设备中;从事PCB设计和ASIC设计等。

在产品设计与制造方面,包括计算机仿真,产品开发中的EDA工具应用、系统级模拟及测试环境的仿真,生产流水线的EDA技术应用、产品测试等各个环节。如PCB的制作、电子设备的研制与生产、电路板的焊接、ASIC的制作过程等。

从应用领域来看,EDA技术已经渗透到各行各业,如上文所说,包括在机械、电子、通信、航空航航天、化工、矿产、生物、医学、军事等各个领域,都有EDA应用。另外,EDA软件的功能日益强大,原来功能比较单一的软件,现在增加了很多新用途。如AutoCAD软件可用于机械及建筑设计,也扩展到建筑装璜及各类效果图、汽车和飞机的模型、电影特技等领域。

4 EDA技术的发展趋势

从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。

中国EDA市场已渐趋成熟,不过大部分设计工程师面向的是PCB制板和小型ASIC领域,仅有小部分(约11%)的设计人员开发复杂的片上系统器件。为了与台湾和美国的设计工程师形成更有力的竞争,中国的设计队伍有必要引进和学习一些最新的EDA技术。

在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。要大力推进制造业信息化,积极开展计算机辅助设计(CAD)、计算机辅助工程(CAE)、计算机辅助工艺(CAPP)、计算机机辅助制造(CAM)、产品数据管理(PDM)、制造资源计划(MRPII)及企业资源管理(ERP)等。有条件的企业可开展“网络制造”,便于合作设计、合作制造,参与国内和国际竞争。开展“数控化”工程和“数字化”工程。自动化仪表的技术发展趋势的测试技术、控制技术与计算机技术、通信技术进一步融合,形成测量、控制、通信与计算机(M3C)结构。在ASIC和PLD设计方面,向超高速、高密度、低功耗、低电压方面发展。

外设技术与EDA工程相结合的市场前景看好,如组合超大屏幕的相关连接,多屏幕技术也有所发展。

中国自1995年以来加速开发半导体产业,先后建立了几所设计中心,推动系列设计活动以应对亚太地区其它EDA市场的竞争。

在EDA软件开发方面,目前主要集中在美国。但各国也正在努力开发相应的工具。日本、韩国都有ASIC设计工具,但不对外开放。中国华大集成电路设计中心,也提供IC设计软件,但性能不是很强。相信在不久的将来会有更多更好的设计工具在各地开花并结果。据最新统计显示,中国和印度正在成为电子设计自动化领域发展最快的两个市场,年夏合增长率分别达到了50%和30%。

EDA技术发展迅猛,完全可以用日新月异来描述。EDA技术的应用广泛,现在已涉及到各行各业。EDA水平不断提高,设计工具趋于完美的地步。EDA市场日趋成熟,但我国的研发水平仍很有限,尚需迎头赶上。

点击此处查看原文 >>

系统分类: PCB   |    用户分类:    |    来源: 转贴

评论(0) | 阅读(363)
发表于:2008-3-12 17:10:21
标签:资料  

0

评论(28) | 阅读(868)
发表于:2008-3-7 6:14:16
评论(7) | 阅读(1187)
发表于:2008-3-7 6:08:05
评论(6) | 阅读(542)
发表于:2008-3-7 5:39:18
标签:PCB  

0

本人收集的PCB经验

Design-Rules 一般需要重新设置以下几点:
1、安全间距(Routing标签的Clearance Constraint) 
它规定了板上不同网络的走线焊盘过孔等之间必须保持的距离。一般板子可设为0.254mm,较空的板子可设为0.3mm,较密的贴片板子可设为0.2-0.22mm,极少数印板加工厂家的生产能力在0.1-0.15mm,假如能征得他们同意你就能设成此值。0.1mm 以下是绝对禁止的。
2、走线层面和方向(Routing标签的Routing Layers
此处可设置使用的走线层和每层的主要走线方向。请注意贴片的单面板只用顶层,直插型的单面板只用底,但是多层板的电源层不是在这里设置的(可以在Design-Layer Stack Manager中,点顶层或底层后,用Add Plane 添加,用鼠标左键双击后设置,点中本层后用Delete 删除),机械层也不是在这里设置的(可以在Design-Mechanical Layer 中选择所要用到的机械层,并选择是否可视和是否同时在单层显示模式下显示)。
机械层1 一般用于画板子的边框;
机械层3 一般用于画板子上的挡条等机械结构件;
机械层4 一般用于画标尺和注释等,具体可自己用PCB Wizard 中导出一个PCAT结构的板子看一下
3、过孔形状(Routing标签的Routing Via Style
它规定了手工和自动布线时自动产生的过孔的内、外径,均分为最小、最大和首选值,其中首选值是最重要的,下同。
4、走线线宽(Routing标签的Width Constraint
它规定了手工和自动布线时走线的宽度。整个板范围的首选项一般取0.2-0.6mm,另添加一些网络或网络组(Net Class)的线宽设置,如地线、+5 伏电源线、交流电源输入线、功率输出线和电源组等。网络组可以事先在Design-Netlist Manager中定义好,地线一般可选1mm 宽度,各种电源线一般可选0.5-1mm 宽度,印板上线宽和电流的关系大约是每毫米线宽允许通过1安培的电流,具体可参看有关资料。当线径首选值太大使得SMD 焊盘在自动布线无法走通时,它会在进入到SMD 焊盘处自动缩小成最小宽度和焊盘的宽度之间的一段走线,其中Board 为对整个板的线宽约束,它的优先级最低,即布线时首先满足网络和网络组等的线宽约束条件。
5、敷铜连接形状的设置(Manufacturing标签的Polygon Connect Style
建议用Relief Connect 方式导线宽度Conductor Width 0.3-0.5mm 4 根导线45 90 度。其余各项一般可用它原先的缺省值,而象布线的拓朴结构、电源层的间距和连接形状匹配的网络长度等项可根据需要设置。
Tools-Preferences,其中Options 栏的Interactive Routing 处选Push Obstacle (遇到不同网络的走线时推挤其它的走线,Ignore Obstacle为穿过,Avoid Obstacle 为拦断)模式并选中Automatically Remove (自动删除多余的走线)。Defaults 栏的Track Via 等也可改一下,一般不必去动它们。
在不希望有走线的区域内放置FILL 填充层,如散热器和卧放的两脚晶振下方所在布线层,要上锡的在Top Bottom Solder 相应处放FILL

点击此处查看原文 >>

系统分类: PCB   |    用户分类:    |    来源: 整理

评论(12) | 阅读(730)
发表于:2008-3-7 5:31:40
标签:PIC  单片机  

3

本人收集的PIC单片机资料

rar

最全的关于PIC单片机入门宝典

  为了给前一段时间学习PIC16F616型单片机的一个总结和方便大家的交流,我写了这篇关于PIC单片机的学习心得,都是在看了手册和编程调试后用自己的语言组织的,其中有不足或者有疑问的地方希望大家能及时的给予纠正和批评,提出宝贵的意见.

  2.PIC单片机的概述

   PIC16F616是一款14引脚、8位的CMOS单片机.采用精简指令集,仅有35条指令,由于采用了数据总线和指令总线分离的哈佛总线结构,使得除少量指令不是单周期之外,大部分的指令都是单周期指令.这样有利于提高单片机的运行速度和执行效率.

  PIC16F616这款单片机供电电压可以在2V到5.5V之间,内部集成了一个RC振荡器,频率可以配置成8MHZ或者4MHZ,也可以用外部晶振提供时钟.内部集成有AD转换、比较器等硬件模块,还具有上电复位、欠压复位、看门狗、代码保护等功能.三个定时器、PWM发生器等可以由用户编程.下面我来一一介绍关于PIC单片机的这些模块和功能.

  3.存储器

  PIC16F616分为程序存储其和数据存储器,程序存储器的大小是2048words,数据存储器的大小是128bytes.

  程序存储器中0000H的地址为复位地址,当上电或者看门狗计时器等复位的时候,均会导致PC指针指向复位地址.地址0004H为中断地址,当无论发生什么中断的时候,PC指针就会指向此地址.在地址0005H~07FFH可以移植程序.

  数据存储器分为两个部分,分别叫做bank0和bank1,其中bank0的地址范围为:00H-7FH,Bank1的地址范围为80H-FFH.一般的寄存器都放在里面.可以通过寄存器STATUSL里面的RP0位来选择bank0和bank1.

  在编程序的时候要注意的是,当你要操作的寄存器在bank0的时候,先要选择bank0(将寄存器STATUS的RP0位置0),然后再对你所要操作的寄存器进行操作,当你要操作的寄存器在bank1的时候,同理先要选择bank1.

   如果想要定义一些变量,可以在数据存储器20H开始的地址定义,定义的地址范围为20H-7FH.一般这么多就够用了.

  4.PIC的输入输出端口

   在学习这个部分的时候,曾经遇到过一些问题.PIC单片机的引脚不多,大多都是复用引脚,例如AD、IO、比较器、外接晶振等等,所以在配置端口的时候,一定要知道每个功能怎样设置才能实现的,在这一小节中,我要讲的是通用IO口的设置问题.

   PIC16F616有12个IO口,但是有一个引脚(RA3)只能作为输入引脚用,不能用作输出,另外,A口具有电平变化中断的功能,而C口没有,在设计的时候要注意.

  在设置的时候,一般要进行以下几项设置:

(1)设置端口是模拟端口还是数字端口,可以通过寄存器ANSEL来设置.例如你想用AD,就要将相应的引脚设置为模拟输入端口.

(2)如果你选择的是数字端口,接下来就要设置端口的方向,是输入还是输出(RA3除外),可通过寄存器TRISA(A口)或TRISC(C口)来设置.

(3)设置端口的输出电平,可以通过寄存器PORTA(A口)或PORTC(C口)来设置.

  这是对IO口的通用设置,但是这不是全部的设置,接下来的设置要看时A口还是C口了.对于A口,它有几个特殊的功能:内部弱上拉、电平变化中断、RA2/INT引脚的沿中断.如果想要这些功能,就要对相应的寄存器进行设置.

  弱上拉的设置:只有当引脚为输出的时候弱上拉才有效,可以通过寄存器WPUA来设置相应引脚的弱上拉,值得一提的如果开启了弱上拉,会有多余的电流浪费,这样对于低功耗的设计是不可取的,但是如果在进行一些例如键盘电路设计的候,可以开启弱上拉功能,这样就不需要在键盘电路中加上拉电阻了.

  电平变化中断的设置:可以通过寄存器IOCA来设置,但是首先要将相应引脚设置为数字端口且为输入状态.同时要将寄存器INTCON的REIE位设置为1,总中断要允许(置寄存器INTCON的GIE位),如果设置相应引脚有这个功能,当此引脚电平发生的时候,就会产生一个中断,同时一些中断标志位被置上(INTCON的RAIF位被置1),且总中断GIE被置为0.在中断服务程序中,要软件清除RAIF位和重新置GIE位才能继续开启此中断.

   RA2/INT脚的沿中断设置:同样首先要将相应引脚设置为数字端口且为输入状态,设置INTCON的INTF位为1,表示允许int引脚外部中断,寄存器OPTION_REG的INTEGD位可以设置是上升沿中断还是下降沿中断.当发生中断时,INTCON的INTF位被置为1,GIE被清零,在中断服务程序中,要软件清除INTF位和重新置GIE位才能继续开启此中断.

  对于C口,不能产生电平变化中断和沿中断.

  5.定时器

  定时器是单片机的一个很重要的部分,用它可以产生很多不同的定时时间,来满足程序设计的不同需求.PIC16F616有三个定时器,分别是Timer0、Timer1、Timer2.它们的用法不是很相同,下面来分别谈谈这三个定时器的用法和设置问题.

  (1)Timer0

  Timer0是一个八位的计数器,它有一个八位的计数寄存器TMR0,八位的预分频器(与看门狗共用),可以选择内部或者是外部时钟源,有计数器溢出中断的功能.

  Timer0可以作为一个定时器或者计数器来使用,与Timer0有关的寄存器有:TMR0,INTCON,OPTION_REG,TRISA.

  当Timer0作为定时器来使用的时候,要设置OPTION_REG的T0CS位为0,表示用的是内部时钟,每一个指令周期TMR0的值会增加(当没有预分频的时候),当TMR0被赋值的时候,会有两个指令周期的延时.预分频器可以和看门狗共用,可以由OPTION_REG的PSA位来设置,当PSA 为0的时候分频器选择Timer0,当PSA为1的时候分频器选择看门狗.同时,与分频器的分频值可以通过寄存器OPTION_REG来设置,设置的值可以由1:2到1:256.当Timer0的计数器TMR0计数从FFH到00H的时候会产生溢出,同时溢出标志位(INTCON寄存器的T0IF位)会置位(无论Timer0的中断是否开启),如果中断已经开启了(INTCON寄存器的T0IE被置位),那么就会产生溢出中断.T0IF位需要软件对其进行清零.

  当Timer0作为计数器来使用的时候,就要用外部时钟源(OPTION_REG的T0CS置1),每次当引脚T0CK1的沿到来时Timer0的 TMR0会增加1,上升沿和下降沿可以由OPTION_REG的T0SE来设置.中断和Timer0作为定时器使用时一样.在我们编程序的时候,可以用 Timer0进行定时或产生定时信息,下面我来解释定时器的定时时间的计算.假设Timer0用的时钟源是内部的4MHZ,那么每条指令的执行时间就是 1us,设Timer0的预分频系数是1:256,TMR0的初值是6,那么定时时间为:

  256×(256-6)×1us=64ms

   在编程的时候需要注意的是Timer0的中断是不能把单片机从SLEEP的状态唤醒的.

  (2)Timer1

  Timer1是一个十六位的计数器.它有一个计数寄存器对(TMR1H:TMR1L),时钟源也是内外可选的,具有一个2bit的预分频器,可以同步或者异步操作,具有中断功能,但是溢出中断只能在外部时钟、异步的模式才能将单片机从SLEEP中唤醒,Timer1具有捕获/比较功能,还有被一些特殊事件触发功能(ECCP),比较器的输出可以与Timer1的时钟同步.下面来一一介绍这些功能.

  在编程的时候也可以按照这样的步骤来进行.设置寄存器T1CON,时钟源可以选择外部或者内部的时钟源,外部时钟源可以选择LP晶体.Timer1在选择内部时钟时,可以运行在定时器的状态,选择外部时钟的时候,可以运行在定时器或者是计数器状态,工作于计数器状态时可以选择门限是高电平还是低电平计数.这些都可以通过寄存器T1CON来设置.

  以下是T1CON每个位的具体功能:bit1:Timer1是否开启位,当此位设为1时,Timer1开启,设为0时,Timer1关闭;bit2:时钟源选择位,置1时,选择外部时钟(T1CK1引脚的上升沿),此位置0时,选择的是内部时钟,并且和T1ACS(寄存器CM2CON1中)配合,当 T1ACS位为0时,时钟为FOSC/4,当T1ACS位为1时,时钟为FOSC.bit2:T1SYNC:定时器1的外部时钟输入同步位,当 TMR1CS位为1、T1SYNC位为1,定时器1被设置成与外部时钟不同步,T1SYNC位为0时,定时器1被设置成与外部时钟同步模式.Bit3: T1OSCEN:此位为1时Timer1的时钟选择LP,为0时LP晶体被关闭.Bit5-4:T1CKPS:Timer1时钟的预分频系数设置,通过这两位的是指,可以讲Timer1设置成1:1、1:2、1:4、1:8几种分频值.Bit6:TMR1GE:只有当TMR1ON位为1时才有效,当此位为 1时,Timer1计数被Timer1的门限控制,此位为0时,Timer1正常计数.Bit7:T1GINV:此位为1时,Timer1在门限为高时计数,此位为0时,Timer1在门限为低时计数.

  Timer1的中断编程:当Timer1的计数产生溢出的时候,如果Timer1中断允许的话,就会产生中断.中断可以这样设置,Timer1的中断允许位TMR1IE(在PIE1寄存器中)置1,寄存器INTCON的PEIE位置1,同时总中断位GIE(位于寄存器INTCON中)要置为1.当定时器产生中断的时候,会把中断标志T1IF置为1(位于寄存器PIR1中),然后PC指针指向0004H地址.T1IF位必须软件清除.

  (3)Timer2

   Timer2的功能于Timer1有些不同,Timer2时一个八位的计数器,有一个八位的计数寄存器TMR2,Timer2具有以下功能:有两个分频器,一个是前分频器,一个是后分频器.分频可以软件进行设置,另外,Timer2的时钟源是指令时间(FOSC/4),Timer2有一个寄存器 PR2,此寄存器的功能是当TMR2增加到PR2的值时,将产生中断,当然,中断必须允许,然后PR2的值会重新变为00H.下面来介绍Timer2的编程:

   Timer2的控制寄存器T2CON作用是设置Timer2的开启关闭和前后分频的分频系数,寄存器T2CON的TOUTPS<3:0> 位设置后分频系数,可以被设置成1:1~1:16;位TMR2ON为1时,Timer2开启,为0时,Timer2关闭;位T2CKPS<1: 0>可以设置前分频系数,可以被设置成1、4、16.

  Timer2的中断可以这样控制,允许Timer2中断位TMR2IE(位于PIE1寄存器内)被置1时,Timer2中断被允许,被置0时, Timer2中断禁止.寄存器INTCON的PEIE位置1,同时总中断位GIE(位于寄存器INTCON中)置为1.通过上面的设置,Timer2就可以产生中断了.当定时器产生中断的时候,会把中断标志T2IF置为1(位于寄存器PIR1中),然后PC指针指向0004H地址.中断标志位T2IF必须软件清除.

   下面是三个定时器的比较:

唤醒功能

其他功能

定时器Timer0

内部或外部时钟源,有一个预分频器.

定时器、

醒功能.

计数器值溢出时发生中断

预分频器与看门狗共用.

定时器Timer1

内部或外部时钟源,有一个预分频器

定时器、计数器

外部时钟、异步模式时可唤醒CPU

计数器值溢出时发生中断

与比较器模块、

捕获/比较模块共用

定时器Timer2

有前分频器和后分频器

醒功能.

计数器值与预置值相等时发生中断

PWM的产生需要此定时器

  6.AD模块

  PIC16F616有一个十位、八路的AD转换器.其参考电压可以为电源电压VDD,也可以是外部参考电压(VREF引脚),当AD转换完成后可以产生一个中断,此中断可以把单片机从睡眠状态中唤醒.下面来介绍一下关于AD转换的编程方法.

  要使用一个ADC,要做的有一下几件事情:

  (1)设置端口,需要采样模拟信号的端口必须设置为模拟输入状态,如果设置为数字端口,将使转换结果不正确,端口的模拟输入可以由寄存器ANSEL来配置,在讲RA口的时候已经说到了如何配置了.

  (2)通道的选择,有八路外部通道和三路内部通道,可以通过ADCON0寄存器的CHS<3:0>位来设置通道的选择.

  (3)参考电压的选择,参考电压可以是VDD,也可以是外部参考电压,可以通过ADCON0寄存器的VCFG位来设置,当VCFG=0时,参考电压为VDD,当VCFG=1时,参考电压为外部参考电压(来自VREF引脚)

  (4)ADC的转换格式,AD转换后的结果保存在一个寄存器对里面:ADRESH和ADRESL,但是AD转换结果只有十位,设置AD转换格式可以通过设置 ADCON0的ADFM位来选择,当ADFM=1时10位的AD结果的低八位保存在ADRESL内,高两位保存在ADRESH内;当ADFM=0时10位的AD结果的高八位保存在ADRESH内,低两位保存在ADRESL内.

  (5)AD时钟源的选择,寄存器ADCON1专门来设置AD的时钟源,ADCS<2:0>不同组合,可以将AD的时钟源设置为不同的频率,可以为FOSC/2、FOSC/4、FOSC/8、FOSC/16、FOSC/32、FOSC/64和FRC(内部RC).

  (6)AD中断的配置,要使用AD的中断功能,可以先把AD中断使能,ADIE位设置为1(在寄存器PIE1中),PEIE位置1(在INTCON寄存器中),总中断GIE位置1(INTCON寄存器中).

  要开始一个AD转换,首先要使能ADC模块,即把寄存器ADCON0的ADON位置1即可,然后将GO/DONE位(ADCON0中)置1就可以启动AD转换了.

  AD转换需要时间,转换1bit需要Tad的时间,Tad与AD转换的时钟源和VDD有关,转换十位就需要11个Tad时间,如果第一个AD转换完成了,要进行第二个AD转换,必须还要等待2*Tad的时间才能开始.一个AD完成了,GO/DONE位会被置为0,如果中断允许的话,就会产生中断,且中断标志位ADIF(寄存器PIR1内)会被置1,在AD中断程序中就可以把AD转换结果读取出来(读ADRESH和ADRESL),需要时把AD中断标志位清零.

  AD中断可以把单片机从睡眠中唤醒,但是要注意,使用这个功能的时候,时钟源必须设置为FRC,否则的话在睡眠的时候就不会产生AD中断了.

  7.看门狗

   PIC16F616的看门狗WDT其定时计数的脉冲序列由片内独立的RC振荡器产生,所以它不需要外接任何器件就可以工作.而且这个片内RC振荡器与引脚OSC1/CLKIN上的振荡电路无关,即使OSC1和OSC2上的时钟不工作,WDT照样可以监视定时.例如:当PIC16F616在执行 SLEEP指令后,芯片进入休眠状态,CPU不工作,主振荡器也停止工作,但是,WDT照样可监视定时.当WDT超时溢出后,可唤醒芯片继续正常的操作.而在正常操作期间,WDT超时溢出将产生一个复位信号.如果不需要这种监视定时功能,在编程时,可关闭这个功能.

  WDT的定时周期在不加分频器的情况下,其基本定时时间是18ms,这个定时时间还受温度、VDD和不同元器件的工艺参数等的影响.如果需要更长的定时周期,还可以通过软件控制OPTION寄存器(PSA位置1)把预分频器配置给WDT,这个预分频器的最大分频比可达到1∶128.这样就可把定时周期扩大128倍,即达到2.3秒.

  WDT的预分频器是和Timer0所共用的,如果把预分频器配置给WDT,用CLRWDT和SLEEP指令可以同时对WDT和预分频器清零,从而防止计时溢出引起芯片复位.所以在正常情况下,必须在每次计时溢出之前执行一条CLRWDT指令喂一次狗,以避免引起芯片复位.当系统受到严重干扰处于失控状态时,就不可能在每次计时溢出之前执行一条CLRWDT指令,WDT就产生计时溢出,从而引起芯片复位,从失控状态又重新进入正常运行状态.

  当WDT计时溢出时,还会同时清除状态寄存器中的D4位T0,检测T0位即可知道复位是否由于WDT计时溢出引起的.

  8.比较器

  PIC16F616有两个比较器:C1和C2,C1的结构比C2的结构要简单,下面我分别对这两个比较器的用法和特性作简要说明.

  (4)比较器C1:它有一个独立的控制寄存器CM1CON0,通过这个寄存器可以对比较器C1进行一些设置.位C1ON可以控制C1的开启关闭,位C1OE 可以决定比较器的输出是从引脚输出还是内部输出,位C1POL可以选择比较器输出的极性,位C1R选择参考电压是链接到引脚C1IN+还是连接到 C1VREF,C1CH可以选择比较器负端从哪一个引脚输入的,位C1OUT存放了比较器的输出结果.

  (5)比较器C2:它的控制寄存器CM2CON0的操作跟C1一样,但是比较器C2比比较其C1功能要强,因为它与Timer1挂上钩了,C2可以连接到 Timer1,而C1不能.当C2与Timer1相连接的时候,C2的输出可以设置成与Timer1的下降沿锁定,如果Timer1有分频,则比较器的输出与分频后的Timer1下降沿锁定,可以通过相关寄存器来进行设置.

  (6)两个比较还有其它的功能,都能组成滞回比较器,这样就可以对输入电压有一定的滤波功能.两个比较器还可以形成一个SR锁存器.

  由于在本项目中没有选择用比较器这个功能,所以在这里就不详细叙述其细节设置,但要注意的是在不用此模块的时候,要能够保证此模块不能影响其他模块的正常工作,可以把比较器功能关闭(通过寄存器CM1CON0、CM2CON0的CxON位置0来关闭).

  9.捕获/比较/PWM功能

   PIC16F616具有捕获/比较/PWM的模块,下面来简单的介绍一下它们的功能.

  这三个功能需要定时器的支持,捕获和比较功能需要定时器Timer1的支持,PWM功能需要定时器Timer2的支持.都有中断的功能,选择这三种功能的某一种功能可以通过寄存器CCP1CON来设置.CCP1CON的低四位CCP1M<3:0>可以通过不同的组合来开启某项功能和关闭所有功能,当CCP1M<3:0>=0000的时候,捕获/比较/PWM模块的所有功能被禁止.具体其他的不同组合实现的功能,请参考 PIC16F616的用户手册.

  当选择捕获功能时,它可以捕获引脚CCP1发生的事件,同时把16位Timer1的计数值拷贝到CCPR1H:CCPR1L中来,引脚CCP1的发生事件可以指的是下列事件:CCP1引脚的每个上升沿或者下降沿、第四个上升沿、第十六个上升沿.可以通过寄存器CCP1CON的低四位CCP1M< 3:0>来设置是哪一种事件.当事件发生的时候,单片机会置中断标志位CCP1IF(寄存器PIR1上),如果中断被允许(寄存器PEIE的位 CCP1IE=1)的话,就会产生中断,中断标志位CCP1IF需要软件清零.

  选择比较功能时,如果定时器Timer1的计数器值与寄存器CCPR1H:CCPR1L相等的话,将产生下面的事件:把引脚CCP1置1/0、产生一个中断、触发一个事件(把定时器Timer1的技术器TMR1清零,并且如果此时AD是允许的话,它将触发一次AD转换),这些事件可以通过寄存器 CCP1CON的低四位CCP1M<3:0>来设置是哪一种事件.

  当选择PWM功能时,通过设置PR2、T2CON、CCPR1L、CCP1CON这四个寄存器,模块可以产生不同占空比的PWM波形.具体的设置和占空比的计算请参考手册.

  如果我们不需要这些功能,可以把这个模块关闭掉(设置CCP1M<3:0>=0000即可).

  10. 复位、中断和睡眠

  (1)复位

   PIC16F616包括这样的几个复位功能,上电复位(Power-on)、硬件复位、欠压复位(Brown-out)、看门狗复位.

  关于上电复位POR,大家都不陌生,单片机在上电的时候保持复位直到电压能够满足其正常的工作电压,同时你可以通过对CONNFIG(编译器上即可设置)的设置,来开启Power-up Time,这个时间一般为64ms.

   硬件复位可以通过MCLR引脚外界复位电路,即可实现硬件复位(将此引脚接低电平).

  欠压复位这个功能是可选的,也可以直接在编译环境中配置CONFIG寄存器来开启此功能.当此功能开启时,如果单片机在运行的时候,供电电压不足就会引起欠压复位,复位后单片机如果发现供电电压已经达到正常值的时候,会有一个64ms的延时,然后再运行程序.

  关于看门狗的复位在看门狗部分已经说了.这里的一些复位还涉及到一些标志位.这些标志位分布在STATUS和PCON上面.STATUS上有两个位 TO、PD,当标志位TO=1时,表示表示已经操作了上电复位或者是执行了CLRWDT或者SLEEP指令,当TO=0时,表示发生了看门狗复位.当标志位PD=1时表示操作了上电复位或者是执行了CLRWDT指令,当PD=0时,表示执行了SLEEP指令.PCON上有两个标志位是POR和BOR,分别表示的是上电复位和欠压复位标志.具体的可以参看手册.

  (2)中断

PIC16F616包括这样的几个中断源:RA2/INT引脚外部中断、RA端口电平变化中断、定时器Timer0、Timer1、Timer2溢出中断、比较器中断、AD转换中断、捕获/比较/PWM中断.

  这些中断的允许位和中断标志位分别位于INTCON、PIE1、PIR1、IOCA这些寄存器里面,如果要开启相应的中断,就要置相应的中断允许位,开启总中断位(INTCON寄存器的GIE位),还要开启INTCON上的PEIE位(定时器0溢出中断、INT引脚沿中断和RA端口的电平变化中断除外).

  当中断发生的时候,相应的中断标志位就会置起来,同时总中断标志位GIE会被清零,保证在此时间内不会相应其他的中断,然后将当前的PC指针值压栈保存,以用来保证中断能正确的返回到原来执行的地方.然后PC指针指向中断向量地址0004H的地方,所以在编程序的时候,你可以在0004H的地址存一条跳转指令跳到你定义的中断服务程序里面去就可以了.如果在中断的时候想保存一些重要的寄存器的话,可以在中断程序的起始将其保存,然后在中断服务程序的末尾将其恢复即可.

  要注意的是中断标志位不会自己清零,这就需要在编程的时候在软件上对其清零,否则的话,单片机不停的执行中断服务程序.如果你想要在以后的程序中还能产生中断的话,就要把总中断允许位GIE重新置位.

  (3)睡眠

要想让单片机睡眠的方法很简单,执行一条SLEEP指令就可以了,如果看门狗允许的话,WDT就会被清零,但是还保持运行,寄存器STATUS的PD位将会置0,TO位将会置1,IO口还保持原来的状态,在睡眠状态下,不能驱动振荡器了.

  有些事件可以将单片机从睡眠状态中唤醒:看门狗、RA口电平变化中断、外部复位引脚MCLK被拉低、RA2/int引脚沿中断、Timer1中断(必须工作在异步计数模式)、ECCP捕获模式中断、AD转换中断(时钟源必须为内部RC的时候)、比较器输出有变化,这些事件能够将单片机唤醒,其他的事件不能.

  如果某项能唤醒单片机的中断已经开了,当总中断允许位GIE为1的时候,单片机被唤醒后可以进入中断程序中去,而当GIE位为0的时候,单片机也可以被唤醒,但是是执行下面的语句,而不能进入中断程序中去.

  为了保证在执行SLEEP语句后看门狗能够清零,最好在SLEEP语句之前加一句清看门狗的语句CLRWDT.

  相关型号资料:AT25020N-10SC2.7   MUX08FP   IRFI9520G   TS83C51RB2-MC

   11. PIC单片机的一些电特性

  VSS引脚的最大输出电流和VDD最大的输入电流为:90mA;

   每个IO口的输出电流可达25mA,IO口总共输出电流可达90mA;

  每个IO口是由两个保护二极管上下钳位的.当电压超过VDD和VSS的时候,二极管最大能承受20mA的电流;

   IO口输入漏电流最大为±1uA,引脚MCLR和OSC漏电流最大为±5uA;

   PORTA内部弱上拉(若设置了此功能)电流最大为 400uA;

  IO口输出低电平为0.6V,输出高电压为VDD-0.7V;

   12. 编程注意事项及技巧

   在编程调试后和根据网上的一些资料和经验,我注意到了一些在编程的事项和技巧,通过这些设置,可以使系统更加稳定的工作,现在总结如下:

   (1)

  在设置端口的时候,先将端口输出你想要预置的值,以免发生出示状态的不稳定,影响系统正常工作.虽然在当前还没有定义端口是输出还是输入状态,这样做总是好的.

  (2)

  在开启某个中断功能的时候,最好将其中断标志位清一次零.

  (3)

  在设计低功耗的时候,其中有些功能是比较耗电的,如果不用的话,一定要将其关掉.例如将IO口设置成输入并将其悬空,就会很耗电流;RA口设置弱上拉的时候如果引脚接地,电流会很大;欠压复位也是一个耗电大户.而看门狗开启时用的时钟源为内部的RC,不怎么耗电;AD转换耗电也不多.

  (4)

   单片机里面的功能很多,在有些功能不需要的时候,一定要将其关闭(可以放在初始化程序之中),这样一来有利于程序的稳定性;二来可以省电,因为开启某个功能总是要电来驱动的.

   (5)

  如果一个寄存器被多种功能所共用,建议只对相应位进行操作,例如用BCF、BSF、或、异或、与、非等指令,而不要整个的将其赋值,以免弄错了使其他模块受到干扰.

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 整理

评论(4) | 阅读(1079)
发表于:2008-3-7 5:29:00
标签:无标签

0

本人找兼职,有活请进!!!

本人愿意在工作之余做兼职,包括PCB的绘制、AUTOCAD的绘制、电控箱的设计等,工作要求请联系我的QQ:448476138。
有难题请进QQ群咨询:
51332958
9512478

点击此处查看原文 >>

系统分类: 商务交流   |    用户分类:    |    来源: 原创

评论(1) | 阅读(301)
总共 , 当前 /