摘要:提出了一种基于MSP430系列单片机的新型智能调光器,设计了一个简单可靠的稳压电路和过零采样电路,在调光器上实现了延时关闭、断电状态记忆等功能。最后进行了调光器的温度测试,检验了调光器的可实用性。关键词:MSP430;可控硅;智能调光器
上传时间: 2013-12-29
上传用户:zhengjian
□基于来电显示技术,识别主人,利用手机或固定电话实现免接通,免费用的绝密遥控关及撤防。□单芯片多功能可编程设计,MCU内核,有着十分灵活广泛的应用(可定制特殊功能)。自动拨号的电话报警器方面:室内手动延时布防,手机或固定电话免接通遥控撤防;拨号报警+现场报警(可选)。电话遥控开关方面:用于开启电控门锁,保险柜电控锁,车库电动门,电器开关...等。更多应用......。□单芯片最多可存入6组电话号码(6个主人)不重码,最后一组号码可刷新,掉电不丢失,可保100年。□非主人拨入无效,主人需20秒内连续拨通两次遥控才有效(撤防或开关),操纵成功后会自动回拨遥控者电话一次,以表示遥控成功。绝不影响电话的正常使用。□循环拨打1-6组主人电话号码报警15次,接听报警时警声提示,可同时选择现场报警。无注册用户时,触发报警将自动转入连续现场报警1分钟。□接警处理功能,接听报警期间,手机或固定电话按"#"键退出报警。未接警的号码继续打报警。□仅设计两按钮实现用户注册、信息删除、室那手动布防撤防、输出开关控制、报警模式设定,报警期间无法手动撤防。□两种反复可编程报警模式。掉电不丢失。模式1:报警完毕自动撤防;模式2:报警完毕保持布防。□两种自适应电路模式:DTMF解码器接入模式和DTMF解码器不接入模式。自动实现不同的电路设计实现不同的输出控制功能。同一电路设计,通过增减硬部件即可实现不同的输出功能,QL310上电时自动识别DTMF解码器是否存在。□两路警声输出:其中一路输出用于操作音提示及报警时加载到电话线路中供监听用。另一路为现场报警使用(可根据需要选用,这路只有在报警时才有输出,设计时可通过加大功率提高警声)。□状态记忆功能:布撤防状态都有记忆功能(掉电不丢失)。可避免布撤防期间的偶然的停电再上电是状态发生变化。比如,当前为布防状态,掉电再上电后还是保持布防状态。□手动布撤防提示音,布撤防LED指示灯。□上电开机报警模式提示音,模式1发一声提示音;模式2发两声提示音。□触发端的信号智能检测,因此可适应任何触发信号:或高电平,或低电平,或高/低脉冲信号;无源的开关信号,如继电器,干簧管或门磁开关等(由于触发端内部有上拉电阻)。标准的TTL电平,通过外接简单的限幅电路可实现更高电平或脉冲的输入(红外探头,防火探头等)。特强抗干扰处理,长距离布线可抗强电磁干扰。□20脚PDIP封装及20脚SOP封装。□5V低功耗。使用3.58M晶振。□工业级设计,工作温度:-40℃~+85℃
上传时间: 2013-11-13
上传用户:lacsx
一、用途D485C型单片机用TTL/RS-485/RS-422转换器用于将单片机的RS-232串行口(TTL电平)转换成RS-485或者RS-422电平,可以将单片机串行口的通信距离延长至1200m以上(9600bps时),可以用于单片机之间、单片机与PC机之间构成远程多机通信网络。二、硬件安装D485C型转换器外形为DB-9/DB-9转接盒大小,其中DB-9(孔座)一端接单片机的RS-232串行口(只用到RXD、TXD、GND)以及+5V电源。DB-9针座为转换后的RS-485、RS-422信号。三、软件说明本产品均无需任何初始化设置!无须收发转换控制信号!只用到单片机RS-232串行口的RXD(收)、TXD(发)、GND(地)信号,加上独有的内部零延时自动收发转换技术,确保适合所有软件!四、性能说明D485C型转换器需外接5V电源,最高速率115.2Kbps。外接电源要求:电压5V±0.5V,电流>10mA。五、D485C的外形图、引脚分配D485C作为TTL/RS-485转换器(注意跳线短接位置)
上传时间: 2013-12-26
上传用户:独孤求源
模拟串口就是利用51的两个输入输出引脚如P1.0和P1.1,置1或0分别代表高低电平,也就是串口通信中所说的位,如起始位用低电平,则将其置0,停止位为高电平,则将其置1,各种数据位和校验位则根据情况置1或置0。至于串口通信的波特率,说到底只是每位电平持续的时间,波特率越高,持续的时间越短。如波特率为9600BPS,即每一位传送时间为1000ms/9600=0.104ms,即位与位之间的延时为为0.104毫秒。单片机的延时是通过执行若干条指令来达到目的的,因为每条指令为1-3个指令周期,可即是通过若干个指令周期来进行延时的,单片机常用11.0592M的的晶振,现在我要告诉你这个奇怪数字的来历。用此频率则每个指令周期的时间为(12/11.0592)us,那么波特率为9600BPS每位要间融多少个指令周期呢?
上传时间: 2013-10-29
上传用户:zw380105939
PIC 单片机的组成习题解答 解答部分1. PIC 单片机指令的执行过程遵循着一种全新哈佛总线体系结构的原则,充分利用了计算机系统在程序存储器和数据存储器之间地址空间的相互独立性,取指过程和执行指令过程可以流水线操作同时进行。因此,当PIC 时钟频率为4MHZ时,执行一条非转移类指令需要4 个系统时钟周期,即1us,但其指令执行的真实时间应为2us(在执行n—1 条指令时取第n 条指令,然后执行第n 条指令)。所以选项B 正确2. 端口RE 共有3 个引脚RE0~RE2,它们除了用做普通I/O 引脚和第5~7 路模拟信号输入引脚外,还依次分别承担并行口读出/写入/片选控制端引脚。A. 对。读出/写入(REO~RE1)。B.错。同步串行的相关引脚与端口C 有关。C.错。通用异步/同步串行的相关引脚与端口C有关。D. 错。CCP模块的相关引脚也是与端口C有关。所以选项A正确。3. 上电延时电路能提供一个固定的72ms 上电延时,从而使VDD有足够的时间上繁荣昌盛到单片机合适的工作电压。所以选项B 正确。
上传时间: 2013-11-09
上传用户:glxcl
OM8361/TDA8362单片机的设计及应用 OM8361/TDA8362为飞利浦公司开发的单片集成电路来完成全部小信号的处理OM8361/TDA8362集成度较高可完成中频视频色度及行场扫描等小信号的处理具有PAL/NTSC自动识别彩色解码电路若外接TDA8395即可方便实现SECAM解码集成块外接了免调整的一行基带延时处理专用芯片TDA4665由于色解码方面采用了当今流行的PAL-S方式的色解码方式使得PAL制图像的色彩亮丽鲜艳程度有了极大的提高块内还集成了色度陷波器色带通滤波器亮度延迟线等使外围可调元件较少方便了生产与维修
上传时间: 2013-10-08
上传用户:qiao8960
本应用范例用红、绿、黄三个发光二极管来模拟十字路口的交通信号灯。开始时,R1 和G2 点亮,延时一段时间,绿灯闪烁几下后变为黄灯,再经过一段时间,变为R2 和G1 点亮。这种循环依照这个规律一直进行下去,就好象十字路口的信号灯一样。其红绿灯点亮的时间可以根据不同的需要来设置。
上传时间: 2013-10-11
上传用户:erkuizhang
NCV8675是一个精准的5.0V和3.3V固定输出的低压差线性稳压器,同时具有350mA的电流输出能力。对轻负载电流消耗的精细管理,加上低漏电工艺,使得NCV8675的静态接地电流仅为34μA。
上传时间: 2013-11-04
上传用户:小草123
NCV8665是一款精准的5.0V固定输出的低压差线性稳压器,其具有150mA的电流输出能力。对轻负载电流消耗的精密管理,加上低漏电工艺,使得NCV8665的静态接地电流仅为30μA。
上传时间: 2013-11-04
上传用户:sjyy1001
单片机入门基础知识大全免费下载 单片机第八课(寻址方式与指令系统) 通过前面的学习,我们已经了解了单片机内部的结构,并且也已经知道,要控制单片机,让它为我们干学,要用指令,我们已学了几条指令,但很零散,从现在开始,我们将要系统地学习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