介绍了当前普通标记机控制系统现状及其存在缺点,给出气动标记机及相频修正PWM模式的工作原理。采用ATmega16单片机和USB转换RS232接口器件CH341T实现驱动控制系统与PC的实时通讯,标记控制系统可升级到USB接口。采用基于ATmega16的相频修正PWM替换555振荡电路产生的PWM,可直接通过软件调整PWM信号。使用达林顿三极管TIP122替代直流继电器驱动高频电磁阀,使得电磁阀驱动电路简单,成本低廉。该控制系统已成功应用于气动标记机。 Abstract: In this paper,the actuality and demerit of the common gas marking machine control systems are described.The operation principle of the gas marking machine and the phase and frequency correct PWM of ATmega16is introduced.The real-time communication between the driving control system and PC by CH341T which its function is translated USB to RS232is realized,the control systems is updated grade to USB interface.The PWM signal can be adjustable by software for the555surge circuit was substituted by the phase and frequency.The high frequency electromagnetic value’s driving circuit by DC relay is replaced by TIP122,therefore,the circuit is become simple and the cost cheap.The control systems has been widely used in gas marking machine.
上传时间: 2013-10-18
上传用户:1427796291
概述CM5001是一个8位OTP单片机。该芯片采用RISC结构,可以替代PIC16C54/56及CF745。该芯片具备管脚唤醒、可动态配置管脚拉电阻、低电压复位等硬件电路,较PIC16C54/56功能有所增强,大大提高了芯片使用的灵活性。另外,该芯片强化了可靠性设计,ESD性能可以达到3000V以上。
上传时间: 2013-10-22
上传用户:yuanyuan123
摘要:分析HW-3204型自动定标器的电路工作原理及存在的故障.利用MCS-51单片机设计定时和计数电路代替HW-3204型定标器中原有的定时和计数电路,分析设计电路的硬件、软件的组成和工作原理,新设计的定时和计数电路具有测量准确及工作性能稳定等优点.关键词:自动定标器;单片机;计数器;定时器
上传时间: 2013-10-23
上传用户:ysystc670
利用分时操作系统中的分时调度思想可以使一个多终端的系统快速响应各终端的要求。本文首先介绍分时操作系统中的分时调度思想, 然后以程控交换机的控制系统为例, 在简介控制系统功能的基础上对用户的实时性要求进行分析, 论证了分时调度思想的可行性, 并利用该思想进行软件流程设计, 用A TM EL 89S51 替代原PC 机完成控制, 实现程控交换机的各种功能。
上传时间: 2013-11-20
上传用户:shirleyYim
摘要:在对网板烘干机PLC控制电路及其功能分析的基础上,通过研究得出一套完整的单片机控制电路,其功能可以完全替代烘干机PLC,并且在硬件和软件上,采用光藕和滤波及引导指令抗干扰设计大大提升了电路的稳定性,使整台机器运行可靠。关键词:单片机;PLC;ULN2003;自动控制
上传时间: 2013-10-27
上传用户:fklinran
实用性低成本电子计价秤系统设计 介绍了一种基于AT89S52 单片机的电子计价秤的软硬件设计方法。该系统采用双积分电路替代现在价格昂贵的A/D芯片作为数据采集系统,同时采用一片LM324芯片设计模拟A/D,用以开机读取蓄电池当前电压值,判断低电压。该系统是由应变片式传感器组成的全桥电路感应物料重量后转换成与之成线性关系的电压, 再通过双积分电路、输入AT89S52单片机进行处理, 且通过16 位LCD 液晶时时显示。同时由语音报价电路实现单价以及总价和找零的语音报价。该电子计价秤硬件电路包括液晶驱动芯片HT1621B、 低电压检测电路、语音驱动电路等, 达到了高效、可靠、精确的电子计价秤的设计目的。
上传时间: 2013-12-18
上传用户:wxqman
Cortex-M3 技术参考手册 Cortex-M3是一个32位的核,在传统的单片机领域中,有一些不同于通用32位CPU应用的要求。谭军举例说,在工控领域,用户要求具有更快的中断速度,Cortex-M3采用了Tail-Chaining中断技术,完全基于硬件进行中断处理,最多可减少12个时钟周期数,在实际应用中可减少70%中断。 单片机的另外一个特点是调试工具非常便宜,不象ARM的仿真器动辄几千上万。针对这个特点,Cortex-M3采用了新型的单线调试(Single Wire)技术,专门拿出一个引脚来做调试,从而节约了大笔的调试工具费用。同时,Cortex-M3中还集成了大部分存储器控制器,这样工程师可以直接在MCU外连接Flash,降低了设计难度和应用障碍。 ARM Cortex-M3处理器结合了多种突破性技术,令芯片供应商提供超低费用的芯片,仅33000门的内核性能可达1.2DMIPS/MHz。该处理器还集成了许多紧耦合系统外设,令系统能满足下一代产品的控制需求。ARM公司希望Cortex-M3核的推出,能帮助单片机厂商实. Cortex的优势应该在于低功耗、低成本、高性能3者(或2者)的结合。 Cortex如果能做到 合理的低功耗(肯定要比Arm7 & Arm9要低,但不大可能比430、PIC、AVR低) + 合理的高性能(10~50MIPS是比较可能出现的范围) + 适当的低成本(1~5$应该不会奇怪)。 简单的低成本不大可能比典型的8位MCU低。对于已经有8位MCU的厂商来说,比如Philips、Atmel、Freescale、Microchip还有ST和Silocon Lab,不大可能用Cortex来打自己的8位MCU。对于没有8位MCU的厂商来说,当然是另外一回事,但他们在国内进行推广的实力在短期内还不够。 对于已经有32位ARM的厂商来说,比如Philips、Atmel、ST,又不大可能用Cortex来打自己的Arm7/9,对他们来说,比较合理的定位把Cortex与Arm7/9错开,即<40MIPS的性能+低于Arm7的价格,当然功耗也会更低些;当然这样做的结果很可能是,断了16位MCU的后路。 对于仍然在推广16位MCU的厂商来说,比如Freescal、Microchip,处境比较尴尬,因为Cortex基本上可以完全替代16位MCU。 所以,未来的1~2年,来自新厂商的Cortex比较值得期待-包括国内的供应商;对于已有32位ARM的厂商,情况比较有趣;对于16位MCU的厂商,反应比较有意思。 关于编程模式 Cortex-M3处理器采用ARMv7-M架构,它包括所有的16位Thumb指令集和基本的32位Thumb-2指令集架构,Cortex-M3处理器不能执行ARM指令集。 Thumb-2在Thumb指令集架构(ISA)上进行了大量的改进,它与Thumb相比,具有更高的代码密度并提供16/32位指令的更高性能。 关于工作模式 Cortex-M3处理器支持2种工作模式:线程模式和处理模式。在复位时处理器进入“线程模式”,异常返回时也会进入该模式,特权和用户(非特权)模式代码能够在“线程模式”下运行。 出现异常模式时处理器进入“处理模式”,在处理模式下,所有代码都是特权访问的。 关于工作状态 Coretx-M3处理器有2种工作状态。 Thumb状态:这是16位和32位“半字对齐”的Thumb和Thumb-2指令的执行状态。 调试状态:处理器停止并进行调试,进入该状态。
上传时间: 2013-12-04
上传用户:坏坏的华仔
石英具有非凡的机械和压电特性, 使得从19 世纪40 年代中期以来一直作为基本的时钟器件. 尽管在陶瓷, 硅晶和RLC电路方面有60 多年的研究, 在此之前没有哪种材料或技术能替代石英振荡器, 鉴于其异常的温度稳定性和相位噪声特性. 估计2006 年将有100亿颗石英振荡器被制造出来并放置到汽车, 数码相机, 工业设备, 游戏设备, 宽带设备,蜂窝电话, 以及事实上每一种数字产品当中. 石英振荡器的制造数量比地球上的人口还要多.
上传时间: 2013-10-17
上传用户:xinshou123456
单片机入门基础知识大全免费下载 单片机第八课(寻址方式与指令系统) 通过前面的学习,我们已经了解了单片机内部的结构,并且也已经知道,要控制单片机,让它为我们干学,要用指令,我们已学了几条指令,但很零散,从现在开始,我们将要系统地学习8051的指令部份。 一、概述 1、指令的格式 我们已知,要让计算机做事,就得给计算机以指令,并且我们已知,计算机很“笨”,只能懂得数字,如前面我们写进机器的75H,90H,00H等等,所以指令的第一种格式就是机器码格式,也说是数字的形式。但这种形式实在是为难我们人了,太难记了,于是有另一种格式,助记符格式,如MOV P1,#0FFH,这样就好记了。 这两种格式之间的关系呢,我们不难理解,本质上它们完全等价,只是形式不一样而已。 2、汇编 我们写指令使用汇编格式,而计算机只懂机器码格式,所以要将我们写的汇编格式的指令转换为机器码格式,这种转换有两种方法:手工汇编和机器汇编。手工汇编实际上就是查表,因为这两种格式纯粹是格式不同,所以是一一对应的,查一张表格就行了。不过手工查表总是嫌麻烦,所以就有了计算机软件,用计算机软件来替代手工查表,这就是机器汇编。 二、寻址 让我们先来复习一下我们学过的一些指令:MOV P1,#0FFH,MOV R7,#0FFH这些指令都是将一些数据送到相应的位置中去,为什么要送数据呢?第一个因为送入的数可以让灯全灭掉,第二个是为了要实现延时,从这里我们可以看出来,在用单片机的编程语言编程时,经常要用到数据的传递,事实上数据传递是单片机编程时的一项重要工作,一共有28条指令(单片机共111条指令)。下面我们就从数据传递类指令开始吧。 分析一下MOV P1,#0FFH这条指令,我们不难得出结论,第一个词MOV是命令动词,也就是决定做什么事情的,MOV是MOVE少写了一个E,所以就是“传递”,这就是指令,规定做什么事情,后面还有一些参数,分析一下,数据传递必须要有一个“源”也就是你要送什么数,必须要有一个“目的”,也就是你这个数要送到什么地方去,显然在上面那条指令中,要送的数(源)就是0FFH,而要送达的地方(目的地)就是P1这个寄存器。在数据传递类指令中,均将目的地写在指令的后面,而将源写在最后。 这条指令中,送给P1是这个数本身,换言之,做完这条指令后,我们可以明确地知道,P1中的值是0FFH,但是并不是任何时候都可以直接给出数本身的。例如,在我们前面给出的延时程序例是这样写的: MAIN: SETB P1.0 ;(1) LCALL DELAY ;(2) CLR P1.0 ;(3) LCALL DELAY ;(4) AJMP MAIN ;(5) ;以下子程序 DELAY: MOV R7,#250 ;(6) D1: MOV R6,#250 ;(7) D2: DJNZ R6,D2 ;(8) DJNZ R7,D1 ;(9) RET ;(10) END ;(11) 表1 MAIN: SETB P1.0 ;(1) MOV 30H,#255 LCALL DELAY ; CLR P1.0 ;(3) MOV 30H,#200 LCALL DELAY ;(4) AJMP MAIN ;(5) ;以下子程序 DELAY: MOV R7,30H ;(6) D1: MOV R6,#250 ;(7) D2: DJNZ R6,D2 ;(8) DJNZ R7,D1 ;(9) RET ;(10) END ;(11) 表2 这样一来,我每次调用延时程序延时的时间都是相同的(大致都是0.13S),如果我提出这样的要求:灯亮后延时时间为0.13S灯灭,灯灭后延时0.1秒灯亮,如此循环,这样的程序还能满足要求吗?不能,怎么办?我们可以把延时程序改成这样(见表2):调用则见表2中的主程,也就是先把一个数送入30H,在子程序中R7中的值并不固定,而是根据30H单元中传过来的数确定。这样就可以满足要求。 从这里我们可以得出结论,在数据传递中要找到被传递的数,很多时候,这个数并不能直接给出,需要变化,这就引出了一个概念:如何寻找操作数,我们把寻找操作数所在单元的地址称之为寻址。在这里我们直接使用数所在单元的地址找到了操作数,所以称这种方法为直接寻址。除了这种方法之外,还有一种,如果我们把数放在工作寄存器中,从工作寄存器中寻找数据,则称之为寄存器寻址。例:MOV A,R0就是将R0工作寄存器中的数据送到累加器A中去。提一个问题:我们知道,工作寄存器就是内存单元的一部份,如果我们选择工作寄存器组0,则R0就是RAM的00H单元,那么这样一来,MOV A,00H,和MOV A,R0不就没什么区别了吗?为什么要加以区分呢?的确,这两条指令执行的结果是完全相同的,都是将00H单元中的内容送到A中去,但是执行的过程不同,执行第一条指令需要2个周期,而第二条则只需要1个周期,第一条指令变成最终的目标码要两个字节(E5H 00H),而第二条则只要一个字节(E8h)就可以了。 这么斤斤计较!不就差了一个周期吗,如果是12M的晶振的话,也就1个微秒时间了,一个字节又能有多少? 不对,如果这条指令只执行一次,也许无所谓,但一条指令如果执行上1000次,就是1毫秒,如果要执行1000000万次,就是1S的误差,这就很可观了,单片机做的是实时控制的事,所以必须如此“斤斤计较”。字节数同样如此。 再来提一个问题,现在我们已知,寻找操作数可以通过直接给的方式(立即寻址)和直接给出数所在单元地址的方式(直接寻址),这就够了吗? 看这个问题,要求从30H单元开始,取20个数,分别送入A累加器。 就我们目前掌握的办法而言,要从30H单元取数,就用MOV A,30H,那么下一个数呢?是31H单元的,怎么取呢?还是只能用MOV A,31H,那么20个数,不是得20条指令才能写完吗?这里只有20个数,如果要送200个或2000个数,那岂不要写上200条或2000条命令?这未免太笨了吧。为什么会出现这样的状况?是因为我们只会把地址写在指令中,所以就没办法了,如果我们不是把地址直接写在指令中,而是把地址放在另外一个寄存器单元中,根据这个寄存器单元中的数值决定该到哪个单元中取数据,比如,当前这个寄存器中的值是30H,那么就到30H单元中去取,如果是31H就到31H单元中去取,就可以解决这个问题了。怎么个解决法呢?既然是看的寄存器中的值,那么我们就可以通过一定的方法让这里面的值发生变化,比如取完一个数后,将这个寄存器单元中的值加1,还是执行同一条指令,可是取数的对象却不一样了,不是吗。通过例子来说明吧。 MOV R7,#20 MOV R0,#30H LOOP:MOV A,@R0 INC R0 DJNZ R7,LOOP 这个例子中大部份指令我们是能看懂的,第一句,是将立即数20送到R7中,执行完后R7中的值应当是20。第二句是将立即数30H送入R0工作寄存器中,所以执行完后,R0单元中的值是30H,第三句,这是看一下R0单元中是什么值,把这个值作为地址,取这个地址单元的内容送入A中,此时,执行这条指令的结果就相当于MOV A,30H。第四句,没学过,就是把R0中的值加1,因此执行完后,R0中的值就是31H,第五句,学过,将R7中的值减1,看是否等于0,不等于0,则转到标号LOOP处继续执行,因此,执行完这句后,将转去执行MOV A,@R0这句话,此时相当于执行了MOV A,31H(因为此时的R0中的值已是31H了),如此,直到R7中的值逐次相减等于0,也就是循环20次为止,就实现了我们的要求:从30H单元开始将20个数据送入A中。 这也是一种寻找数据的方法,由于数据是间接地被找到的,所以就称之为间址寻址。注意,在间址寻址中,只能用R0或R1存放等寻找的数据。 二、指令 数据传递类指令 1) 以累加器为目的操作数的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 第一条指令中,Rn代表的是R0-R7。第二条指令中,direct就是指的直接地址,而第三条指令中,就是我们刚才讲过的。第四条指令是将立即数data送到A中。 下面我们通过一些例子加以说明: MOV A,R1 ;将工作寄存器R1中的值送入A,R1中的值保持不变。 MOV A,30H ;将内存30H单元中的值送入A,30H单元中的值保持不变。 MOV A,@R1 ;先看R1中是什么值,把这个值作为地址,并将这个地址单元中的值送入A中。如执行命令前R1中的值为20H,则是将20H单元中的值送入A中。 MOV A,#34H ;将立即数34H送入A中,执行完本条指令后,A中的值是34H。 2)以寄存器Rn为目的操作的指令 MOV Rn,A MOV Rn,direct MOV Rn,#data 这组指令功能是把源地址单元中的内容送入工作寄存器,源操作数不变。
上传时间: 2013-10-13
上传用户:3294322651
作为一种新的、最有潜力的光源,LED照明以其节能、环保的优势越来越受到人们重视。加上国家和地方政府的政策鼓励,我国的LED照明产业进入了加速发展阶段,运用市场迅速增长。在室内照明方面,用LED灯替代传统的可调光白炽灯或者卤素灯也将是大势所趋。由于传统的白炽灯调光器采用可控硅调光器,用LED灯替代白炽灯时,要求不能改变原有线路,还要能适应现有的可控硅调光器。针对这一目标市场,目前很多大的半导体厂商(包括国际知名半导体厂商)都已经推出了自己的LED调光ASIC,但由于LED固有的发光原理,目前市面上的LED ASIC调光案都还不是很成熟,都有其固有的问题,本文就将针对目前的调光方案做一个详细的分析,并介绍我们基于MCU的调光方案。
上传时间: 2013-11-21
上传用户:comua