;片内RAM初始化子程序 IBCLR :MOV A,R0 MOV r1,A CLR AIBC1 :MOV @r1,A INC r1 DJNZ R7,IBC1 RET ;片外RAM初始化子程序 EBCLr1 :MOV A,ADDPL MOV DPL,A MOV A,ADDPH MOV DPH,A CLR CEBC11 :MOVX @DPTR,A INC DPTR DJNZ R7,EBC11 RET ;片外RAM初始化子程序(双字节个单元) EBCLR2 :MOV A,ADDPL MOV DPL,A MOV A,ADDPH MOV DPH,A MOV A,R7 JZ EBC21 INC R6EBC21 :CLR A MOVX @DPTR,A INC DPTR DJNZ R7,EBC21 DJNZ R6,EBC21 RET ;内部RAM数据复制程序;入口 :R0,R7;占用资源:A;堆栈需求:2字节;出口 :r1 IBMOV :MOV A,R0 ADD A,R7 MOV R0,A MOV A,r1 ADD A,R7 MOV r1,AIBM1 :DEC R0 DEC r1 MOV A,@R0 MOV @r1,A DJNZ R7,IBM1 RET ;外部RAM数据复制程序;入口 :ADDPH,ADDPL,R7;占用资源:ACC;堆栈需求:2字节;出口 :R0,r1 EBMOV1 :MOV A,ADDPL ADD A,R7 MOV DPL,A CLR A ADDC A,ADDPH MOV DPH,A MOV A,R7 ADD A,r1 XCH A,R0 ADDC A,#00H MOV P2,AEBM11 :DEC R0 CJNE R0,#0FFH,EBM12 DEC P2EBM12 :DEC DPL MOV A,DPL CJNE A,#0FFH,EBM13 DEC DPHEBM13 :MOVX A,@R0 MOVX @DPTR,A DJNZ R7,EBM11 RET ;外部RAM数据复制程序
上传时间: 2013-10-30
上传用户:bs2005
子程序库的使用方法如下:1.将子程序库全部内容链接在应用程序之后,统一编译即可。优点是简单方便,缺点是程序太长,大量无关子程序也包含在其中。 2.仅将子程序库中的有关部分内容链接在应用程序之后,统一编译即可。有些子程序需要调用一些低级子程序,这些低级子程序也应该包含在内。优点是程序紧凑,缺点是需要对子程序库进行仔细删节。MCS-51 浮点运算子程序库及其使用说明本浮点子程序库有三个不同层次的版本,以便适应不同的应用场合: 1.小型库(FQ51A.ASM):只包含浮点加、减、乘、除子程序。 2.中型库(FQ51B.ASM):在小型库的基础上再增加绝对值、倒数、比较、平方、开平方、 数制转换等子程序。 3.大型库(FQ51.ASM):包含本说明书中的全部子程序。 为便于读者使用本程序库,先将有关约定说明如下: 1.双字节定点操作数:用[R0]或[r1]来表示存放在由R0或r1指示的连续单元中的数 据,地址小的单元存放高字节。如果[R0]=1234H,若(R0)=30H,则(30H)=12H,(31H)=34H。 2.二进制浮点操作数:用三个字节表示,第一个字节的最高位为数符,其余七位为 阶码(补码形式),第二字节为尾数的高字节,第三字节为尾数的低字节,尾数用双字节 纯小数(原码)来表示。
上传时间: 2013-10-15
上传用户:wmwai1314
红外遥控接收;=================================================;; zsMCU51实验板配套学习例程;; 中山单片机学习网 智佳科技;; 作者:逸风 QQ:105558851;; http://www.zsmcu.com; E-mail:info@zsmcu.com;=================================================ORG 0000HLJMP START;转入主程序ORG 0010HSTART:MAIN:JNB P2.2,IRLJMP MAIN;以下为进入P3.2脚外部中断子程序,也就是解码程序IR:MOV R6,#9SB:ACALL DELAY882 ;调用882微秒延时子程序JB P2.2,EXIT ;延时882微秒后判断P3.2脚是否出现高电平如果有就退出解码程序DJNZ R6, SB ;重复10次,目的是检测在8820微秒内如果出现高电平就退出解码程序;以上完成对遥控信号的9000微秒的初始低电平信号的识别。JNB P2.2, $ ;等待高电平避开9毫秒低电平引导脉冲ACALL DELAY2400JNB P2.2,IR_Rp ;ACALL DELAY2400 ;延时4.74毫秒避开4.5毫秒的结果码MOV r1,#1AH ;设定1AH为起始RAM区MOV R2,#4PP:MOV R3,#8JJJJ:JNB P2.2,$ ;等待地址码第一位的高电平信号LCALL DELAY882 ;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态MOV C,P2.2 ;将P3.2引脚此时的电平状态0或1存入C中 JNC UUU ;如果为0就跳转到UUULCALL DELAY1000UUU:MOV A,@r1 ;将r1中地址的给ARRC A ;将C中的值0或1移入A中的最低位MOV @r1,A ;将A中的数暂时存放在r1中DJNZ R3,JJJJ ;接收地址码的高8位INC r1 ;对r1中的值加1,换下一个RAMDJNZ R2,PP ;接收完16位地址码和8位数据码和8位数据,存放在1AH/1BH/1CH/1DH的RAM中MOV P1,1DH ;将按键的键值通过P1口的8个LED显示出来!CLR P2.3 ;蜂鸣器鸣响-嘀嘀嘀-的声音,表示解码成功LCALL DELAY2400LCALL DELAY2400LCALL DELAY2400SETB P2.3;蜂鸣器停止LJMP MAINIR_Rp:LJMP MAINEXIT:LJMP MAIN ;退出解码子程序;=============================882DELAY882: ;1.085x ((202x4)+5)=882MOV R7,#202DELAY882_A:NOPNOPDJNZ R7,DELAY882_ARET;=============================1000DELAY1000: ;1.085x ((229x4)+5)=999.285MOV R7,#229DELAY1000_A:NOPNOPDJNZ R7,DELAY1000_ARET;=============================2400
上传时间: 2013-11-01
上传用户:2525775
MCS-51单片机实用子程序库 ;片内RAM初始化子程序IBCLR: MOV A,R0MOV r1,ACLR AIBC1 : MOV @r1,AINC r1DJNZ R7,IBC1RET;片外RAM初始化子程序EBCLr1: MOV A,ADDPLMOV DPL,AMOV A,ADDPHMOV DPH,ACLR CEBC11: MOVX @DPTR,AINC DPTRDJNZ R7,EBC11RET;片外RAM初始化子程序(双字节个单元)EBCLR2: MOV A,ADDPLMOV DPL,AMOV A,ADDPHMOV DPH,AMOV A,R7JZ EBC21INC R6EBC21: CLR AMOVX @DPTR,AINC DPTRDJNZ R7,EBC21DJNZ R6,EBC21RET;内部RAM数据复制程序;入口: R0,R7;占用资源: A;堆栈需求: 2字节
上传时间: 2013-10-10
上传用户:18602424091
实现动态显示效果的方法和以上几种基本类似,这里以滚动显示为例作一说明。对于需要滚动的文字,可以将其设置为位图格式,暂存于内存中,然后利用VC 提供的位图拷贝函数BitBlt将位图复制到显示位置。对于特殊字符或图形,则可以直接利用BitBlt函数调用到显示位置。然后在类CLEDDlg的 OnTimer函数中调用该函数,以实现文字的滚动显示。另外,也可以通过设定不同的响应时间间隔来改变文字的滚动速度。 程序清单: ORG 00H LOOP: MOV A,#0FFH ;开机初始化,清除画面 MOV P0,A ;清除P0口 ANL P2,#00 ;清除P2口 MOV R2,#200 D100MS: MOV R3,#250 ;延时100毫秒 DJNZ R3,$ DJNZ R2,D100MS MOV 20H,#00H ;取码指针的初值 l100: MOV r1,#100 ;每个字的停留时间 L16: MOV R6,#16 ;每个字16个码
上传时间: 2013-11-06
上传用户:zl520l
第1 章 体系结构 ARM经典300问与答第1 问:Q:请问在初始化CPU 堆栈的时候一开始在执行mov r0, LR 这句指令时处理器是什么模式A:复位后的模式,即管理模式.第2 问:Q:请教:MOV 中的8 位图立即数,是怎么一回事 0xF0000001 是怎么来的A:是循环右移,就是一个0—255 之间的数左移或右移偶数位的来的,也就是这个数除以4一直除, 直到在0-255 的范围内它是整数就说明是可以的!A:8 位数(0-255)循环左移或循环右移偶数位得到的,F0000001 既是0x1F 循环右移4 位,符合规范,所以是正确的.这样做是因为指令长度的限制,不可能把32 位立即数放在32 位的指令中.移位偶数也是这个原因.可以看一看ARM 体系结构(ADS 自带的英文文档)的相关部分.第3 问:Q:请教:《ARM 微控制器基础与实战》2.2.1 节关于第2 个操作数的描述中有这么一段:#inmed_8r 常数表达式.该常数必须对应8 位位图,即常熟是由一个8 位的常数循环移位偶数位得到.合法常量:0x3FC,0,0xF0000000,200,0xF0000001.非法常量:0x1FE,511,0xFFFF,0x1010,0xF0000010.常数表达式应用举例:......LDR R0,[r1],#-4 ;读取 r1 地址上的存储器单元内容,且 r1 = r1-4针对这一段,我的疑问:1. 即常数是由一个8 位的常数循环移位偶数位得到,这句话如何理解2. 该常数必须对应8 位位图,既然是8 位位图,那么取值为0-255,怎么0x3FC 这种超出255 的数是合法常量呢3. 所举例子中,合法常量和非法常量是怎么区分的 如0x3FC 合法,而0x1FE 却非法0xF0000000,0xF0000001 都合法,而0xF0000010 又变成了非法4. 对于汇编语句 LDR R0,[r1],#-4,是先将r1 的值减4 结果存入r1,然后读取r1 所指单元的 值到R0,还是先读取r1 到R0,然后再将r1 减4 结果存入r1A:提示,任何常数都可用底数*2 的n 次幂 来表示.1. ARM 结构中,只有8bits 用来表示底数,因此底数必须是8 位位图.2. 8 位位图循环之后得到常数,并非只能是8 位.3. 0xF0000010 底数是9 位,不能表示.4. LDR R0, [r1], #-4 是后索引,即先读,再减.可以看一看ARM 体系结构对相关寻址方式的说明.
上传时间: 2013-11-22
上传用户:1109003457
输入电压,分压点电压,电阻一阻值,电阻二阻值,4个值任意换算,比如r1为1K输入电压为5V,分压点电压为1.5V就能计算出R2等于多少欧姆
上传时间: 2013-11-22
上传用户:15071087253
输入电压,分压点电压,电阻一阻值,电阻二阻值,4个值任意换算,比如r1为1K输入电压为5V,分压点电压为1.5V就能计算出R2等于多少欧姆
上传时间: 2014-01-13
上传用户:huyanju
本文将接续介绍电源与功率电路基板,以及数字电路基板导线设计。宽带与高频电路基板导线设计a.输入阻抗1MHz,平滑性(flatness)50MHz 的OP增幅器电路基板图26 是由FET 输入的高速OP 增幅器OPA656 构成的高输入阻抗OP 增幅电路,它的gain取决于r1、R2,本电路图的电路定数为2 倍。此外为改善平滑性特别追加设置可以加大噪讯gain,抑制gain-频率特性高频领域时峰值的R3。图26 高输入阻抗的宽带OP增幅电路图27 是高输入阻抗OP 增幅器的电路基板图案。降低高速OP 增幅器反相输入端子与接地之间的浮游容量非常重要,所以本电路的浮游容量设计目标低于0.5pF。如果上述部位附着大浮游容量的话,会成为高频领域的频率特性产生峰值的原因,严重时频率甚至会因为feedback 阻抗与浮游容量,造成feedback 信号的位相延迟,最后导致频率特性产生波动现象。此外高输入阻抗OP 增幅器输入部位的浮游容量也逐渐成为问题,图27 的电路基板图案的非反相输入端子部位无full ground设计,如果有外部噪讯干扰之虞时,接地可设计成网格状(mesh)。图28 是根据图26 制成的OP 增幅器Gain-频率特性测试结果,由图可知即使接近50MHz频率特性非常平滑,-3dB cutoff频率大约是133MHz。
标签: PCB
上传时间: 2013-11-09
上传用户:z754970244
电子发烧友网:本资料是关于单片机及接口技术这门课程的期末考试试卷及答案的详解。 8.当需要从MCS-51单片机程序存储器取数据时,采用的指令为( )。 a)MOV A, @r1 b)MOVC A, @A + DPTR c)MOVX A, @ R0 d)MOVX A, @ DPTR 二、填空题(每空1分,共30分) 1.一个完整的微机系统由 和 两大部分组成。 2.8051 的引脚RST是____(IN脚还是OUT脚),当其端出现____电平时,8051进入复位状态。8051一直维持这个值,直到RST脚收到____电平,8051才脱离复位状态,进入程序运行状态,从ROM H单元开始取指令并翻译和执行。 3.半导体存储器分成两大类 和 ,其中 具有易失性,常用于存储 。
上传时间: 2015-01-03
上传用户:wfl_yy