虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

地源热泵

地源热泵是陆地浅层能源通过输入少量的高品位能源(如电能等)实现由低品位热能向高品位热能转移的装置。通常地源热泵消耗1kwh的能量,用户可以得到4kwh以上的热量或冷量。
  • 最强万年历源码(支持24节气、支持所有单片机、ARM)

    最强万年历源码(支持24节气、支持所有单片机、ARM)

    标签: ARM 万年历 源码 单片机

    上传时间: 2013-10-21

    上传用户:bjgaofei

  • NCV4269低功耗5V稳压源产品简介手册

    NCV4269是一款精准的低功耗5V稳压源,它的输出电流负载为150mA。输出电压的精确度为±2.0%,在输出电流为100mA时输出电压的最大纹波电压为0.5V。NCV4269的最大特点就是静态电流小,在输出电流为1.0mA时静态电流只有240μA。这一特点非常适合应用与利用电池供电的微处理器设备。

    标签: 4269 NCV 低功耗 产品简介

    上传时间: 2013-11-08

    上传用户:yimoney

  • 单片机入门基础知识大全免费下载

    单片机入门基础知识大全免费下载 单片机第八课(寻址方式与指令系统) 通过前面的学习,我们已经了解了单片机内部的结构,并且也已经知道,要控制单片机,让它为我们干学,要用指令,我们已学了几条指令,但很零散,从现在开始,我们将要系统地学习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

  • 基于单片机技术的光电检测研究

    基于单片机技术的光电检测研究胡助理,安文源,李 玲,欧阳小东关键词:单片机,激光,光电检测,脉冲信号摘 要:目前光电检测技术已经越来越广泛地应用于高科技武器、精密制造等行业中。本文主要介绍一种基于单片机技术的激光检测方法。利用单片机进行激光脉冲信号的调制、控制发射,再结合单片机与光电检测的相关技术设计了检测电路,从而实现利用激光传载信号,进行多路控制。

    标签: 单片机技术 光电检测

    上传时间: 2013-10-12

    上传用户:ayfeixiao

  • AT89C2051驱动步进电机的电路和源码

    AT89C2051驱动步进电机的电路和源码:AT89C2051驱动步进电机的电路和源码 程序:stepper.c stepper.hex/* * STEPPER.C * sweeping stepper's rotor cw and cww 400 steps * Copyright (c) 1999 by W.Sirichote */#i nclude c:\mc5151io.h /* include i/o header file */ #i nclude c:\mc5151reg.hregister unsigned char j,flag1,temp; register unsigned int cw_n,ccw_n;unsigned char step[8]={0x80,0xc0,0x40,0x60,0x20,0x30,0x10,0x90} #define n 400/* flag1 mask byte 0x01 run cw() 0x02 run ccw() */main(){ flag1=0; serinit(9600); disable(); /* no need timer interrupt */ cw_n = n; /* initial step number for cw */ flag1 |=0x01; /* initial enable cw() */while(1){ { tick_wait(); /* wait for 10ms elapsed */energize(); /* round-robin execution the following tasks every 10ms */ cw(); ccw(); } }}cw(){ if((flag1&0x01)!=0) { cw_n--; /* decrement cw step number */ if (cw_n !=0) j++; /* if not zero increment index j */ else {flag1&=~0x01; /* disable cw() execution */ ccw_n = n; /* reload step number to ccw counter */ flag1 |=0x02; /* enable cww() execution */ } }

    标签: C2051 2051 89C AT

    上传时间: 2013-11-21

    上传用户:boyaboy

  • 单片机图像采集与网络传输

    本文介绍一个嵌入了TCP/IP 协议栈的89C52 单片机,通过图像采集模块,采用组播方式,实现了图像采集与网络传输的功能。文中给出了硬件接口电路与软件设计的原理与实现方法。关键词: TCP/IP; RTL8019AS; 图像采集; 组播; 网络摄像头随着网络技术的发展和网络应用的普及,如何充分利用网络资源来实现低成本、高可靠的远程视频监控,已成为一个技术热点。本文介绍一个用单片机与图像采集模块接口,嵌入TCP/IP 协议栈,制作“网络摄像头”的方法。本网络摄像头在一个组播式视频图像监控系统中,只作为组播源向以太网发送视频图像数据;其它监控计算机则作为组播成员接收数据。整个视频图像发送和监控系统在局域网中使用时,监控接收端的PC 机只要加入了组播组,不必知道网络摄像头的IP 地址和MAC 地址,也不需要两者的IP 地址是在同一网段,均可接收到网络摄像头发出的图像数据,使用起来相当方便。

    标签: 单片机 图像采集 网络传输

    上传时间: 2013-12-18

    上传用户:mhp0114

  • 深入浅出AVR单片机--从ATMega48/88/168开始

    深入浅出AVR单片机思路清晰,以AVR单片机为载体,介绍了初学单片机所必须掌握的专业知识。书中语言严谨但不乏幽默风趣,配以大量的照片、图示和实例程序,使读者在愉悦中完成专业知识的学习,并培养了学习嵌入式系统的兴趣。本书在讲述AVR单片机的同时,更注重于对读者学习和设计能力的启发、培养,帮助他们养成“从实践中来,到实践中去”的科学方法论,为进一步的学习创造了基础。  本书讲述浅显、内容丰富、编排合理、实例详尽。首先介绍了如何阅读器件资料的方法,然后熟悉ICCAVR集成开发环境并搭建实验开发装置,接着从实际应用出发,启发式地介绍AVR单片机的常用资源和对应软件方法,最后较为全面地补充了从事嵌入式系统开发要扩展的软件知识。 第1篇 Are you ready? 第1章 学会阅读Datasheet  1.1 如何阅读PDF文件,如何获得Datasheet文件  1.2 Datasheet告诉我们些什么  1.3 如何看懂AVR的Datasheet  1.4 如何得到帮助  1.5 汇编语言执行时间的计算方法  1.6 ATmega48/88/168常用熔丝的作用及其配置方法  1.7 对误烧写为外部时钟模式的解锁方法  实例1 阅读74HC595 Datasheet 第2章 深入开发环境  2.1 认识ICC编译环境  2.2 事半功倍的代码生成器  2.3 ICC之不得不说的故事  2.4 AVR最小系统和下载线DIY  实例2 AVR最小系统DIY第2篇 Let\'s go! 第3章 从跑马灯开始  3.1 输入/输出界面   3.1.1 单片机的输入/输出设备——引脚   3.1.2 “芯”里有数——数码管显示   3.1.3 单片机的输入/输出设备——从按键到键盘  3.2 用ATmega48/88/168单片机端口驱动数码管  3.3 操纵ATmega48/88/168单片机端口  3.4 端口内建上拉电阻的使用  3.5 端口位操作  实例3 跑马灯  实例4 数码管的显示(上)  实例5 数码管的显示(下)  实例6 矩阵键盘 第4章 对不起接个电话  4.1 十万火急——中断  4.2 中断的特性  4.3 使用中断时的注意事项  4.4 ATmega48/88/168单片机有哪些中断源  4.5 如何编写一个中断的服务程序代码  4.6 ATmega48/88/168单片机中断的开关控制  4.7 ATmega48/88/168中断标志位  4.8 ATmega48/88/168中断优先级  4.9 ATmega48/88/168单片机中断向量  4.10 中断与查询之争  4.11 用查询方式响应外设中断  4.12 中断误触发  4.13 前后台与原子操作  实例7 中断唤醒的键盘扫描  实例8 旋转编码器 第5章 一秒究竟有多长  5.1 单片机与时间  5.2 软件延时  5.3 不需要加载的“自由计时器”  5.4 通过重加载控制定时中断周期  5.5 使用代码生成器生成定时器1初始化代码  5.6 定时器的其他工作模式  5.7 PWM波及其应用简介  5.8 人类能看懂的电子时钟——实时时钟简介  实例9 闪烁的灯  实例10 渐明渐暗的灯  实例11 复杂闪烁控制 第6章 电量低  6.1 从猜数游戏到A/D转换器  6.2 ATmega48/88/168的A/D转换器  6.3 ATmega48/88/168单片机中与A/D相关的引脚  6.4 ATmega48/88/168单片机中与A/D相关的寄存器  6.5 使用A/D时需要注意些什么  6.6 怎样知道A/D转换完成  6.7 读取A/D的转换结果  6.8 使用代码生成器生成ADC初始化代码  6.9 书写具有工程结构的初始化代码  6.10 电量计原理概述  …… 第7章 正在过收费站 第8章 包装的学问 第9章 傻孩子求职记 第10章 MISSION UPDATE第3篇 Code Name C 第11章 朝花夕拾 第12章 指针都是纸老虎 第13章 来自身边的启示 第14章 初识嵌入式系统

    标签: ATMega AVR 168 48

    上传时间: 2014-05-05

    上传用户:佳期如梦

  • 同地弹现象的分析和讲解

    地弹的形成:芯片内部的地和芯片外的PCB地平面之间不可避免的会有一个小电感。这个小电感正是地弹产生的根源,同时,地弹又是与芯片的负载情况密切相关的。下面结合图介绍一下地弹现象的形成。 简单的构造如上图的一个小“场景”,芯片A为输出芯片,芯片B为接收芯片,输出端和输入端很近。输出芯片内部的CMOS等输入单元简单的等效为一个单刀双掷开关,RH和RL分别为高电平输出阻抗和低电平输出阻抗,均设为20欧。GNDA为芯片A内部的地。GNDPCB为芯片外PCB地平面。由于芯片内部的地要通过芯片内的引线和管脚才能接到GNDPCB,所以就会引入一个小电感LG,假设这个值为1nH。CR为接收端管脚电容,这个值取6pF。这个信号的频率取200MHz。虽然这个LG和CR都是很小的值,不过,通过后面的计算我们可以看到它们对信号的影响。先假设A芯片只有一个输出脚,现在Q输出高电平,接收端的CR上积累电荷。当Q输出变为低电平的时候。CR、RL、LG形成一个放电回路。自谐振周期约为490ps,频率为2GHz,Q值约为0.0065。使用EWB建一个仿真电路。(很老的一个软件,很多人已经不懈于使用了。不过我个人比较依赖它,关键是建模,模型参数建立正确的话仿真结果还是很可靠的,这个小软件帮我发现和解决过很多实际模拟电路中遇到的问题。这个软件比较小,有比较长的历史,也比较成熟,很容易上手。建议电子初入门的同学还是熟悉一下。)因为只关注下降沿,所以简单的构建下面一个电路。起初输出高电平,10纳秒后输出低电平。为方便起见,高电平输出设为3.3V,低电平是0V。(实际200M以上芯片IO电压会比较低,多采用1.5-2.5V。)

    标签:

    上传时间: 2013-10-17

    上传用户:zhishenglu

  • 基于中颖SH79F164单片机的电子血压计应用

    基于中颖SH79F164单片机的电子血压计应用:电子血压计因具有无创性、操作简单、携带方面等优点,目前得到广泛的应用和推广。无创检测血压的方法很多,如柯氏音法,测振法,超声法、双袖带法、恒定袖带法、逐拍跟踪法、张力定测法和恒定容积法等。其中测振法就是我们常说的示波法,由于具有较好的抗干扰能力,能比较可靠地判断血压、实现血压的自动检测而成为无创血压的主流。目前国内外大多数电子血压计都采用示波法。示波法的原理同柯氏音法,也需要充气袖套来阻断动脉流,但在放气过程中不是检测柯氏音,而是检测气袖内气体的振荡波(测振法由此得名),这些振荡波是袖带与动脉耦合的结果,源于心血管周期内血管壁由于收缩舒张引起的压力脉动。理论计算和实践均证明此振荡波的幅度有一定的规律,与动脉收缩压、平均压以及舒张压有一定的函数关系。针对示波法,本文将详细介绍基于中颖电子SH79F164 单片机的血压计系统方案与软硬件实现。 在硬件电路设计方面,笔者参考了大量的资料,最终选定SH79F164 单片机作为主控IC。其理由是SH79F164 内建资源丰富,既能节省大量外围器件,又方便系统调试。SH79F164 内建资源主要有:可编程仪表放大器(PGA)、带通滤波器、固定增益放大器、恒流源放大器、10 位A/D 转换器、时基定时器(RTC)。硬件部分构成:压力传感器、SH79F164 单片机、LCD、袖套、充气泵、放气阀、按键等(见图3)。

    标签: F164 164 79F SH

    上传时间: 2013-10-23

    上传用户:muhongqing

  • 深入讨论HCS08的内部时钟源模块

    本文档将深入介绍内部时钟源模块(Internal ClockSource, ICS),该模块可以在部分HCS08 系列微控制器中找到。对HCS08 MCU 来说, ICS 模块不但是一个非常灵活的时钟源,而且对于该系列中更小、更低成本的MCU来说非常经济。ICS 包括锁频环、内部时钟参考、外部振荡器和时钟选择子模块。这些子模块组合可以提供多种时钟模式和频率,以满足任何应用的需要。本应用笔记详细描述ICS 的7 种工作模式、ICS 模块与其他HCS08 MCU 的内部时钟发生器(Internal ClockGenerator, ICG)模块作比较、ICS 模块从不同低功耗模式下恢复的特性及内部时钟参考的校准方法。

    标签: HCS 08 时钟源 模块

    上传时间: 2013-11-08

    上传用户:zhuoying119