MCS51单片机的检索查找程序

发布者:心连心意最新更新时间:2023-08-23 来源: elecfans关键字:MCS51  单片机 手机看文章 扫描二维码
随时随地手机看文章

;单字节顺序查找程序
;入口    :R0,R1,A,R7
;占用资源:B
;堆栈需求:2字节
;出口    :R0,R1,A


FINDB1   :MOV    B,A
          MOV    DPL,R1
          MOV    DPH,R0
FINDB11  :MOVX   A,@DPTR
          CJNE   A,B,FINDB12
          MOV    R1,DPL
          MOV    R0,DPH
          CLR    A
          RET
FINDB12  :INC    DPTR
          DJNZ   R7,FINDB11
          MOV    A,#0FFH
          RET

;单字节顺序查找程序
;入口    :R0,R1,A,R6,R7
;占用资源:B
;堆栈需求:2字节
;出口    :R0,R1,A

FINDB2   :MOV    B,A
          MOV    DPL,R1
          MOV    DPH,R0
          MOV    A,R7
          JZ     FINDB21
          INC    R6
FINDB21  :MOVX   A,@DPTR
          CJNE   A,B,FINDB22
          MOV    R1,DPL
          MOV    R0,DPH
          CLR    A
          RET
FINDB22  :INC    DPTR
          DJNZ   R7,FINDB21
          DJNZ   R6,FINDB21
          MOV    A,#0FFH
          RET

;双字节字符串顺序查找程序
;入口    :R0,R1,R3,R4,R7
;占用资源:ACC,B
;堆栈需求:2字节
;出口    :R0,R1,A

FINDS1   :MOV    DPL,R1
          MOV    DPH,R0
FINDS11  :MOVX   A,@DPTR
          INC    DPTR
          CLR    C
          SUBB   A,R4
          JNZ    FINDS12
          MOVX   A,@DPTR
          SUBB   A,R3
          JNZ    FINDS12
          MOV    A,DPL
          CLR    C
          SUBB   A,#01H
          MOV    R1,A
          MOV    A,DPH
          SUBB   A,#00H
          MOV    R0,A
          CLR    A
          RET
FINDS12  :DJNZ   R7,FINDS11
          MOV    A,#0FFH
          RET

;双字节字符串顺序查找程序
;入口    :R0,R1,R3,R4,R6,R7
;占用资源:ACC,B
;堆栈需求:2字节
;出口    :R0,R1,A

FINDS2   :MOV    DPL,R1
          MOV    DPH,R0
          MOV    A,R7
          JZ     FINDS21
          INC    R6
FINDS21  :MOVX   A,@DPTR
          INC    DPTR
          CLR    C
          SUBB   A,R4
          JNZ    FINDS22
          MOVX   A,@DPTR
          SUBB   A,R3
          JNZ    FINDS22
          MOV    A,DPL
          CLR    C
          SUBB   A,#01H
          MOV    R1,A
          MOV    A,DPH
          SUBB   A,#00H
          MOV    R0,A
          CLR    A
          RET
FINDS22  :DJNZ   R7,FINDS21
          DJNZ   R6,FINDS21
          MOV    A,#0FFH
          RET

;N字节字符串顺序查找程序
;入口    :ADDPH,ADDPL,R0,R6,R7,N
;占用资源:ACC,B,R2,NCNT
;堆栈需求:2字节
;出口    :ADDPH,ADDPL,A

FINDN    :MOV    A,R0
          MOV    R2,A
          MOV    A,ADDPL
          MOV    DPL,A
          MOV    A,ADDPH
          MOV    DPH,A
          MOV    A,R7
          JZ     FINDN1
          INC    R6
FINDN1   :MOV    A,R2
          MOV    R0,A
          MOV    A,N
          MOV    NCNT,A
FINDN2   :MOVX   A,@DPTR
          CLR    C
          SUBB   A,@R0
          JNZ    FINDN3
          INC    DPTR
          INC    R0
          DJNZ   NCNT,FINDN2
          MOV    A,DPL
          CLR    C
          SUBB   A,N
          MOV    ADDPL,A
          MOV    A,DPH
          SUBB   A,#00H
          MOV    ADDPH,A
          CLR    A
          RET
FINDN3   :CLR    C
          MOV    A,R0
          SUBB   A,R2
          JNZ    FINDN4
          INC    DPTR
FINDN4   :DJNZ   R7,FINDN1
          DJNZ   R6,FINDN1
          MOV    A,#0FFH
          RET

;单字节最值查找程序
;入口    :R0,R1,R6,R7
;占用资源:ACC,B
;堆栈需求:2字节
;出口    :R0(最大值),R1(最小值),R2,R3,R4,R5

FMAMIB   :MOV    DPL,R1
          MOV    DPH,R0
          MOVX   A,@DPTR
          MOV    R0,A
          MOV    R1,A
          MOV    A,DPL
          MOV    R3,A
          MOV    R5,A
          MOV    A,DPH
          MOV    R2,A
          MOV    R4,A
          MOV    A,R7
          JZ     FMMB1
          INC    R6
FMMB1    :MOVX   A,@DPTR
          MOV    B,A
          SETB   C
          SUBB   A,R0
          JC     FMMB2
          MOV    R0,B
          MOV    R3,DPL
          MOV    R2,DPH
          SJMP   FMMB3
FMMB2    :MOV    A,B
          CLR    C
          SUBB   A,R1
          JNC    FMMB3
          MOV    R1,B
          MOV    R5,DPL
          MOV    R4,DPH
FMMB3    :INC    DPTR
          DJNZ   R7,FMMB1
          DJNZ   R6,FMMB1
          RET

[1] [2] [3]
关键字:MCS51  单片机 引用地址:MCS51单片机的检索查找程序

上一篇:CPLD与51单片机总线接口程序
下一篇:MCS51单片机数制转换程序

推荐阅读最新更新时间:2024-11-13 11:12

PIC单片机产生伪随机数程序
PSW EQU 03 R0 EQU 08 R1 EQU 09 R2 EQU 0AH R3 EQU 0BH R4 EQU 0CH R5 EQU 0DH R6 EQU 0EH R7 EQU 0FH TEMP EQU 13H CNT1 EQU 11H CNTH EQU 12H BUF0 EQU 17H BUF1 EQU 18H ESUM1 EQU 13H ESUM2 EQU 14H ESUM3 EQU 15H ESUM4 EQU 16H DSUM1 EQU 19H DSUM2 EQU 1AH DSUM3 EQU
[单片机]
如何利用8位MCU实现智能农场技术
对现代农场而言,技术的进步利弊皆存。 利用现代农业和园艺技术,可以在更小的耕种面积上实现更多的作物产量,从而满足日益增长的人口需求 。然而,如今农场产出的新鲜食品的品质在不断下滑,而数量仍然不足以让农场主保持盈利。 农业本身非常不稳定。原因在于,每年的产量很大程度上受到外部环境的影响。为了满足提高农业一致性和可持续性的需求,需要将另一种现代技术应用到农业中(图1)。我们先来了解智能农场。 图1. 农场主可以远程监控作物和畜牧的健康状况,提供有价值的信息,确保农业的一致性 强大的联网畜牧监控系统有助于增加健康动物的数量,从而提高食品质量。利用土壤和植物健康监控系统,农场主能够在前所未有的细节水平上监控作物的健康状况。
[单片机]
如何利用8位<font color='red'>MCU</font>实现智能农场技术
单片机电路防干扰的设计经验
在电子系统设计中,为了少走弯路和节省时间,应充分考虑并满足抗干扰性的要求,避免在设计完成后再去进行抗干扰的补救措施。形成干扰的基本要素有三个: (1)干扰源,指产生干扰的元件、设备或信号,用数学语言描述如下:du/dt, di/dt大的地方就是干扰源。如:雷电、继电器、可控硅、电机、高频时钟等都可能成为干扰源。 (2)传播路径,指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传播路径是通过导线的传导和空间的辐射。 (3)敏感器件,指容易被干扰的对象。如:A/D、D/A变换器,单片机,数字IC,弱信号放大器等。 抗干扰设计的基本原则是:抑制干扰源,切断干扰传播路径,提高敏感器件的抗干扰性能。 (类似于传染病的预防) 1 抑制干扰
[单片机]
用PIC单片机在线调试LCD
  使用P IC 来调试 LCD 应用可能会有两个方面的问题。第一,LCD控制器会在器件暂停时停止。第二,在PIC16F946/917/916/914/913 MCU上ICD引脚与段共用。   在进行调试时,器件会在断点处和用户按暂停按钮时暂停。如果ICD配置为暂停器件的外设,则LCD控制器将暂停,并向LCD显示屏施加直流 电压 。   随着时间的推移,直流电压会对显示屏造成损坏:但对于大多数调试情形,不需要考虑这一点。   PIC18F LCD MCU具有一个特性,允许当器件在调试期间暂停时,LCD模块继续工作。对于要在器件暂停时检查显示图像,以及防止在器件暂停很长时间的情况下损坏显示屏.该特性很有用。   PIC16F946/
[单片机]
基于MSP430F149单片机的高精度温箱温度控制系统设计
本文针对温箱控制过程中出现的精度低,稳定性差等问题,设计了一种基于MSP430F149单片机的高精度温箱温度控制系统。系统采用铂电阻温度传感器及12位A/D转换器实现了温箱温度精确测量,并利用低功耗MSP430F149单片机及加热和降温系统实现了对温箱温度的精确控制。通过不同温度下测量实验,表明温箱温度控制系统性能稳定可靠。从而在-50~150℃温度范围内,温箱控制精度可以达到±0.5℃。 随着社会的发展,人们对温箱的应用和需求越来越广泛,在工业生产、日常生活和科学实验中,我们随处都可以看到温箱的应用。目前,在温箱的控制过程中还存在一些不足之处,比如控制精度低,稳定性比较差等。因此,针对温箱控制过程中出现的问题,需要设计一
[单片机]
基于MSP430F149<font color='red'>单片机</font>的高精度温箱温度控制系统设计
关于PIC单片机的一些经验总结
为了给前一段时间学习PIC16F616型单片机的一个总结和方便大家的交流,我写了这篇关于PIC单片机的学习心得,都是在看了手册和编程调试后用自己的语言组织的,其中有不足或者有疑问的地方希望大家能及时的给予纠正和批评,提出宝贵的意见. 2.PIC单片机的概述 PIC16F616是一款14引脚、8位的CMOS单片机.采用精简指令集,仅有35条指令,由于采用了数据总线和指令总线分离的哈佛总线结构,使得除少量指令不是单周期之外,大部分的指令都是单周期指令.这样有利于提高单片机的运行速度和执行效率. PIC16F616这款单片机供电电压可以在2V到5.5V之间,内部集成了一个RC振荡器,频率可以配置成8MHZ或者4MHZ,也可以用外部
[单片机]
单片机防解密
1 引言   单片机(Microcontroller)一般都有内部ROM/EEPROM/FLASH供用户存放程序。为了防止未经授权访问或拷贝单片机的机内程序,大部分单片机都带有加密锁定位或者加密字节,以保护片内程序。如果在编程时加密锁定位被使能(锁定),就无法用普通编程器直接读取单片机内的程序,这就是所谓拷贝保护或者说锁定功能。事实上,这样的保护措施很脆弱,很容易被破解。单片机攻击者借助专用设备或者自制设备,利用单片机芯片设计上的漏洞或软件缺陷,通过多种技术手段,就可以从芯片中提取关键信息,获取单片机内程序。因此,作为电子产品的设计工程师非常有必要了解当前单片机攻击的最新技术,做到知己知彼,心中有数,才能有效防止自己花
[单片机]
单片机仿真器的原理介绍
一个理想的单片机仿真器使开发者能观察到单片机内部的操作,仿真器是使替代单片机并使单片机操作可视化的硬件工具。 一个ICE应包括两个接口,一个是连接到目标板上的MCU插座,另一个与PC相连。仿真器应该与目标MCU在电气及物理上等价,并能在开发系统中替代MCU。目标系统的操作可由PC得以控制及观察。在开发初期,开发系统依靠仿真器工作,当目标功能完善后,仿真器将被真正的MCU取代。 ICE的功能及特性: 在主机与目标系统间产生对应的程序区,host memory作为仿真程序区(emulator memory)或Shadow memory 脱离目标硬件实时测试代码 单步(Step)
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved