当前位置:首页 > at89c2051
  • 基于AT89C2051单片机的VCN-MIO智能节点模板电路设计

    0.引言 基于具有三个CPU且固化了LonTalk通信协议的神经元(Neuron)芯片的智能节点模板,由于Neuron芯片是八位处理器,而且只提供了11个通用I/O口,并采用了基于事件巡检的软件调度机制,故其控制功能相对较弱,使它无法完成实时性高的多进程、多任务的并行处理,不能满足采集量和控制量要求较多的多现场设备管控的高要求,且性价比较低。要满足这种高要求,就要减少Neuron芯片在外部事件上的开销,让其充分发挥它在通讯组网上的优越性,能使现场设备之间快速地交换信息,满足系统实时监控的要求;而对于提高网络节点的测控能力,必须另择门路。嵌入控制功能强、物美价廉的单片机,专门完成多节点的智能测控,构成一种基于AT89C2051单片机的VCN-MIO(多I/O)智能节点模板,不失为一种上乘的较佳选择,本文介绍它的电路设计。 1.VCN-MIO智能节点模板的总体设计 VCN-MIO智能节点模板,以包含Neuron芯片在内的TP/FT-10F闪控模块和AT89C2051单片机为核心,采用标准的控制网络协议LonTalk,实现了真正的对等层点到点通信的分布式控制网络。其总体设计如图1所示。图中,A为8路AI、6路DO;B为网络、直流电压与交流源接口;C、D、E分别为扩充模块的I/O端口,其功能由扩充I/O模块定义,可以根据工程实际需求灵活配置。   图1 VCN-MIO智能节点模板总体设计 (*中国高等教育学会“十一五”教育科学规划课题(批准号:06AIP0090046);江苏省教育科学“十一五”规划2006年度课题(立项编号:179); 山东省教育科学“十一五”规划2006年度课题(立项编号:115GG41); 黑龙江省教育科学“十一五”规划2006年度课题(批准编号:HGG027);黑龙江省教育厅2006年科学技术研究计划项目(项目编号:11513037);朱静(1966-),女,江苏淮安人,副教授,高工。研究方向:机电工程控制) 2.TP/FT-10F 主控核心模块电路设计 主控制模块提供了一种简单、有效的方法将LonWorks技术运用到任何控制系统中。本设计控制模块存储器采用 FLASH EPROM,它能够在掉电的情况下保证数据不丢失,同时在上电的情况下还能够对它进行可反复擦写1000次的数据写操作,在FLASH EPROM中,ATMEL公司的AT89C512 与MC143150 的时序配合最为合适,存储空间以64K为首选。收发器选用 FTT-10A,它在未加电时呈现高阻状态,不会影响网络通信。FTT-10A 与神经元芯片3150的接口电路如图2所示。 图2中,Cl 是静态放电电容,在需要的情况下,要尽可能耐高压,电容值偏小,如 1000pF;C2 是供电电源的解耦电容,通常选用0.1uF/5V解藕电容;C3、C4为DC模块电容,取值为22uF/50V;二极管为电容暂态限幅,保证收发器静态放电安全可靠,建议使用 IN4148或 BAV99。图3所示控制模块的左侧18插脚分别与神经元芯片的11个I/O、RESET、SERVICE、电源及接地引脚等直接相连,右侧6个插脚与图2的Net1、Net2直接相连。   图2 FTT-10A 与神经元芯片3150的接口电路   图3 TP/FT-10F控制模块结构图 3 VCN-MIO底板与扩展模块的电路设计 3.1单片机AT89C2051与神经元芯片MC143150的接口电路设计 底板的结构设计用来排列核心模块和扩展模块,并给各个扩展模块提供电源,同时底板又是一个8路AI/6路DO的基础板。核心模块和扩展模块、核心模块与底座的通信即神经元芯片与单片机AT89C2051芯片通信采用的是SPI方式,如图4所示,由于神经元芯片的IO口不多,故选用串行方式。SPI接口是一种同步全双工串行外围接口,突出优点是在使用最少的微控制器引脚的前提下,实现相对高速的短程通信。神经元芯片提供Neurowire对象实现SPI方式通信,IO8、IO9、IO10分别是同步时钟、数据输出、输入;IO0-IO7任意一个可作为片选。   图4单片机AT89C2051与神经元芯片MC143150的接口电路 3.2输入输出接口电路设计 数字量输出模块采用达林顿阵列ULN2003集电极开路输出,最大电压50V,最大吸收峰值电流500mA,最大压降1.2V。但ULN2003芯片功耗为:PD=(最大结温-工作温度)/73。 当最大结温取150℃,工作温度取40℃时,PD=1.5W,建议不要超过1W。由于每块达林顿阵列ULN2003用了5路,即每路0.2W,当平均压降取1V时,每路额定吸收电流则仅为200mA。输入可采用干触点输入或者电压输入。为了简化电路和电源,采用二极管隔离方式。干触点接通时要求接触电阻不大于500Ω,响应时间可达2ms,通过触点的电流不大于1mA;干触点断开时,触点的电压不大于5V,要求触点断开电阻不小于30KΩ。电压输入,高电平+3V~+30V,低电平0~+1V,脉冲响应时间可达2ms。数字量输入输出接口电路如图5所示。   图5 数字量输入输出接口电路 模拟信号部分电路相对复杂,针对交流输入和直流输入分别设计了不同的检测滤波电路。图6为模拟信号采集电路,适用于直流电压、电流信号输入,可通过软件调整量程。AD7705是AD公司出品的适用于低频测量仪器的AD转换器。它能将从传感器接收到的很弱的输入信号直接转换成串行数字信号输出,而无需外部仪表放大器。采用Σ-Δ的ADC,实现16位无误码的良好性能,片内可编程放大器可设置输入信号增益。   图6 模拟信号采集电路 图7为模拟量输出电路,DAC7513是低功耗、单信道、12位缓冲电压输出D/A转换器(DAC)。芯片内含精密输出放大器,使(rail-to-rail)轨对轨输出成为可能。它采用通用三线串行接口,操作时钟频率高达30MHz,与标准接口兼容。DAC7513集成了上电复位电路,上电时输出电压为0V并保留此状态直到产生对器件有效的写,包含掉电特性,在结束串口访问后,电流消耗可降为200nA(5V)。DAC7513的功耗为0.5mW(5V),掉电模式均降为1μW。   图7 模拟量输出电路 4 节点故障诊断和抗干扰设计 4.1 故障诊断策略流程 在节点开发过程中,故障的出现是不可避免的。在出现故障后能迅速的诊断故障所在,并且及时地进行修正,是每个开发人员面临的共同任务。而在故障的诊断中,具有一个好的策略流程,能有效的指导开发人员有顺序的有逻辑的进行故障定位。图8便是一个基本完整的策略流程图。   图8 节点故障诊断流程 4.2 电磁抗干扰设计 对于系统板上的数字芯片,由于3150 运行的工作频率大概为10MHz,工作频率高,高速跳变电流会产生较大的阻抗噪声。为了抑制这种噪声的影响,需要在芯片的电源引脚和接地引脚之间添加去耦电容,以通过电容的充放电来稳定电流量;在信号传输频率高的地方,尽量使用小的解耦电容。在电路板规划的时候,采用四层电路板设计方案,可以减少电磁干扰;在电路板布线时,应尽量缩短存储芯片的数据线、地址线及控制线的走线距离,以减少对地电容;要保持多条地址线之间走线距离的一致性,否则各线会因走线距离不同而造成较大的阻抗差异,使到达终端的地址信号波形相差过大,最终导致控制信息失效。此外,数字芯片的未用输入端不应处于浮空状态,而应将其接入高电平,以防止电磁干扰窜入开路的输入端,引起逻辑电路的误动作。 4.3 静态放电(ESD)影响处理 ESD是在电子应用中经常遇到的问题。减少ESD带来的影响通常有两种解决的办法。首先,把敏感设备用电磁套包装起来,使ESD不能到达敏感设备。接地可以为各电路的工作提供基准电位,但同时也为不同电路的噪声信号提供了一条耦合途径。由于本系统板上既具有模拟通信接口、A/D 转换等模拟电路,也具有存储系统等数字电路,因而采取了模拟、数字电路单元内部分别接模拟地和数字地,最后再将两条地线接至一点的措施。这样便在最大程度上降低了两种电路间地线的公共阻抗,减少了两种电路间的噪声信号的互扰。 5 结语 本文设计了基于AT89C2051单片机的VCN-MIO智能节点模板结电路设计,单片机作为主处理器负责数据采集处理部分的工作,而Neuron芯片专门负责通信功能。这样处理的最大好处是提高了数据处理的能力,提升了节点的性能。现场的信号主要是数字量和模拟量两种,故针对每种信号的特点分别设计了输入输出电路,值得强调的是VCN-MIO这种节点的结构安排,即一个核心控制模块配带一些扩展模块,端口的数量可以灵活配置,端口的形式也可以灵活配置。目前已开发出具有44路I/O节点的高性能智能模板,并已将其应用于第十届“挑战杯”全国大学生课外学术科技竞赛作品“现代化立体车库的远程智能网络管控系统”制作,效果显著。实验表明,该多I/O智能节点模板的智能节点数大大增多;通信、控制调度、实时性、可靠性大大增强;性价比大大提高;能够满足目前现代工业过程控制领域复杂测控系统的高要求。

    时间:2019-08-11 关键词: at89c2051 单片机 智能节点 vcn-mio

  • AT89C2051多路舵机控制电路详解

    舵机是一种位置伺服的驱动器。它接收一定的控制信号,输出一定的角度,适用于那些需要角度不断变化并可以保持的控制系统。在微机电系统和航模中,它是一个基本的输出执行机构。以FUTABA-S3003型舵机为例,图1是FUFABA-S3003型舵机的内部电路。 舵机的工作原理是:PWM信号由接收通道进入信号解调电路BA66881。的12脚进行解调,获得一个直流偏置电压。该直流偏置电压与电位器的电压比较,获得电压差由BA6688的3脚输出。该输出送人电机驱动集成电路BA6686,以驱动电机正反转。当电机转速一定时,通过级联减速齿轮带动电位器R。,旋转,直到电压差为O,电机停止转动。舵机的控制信号是PWM信号,利用占空比的变化改变舵机的位置。   舵机的控制方法 电源线和地线用于提供舵机内部的直流电机和控制线路所需的能源.电压通常介于4~6V,一般取5V。注意,给舵机供电电源应能提供足够的功率。控制线的输入是一个宽度可调的周期性方波脉冲信号,方波脉冲信号的周期为20 ms(即频率为50 Hz)。当方波的脉冲宽度改变时,舵机转轴的角度发生改变,角度变化与脉冲宽度的变化成正比。某型舵机的输出轴转角与输入信号的脉冲宽度之间的关系可用围 3来表示。   舵机控制器硬件电路设计 从上述舵机转角的控制方法可看出,舵机的控制信号实质是一个可嗣宽度的方波信号(PWM)。该方波信号可由FPGA、模拟电路或单片机来产生。采用FPGA成本较高,用模拟电路来实现则电路较复杂,不适合作多路输出。一般采用单片机作舵机的控制器。目前采用单片机做舵机控制器的方案比较多,可以利用单片机的定时器中断实现PWM。该方案将20ms的周期信号分为两次定时中断来完成:一次定时实现高电平定时Th;一次定时实现低电平定时T1。Th、T1的时间值随脉冲宽度的变换而变化,但,Th+T1=20ms。该方法的优点是,PWM信号完全由单片机内部定时器的中断来实现,不需要添加外围硬件。缺点是一个周期中的PWM信号要分两次中断来完成,两次中断的定时值计算较麻烦;为了满足20ms的周期,单片机晶振的频率要降低;不能实现多路输出。也可以采用单片机+8253计数器的实现方案。该方案由单片机产生计数脉冲(或外部电路产生计数脉冲)提供给8253进行计数,由单片机给出8253的计数比较值来改变输出脉宽。该方案的优点是可以实现多路输出,软件设计较简单;缺点是要添加l片8253计数器,增加了硬件成本。本文在综合上述两个单片机舵机控制方案基础上,提出了一个新的设计方案,如图4所示。   该方案的舵机控制器以AT89C2051($0.5940)单片机为核心,555构成的振荡器作为定时基准,单片机通过对555振荡器产生的脉冲信号进行计数来产生PWM信号。该控制器中单片机可以产生8个通道的PWM信号,分别由AT89C2051的P1.0~Pl.7(12~19引脚)端口输出。输出的8 路PWM信号通过光耦隔离传送到下一级电路中。因为信号通过光耦传送过程中进行了反相,因此从光耦出来的信号必须再经过反相器进行反相。方波信号经过光耦传输后,前沿和后沿会发生畸变,因此反相器采用CD40106($0.1125)施密特反相器对光耦传输过来的信号进行整形,产生标准的PWM方波信号。笔者在实验过程中发现,舵机在运行过程中要从电源吸纳较大的电流,若舵机与单片机控制器共用一个电源,则舵机会对单片机产生较大的干扰。因此,舵机与单片机控制器采用两个电源供电,两者不共地,通过光耦来隔离,并且给舵机供电的电源最好采用输出功率较大的开关电源。该舵机控制器占用单片机的个SCI串口。串口用于接收上位机传送过来的控制命令,以调节每一个通道输出信号的脉冲宽度。MAX232($2.0686)为电平转换器,将上位机的RS232($780.5000)电平转换成TTL电平。 实现多路PWM信号的原理   在模拟电路中,PWM脉冲信号可以通过直流电平与锯齿波信号比较来得到。在单片机中,锯齿波可以通过对整型变量加1操作来实现,如图5所示。假定单片机程序中设置一整型变量SawVal,其值变化范围为O~N。555振荡电路产生的外部计数时钟信号输入到AT89C2051的INTO脚。每当在外部计数时钟脉冲的下降沿,单片机产生外部中断,执行外部中断INT0的中断服务程序。每产生一次外部中断,对SawVal执行一次加1操作,若SawVal已达到最大值N,则对SawVal清O。SawVal值的变化规律相当于锯齿波,如图5所示。若在单片机程序中设置另一整型变量DutyVal,其值的变化范围为 O~N。每当在SawVal清0时,DulyVal从上位机发送的控制命令中读入脉冲宽度系数值,例如为H(0≤H≤N)。若 DutyVal≥SawVal,则对应端口输出高电平;若DutyVal《Sawval,则对应端口输出低电平。从图5中可看出,若改变 DutyVal的值,则对应端口输出脉冲的宽度发生变化,但输出脉冲的频率不变,此即为PWM波形。

    时间:2019-07-23 关键词: at89c2051 控制电路 多路舵机

  • 基于AT89C2051的步进电机驱动器系统电路原理

    步进电机驱动器系统电路原理图 AT89C2051将控制脉冲从P1口的P1.4~P1.7输出,经74LS14反相后进入9014,经9014放大后控制光电开关,光电隔离后,由功率管TIP122将脉冲信号进行电压和电流放大,驱动步进电机的各相绕组。使步进电机随着不同的脉冲信号分别作正转、反转、加速、减速和停止等动作。图中L1为步进电机的一相绕组。AT89C2051选用频率22MHz的晶振,选用较高晶振的目的是为了在方式2下尽量减小AT89C2051对上位机脉冲信号周期的影响。 图中的RL1~RL4为绕组内阻,50Ω电阻是一外接电阻,起限流作用,也是一个改善回路时间常数的元件。D1~D4为续流二极管,使电机绕组产生的反电动势通过续流二极管(D1~D4)而衰减掉,从而保护了功率管TIP122不受损坏。 在50Ω外接电阻上并联一个200μF电容,可以改善注入步进电机绕组的电流脉冲前沿,提高了步进电机的高频性能。与续流二极管串联的200Ω电阻可减小回路的放电时间常数,使绕组中电流脉冲的后沿变陡,电流下降时间变小,也起到提高高频工作性能的作用。

    时间:2019-07-22 关键词: at89c2051 步进电机 驱动器系统

  • 采用单片机AT89C2051的小功率BJT管脚管型自动判别电路

    本设计采用单片机AT89C2051 作为中心控制单元,设计出了自动判别三极管管脚、类型的电路。该电路能迅速自动识别常见中小功率三极管的管型和管脚,并由相应的指示电路显示出判断结果。电路相对较简单,测试方便、快捷,测试结果准确,造价较低,功能扩展性强,升级方便。 引言 在电子技术中,三极管是使用极其普遍的一种元器件,三级管的参数与许多电参量的测量方案、测量结果都有十分密切的关系,因此,在电子设计中,三极管的管脚、类型的判断和测量非常重要。测量三极管管脚的方法有多种,其中实验室常用的是利用万用表和三极管各管脚的特点进行测量,但由于三极管各个引脚间的电压、电流关系复杂,且三极管本身体积较小,给测量带来很大不便,而目前市场上还没有对三极管管脚、类型自动判别的装置。因此,设计出一款能够自动判别三极管管脚、类型的电路显得尤为重要。 1 硬件电路组成原理 根据目前常用三极管的类型及管脚排列方式,设计的自动判别电路包含中心控制单元、转换电路、检测放大电路和显示电路四个部分,如图1 所示,其中用AT89C2051 作为中心控制单元。   2 硬件电路设计 图2 所示为三极管管脚类型自动判别硬件电路原理图, 该硬件电路主要包括单片机AT89C2051、反相器CD4069、光电耦合器4N25、74LS06、74LS07、若干电阻和电容等元器件。   图2 判别电路原理图 首先由单片机的P3.0~P3.2 口送出三位二进制码(高低不同的电平),分别送至三极管的1、2、3号引脚。对于不同的三极管,在单片机送出不同的编码时,其1、2、3 号引脚上的电流方向不同,有流入和流出两种情况,用两只光电耦合器反向并联来检测哪个方向上有电流通过,此时三位二进制码变成六位二进制码。将检测到的来自光电耦合器的电信号进行放大,由于此时输出的信号并非标准的高低电平,不能直接被单片机识别,相位也不符合要求,故加一级反相器CD4069 进行反相,然后将反相器输出的标准的六位二进制码送至单片机的P1.0~P1.5 口。单片机根据从P1 口读出的数据与单片机内部预先写入的数据进行比较,当满足相应的条件时从P3.3~P3.7 口输出检测结果,最后用发光二极管来显示对应的三极管类型。 3 软件设计 由于常用的中小功率三极管中NPN 的三极管管脚排列顺序有EBC、ECB、BCE 三种(有极少数例外,可忽略不计),而PNP 的只有EBC 一种排列顺序。所以,按照此规律进行软件的编写。总体编程思想是在各种不同管脚排列顺序的三极管三个管脚上加上不同电压,测试其电流情况并将其转化为二进制码。将这些二进制码写入单片机,外部输入的数据与单片机内部的二进制码进行比较,如果读入数据与内部事先写入的某个数据相等,则所测的三极管就为这个数据所对应的三极管的管型和管脚,然后用对应的发光二极管点亮指示出管型、管脚。 软件主程序流程图如图3 所示。   对应的程序为: ORG 0000H AJMP MAIN ORG 0030H MAIN: MOV A,#00H EBC: MOV P3,#0F8H MOV P3,#0F9H ACALL DEL1 MOV P1,#0FFH MOV A,P1 CJNE A,#0E9H,BEC S1: MOV P3,#0F4H AJMP S1 BEC: MOV A,#00H MOV P3,#0F8H MOV P3,#0F9H ACALL DEL1 MOV P1,#0FFH MOV A,P1 CJNE A,#0E1H,ECB S2: MOV P3,#0ECH AJMP S2 ECB: MOV A,#00H MOV P3,#0F8H MOV P3,#0FDH ACALL DEL1 MOV P1,#0FFH MOV A,P1 CJNE A,#0D9H,EBC1 S3: MOV P3,#0DDH AJMP S3 EBC1: MOV A,#00H MOV P3,#0F8H MOV P3,#0FEH ACALL DEL1 MOV P1,#0FFH MOV A,P1 CJNE A,#0D6H,E S4: MOV P3,#7BH AJMP S4 E: MOV P3,#00H ACALL DEL1 MOV P3,#0F8H ACALL DEL1 AJMP E DEL1: MOV R5,#01H D1: MOV R6,#0FFH D2: MOV R7,#0FFH D3: DJNZ R7,D3 DJNZ R6,D2 DJNZ R5,D1 RET END 图4 所示为制作的PCB 板图,实物制作成功后,取一只三极管,将管脚按1、2、3 顺序插入产品的测试孔中,保证接触良好,然后按下电源键,系统自动复位后运行,由LED 指示出所测三极管对应的管型和管脚。LED 灯的顺序与管脚管型是一一对应的,若左边第一只LED 灯亮则所测三极管为NPN型,管脚排列顺序为BEC;若左边第二只LED 灯亮则所测三极管为PNP 型,管脚排列顺序为EBC;若左边第三只LED 灯亮则所测三极管为NPN 型,管脚排列顺序为ECB;若左边第四只LED 灯亮则所测三极管为NPN 型,管脚排列顺序为EBC;若四只LED 灯同时闪烁则可能是被测三极管已坏或有引脚接触不良,单片机中未写该管型对应的程序。   图4 实物PCB 板图 在制作实物的过程中,可以从左至右依次在LED灯的一侧标明所对应的管脚和类型,也可以用不同颜色的LED 灯来显示不同的管脚和管型。 4 结论 根据硬件电路和软件设计进行电路的焊接和调试,设计所得的判别仪可以快速准确地判断小功率三极管的管脚和类型,并由相应的指示电路显示出判断结果,比用万用表测量要方便快捷很多。 本设计由于采用单片机作为中心控制单元,故可扩展性强。比如可在本作品的基础上增加测量三极管β 值的电路,可用数码管显示出β 值。另外,本设计现在只能测量常见中小功率的三极管,若加上驱动电路、限流电路,修改部分源程序也可测量大功率三极管。

    时间:2019-06-14 关键词: at89c2051 单片机 自动判别

  • 基于AT89C2051单片机的智能化快速充电系统设计

    1.前 言 自1859年法国物理学家普兰特(Plante)发明了铅酸蓄电池至今已有140年的历史。铅酸蓄电池有着成本低,适用性宽,可逆性好,大电流放电性能良好,单体电池电压高,并可制成密封免维护结构等优点,而被广泛地应用于车辆启动、邮电、电力、铁路、矿山、采掘、计算机UPS等各个领域中。蓄电池也是国民经济以及国防建设的重要能源,在许多行业的发展中,也迫切需要容量大、循环寿命长、充电时间短、价格低的蓄电池。而快速充电技术也成为了其中的关键技术,它对电池的使用有着非常重要的影响。目前,国内外都在不断地研究这一技术,而在快速充电技术中引入计算机控制,是非常有效的,且有着非常明显的经济效益。而单片机又以其低廉的成本,灵活的控制方式而得到业界的青睐,本系统就是以AT89C2051单片机为核心,集测量与控制为一体的智能化快速充电系统。 2.快速充电的机理 铅酸蓄电池快速充电技术是在常规充电技术的基础上发展起来的,不论采用何种充电制度进行充电,铅酸蓄电池充电的成流过程都要遵守双极硫酸盐化理论,即其化学反应方程式为: 按常规充电法,充电电流安培数,不应超过蓄电池待充电的安时数。这样,才可保证在整个充电过程中,产生气体和温升的状况符合要求。因此,常规的蓄电池其充电方法都采用小电流的恒压或恒流充电,充电时间长达10至20多个小时,给实际使用带来许多的不便。为了缩短电池的充电时间,国内外一直都在不断地研究和开发快速充电方法和技术。 1967年美国人麦斯(J. A. Mas)提出了蓄电池充电的三个定律后,这些理论就成为了我们研究快速充电技术的基础。蓄电池有着如下的充电特性: (1)蓄电池充电接受能力随放电深度而变化。如果以相同大小的电流放电,则,放出电量越多,充电接受率α越高,充电接受电流越大。即有如下关系: 又因 故有 I0——开始充电时的最大初始电流值。 C——放电容量。 K——常数,可由实验求出。 (2)对于任何给定的放电深度,充电接受率: 又因I0=αC,所以 Id——放电电流。 常数K和k可由实验得出。 上式表明,蓄电池的充电接受率取决于它的放电历史,以小电流长时间放电的蓄电池,充电接受率低,相反,以大电流短时间放电的蓄电池,充电接受率高。 (3)一个蓄电池经几种放电率放电,其充电接受电流是各个放电率下接受电流之和。即:  It = I1+I2+I3+…… 同时服从: It——总接受电流。 Ct——放出的总电量。 αt——总的充电接受率。 放电可使全部放掉的电量Ct增加,同时也使总的充电接受电流It增加。因此,蓄电池在充电前或充电过程中适当地放电,将会增加充电接受率αt。 按照麦斯理论,我们对充电过程中的充电电流进行实时控制,即用大电流充电,并在充电过程中,短暂地停止充电,在停充期间加入放电脉冲,打破蓄电池充电指数曲线自然接受特性的限制。但是,理论和实践证明,蓄电池的充放电是一个非常复杂的电化学过程,由快速充电的电化机理可知,影响快速充电的重要因素是蓄电池的电极极化现象,这是一切二次电池所共有的,包括有欧姆极化、浓差极化和电化学极化。而蓄电池的电极极化现象,又可以通过在充电过程中适时加入放电脉冲来消除。因此,要实现快速充电,就需要多方面的控制,其控制特点为: (1) 多变量——诸如要控制蓄电池内的温度、充电电流的大小、充电的间隔时间、去极化脉冲的设置等。 (2) 非线性——充电电流应随充电的进行而逐渐降低,否则,会造成出气和温升的增加。 (3) 离散性——随着蓄电池的放电状态、使用和保存历史的不同,即使是相同型号、相同容量的同类蓄电池的充电情况也不一样。 对于如此复杂的充电过程,使用传统的充电电路显然难以控制,因此,也影响了快速充电的效果。为了能更有效地实现快速充电,必须使用先进的控制手段,我们利用单片机构造了一个具有自动检测功能的蓄电池充电实时控制系统。根据蓄电池快速充电的机理,对充电的电池进行实时的动态检测,适时发出去极化脉冲及调整充电电流,力求以较高的充电平均电流进行充电,而且还能有效地抑制气体的析出。从而达到快速充电的目的。 3.智能充电系统的构成 本系统以AT89C2051单片机为核心,它是高性能的8位CMOS单片微型计算机。片内带有2K可重编程的Flash EPROM,足够存放一般的控制程序;具有丰富的I/O控制功能;片内带有2个16位定时器/计数器;多个中断源;一个精密模拟比较器。它对许多嵌入式控制应用提供了一种高度灵活和低成本的解决办法。 根据系统功能的需要,组成的硬件结构如图1所示。 该系统包括几个主要部分: (1) 以AT89C2051单片机作为整个智能充电系统的控制核心,用于数据的处理、计算及输入输出控制。 (2) 电压检测电路 由RC电路与AT89C2051单片机的内置积分模拟比较器组成,用于电池电压的实时检测,该电路同时将检测到的模拟电压转换成数字量提供给计算机处理。 (3) 去极化放电电路 由RC放电回路与MOSFET电子开关组成,电池的充电状态信息经单片机处理后,根据需要经由AT89C2051的I/O口适时发出去极化脉冲,控制开关闭合接通放电回路,以消除电池的极化现象,也可以消除某些电池的不良记忆,提高它的充电接受率。 (4) 充电控制电路 采用输出电压在一定范围内可调节的高频开关式充电电源。并且加入适度的电流负反馈,使输出特性变软,避免充电器在加载瞬间的电流冲击,并具有一定的恒流作用。 (5) 状态显示电路 状态显示电路由不同的指示灯组成,根据不同的工作状态由单片机控制显示充电中或充电结束状态。 4.系统软件设计 本系统软件使用MCS-51汇编指令编写,并固化于片内的程序存储器中,使用极为方便。程序的流程图如图2所示。 整个系统的控制过程为:蓄电池组开始充电一段时间后,检测电池电压,当达到电池出气点电压(约2.4V/单体)时,停止充电,然后进行大电流(约2C)放电去极化,时间为1ms,充放电曲线如图3所示。放电后,再检测电池状态,进行去极化效果检测,达到去极化效果则回转充电,否则,再次进行去极化放电,直至达到去极化要求的效果才回转充电。如果连续放电n次(n=3),电池电压变化很小,则充电完成并结束充电状态。 5.系统的工作与性能评估 我们用本系统对24V12AH免维护铅酸电池组进行快速充电试验,首先以1安培放电,放电终止电压为20V。充电电流取8A(0.66C),充电50分钟后,蓄电池组端电压达到24.5V,在充电至40分钟左右,去极化周期逐步缩短,充电电流下降到6.2A,经过2小时10分后,充电自动结束,蓄电池组终止电压为28.8V,5分钟后测试电池组端电压为27.6V。外壳温升15.6℃。 放电试验是用1安培放电(负载用可调电阻)放电终止电压为20V时,放电时间为11小时25分,即充满率达到95﹪。通过充、放电试验,证明本充电控制系统是可行的。 6.讨论 1) 快速充电的唯一办法是遵照麦斯定律,利用充电-放电去极化的方式提高充电速度。 2)充电速度越高,充电器的容量要相应增大。但是充电器的成本不成比例增加。如果进一步加大充电电流,充电的速度还可以进一步提高。但是,充电速度过高可能会带来一些新的问题,必须通过实验和设计的改进来实现。有专家认为,在快速充电过程中,只要温升能控制得合理,对电池的寿命和电池内部单体电池电压均衡都有好处。 3) 本快速充电系统与传统的充电器相比,可以较大范围地提高充电速度,缩短充电时间。但是,充电器复杂系数略有增加。仅仅是增加了一个单片机实时检测控制环节和一个MOSFET电子开关及RC放电电路。因此,不失为一个简单实用的快速充电电路。 7.结论 绿色革命的一个重要体现是绿色交通。因此,很多国家都在致力于电动车的开发和研究。然而,蓄电池的快速充电依然是一个必不可少的课题。目前,市场上已出现了不少电动车和电动助力车、电动滑板车。根据专家的市场预测,2004年美国市场的需求量是500万辆,中国的产品因为价廉物美而成为了主导产品。因此,肯定对快速充电器有一定的需求。随着电动交通工具研究的深入和发展,可以预言,今后大、中、小各种容量的快速充电器将是商机无限。

    时间:2019-06-12 关键词: at89c2051 单片机 快速充电系统

  • 基于AT89C2051的步进电机驱动器系统电路原理

    步进电机驱动器系统电路原理图  AT89C2051将控制脉冲从P1口的P1.4~P1.7输出,经74LS14反相后进入9014,经9014放大后控制光电开关,光电隔离后,由功率管TIP122将脉冲信号进行电压和电流放大,驱动步进电机的各相绕组。使步进电机随着不同的脉冲信号分别作正转、反转、加速、减速和停止等动作。图中L1为步进电机的一相绕组。AT89C2051选用频率22MHz的晶振,选用较高晶振的目的是为了在方式2下尽量减小AT89C2051对上位机脉冲信号周期的影响。  图中的RL1~RL4为绕组内阻,50Ω电阻是一外接电阻,起限流作用,也是一个改善回路时间常数的元件。D1~D4为续流二极管,使电机绕组产生的反电动势通过续流二极管(D1~D4)而衰减掉,从而保护了功率管TIP122不受损坏。  在50Ω外接电阻上并联一个200μF电容,可以改善注入步进电机绕组的电流脉冲前沿,提高了步进电机的高频性能。与续流二极管串联的200Ω电阻可减小回路的放电时间常数,使绕组中电流脉冲的后沿变陡,电流下降时间变小,也起到提高高频工作性能的作用。

    时间:2018-11-26 关键词: at89c2051 步进电机 驱动器系统

  • 自制单片机之十二……AT89C2051烧写器的制做与调试

      现在都用S52了,还用C2051干嘛!价格也差不多。但是C2051的体积要比S51、S52小很多,而且引脚只有20只,在一些简单的控制中,这些引脚已足够了,小的体积更具有优势些。但目前好像还没有支持在线编程(ISP)的S2051。因此试着做个C2051的编程器,更主要的是与大家分享一下在电路制做过程中硬件、软件的除错技巧,尽量做到一次成功的经验和方法。  在网上找了一番,图很多,大同小异。上一张最通用的图:上图是可以烧写很多器件的电路,它的PCB板在网上也很容易找。但因为是实验制做,没用PCB,就用万用板吧。由于宽体的器件都有支持ISP的器件,所以我去掉了40脚宽体IC座,只留了个20脚窄体IC座用来烧写C2051,修改电路后电路图如下:元件清单如下:1/8w 4.7k 6 (一共6个)560r 3 (一共3个)2k2 14.7 欧姆 1 串联于供电电路起保护作用10k排阻 1 用于cpu p0口上拉1n4148 2 用于vpp高压供给 (注意4148 的一头是黑色的)12v 1 用于vpp高压供给 (注意12V 的一头是白色的不要搞混)4.7uf/50v 8 所有的电解都用同一个型号的, 注意方向哦104 2 用于电源滤波22p 2 用于晶体电路11.0592 1 晶体2n5401 1 注意看型号和插入的方向, 不要错!2n5551 2发光管 2 3mm白发红(用于电源指示和通信指示)(注意方向)db9 1 串口头20pin 卡座 1 烧写 2051等用40pin ic座 1 插入监控用89s5116pin ic座 1 插入 max232芯片usb座 1 供电用串口电缆 1 通信用usb 电缆 1 供电用At89s51 1 用于监控max232cpe 1 通信用集成电路pcb 1 电路板实际板子今天已做好,先秀一下吧。接着再讲详细调试方法和步骤:(点击后看大图)  这个电路对于初学者可能复杂了一点,它分为几个部分,如果你先将电路板规划好,然后把元件一次都焊上,再进行调试,成功的概率很小。那应该怎么做呢?先规划一下元件的位置布局,然后分几个单元,一个单元做好后进行调试,正常后再进行下一个单元的制做调试。我的规划如下,先是电源部分包括那个电源指示LED:先将USB座焊上,确认无短路后插上USB电源,用万用表找出A、B两点中哪个是5v的正极,哪个是地。然后去掉电源将剩下的几个电容、电阻和LED焊上,再确认无短路后接上电源,LED应亮起。我是将LED的限流电阻改为了2K,因为我看它已够亮了。电流1.5毫安。实物如右边红色圈出的图。第二部分是MAX232,包括那个+12v电压稳压电路。MAX232是TTL转RS232专用IC。它内部提供了一个正10v,和负10v的升压电路。我们正是利用了它的升压电路又获得了个+12v的电源。我们先将9针串口焊上,但不接上MAX232。在你规划的MAX232区,按上图左侧电路将MAX232座和四个电容焊好。检查无短路后,插上MAX232,接上电源,在A点应能测到+9v-+10v的电压。在B点应有-9v--10v的电压,将10脚接地,那7脚就应该是+10V。若10脚接+5v,那么7脚就变成-10v。这样MAX232就正常了。将串口的2脚接MAX232的7脚。串口的3脚接MAX232的8脚。接上电将MAX232的10脚分别接地和+5v看看串口的2脚是否跟刚才一样变化。以上的调试正确后,将上图右边的12V稳压电路焊上。如下图:用万用表在稳压管两端应测得稳定的+12V电压。这样你的这个串口转换和12v电源电路就调试正常了。  第三部分是12V烧写控制部分:电路和实物图如下:这部分电路焊好后,接上第二部分调试正常的+12v和电源+5V。先测量电路上+12v接入点和电源电压+5v是否正常确。再测量上图的A点也应该是+5v。然后你把VO13用导线接+5V,那么A点是+9v-+11v就对了。好!断开VO13,再将V014用导线接+5v,A点应该是接近0。这样12V烧写控制电路也调试正确了。  下面就是S51部分的电路,如下图:这部分电路包括P0口的上拉排阻和那个接收指示LED接在S51的10脚。别忘了将S51的第31脚(EA / VP)也接电源+5v。先确认将MAX232的第9脚与S51第10脚的连接断开(因为MAX232在调试正常后9脚就输出+5v高平会点亮接收指示LED,妨碍S51工作性能的检查)。检查电路无误后插上S51片子接上电源,静态电流应在9-12mA左右。好!打开KEIL写个测试程序:#include #define uchar unsigned charmain(void){uchar i,j,k;while(1) { for(i=0;i

    时间:2018-11-13 关键词: at89c2051 烧写器 自制单片机

  • AT89C2051 + SD卡 + 3310LCD = 音乐播放器

    这个小玩意,采用 ATMEL 的传统51MCU作主控制芯片,加上SD卡和显示屏,就可以作简单的音乐播放器了,虽然音质不怎么样,不过作为DIY还是蛮有乐趣,希望大家喜欢。没有采用FAT文件系统,只是按扇区读取SD卡,由于2051资源有限,改为4051有望可以操作FAT,但目前程序还在不断完善中。128byte怎样读取512byte的扇区数据?可以采用边读边播放的方式,就能解决。音乐文件是32KHz取样率的WAV文件,所以和HIFI就沾不上边了。程序是用C来编写,以方便交流,资料整理中,完善后再上传。这是未经整理的程序,有点乱,凑合着看,有时间再进一步改进。SD部分是修改于本坛的一个贴子----------------------------------------------------------添加部分注释,提高可读性#include#include#include#include"LCD_3310.H"#defineucharunsignedchar#defineuintunsignedint#defineulongunsignedlong/************定义管脚*************/sbitDOUT=P3^0;//SD卡数据输出sbitCLK=P3^1;//SD卡时钟输入sbitDIN=P3^2;//SD卡数据输入sbitCS=P3^3;//SD卡片选使能/************全局变量************/ucharpbuf[64];//数据缓冲区ucharp;//播放缓冲区指针ucharpx;//频谱显示的X坐标codeulongTrack[17]={//0x15000,0x58000SD卡中各声音文件的首址,以后打算把这些数据放在SD卡的特定配置文件中再读入。0xd7800-0x8a00,0x76b800-0x8a00,0xedc000-0x8a00,0x1752800-0x8a00,0x1F08000-0x8a00,0x2569800-0x8a00,0x2EDB800-0x8a00,0x3480000-0x8a00,0x3BFA800-0x8a00,0x41EB000-0x8a00,0x48EF000-0x8a00,0x508A000-0x8a00,0x59AE800-0x8a00,0x60AF000-0x8a00,0x6878000-0x8a00,0x6DBE000-0x8a00,0x7525800-0x8a00,};/*******SD访问错误码的定义*******/#defineINIT_CMD0_ERROR0X01#defineINIT_CMD1_ERROR0X02#defineREAD_BLOCK_ERROR0X03#defineWRITE_BLOCK_ERROR0X04/*********通用延时函数***********/voiddelay(uinti){while(i--);}/********SD写入一个字节**********/voidspi_write(ucharx){//不采用循环结构是为了提高处理速度DIN=x&0x80;CLK=0;CLK=1;DIN=x&0x40;CLK=0;CLK=1;DIN=x&0x20;CLK=0;CLK=1;DIN=x&0x10;CLK=0;CLK=1;DIN=x&0x08;CLK=0;CLK=1;DIN=x&0x04;CLK=0;CLK=1;DIN=x&0x02;CLK=0;CLK=1;DIN=x&0x01;CLK=0;CLK=1;}/*******SD慢速写入一个字节********/voidspi_write_low_speed(ucharx){uchari;for(i=8;i;--i){DIN=x&0x80;x=0x60){Sec=0;Min++;if((Min&0x0f)>9){Min+=6;if(Min>0x60)Min=0;}}}}//=======分时间片显示时间/标志========switch(Count&14){case2:LCD3310_set_XY(44,5);LCD3310_print(Min>>4);//分钟十位break;case4:LCD3310_set_XY(50,5);LCD3310_print(Min&15);//分钟个位break;case6:LCD3310_set_XY(56,5);LCD3310_print(10);//分隔符break;case8:LCD3310_set_XY(62,5);LCD3310_print(Sec>>4);//秒十位break;case10:LCD3310_set_XY(68,5);LCD3310_print(Sec&15);//秒个位break;case12:LCD3310_set_XY(78,5);if(Count&0x40)LCD3310_print(13);//闪动播放符号elseLCD3310_print(11);}}n++;//下一曲n&=15;//这个SD卡只有16首歌}//while(1);}//main()voidtimer0(void)interrupt1using1{if(TL0&1)_nop_();//消除中断响应时间不一致,造成的频率抖动P1=pbuf[++p&63];//输出一个声音数据}

    时间:2018-09-21 关键词: at89c2051 音乐播放器 sd卡 3310lcd

  • 基于AT89C2051的步进电机驱动器系统电路及软件设计

    步进电机在控制系统中具有广泛的应用。它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器、或角位移发生器等。有时从一些旧设备上拆下的步进电机(这种电机一般没有损坏)要改作它用,一般需自己设计驱动器。本文介绍的就是为从一日本产旧式打印机上拆下的步进电机而设计的驱动器。 本文先介绍该步进电机的工作原理,然后介绍了其驱动器的软、硬件设计。1. 步进电机的工作原理 该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1是该四相反应式步进电机工作原理示意图图1 四相步进电机步进示意图 开始时,开关SB接通电源,SA、SC、SD断开,B相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和C、D相绕组磁极产生错齿,2、5号齿就和D、A相绕组磁极产生错齿。 当开关SC接通电源,SB、SA、SD断开时,由于C相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和C相绕组的磁极对齐。而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。 四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。 单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:a. 单四拍 b. 双四拍 c八拍图2.步进电机工作时序波形图2.基于AT89C2051的步进电机驱动器系统电路原理步进电机驱动器系统电路原理如图3:图3 步进电机驱动器系统电路原理图 AT89C2051将控制脉冲从P1口的P1.4~P1.7输出,经74LS14反相后进入9014,经9014放大后控制光电开关,光电隔离后,由功率管TIP122将脉冲信号进行电压和电流放大,驱动步进电机的各相绕组。使步进电机随着不同的脉冲信号分别作正转、反转、加速、减速和停止等动作。图中L1为步进电机的一相绕组。AT89C2051选用频率22MHz的晶振,选用较高晶振的目的是为了在方式2下尽量减小AT89C2051对上位机脉冲信号周期的影响。 图3中的RL1~RL4为绕组内阻,50Ω电阻是一外接电阻,起限流作用,也是一个改善回路时间常数的元件。D1~D4为续流二极管,使电机绕组产生的反电动势通过续流二极管(D1~D4)而衰减掉,从而保护了功率管TIP122不受损坏。 在50Ω外接电阻上并联一个200μF电容,可以改善注入步进电机绕组的电流脉冲前沿,提高了步进电机的高频性能。与续流二极管串联的200Ω电阻可减小回路的放电时间常数,使绕组中电流脉冲的后沿变陡,电流下降时间变小,也起到提高高频工作性能的作用。3.软件设计该驱动器根据拨码开关KX、KY的不同组合有三种工作方式供选择:方式1为中断方式:P3.5(INT1)为步进脉冲输入端,P3.7为正反转脉冲输入端。上位机(PC机或单片机)与驱动器仅以2条线相连。方式2为串行通讯方式:上位机(PC机或单片机)将控制命令发送给驱动器,驱动器根据控制命令自行完成有关控制过程。方式3为拨码开关控制方式:通过K1~K5的不同组合,直接控制步进电机。当上电或按下复位键KR后,AT89C2051先检测拨码开关KX、KY的状态,根据KX、KY 的不同组合,进入不同的工作方式。以下给出方式1的程序流程框图与源程序。在程序的编制中,要特别注意步进电机在换向时的处理。为使步进电机在换向时能平滑过渡,不至于产生错步,应在每一步中设置标志位。其中20H单元的各位为步进电机正转标志位;21H单元各位为反转标志位。在正转时,不仅给正转标志位赋值,也同时给反转标志位赋值;在反转时也如此。这样,当步进电机换向时,就可以上一次的位置作为起点反向运动,避免了电机换向时产生错步。图4 方式1程序框图方式1源程序: MOV 20H,#00H ;20H单元置初值,电机正转位置指针 MOV 21H,#00H ;21H单元置初值,电机反转位置指针 MOV P1,#0C0H ;P1口置初值,防止电机上电短路 MOV TMOD,#60H ;T1计数器置初值,开中断 MOV TL1,#0FFH MOV TH1,#0FFH SETB ET1 SETB EA SETB TR1 SJMP $;***********计数器1中断程序************IT1P: JB P3.7,FAN ;电机正、反转指针;*************电机正转***************** JB 00H,LOOP0 JB 01H,LOOP1 JB 02H,LOOP2 JB 03H,LOOP3 JB 04H,LOOP4 JB 05H,LOOP5 JB 06H,LOOP6 JB 07H,LOOP7LOOP0: MOV P1,#0D0H MOV 20H,#02H MOV 21H,#40H AJMP QUITLOOP1: MOV P1,#090H MOV 20H,#04H MOV 21H,#20H AJMP QUITLOOP2: MOV P1,#0B0H MOV 20H,#08H MOV 21H,#10H AJMP QUITLOOP3: MOV P1,#030H MOV 20H,#10H MOV 21H,#08H AJMP QUITLOOP4: MOV P1,#070H MOV 20H,#20H MOV 21H,#04H AJMP QUITLOOP5: MOV P1,#060H MOV 20H,#40H MOV 21H,#02H AJMP QUITLOOP6: MOV P1,#0E0H MOV 20H,#80H MOV 21H,#01H AJMP QUITLOOP7: MOV P1,#0C0H MOV 20H,#01H MOV 21H,#80H AJMP QUIT;***************电机反转*****************FAN: JB 08H,LOOQ0 JB 09H,LOOQ1 JB 0AH,LOOQ2 JB 0BH,LOOQ3 JB 0CH,LOOQ4 JB 0DH,LOOQ5 JB 0EH,LOOQ6 JB 0FH,LOOQ7LOOQ0: MOV P1,#0A0H MOV 21H,#02H MOV 20H,#40H AJMP QUITLOOQ1: MOV P1,#0E0H MOV 21H,#04H MOV 20H,#20H AJMP QUITLOOQ2: MOV P1,#0C0H MOV 21H,#08H MOV 20H,#10H AJMP QUITLOOQ3: MOV P1,#0D0H MOV 21H,#10H MOV 20H,#08H AJMP QUITLOOQ4: MOV P1,#050H MOV 21H,#20H MOV 20H,#04H AJMP QUITLOOQ5: MOV P1,#070H MOV 21H,#40H MOV 20H,#02H AJMP QUITLOOQ6: MOV P1,#030H MOV 21H,#80H MOV 20H,#01H AJMP QUITLOOQ7: MOV P1,#0B0H MOV 21H,#01H MOV 20H,#80HQUIT: RETI END4.结论 该驱动器经实验验证能驱动0.5N.m的步进电机。将驱动部分的电阻、电容及续流二极管的有关参数加以调整,可驱动1.2N.m的步进电机。该驱动器电路简单可靠,结构紧凑,对于I/O口线与单片机资源紧张的系统来说特别适用。

    时间:2018-08-22 关键词: 驱动器 at89c2051 步进电机

  • 用单片机控制的多回路自动浇水系统

    用单片机控制的多回路自动浇水系统

    一、工作原理该装置电原理图如附图所示。主控芯片IC3为AT89C2051单片机,IC4是BCD码输入4线一7段锁存译码/驱动器。工作时,六位LED数码管显示当前时间和星期,从左至右,前两位显示时,中间两位显示分,最后一位显示星期。LED9、LEDl0为秒闪指示,每秒闪动一次。当需要调整时间时,按动ANl,小时数可在0~23之间变化;按动AN2,分钟数可在0~59之间变化:按动AN3,星期可在1~7之间变化。初次上电时。该装置默认浇水开始时间为每天早晨7:00.每路浇水持续时间180秒。每天早上7:00.单片机通过P30(RXD)和P3l(TXD)口串行输出数据,使8位移位寄存器74LSl64的13脚为高电平。该电平通过uL,N2803驱动,在其18脚输出低电平,使继电器K1闭合,开启第一路浇水装置的电磁阀开始浇水,数码管进入180秒倒计时显示。180秒后,K1失电,K2得电,第二路浇水开始。依此类推。当八路全部浇水结束后,数码管重新显示当前时间。需要设置时,按一下AN4,数码管前四位显示每天浇水的开始时间。最后一位显示浇水开始时间标志“8”,按动ANl和AN2进行浇水开始时间设定,方法与调整时间时相同。设置好后,再按一下AN4,数码管前四位显示每路浇水的持续时间,最后一位显示标志“9”,按动AN1可设置持续时间的高两位,按动AN2设置低两位。单位为秒,设置范围为0~9999秒。设置好后再按一下AN4,数码管又返回到显示当前时间状态。在实际使用中,若不需要每天都浇水。可在数码管显示当前时间时,按动AN3,使代表星期的最后一位数码管在1~7之间变动,找到不需要浇水的那一天。按动AN5,点亮该数码下面的小数点即可。例如,要设置每星期的一、三、五、日不浇水,可按动AN3,使最后一位数码管显示“l”(星期一),按动AN5点亮该数码管的小数点,再按动AN3找到星期三,按动AN5点亮小数点。按同样的方法,设置好星期五和星期天即可。二、软件设计用89C2051的T0中断进行计时,T1中断进行浇水软件采用模块化设计,修改容易、调试方便。整个程序由主程序、比较程序、二一十进制转换程序、显示程序、键盘扫描程序、按键值跳转处理程序、中断程序、校时程序、设置程序、延时程序等组成。片内主要RAM分配如下:30H~34H分别为0.01秒、秒、分、时、星期的计数单元,36H保存AN4键序,39H保存键码,3AH一3CH为显示缓冲区。40H一42H分别为浇水开始时间的分、时、星期存放单元,47H、48H存放每路浇水持续时间。4CH保存串行输出数据,位01H~07H分别存放星期一到星期天是否浇水标志。三、其他问题该装置采用串行输出,对软硬件稍加改动,即可很容易地对输出路数进行扩展。使用时。可把浇水喷头分成若干组,由该装置控制各组轮流浇水。每组喷头数量可根据现场主管道口径、水压、所用喷头种类等情况估算。浇水装置可以是自动旋转喷头、多孔喷水管、地埋喷头、塑料撞击式喷头、雾化浇水器、自制喷管等浇水机械。

    时间:2018-06-20 关键词: at89c2051 单片机 嵌入式处理器 多回路自动浇水

  • 采用AT89C2051开发的彩灯控制电路

    采用AT89C2051开发的彩灯控制电路

    此款电路非常适合各种彩灯、霓虹灯控制。电路见附图,其特点如下: 1.储存了40种精选的花样不重复运行达5分钟;15个I/O口,除P34、P35、P37为功能测试端外,其余均为输出口,比4路、8路彩灯控制器更具动态感。 2.过零触发彩灯控制器是频繁触发的,必须考虑干扰问题。电路中P37为过零检测端,通过Rl接AC220V,只有交流过零时,才触发可控硅。将P37端悬空则无过零触发功能。经多次实践对比证明,采用过零触发基本上无干扰。 3.高低电平输出方式选择P34端仅接R3时,输出低电平有效;P34端另加5.1kΩ电阻接地时,输出高电平有效,这使后级电路设计有很大的灵活性。 4.速度调节去掉跨接在P34、P35之间的R3时,速度降为原来的1/3。 5.自动定时开、关机功能电路设计成24小时自动循环开、关机,开4小时、关20小时。如晚上8点按开关K开机,继电器吸合,K1接通,灯点亮,电路计时开始工作,12点时自动关灯,第二天晚上8点又自动开灯,晚上12点又自动关灯,周而复始。改变4和20两个数可改变开、关时间比。 停电时,继电器释放,电路停止工作,来电后按开关K重新开始计时。 元器件选择 B为8—10W双6V电源变压器,J为普通6V小型继电器,其他元件标称值见附图。RO、R1、R19—R29为1/2W金属膜电阻器,其余为1/4W金属膜电阻器。本电路无需调试,装上即可运行。  

    时间:2018-01-18 关键词: at89c2051 电路设计 开发 彩灯控制

  • 基于AT89C2051单片机三路分段开关的设计与制作

    基于AT89C2051单片机三路分段开关的设计与制作

    分段开关是一种节能电子产品,在只有两根电源线的情况应用它可对具有多盏灯泡、日光灯、节能灯的灯具进行分组控制,避免照明电路重新布线之苦。常见的分段开关用—位开关控制,通过开关不同的次数产生不同的亮灯状态。这种控制方式有两个缺陷:一是控制过程中灯泡被不断的开关,由于灯泡、日光灯、节能灯的使用寿命跟开关次数有很大的关系,这种方式很容易造成损坏;二是使用比较麻烦,假如灯具中有三组灯,必须开关四次才能打开所有的灯。下面介绍一种用单片机设计的三路分段开关,控制面板上使用一只开关和三只按钮,打开开关后只要按动不同的按钮就能控制不同的灯组,三组灯具独立控制,具有使用直观方便的特点。 一、电路工作原理 分段开关由控制面板和接收控制器两部分组成,控制面板装在开关盒上,接收控制器装在灯具上。控制面板和接收控制器用两根电源线连接。’控制信号采用电力载波的方式,通过电源线传输,为了防止50Hz交流电源的干扰,便于分离,使用100kHz高频脉冲信号作为控制信号。为了简化电路,采用对脉冲计数的方式区分不同的控制信号。   1、控制面板电路 控制面板主要产生不同的控制信号以控制不同的灯组。 电路见下图。IC1中的与非门A1、A2及电阻R1~R4、电容C1~C3等组成延时电路。下面以按下S1为例说明其工作原理:当S1没有按下时,A1的输入端为低电平,所以经两次反相后A2也输出低电平;当S1按下时,由于C1上的电压不能突变,A1的输入端为高电平,A2也输出高电平,此后C1经R4充电两端的电压逐渐上升,A1输入端的电位逐渐下降,当电位下降到VDD/2即4.5V以下时,A2的输出由高电平转换为低电平。这样当分别按下按钮S1NS3时,A2输出端分别产生脉冲宽度为15mS、23mS、34mS三种不同的单次正脉冲信号,分别作为多谐振荡器的控制信号。与非门A1、A2、电阻R5、R6、电容C5等组成多谐振荡器,振荡频率约100kHz,当A2输出高电平时多谐振荡器工作,A4输出100kHz的脉冲信号。由于其输出脉冲信号的个数受A2输出的高电平的时间控制,因此按下S1~S3中不同的按钮,A4就能输出不同的脉冲个数,对应的脉冲个数分别约为1500、2300、3400。三极管VTl、高频变压器T1等组成输出电路,把A4输出的脉冲信号经VT1放大后通过C8输送到电源线上。L1是高频扼流电感器,它可以防止100kHz的脉冲信号被其它用电设备短路,也能防止其对外产生干扰信号。 C7、VD2、VD3、C6等组成电容降压式电源电路,其中经稳压二极管VD1稳压的9V电源供IC1使用。 2、接收控制器电路 接收控制器电路见图2。电路由接收电路、单片机电路和电源电路等部分组成。 R1、C1组成单片机的复位电路,接通电源后单片机AT89C2051的复位端1脚获得一个高电平复位脉冲,使得单片机进入程序所设定的初始状态,其引脚P1.0输出高电平,P1~1、P1.2输出低电平,三极管VTl导通,VT2、VT3截止,使得继电器K1吸合,K2、K3处于释放状态,这样当打开控制面板上开关S4后第一组灯点亮,其它两组灯均熄灭。使用时一般将常用的一组灯接在K1的控制触点上。 C4、T1、\/T1等组成输入信号处理电路,C4.起到隔离50Hz交流信号的作用,为了提高抗干扰能力,VT1没有加直流偏置电压,其集电极输出的幅度为5V的脉冲信号通过单片机P3.4脚输入给单片机进行处理。单片机根据输入的脉冲信号的个数决定改变引脚P1.0~P1.2的工作状态,具体的说就是1500个左右的脉冲信号对应P1.0,2300个左右的脉冲信号对应P1.1,3400个左右的脉冲信号对应P1.2。 下面以第二路为例说明电路的工作过程,接通电源后,按一下按钮S2,则单片机的P1.1端由低电平转换为高电平,继电器K2吸合,对应的常开触点k2闭合接通相应的灯组,再按一下S2则单片机的P1.1端由高电平转换为低电平,关闭对应的灯组。其余两路的工作过程以此类推。当控制某一路的工作状态时,其它两路的工作状态不受影响,即每一路均可独立控制。 C5、VD4~VD8、IC2等组成电容降压式电源电路,提供+12V和+5V电源。电路中L1的作用和控制面板电路中的L1相同。 二、程序介绍 程序采用C语言编写,将定时器TO设定为计数器,P3.4脚作计数脉冲的输入端。定时器T0对输入的脉冲信号进行计数,通过对脉冲数量的判断就能知道控制面板上按下了那一个开关,从而改变相应的继电器的工作状态。 程序清单如下: #include unsignedchari,DelayTime; unsignedintn: sbitP1_O=p1^0; sbitP1_1=P1^1; sbitP1_2=P1^2; sbitP3_4=P3^4; voiddelay(DdayTime)//延时子程序 { for(;DelayTime>0;DelayTime——) { for(i=0;i<250;i++); } } voiDMAin(void)//主程序 { P1_0=1; P1_1=O; P1_2=0; TMOD=0x05; //定时器TO工作于方式1计数 TH0=0; TL0=O: TRO=1://开定时器TO for(;;) { while(P3_4=1);//判断有没有 输入脉冲 TR0=1://开定时器TO delay(50); //延时50mS,让定时器TO计数 TRO=O://关定时器TO n=TL0ㄧ(TH0<<8);//取计数值 TH0=0; TLO=O: if(n>1300&&n<1700)//若脉 中个数为1500左右 P10=!P10://P1.O输 出电平取反 elseif(n>2000&&n<2600)//若 脉冲个数为2300左右 P1_1=!P1_1;//P1.1输 出电平取反 elseif(n>3000&&n<3800)//若 脉冲个数为3400左右 P1_2=!P1_2;//P1.2输 出电平取反 } } 程序中“while(P3_4==1):”检测P3.4脚是否为高电平,在控制面板没有发出脉冲信号时P3.4脚始终为高电平,程序处于等待状态;一旦发出脉冲信号后P3.4.脚就会出现低电平,程序检测到后即向下执行,定时器T0对P3.4脚输入的脉冲信号进行计数。由于控制面板发送控制信号最长的持续时间为34mS,因此这里选用50mS的时间让定时器TO进行计数,保证脉冲信号不丢失。计数结束后程序对计数值进行筛选,由于控制面板采用了RC振荡器,其频率稳定性较差,为了提高电路工作的可靠性,在筛选时允许脉冲信号的个数有一定的误差。 三、安装和调试 控制面板中IC1选用CMOS与非门集成电路CD4011,电容C1、C2、C3、C5选用稳定性较好的涤纶电容器,以保证电路的稳定性。S1~S4选用轻触按钮开关。电感器L1磁芯使用E16的铁氧体磁芯,用巾φ0.41的漆包线绕100T,高频变压器T1使用E1 3的铁氧体磁芯,用φ0.19的漆包线初级绕200T,次级绕50T。 接收控制器中IC1用ATMEL公司的AT89C2051单片机集成电路,IC2用小功率三端稳压集成电路78L05。X1用12MHz的石英晶体。VD1~VD7用整流二极管1N4004,VT1用三极管2SC945,VT2~VT4用三极管2SCl815。继电器K1~K3用型号为HRS1-S、12VDC的继电器,其触点负荷为3A120/220VAC。 电感器L1控制面板中的L1参数一样,高频变压器T1使用E13的铁氧体磁芯,用φ0.19的漆包线初、次级均绕100T。。 安装前用编程器将编译好的目标文件switch.hex写入AT89C2051芯片。 安装完成后的调试工作主要是调整控制面板的延时时间和多谐振荡器的振荡频率,调试时打开控制面板的电源开关S4,然后依次按动按钮开关S1、S2、S3,看接收控制器中相应的继电器有没有的动作,如果都没有反映,在电路没有问题的情况下,可能是控制面板的输出频率误差较大,适当整电路中R6或C5的参数即可解决问题,有条件的话可用频率计测量A4的输出频率,把A1的输入端和+9V用导线连接即可进行测量。在这之后如果有某一个按钮开关按下没有反映,说明这一路延时误差较大,可改变其相应的延时电容器的容量。最后依次按动发射机的三个按钮S1~S3,如果对应的三路继电器的工作状态均能发生变化的话,调试工作就完成了。

    时间:2017-12-15 关键词: at89c2051 单片机 灯光控制 分段开关

  • AT89C2051控制语音芯片录放音系统电路图

    AT89C2051控制语音芯片录放音系统电路图

    语音芯片应用电路 ISD2560 是ISD 系列单片语音录放集成电路的一种,是一种永久记忆型录放语音电路,录音时间为60 秒,能重复录放达10 万次。它采用直接电平存储技术,省去了A/D、D/A 转换器。ISD2560 集成度高,内部包括前置放大器、内部时钟、定时器、采样时钟、滤波器、自动增益控制、逻辑控制、模拟收发器、解码器、和480KB 的EERPOM 等。内部EERPOM存储单元,均匀分为600 行,具有600 个地址单元,每个地址单元指向其中一行,每一个地址单元的地址分辨率为100MS。ISD2560 控制电平与TTL 电平兼容,接口简单,使用方便。   ISD2560 内置了若干操作模式,可用最少的外围器件实现最多的功能。操作模式也有地址端控制;当最高位都为1 时,其他地址端最高就选择某个模式。因此操作模式和直接寻址相互排斥。操作模式可由微控制器也可有硬件实现。基本电路原理图如下:录音按下录音键接地,是PD 端、P/R 端为低电平,此时启动录音;结束时松开按键,单片机有让P/R 端回到高电平,既完成一段语音的录制。同样的方法可录取第二段、第三段等。值得注意的是,录音时间不能超过预先设定的每段语音的时间。放音的操作更为简单,按下录音键接高电平,使P/D 端P/R 端为低电平启动方音功能;结束时,松开按键,即完成一段语音的播放。 采样单片机控制语音芯片 录音时,按下录音键,单片机通过D 端口线设置语音段的起始地址,再使PD 端、P/R 端为低电平启动录音;结束时,松开按键,单片机有让P/R 端回到高电平,即完成一段语音的录制。同样的方法可以录取第二段、第三段等。值得注意的是,录音时间不能超过预先设定的每段语音的时间。 放音时,根据需播放的语音内容,找到相应的语音段起始地址,并通过口线送出。P/R 端设为低电平,并让/CE 端产生一负脉冲启动放音,这时单片机只需要等待ISD2560信息结束信号。信号为一负脉冲,在负脉冲的上升沿,该段语音才播放结束,所以单片机必须要检测到的上升沿才能播放第二段,否则播放的语音就不连续。ISD2560 与单片AT89C2051($0.5999) 的接口电路以及外围电路如图所示。单片机的P1 口、P3.4 和P3.5 分别与ISD2560 的地址线相连,用以设置语音段的起始地址。P3.0~P3.3 用以控制录放音状态。P3.7 连接一按键,供录音时使用。由TL7705($0.1875) 构成可靠复位及电源监视电路。   ISD2560 虽然提供了地址输入线,但它的内部信息段的地址却无法读出。本系统采用单片机来控制,不需读出信息地址,而直接设置信息段起始地址。其实现方式有两种:一是由于ISD2560的地址分辨率为100 ms,所以可用单片机内部定时器定时100 ms,然后再利用一计数器对单片机定时次数进行计数,则计数器的计数值为语音段所占用的地址单元。该方式能充分利用ISD2560内部的E2PROM,在字段较多时可利用该方法。二是语音字段如果较少,则可根据每一字段的内容多少,直接分配地址单元。一般按每1 s 说3 个字计算,60 s 可说180 个字,再根据ISD2560 的地址分辨率为100 ms,即可计算出语音段所需的地址单元数。本电路采用第二种方式。

    时间:2017-06-16 关键词: at89c2051 语音芯片 音响电路 录放音系统

  • 基于单片机的温度传感器设计

    基于单片机的温度传感器设计

     通过对AT89C2051单片机原理分析,研究了一种对环境温度测量、控制的设计方案,实现了采用AT89C2051单片机编程达到控制温度,精确测量的目的。 现代工业生产中,温度的测量和控制极为普遍,单片机的优点十分明细,其具有体积小、功能强大、低功耗、性价比高等诸多优点,其广泛应用于自动控制领域,单片机的应用可以有效提高产品的控制质量和自动化水平,利用单片机对温度进行测控的技术,日益得到广泛应用。 1 AT89C2051元器件技术参数 AT89C2051是51系列单片机的一个型号,它是一个低电压,高性能CMOS 8位单片机,它可以兼容MCS-51指令系统,该单片机内置了8位的CPU和闪存单元,这就使得该单片机功能强大。可以为用户提供较为复杂的控制功能和实现方法。 2 硬件设计 (1)整体设计 本系统利用AT89C2051型号的单片机作为处理器来实现其对温度的控制,本系统加入了串口,可以方便地将单片机所采集的数据进行转换,并通过RS422串口发往计算机,开展实时监控工作。与此同时,我们的系统采用了七段数码管,来实时显示采集的温度数值,这样就可以方便地显示实际温度。 (2)人机通讯的设计 人机通讯系统中人机接口控制面板的设计是由显示屏、键盘和报警电路这三个部分组成。显示屏部分为LED的十进制数码显示,这样可以便于采取人工的方式监视;键盘部分的主要功能用于本机操作系统的启动、停止、复位,以及系统的温度设定等相关功能组成。 (3)通信接口的设计 人机通讯系统和计算机之间的数据通信是通过数据接口RS485进行电平转换实现的。该电平转换是采用较为常见的包含2路接收器和驱动器的芯片作为接口的电平转换芯片实现的。本文所采用的为MAXIM公司生产的ADM2490EBRWZ芯片。 3 软件的设计与开发 (1)所使用的开发工具 在选定好硬件后,我们就要开始软件研发工作,本系统是利用汇编语言作为开发工具,在源程序编写完成后,要将其编译为单片机可以执行的机器语言来执行相关操作,我们可以使用两种方法编写汇编语句。一种是基于51单片机的汇编语言。二是采用高级语言来编写。而随着单片机开发技术的不断发展进步,我们也逐步使用高级语言来取代汇编语言来开发单片机应用程序。 (2)系统整体设计 系统整体设计其实就是软件设计。我们可以根据软件研发所提出的不同的需求来做相应的更改。目前单片机相关技术研发工作已日趋成熟,相应色设计变更相对较为方便。比如,我们可以根据系统的需求设计几个或多个温度传感器进行相关数据的采集工作。 『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

    时间:2016-12-28 关键词: 传感器 at89c2051 单片机

  • 一种用AT89C2051制作的新颖汽车尾灯指示器

     本文介绍一种新颖的汽车尾灯指示器,指示器由特制的发光二极管点阵组成,共有八组,每组同时点亮由九个发光二极管,置于汽车后玻璃窗上,共有五种显示状态,当有停车或刹车信号时,八组发光管点阵全点,有后退信号时,发光二极管点阵闪亮,当有危险信号时,八组发光二极管分为左右两组交替闪亮,有右转弯信号时,右边四组发光二极管从中间向右边依次点亮,有左转弯信号时,左边四组发光二极管从中间向左边依次点亮,在转弯信号未消失时不断重复,此指示器新颖别致,给人以赏新悦目的感觉。 本装置采用的AT89C2051芯片是Atmel公司生产的自带2KB可编程Flash存储器的与MSC-51兼容的高性能处理器。它与常规的51芯片有相同的核心和相近的结构功能如RAM、定时/记数器、中断结构、串行口、振荡器和时钟电路等;有最高达24MHz的振荡频率,有较少的精简I/O端口,因此体积很小,非常适用做小型应用系统的处理器。 汇编程序及详细注释如下: STOP BIT 32H ;刹车标志 DANGE BIT 33H ;危险标志 BACK BIT 34H ;倒车标志 RIGHT BIT 35H ;右转标志 LEFT BIT 36H ;左转标志 FLASH BIT 37H ;闪烁标志 LRSET BIT 38H ;依次点亮标志 COUNT EQU 32H ;依次亮点计数器 ORG 0000H AJMP MAIN ;跳转主程序 ORG 0030H AJMP MAIN MAIN: NOP MOV R0,#20H ;20H至60H单元清零 MOV A,#0 RES: MOV @R0,A INC R0 CJNE R0,#60H,RES MOV SP,#60H ;设置堆栈指针为60H MOV COUNT,#0 ;清依次显示循环计数器 CLR TIME_OUT ;清定时时间到标志 CLR EA CLR RIGHT ;清右转标志 CLR STOP ;清刹车标志 CLR DANGE ;清危险标志 CLR BACK ;清倒车标志 CLR LEFT ;清左转标志 CLR LRSET ;清依次点亮标志 LOP: ACALL DL1 ;调用延时子程序 ACALL DL1 ;调用延时子程序 CPL FLASH ;闪烁标志取反 JNB LRSET,LOP1 ;无依次点亮标志转LOP1 INC COUNT ;依次点亮计数器加1 MOV A,COUNT CJNE A,#5,LOP1 MOV COUNT,#0 ;计数计到5清零 LOP1: ACALL CL ;调用过程处理子程序 LOPA: ACALL KEY ;调用按键处理子程序 AJMP LOP ;返回主循环 DL1 : MOV R6,#200 ;延时子程序 DL11: MOV R5,#250 DJNZ R5,$ DJNZ R6,DL11 RET CL: NOP ;过程处理子程序 JNB STOP,CL1 MOV A,#0FFH ;有停车或刹车标志 CPL A ; 显示器全亮 MOV P1,A AJMP CLE CL1: JNB DANGE,CL2 JB FLASH,CL11 ;有危险标志 MOV A,#0FH ;左右两组显示器交替闪烁 MOV P1,A AJMP CLE CL11: MOV A,#0F0H MOV P1,A AJMP CLE CL2: JNB BACK,CL3 JB FLASH,CL21 ;有倒车标志 MOV A,#0FFH ;显示器做全亮或全灭交替 MOV P1,A ;显示器全亮 AJMP CLE CL21: MOV A,#00H MOV P1,A ;显示器全灭 AJMP CLE CL3: JNB RIGHT,CL4 MOV DPTR,#RIGHT_CHAR ;有右转标志 MOV A,COUNT ;右边四个一组的发光阵列依次循环亮 MOVC A,@A+DPTR ;取显示值 CPL A MOV P1,A AJMP CLE CL4: JNB LEFT,CL5 MOV DPTR,#LEFT_CHAR ;有左转标志 MOV A,COUNT ;左边四个一组的发光阵列依次循环亮 MOVC A,@A+DPTR ;取显示值 CPL A MOV P1,A AJMP CLE CL5: MOV A,#0 ;若无任何标志,关闭显示器 CPL A MOV P1,A CLE: RET KEY: NOP ; 按键处理子程序 CLR STOP ; 清除停止标志 CLR DANGE ; 清除危险标志 CLR BACK ; 清除倒车标志 CLR RIGHT ; 清除右转标志 CLR LEFT ; 清除左转标志 JNB P3.2,KEY1 SETB STOP ; P3.2有键按下,置停止标志 AJMP KEYE KEY1: JNB P3.3,KEY11 SETB DANGE ; P3.3有键按下,置危险标志 KEY11: MOV A,P3 CJNE A,#22H,KEY2 SETB DANGE ; P3.5 P3.1同时按下,置危险标志 AJMP KEYE KEY2: JNB P3.4,KEY3 SETB BACK ;P3.4有键按下,置倒车标志 AJMP KEYE KEY3: JNB P3.5,KEY4 SETB RIGHT ;P3.5有键按下,置右转标志 JB LRSET,KEYE SETB LRSET ;设置左右转循环显示标志 MOV COUNT,#0 ;循环显示计数器清零 AJMP KEYE KEY4: JNB P3.1,KEY5 SETB LEFT ;P3.1有键按下,置左转标志 JB LRSET,KEYE SETB LRSET ;设置左右转循环显示标志 MOV COUNT,#0 ;循环显示计数器清零 AJMP KEYE KEY5: CLR LRSET ;清左右转循环显示标志 KEYE: RET LEFT_CHAR: DB 00H,10H,30H,70H,0F0H ;从右到左依次点亮值 RIGHT_CHAR: DB 00H,08H,0CH,0EH,0FH ;从左到右依次点亮值

    时间:2015-05-25 关键词: at89c2051 尾灯

  • PC遥控器电路

    PC遥控器电路

    电路的基本原理就是通过红外接收头收集红外信号,当有红外信号进来时,单片机AT89C2051软件执行中断并对采集到的红外信号进行解码,并从串口送到PC,PC软件Girder收到串口发来的字符再根据定义做出相应的命令操作(Girder的基本使用方法请查看<打造超级PC遥控器>)。电路中使用了几个简单的元件做成串口窃电电路,使这个遥控器不需要再外接电源,插到串口上就可以使用了,可以说是即插即用呀:)。安装好后,运行Girder后,指示灯LED1就开始闪烁,表明电路正常工作了,这时就可以使用你的遥控器了,当关闭Girder后电路板的电源也会被切断,指示灯熄灭。下图是这个遥控接收器的全部电原理图:  

    时间:2015-05-13 关键词: at89c2051 pc 遥控器 电源通信电源

  • AT89C2051控制语音芯片录放音系统电路

    AT89C2051控制语音芯片录放音系统电路

     介绍了由Flash($44.9500) 单片机AT89C2051($0.5999) 及数码语音芯片ISD2560 组成的电脑语音系统设计出了系统的硬件电路,给出了录、放音实用的源程序。目前基于单片微机的语音系统的应用越来越广泛,如电脑语音钟、语音型数字万用表、手机话费查询系统、排队机、监控系统语音报警以及公共汽车报站器等等。 语音芯片应用电路 ISD2560 是ISD 系列单片语音录放集成电路的一种,是一种永久记忆型录放语音电路,录音时间为60 秒,能重复录放达10 万次。它采用直接电平存储技术,省去了A/D、D/A 转换器。ISD2560 集成度高,内部包括前置放大器、内部时钟、定时器、采样时钟、滤波器、自动增益控制、逻辑控制、模拟收发器、解码器、和480KB 的EERPOM 等。内部EERPOM存储单元,均匀分为600 行,具有600 个地址单元,每个地址单元指向其中一行,每一个地址单元的地址分辨率为100MS。ISD2560 控制电平与TTL 电平兼容,接口简单,使用方便。 ISD2560 内置了若干操作模式,可用最少的外围器件实现最多的功能。操作模式也有地址端控制;当最高位都为1 时,其他地址端最高就选择某个模式。因此操作模式和直接寻址相互排斥。操作模式可由微控制器也可有硬件实现。基本电路原理图如下:录音按下录音键接地,是PD 端、P/R 端为低电平,此时启动录音;结束时松开按键,单片机有让P/R 端回到高电平,既完成一段语音的录制。同样的方法可录取第二段、第三段等。值得注意的是,录音时间不能超过预先设定的每段语音的时间。放音的操作更为简单,按下录音键接高电平,使P/D 端P/R 端为低电平启动方音功能;结束时,松开按键,即完成一段语音的播放。 采样单片机控制语音芯片 录音时,按下录音键,单片机通过D 端口线设置语音段的起始地址,再使PD 端、P/R 端为低电平启动录音;结束时,松开按键,单片机有让P/R 端回到高电平,即完成一段语音的录制。同样的方法可以录取第二段、第三段等。值得注意的是,录音时间不能超过预先设定的每段语音的时间。   放音时,根据需播放的语音内容,找到相应的语音段起始地址,并通过口线送出。P/R 端设为低电平,并让/CE 端产生一负脉冲启动放音,这时单片机只需要等待ISD2560信息结束信号。信号为一负脉冲,在负脉冲的上升沿,该段语音才播放结束,所以单片机必须要检测到的上升沿才能播放第二段,否则播放的语音就不连续。ISD2560 与单片AT89C2051($0.5999) 的接口电路以及外围电路如图所示。单片机的P1 口、P3.4 和P3.5 分别与ISD2560 的地址线相连,用以设置语音段的起始地址。P3.0~P3.3 用以控制录放音状态。P3.7 连接一按键,供录音时使用。由TL7705($0.1875) 构成可靠复位及电源监视电路。 ISD2560 虽然提供了地址输入线,但它的内部信息段的地址却无法读出。本系统采用单片机来控制,不需读出信息地址,而直接设置信息段起始地址。其实现方式有两种:一是由于ISD2560的地址分辨率为100 ms,所以可用单片机内部定时器定时100 ms,然后再利用一计数器对单片机定时次数进行计数,则计数器的计数值为语音段所占用的地址单元。该方式能充分利用ISD2560内部的E2PROM,在字段较多时可利用该方法。二是语音字段如果较少,则可根据每一字段的内容多少,直接分配地址单元。一般按每1 s 说3 个字计算,60 s 可说180 个字,再根据ISD2560 的地址分辨率为100 ms,即可计算出语音段所需的地址单元数。本电路采用第二种方式。

    时间:2015-04-22 关键词: at89c2051 音响电路 录放音系统

  • AT89C2051控制LMX2332的频率合成器

    摘要:LMX2332是美国国家半导体公司生产的集成数字锁相环(PLL)电路。文章介绍了利用单片机AT89C2051控制数字锁相环LMX2332及压控振荡器JTOS-150实现低噪声频率源的方法,该方法可通过改变AT89C2051的程序得到不同频率的信号。 关键词:AT89C2051;单片机;锁相环;LMX2332;频率合成器 1 引言 数字式频率合成器能提供长期频率稳定度与短期频率稳定度都比较高且杂波少的信号输出,而且,波道数目多、体积小、易于数字化和集成化。数字锁相环构成的数字式频率合成器是目前通信、仪表、雷达等电子技术中广泛应用的一种频率合成技术,它的基本组成如图1所示。 该环路的输入端有一个数字参考分频器%26;#247;R,而在环路的反馈支路上有数字程序分频器%26;#247;N?这样,当环路锁定时,压控振荡器的输出频率为: f0=N fr=(N/R)fφ 式中,fr为实际参考频率;fφ为参考晶振频率。 用单片机AT89C2051控制频率合成器时,主要是向数字式频率合成器LMX2332提供适当的数字参考分频比R和数字程序分频比N。这样,根据需要改变单片机的程序就可以产生相应频率的信号。 2 基于单片机AT89C2051的控制电路 该系统用单片机AT89C2051 的P1口作为锁相环的输出端口,P1.7、P1.6、P1.5分别对应LMX2332的LE、Data、Clock。其中Data是LMX2332的数据输入脚;LE是LMX2332的使能端,低电平有效;Clock是LMX2332的时钟输入端,上升沿有效。图2所示是用AT89C2051控制的频率合成器的电路框图。其中AT89C2051与LMX2332之间通过74LS373进行缓存,否则将会在VCO输出信号中出现单片机产生的杂散。C1,C2,R2,C3,R3用于构成环路滤波器。 3 AT89C2051的程序设计 LMX2332的控制字有22位,其中低两位是地址位?00表示输入中频参考分频器,01表示输入中频程序分频器,10表示输入射频参考分频器,11表示输入射频程序分频器,高19位是数据位。参考频率为10MHz,输出频率为100MHz,可以设中频的参考分频器R为4,程序分频器为40。 在单片机AT89C2051向LMX2332输入控制时,应按表1的顺序从高位开始,输入前应先将LMX2332的LE置低,每输入1位给Clock一个有上升沿的脉冲。上升沿脉冲子程序为: CLOCK:SETB P1.5;给LMX2332的Clock一个上升沿 NOP  ;增加脉冲宽度 CLR P1.5 ;设定LMX2332的Clock脚为低,以便下次输入 RET 图2 单片机向LMX2332传输的数据由Data输入。输入中频参考分频器R的程序如下: IF R?CLR P1.7 ;设置LMX2332的LE为低 CLR P1.6 ;准备向LMX2332的Data输入低 ACALL CLOCK ;向LMX2332的Data脚输入一位数据 ACALL CLOCK ACALL CLOCK SETB P1.6 ;准备向LMX2332的Data输入高 ACALL CLOCK ACALL CLOCK CLR P1.6 MOV R5,#0CH CYCLE1:ACALL CLOCK ;连续输入11位相同的数据 DJNZ R5,CYCLE1 SETB P1.6 ACALL CLOCK CLR P1.6 ACALL CLOCK ACALL CLOCK ACALL CLOCK ACALL CLOCK SETB P1.7 图3 4 实验结果 经过适当改变单片机AT89C2051的程序,并向LMX2332输入不同的参考频率分频系数R和程序分频系数N,可以得到不同的频率信号。图3分别是同一锁相环产生的100MHz和140MHz信号的频谱图。由图可见:信号相位噪声在偏离中心1kHz处优于-110dBc/Hz,而且频率稳定度也很好。 表1 LMX2332控制字表 Reg. 21 20 19 18 17 16 15 14 13 12 11 R-IR 0 0 0 1 1 0 0 0 0 0 0 N-IF 0 0 0 0 0 0 0 0 0 0 0 Reg. 10 9 8 7 6 5 4 3 2 1 0 R-IF 0 0 0 0 0 0 1 0 0 0 0 N-IF 1 1 0 0 0 0 0 0 0 0 1 5 结束语 从上面的设计中可以看出,这种用单片机AT89C2051控制LMX2332的频率合成器,具有设计简单,价格低廉、应用方便、系统可靠等优点,而且非常灵活,同时还可以根据需要改变频率。

    时间:2014-05-23 关键词: at89c2051 频率合成器 lmx2332

  • 基于AT89C2051单片机比较器的应用

    AT89C2051的一个特殊应用,用它的比较器做一个光强调节器,应用在全静态LED显示屏上。当初的情况是原有LED 显示屏的光控是用专用的AD转换芯片做的,比较贵。最后用这个方案做为一个补丁用了一下。 它的使用原理是:用单片机的比较器和电容及光敏电阻组成一个充放电电路,用单片机的两个定时器组成一个PWM信号输出。PWM信号从一个端口输出,然后控制LED 显示屏的显示使能信号,这样就可以做到在夜间LED显示屏变暗一点,的天变亮一点。以达到一个最好的效果。   ORG 0000H  LJMP MAIN  ORG 000BH  LJMP TIMER0  ;改变占空比  ORG 001BH  LJMP TIMER1  ;定时10MS  ORG 0030H MAIN: MOV SP,#70H  MOV P1,#0FFH  CLR P1.1  MOV P3,#0FFH  MOV TMOD,#11H  MOV IE,#8AH  MOV TH1,#0DCH ;定时10MS,扫描频率100HZ  MOV TL1,#00H  MOV TH0,#00H ;根据光强改变亮度占空比  MOV TL0,#00H  MOV 30H,#00H  MOV 31H,#00H  MOV 32H,#50 ;配合定时器1完成启动光检测的时间500MS  ;MOV 33H,#5  MOV 34H,#055H ;十秒到标志,055H为时间到  ;MOV 35H,#0AAH ;启动比较器标志,55H为启动  SETB TR1 MAIN1: SETB ET0  CPL P1.4  MOV A,34H  CJNE A,#55H,MAIN1  MOV 34H,#0AAH  CLR TR0  CLR ET0  MOV TH0,#00H  MOV TL0,#00H  SETB TR0  SETB P1.1  JB P3.6,$  CLR TR0  SETB P3.7  CLR P1.1  CPL P1.5   MOV    30H,TH0   MOV 31H,TL0   MOV A,#0FFH   CLR C   SUBB A,31H   MOV 31H,A   MOV A,#0FFH   SUBB A,30H   MOV 30H,A   LJMP MAIN1     TIMER1: PUSH ACC  MOV TH1,#0DCH  MOV TL1,#00H  MOV TH0,30H  MOV TL0,31H  SETB TR0  CLR P3.7  CPL P1.7  DJNZ 32H,T1ZD1  MOV 32H,#50  MOV 34H,#55H ;500MS T1ZD1: POP ACC  RETI   TIMER0:  PUSH ACC   CLR TR0   MOV TH0,30H  MOV TL0,31H  SETB P3.7  cpl p1.6         POP ACC  RETI    END

    时间:2012-05-07 关键词: at89c2051 比较 单片机 电源技术解析 基于 应用

  • 基于AT89C2051单片机的六位数显多路定时电子钟

    这里介绍的电子钟,电路可称得上极简,它仅使用单片的20引脚单片机完成电子钟的全部功能,而笔者见到的其它设计方案均采用二片以上的多片IC实现。  一片20引脚的单片机STC2032(引脚排列与AT89C2051完全相同)为电子钟主体,其显示笔画数据从P1口分时输出,P3口则输出对应的六位选通信号。由于LED数码管点亮时耗电较大,故不能使用AT89C2051单片来完成,但是可以可以用STC89C2032来完成。另外,本站制作时用超高亮的发光二极管代替昂贵的大数码管,成本低,效果独特。 本电子钟设计有三个轻触式按键,这里我们分别命名为:模式设定键K1、加调整键K2、减调整键K3。由于STC89C2032内部已经集成有复位电阻,所以,复位脚只需要接一只电容即可。本电子钟采用了一只NPN型的三极管及蜂鸣器为闹时讯响电路。本图采用电池供电,电路板上有桥式整流、滤波和三端稳压器7805的安装位置,可以用交流电压供整个系统工作。此电子钟可与任何6~12V/100mA的交直流电源适配器配合工作,适应性强。 电子钟功能 1.走时:默认为走时状态,按24小时制分别显示“时时:分分:秒秒”,有四个秒点动态显示,时间会按实际时间以秒为最少单位变化。 2.走时调整:长按K1(或K2、K3)两秒钟以上,时位、分位、秒位会有其一快速闪动,按K1会循环,按K2和K3可以分别对闪动的数字进行加或者减,从而达到快速设定时间的目的。20秒以上长时间没有任何按键操作时,自动按变为正常走时状态。 3.闹时调整:再次长按K1(或K2、K3)两秒钟以上,时位、分位、秒位会有其一慢速闪动,按K1会循环,按K2和K3可以分别对闪动的数字进行加或者减,从而达到快速设定闹时的目的。20秒以上长时间没有任何按键操作时,自动按变为正常走时状态。 注意:闹时状态下时位会在01-64变化,表示64路定时时间;分位只能在00-24变化,表示24个小时,其中默认显示为24,表示不闹;秒位在00-59变化,表示60个分钟。因此,本电子钟以分钟为最小单位可以设定多路闹时。(由于64路太多,基本上没有什么用,用起来反而不方便,所以,本站出售的是16路定时的。) 4.误差修正状态:大家知道,即便是世界上最优良正统的石英晶振,频率也会有偏差,需要电容微调校正频率,不同的电容和负载会影响到频率偏移。这种情况可能会使日误差达到几十秒。当然,配备优质正品元件会使走时误差小到几秒,如果设计微调电容的话,就可以使每天的走时误差小到1秒以内。 但是,对于业余制作来说,没有更标准的测量设备来证明你的调试是刚刚好,不能测周期,不能测频率(普通的测量会改变电路工作参数带来更大的测量误差)。而我们一般都会按电视台的时间来做对比,经过了24小时,我的电子钟究竟是快了??还是慢了?? 现在不用怕了,本电子钟设计了误差校正程序:如果你的电子钟走一天会快1.6秒(或者慢0.8秒),那么,通过本电子钟的误差校正设置,可以在一天中不知不觉的减慢1.6秒(或者加快0.8秒)。因此,本电子钟理论上可以做到日误差小于0.2秒,当然,具体的过程和效果还需要大家去操作和证明。 误差校正方法:在闹时调整状态下,再长按K1(或K2、K3)两秒钟以上,时位、分位会变成“一一一一”或者“三三三三”,表示变慢或者变快的意思,按K1选择;秒位会变成00,按K2、K3会在00-80中变化,数字越大,表示校正越大,00等于即不校正变快也不校正变慢,例如2+0=2-0这样的情况。20秒以上长时间没有任何按键操作时,自动按变为正常走时状态。 其它功能: 1、如果是在走时状态,正逢到在闹铃响(会长响20秒)中,按K1、K2、K3任意键停止发声。 2、在走时状态,按K3可以让电子钟每秒都发出短短的“嘀”声,这有点类似机械指针式的电子钟(或者机械手表)的声音,当然,声音要大得多。这个功能很有用,例如,我们有些特殊情况时不能去看着钟,但是可以闭上眼睛听声音在心中默默数数经过了多少秒再去操作某某。再按可以关掉秒发声。 3、整点报时功能:按K2可以开启和关闭整点报时功能。开启后每逢整点就会听到长响两秒“嘀”声。 4、闹时开关功能:按K1可以开启和关闭定时闹铃功能。关闭闹铃后,以前设置的数据不会丢失。   由于电路设计得极其简单,因此丰富的功能只能由软件完成,这里软件设计成为了关键。下面介绍软件设计中采用的一些要点。 本电子钟程序设计时只使用了一个定时数T0,其它的中断全部关断,定时器工作在两个8位自动加载初始值状态。这是保证走时精确稳定的重要方法。站长看到很多书本教材上都让大家用定时器中断来执行动态显示程序和按键扫描程序,这是一种很不好的方法,除了浪费硬件资源以外,还会增加程序复杂性,还会影响其它程序运行。 站长认为,越是中断程序,就要越写得简短,最好几条指令就立即结束,对于动态扫描显示、按键功能等等可以写在主程序中让程序不停的反复运行,如果中断多,最大的坏处就是影响到主程序运行时间不够,扫描显示会出现闪烁,或者按键反应变慢(一般觉察不出),可是,这又有另一好处,你可以随时改良程序并且立即看到结果。 LED动态扫描显示是分时点亮各个LED,利用人的视觉暂留特性,让人觉得是连续点亮。当点亮的频率高时,说明单片机有充足的时间运行主程序, 

    时间:2012-04-10 关键词: at89c2051 定时 单片机 电源技术解析 基于 数显 电子钟 六位

首页  上一页  1 2 下一页 尾页
发布文章

技术子站

更多

项目外包