ImageVerifierCode 换一换
格式:DOC , 页数:39 ,大小:229KB ,
资源ID:2451735      下载积分:12 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/2451735.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(基于at89s51的多路温度巡检仪(终稿).doc)为本站上传会员【a199****6536】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

基于at89s51的多路温度巡检仪(终稿).doc

1、课程设计 多路温度巡检仪设计说明书 目 录 1.设计任务…………………………………………………………………… 2 1.1设计题目………………………………………………………………2 1.2设计目的…………………………………………………………… 2 1.3设计任务………………………………………………………… …2 2.总体方案设计与方案论证 ………………………………………………4 2.1总体方案设计与论证…………………………………………………4 2.2温度采集、计算的方案设计与论证…………………………………5 3.系统总框图及总体软件设计说明……………

2、………………………… 6 4.系统资源分配图………………………………………………………… 7 5.局部程序设计说明……………………………………………………… 8 5.1显示更新子程序………………………………………………………… 8 5.2温度采集存储子程序………………………………………………………9 5.3PB口消抖和冻结子程序………………………………………………… 11 5.4 自动巡显和手动切换子程序…………………………………………… 12 5.5转换成温度内码的子程序……………………………………………… 13 5.6温度内码转化为BCD码的子程序………………………

3、………………15 5.7键盘扫描和节拍设定的子程序……………………………………………17 5.8改进后设定温度上下限的子程序…………………………………………19 5.9改进后实时钟调整的子程序………………………………………………20 6.系统功能及其操作说明-……………………………………………………21 7.调试记录及调试结果-……………………………………………………… 21 8.课程设计总结-…………………………………………………………… 22 附录一:源程序清单………………………………………………………… 23 附录二:改进后的程序…………………………………………………

4、…… 38 1.设计任务 1.1设计题目 多路温度巡检仪 1.1设计目的 通过小型微机应用产品的设计与调试过程,运用《微机原理及接口技术》课程所学的基本知识,在设计中加以应用,进而得到理解、巩固和提高,通过实践的过程学习与掌握分析与解决实际问题的方法与手段,提高设计、编程与调试的实际动手能力,作为工程技术工作的一次基本训练。 1.2设计任务 设计一个以单片机为核心的多路温度巡回检测显示仪表系统。通过多选一电子模拟开关及A/D转换器巡回采集各路温度传感及变送器的数据,进行信号处理及标度变换,以一定的节拍时间依序显示各检测回路的序号及温度值,并可通过按钮开关操控作冻结或切换显

5、示,在单片机实验板台上模拟调试实现。 (一) 基本设计要求 1、开机单片机实验板上的8位数码管、LED灯、蜂鸣器等设备进行自检自检。 2、八位LED 7段数码管显示当前检测回路的序号、温度值及温度单位“oC”或其他界面信息,温度显示单位为oC,保留一位小数。 C ° 8 4. 3 --- 1 例如: 3、八路温度按节拍巡回检测显示,温度测量范围-50.0°C~+50.0°C。 4、设选用的温度传感变送器将检测的-50°C~+50°C温度变换为0~5V电压信号,综合误差为±0.5°C。 5、应采取数字滤波技术提高测量的稳定性采用每一

6、路的AD信号采集4次滚动存放保存的4次的温度值都是最新的温度值然后对这4次的温度值求平均值。 6、设置一个“冻结”按钮开关以操控进入与退出当前回路的冻结显示方式,冻结显示期间每0.5S更新一次温度值,冻结的时候只是路数不再改变只是显示当前路的温度值。 7、设置一个“切换”按钮开关以操控强行切换显示下一检测回路号及温度值。 8、对开关量输入进行软件消抖动处理比如冻结的按键进行键盘消抖动处理。 (二) 扩展功能(选做) 1、键盘设定巡回节拍范围为0.5S~5.0 S,设定过程为按下功能键F后在选择一个操作的数值比如F1,先返回当前的节拍值,再进行按照数字键进行设定节拍在这个状态下

7、按下S键保存新的节拍值且保持此节拍值1S后返回到巡显的状态,按下C键的时候直接返回到巡显状态。 2、F键按下无操作时间超过10分钟后自动恢复为基本的温度巡显方式。 3、超上限告警功能,键盘设定温度上限值范围为-50 .0°C~+50 .0°C,监测到某回路温度超上限时有相应的显示闪烁提示、LED指示、讯响告警及继电器触点输出控制功能。 4、实现带有回差的超上限告警功能,通过键盘设定回差值的范围为±0 .1°C~±5 .0°C。 5、增加温度超下限告警处理功能。 6、每巡回显示一遍,穿插一个节拍显示实时钟,通过键盘设定时间。 7、其他功能扩展。 2.总体方案设计

8、与方案论证 2.1总体方案设计与论证 本次课程设计的要求是8路温度巡显仪,要正常显示、进行参数设置等多个工作状态故系统工作的标志位是程序工作的主要的线索,每个功能模块在判断后系统的标志位再去执行相应的功能。见如下的框图所示。 设置节拍 1号键 按下了F键 参数设定态 为2 设置报警限值 2号键 系统的标志位 判 断

9、 进入冻结态 F0=1 显示温度态 为1 正常巡显态 F0=0 图1-系统软件设计的整体思路框图 2.2温度采集、计算的方案设计与论证 方案一

10、 采用ADC0809芯片把经过每一路温度传感变送器变换为0~5V电压信号转化为数字量采用滚存最新的4次温度值进行求平均值并且每个工作大循环调用一次,把这个平均值扩大到0~1000的温度内码存储起来这样一来可以使-50°C、0°C、50°C分别变换成0、500、1000的温度内码,要显示的时候读出温度内码转化为BCD码送入8位7段数码管显示,8路温度信号采用巡回动态显示。通过按键操作进行修改系统程序的的标志位,程序中通过判断这些标志位来修改显示的节拍和温度报警的上下限。 方案二 也是采用ADC0809用每调用一次温度采集子程序就把8路的温度每一路采集四次存放到存储单元中,这样每调用一次就要算3

11、2次,每次AD转化最少要100US要是稍微延时1MS的时候,每次调用就要32MS。如果显示的时候采用静态显示的时候要很多条I/O线。 综上所述,选用方案一,要是选用方案二的时候每次调用时太久不利于系统工作,会影响后面的程序调用。每个大循环调用1路四次的AD转化且滚存到存储区中,把AD值转化成温度内码,再把温度内码转化成BCD码。 2.3显示查表的方案设计与论证 方案一 把带小数点的断码也写进断码表,显示个位的时候直接查找有带符号位的断码。 方案二 显示过程中先判断显示到了个位没有,如果到了就把个位的数据的最高位清零 A T 8 9 S 5 1 LED显 示 ADC

12、0809转化 单片机复位 切换和冻结 按键调整节拍 8路温度变送器 图2-系统设计的硬件系统的框图 3.系统总框图及总体软件设计说明 初始化包括芯片初始化和工作初始化 初始化 自检包括对蜂鸣器、LED、每个数码管的自检 系统自检

13、 包括是要显示温度或者是显示实时钟 显示更新子程序 把显示缓存区30H—37H单元的内容通过查表进行显示 查表显示子程序 每个流程调用一次进行一次采集并采用数据滚存 数据采集子程序

14、 对PB口输入的键盘进行消抖动保存到2EH和2FH 键盘消抖子程序 判别是否PB0的冻结按键如果按下把标志位F0求反 判别冻结子程序

15、 系统在状态1下按一定节拍进行正常的温度巡检 自动巡显子程序 如果切换键按下的时候路数+1显示当前路的温度值 手动切换子程序

16、 利用键反转法先读出键的状态在进行查表查出键码 键盘扫描子程序 判断是否按下了F键,是进入2态进行对参数的设定 节拍设置子程序 把AD转换出来的数据经

17、过放大到0-1000的温度内码 AD转化温度内码 把温度内码进行处理转化成BCD码显示到数码管上 内码转化成BCD码 图3-系统软件设计的总流程图并解释 4.系统资源分配表 硬件资源分配 片内数据存储

18、空间的分配 名称 实现的功能 字节地址 用 途 PB0 冻结按键 00H-07H 工作寄存器R0—R7 PB1 手动切换按键 10H-1FH 8路温度内码的存储单元 PB2 小时校准按键 20H 进程标志位 PB2 分钟校准按键 21H 设置温度上下限的保存单元 PB2 秒钟校准按键 22H 温度的十位的临时存储单元 K0~K9 数字0~9输入按键 23H F态设置的过程的无操作中断次数 K10 功能键F 24H F态无操作跳出的时间设定单元 K11 确定键S 29H-2FH PB口消抖动的暂时存储单元 K12

19、 取消操作键C 30H-37H 数码管显示缓存区 L0灯 超过上限温度报警 38H-3CH 分别为200us、10ms、1s、1分1小时存储单元 P3.2 蜂鸣器超温报警 3EH 节拍计时的中断次数记录 P0口 数据地址/数据总线复用 3FH 节拍中断次数计数单元 P1口 外部扩展地址总线的高八位 40H-5FH 8路温度每一路采集4次的存储单元 P2口 片外芯片的线选端 68H 最新的AD转换的数据存储单元 P3口 WR、RD片外扩展的读写信号 69H DPL的存储单元,用来读取和设置AD转化的通道 6AH 用来设置求平均值的循

20、环次数 6BH 温度内码低字节的暂存单元 6CH 温度内码高字节的暂存单元 6DH 路次的存储单元 6EH 进程的状态码 6FH 栈底指针 F0位地址 冻结的标志位 64H-67H 键盘扫描的存储单元 5.局部程序设计说明 5.1显示更新子程序 (一)显示更新子程序的流程图 取当前路数 取进程码 是否为1态 N 说明为2态 是否9路 Y 调用F态显示程序段

21、 N Y 调用拆温度子程序 跳到拆时间子程序段段 调用实时钟调整子程序 返回 图4-显示更新子程序流程图 源程序如下: GENGXIN:MOV R7,6DH ;显示更新送显缓。取出当前路次值 MOV A,6EH ;取当前进程码 CJNE A,#01H,GX1 ;当前状态是否为常态? CJNE R7,#9,GX

22、判断是否该显示时间? LCALL CTIME ;调用时间拆字子程序 LCALL SHIZTZ LJMP GX4 ;返回 GX:LCALL CWENDU ;否,则调用温度拆字子程序 SJMP GX4 ;返回 GX1:CJNE A,#02H,GX4 ;判断是否为02进程 MOV 37H,#15 ;送F的字符到左边第一个数码管 MOV 36H,#16 ;送--字符所在的字段码表的位置

23、 MOV 34H,#19 ;熄灭34H单元所对应的数码管 MOV 31H,#19 ;熄灭35H单元所对应的数码管 GX4:RET (二)拆温度子程序 拆温度子程序包括在左边第一位显示当前路次,最右边两位分别显示“°C”。通过判断温度的符号的标志位34H.7,可以知道当前温度为正或为负,为负时显示出负号,如果当前的温度十位为零时,要把十位关显示。 源程序如下: CWENDU:MOV 37H,6DH ;温度拆字子程序。当前路次值放入37H中 MOV 30H,#2

24、1 ;温度C显示位 MOV 31H,#20 ;符号°显示位 MOV 36H,#19 ;空格 MOV A,34H ;十位参数过滤 JNB ACC.7,W1 ;最高位是否为1? MOV 35H,#10H ;是,显示"-"号 LJMP W3 W1:MOV 35H,#19 ;否,改为灭掉 W3:CLR ACC.7 ;最高位清零 JNZ W2 ;累加器A非零跳转是否为零十位是否零? MOV 34H,#19 ;十位为零

25、灭掉 LJMP W4 W2:MOV 34H,A ;回存 W4:RET (三)拆时间子程序 原理同TEST0315子程序,把3AH,3BH,3CH中的数据分别把高四位和低四位拆到两个字节的第四位,这两个字节的高四位清零。把拆出来的两个字节送到显示缓存区显示。源程序略。 5.2温度采集存储子程序 依据路数设为N通过:N*4+3EH可以算出第N路温度存储的首地址通过滚动存放到连续的四个单元中。滚存的示意图如下:例如第一路1*4H+3EH=42H

26、40H 首先读出42H中的内容到A中 41H 指针加1指向43H,把A(42H)放入43H 42H 起始地址 指针减去2指向41H单元,且读到A中 43H 指针加1指向42H,把A(41H)放入42H 44H 指针减去2指向40H,且读到A中 45H

27、 指针加1指向41H,把A(40H)放如41H . 读出AD信号到40H . DPL+1指向下一个通道的AD转换 . 子程序返回 5FH 图5--AD滚存的原理示意图 源程序清单如下: CAIJIWD:MOV DPH,#0FBH ;写外部数据指针高8位采用8路温度

28、滚存; MOV DPL,69H ;读取外部数据指针低八位 MOVX A,@DPTR ;读取上一次AD转换的结果 MOV 68H,A ;暂存结果 MOV A,DPL ;数据指针低八位放入累加器中,AD数据存储地址 SUBB A,#0F7H ;减去F7H MOV B,#4 ;再乘以4 MUL AB ; ADD A,#3EH ;再加上3EH MOV R0,A ;R0指向写数据的首地址 M

29、OV A,@R0 ;读取该单元的数据 INC R0 ;指针加一 MOV @R0,A ;在该单元放入前个单元的数据 DEC R0 ;指针连续后退两次 DEC R0 ; MOV A,@R0 ;读取该单元的数据 INC R0 ;指针加一 MOV @R0,A ;在该单元放入前个单元的数据 DEC R0 ;指针连续后退两次 DEC R0 ; MOV A,@R0 ;读取该单元的数据

30、 INC R0 ;指针加一 MOV @R0,A ;在该单元放入前个单元的数据 DEC R0 ;指针后退一次 MOV A,68H ;读取最新的数据 MOV @R0,A ;在该单元放入最新的数据 INC DPL ;数据指针低八位加一,准备转换下一路 MOV A,DPL ; MOV 69H,A ;存储数据指针低八位 CJNE A,#00H,AD1 ;判断八路是否全部转换过?? MOV DPL,#0

31、F8H ;是,重新从第一路开始 MOV 69H,#0F8H ; AD1:MOVX @DPTR,A ;启动AD转换 RET 5.3 PB口消抖和冻结子程序 PB口消抖是利用保存最近5次的状态,如果5次的结果一样说明确定按下了按键并且存放到2EH和2FH中详细程序见程序清单,如果没有直接退出。 冻结子程序是判断是否按下了冻结键PB0,如果有按下的时候修改状态标志字当前路数不再变化温度值每1S更新一次,没有按下的时候直接跳出。 源程序如下: DONGJIE:JB 2FH.0,DONE1 ;冻结判断子程序。判PB0下降沿

32、 JNB 2EH.0,DONE1 CPL F0 ;取反标志位 DONE1:RET 5.4 自动巡显和手动切换子程序 开始 开始 是否切换 是否冻结 Y N 取出当前中断次数 Y

33、 Y 路次+1 和设定相等? N 是否到9 Y

34、 N 路次+1,调用温度转化子程序 Y 路次置1 是否到9 N

35、 返回 路次置1 Y 返回 图5—AD自动巡检的流程图 图6—AD手动切换的流程图 源程序如下: ZDXUNX:JB F0,BACK1 ;自动巡显节拍控制子程序。检测当前的冻结位 MOV A,3EH

36、 ;非冻结状态 CJNE A,3FH,BACK ;判断节拍值是否已到? MOV 3EH,#0 ;已到,中断次数计数单元清零 INC 6DH ;路次加一 LCALL WDNM ;调用AD转化为温度内码的子程序 LCALL NEI2BCD ;调用T内码转BCD码子程序 MOV A,6DH ;判断是否已到第九路?? CJNE A,#10,BACK ; MOV 6DH,#1 ;置为第一路

37、 BACK:RET ;返回 BACK1:LCALL WDNM ;冻结状态。调用AD值转化为温度内码的子程序 LCALL NEI2BCD ;调用T内码转BCD码子程序 RET 5.5 转换成温度内码的子程序 此程序该设计的核心的算法之一,主要利用(D1+D2+D3+D4)/4*1000/255这样一来可以把AD转化出来的值放大到0-1000的温度内码,同样等价为:(D1+D2+D3+D4)*251/256.除以256等价为向右移动8位,也相当于高低字节错位相加得到结果。 取出路次 取出路次

38、 算出AD的地址取出数据 算出AD的起始地址 大于500? 数据累加到A,地址+1 N 标记符号位 是否加4次 N Y

39、 内码--500 Y 500--内码 高低字节分别保存 相乘后的结果错位相加 高低字节分别乘以251 用低8位求出十位、个位、小数位

40、 高8位为1? 算出T内码的起始地址 回存T内码 N 给每一位分别加2,5,6 Y 返回

41、 返回 图7—AD转化成T内码的流程图 图8—温度内码转化成BCD码的流程图 源程序如下: WDNM:MOV A,6DH ;取当前路次值A/D数据转化成温度内码子程序 MOV B,#4 ;B存入地址倍数 MUL AB ;求得当前路的存储首地址 ADD A,#3CH ; MOV R0,A ;R0指针指向存储路数AD值的首地址40H-5FH中的一个 MOV

42、R5 ,#04H MOV R2,#00H MOV R4,#00H MOV R1,#00H WDNM5:MOV A ,@R0 WDNM1:DJNZ R5 ,WDNM2 LJMP WDNM3 WDNM2:INC R0 ADD A ,@R0 ;把四次A/D值的和的低字节放到累加器A中 JNC WDNM1 ;计算出温度内码实现的运算(D1+D2+D3+D4)*251/256 CLR C INC R

43、2 ;R2用来存放四次A/D值相加的高字节 LJMP WDNM1 WDNM3:MOV B ,#251 MUL AB ;低字节先乘以251,低字节放到A中 MOV R4 ,B ;相乘后右移8位相当于丢弃低字节,高字节放到R4中 MOV A ,R2 ; MOV B ,#251 ;相加后的高字节*251 MUL AB

44、 ;相乘后的高字节存放在B中 ADD A ,R4 ;错位相加 JNC WDNMA ;没有进位的话跳转到温度回存的程序段 CLR C INC B ;进位到高字节中 WDNMA:MOV 6BH,A ;转化出来的温度内码的低字节存放到6B中 MOV 6CH,B ;高字节放到6CH中

45、 MOV A,6DH ;取当前路次值 MOV B,#2 ;每一路占用两个字节10H-1FH的地址 MUL AB ;路次值乘以2再加上14即得内码区高字节首地址 ADD A,#0EH ; MOV B,A ; INC B ;加一得低字节地址 MOV R1,A ;R1和R0分别为高低八位的存储地址指针 MOV R0,B ;存储地址指针 R1R0 格式 MOV @R1 ,6CH ;回存高字节到10H开始的地址中

46、 MOV @R0 ,6BH ;回存低字节 MOV 6CH,#0 ;高字节存储单元清零,供下次使用 MOV 6BH,#0 ;低字节存储单元清零,供下次使用 RET 5.6温度内码转化为BCD码的子程序 把温度内码和500相比较,如果大于500说明温度为正的,用 内码-500=T T/100的商为温度的十位,余数/10的商为温度的个位,此时的余数为温度的小数位。如果是小于500说明温度为负的 ,用 500-内码=T此时再按照上面的取余数和商的算法算出温度值。流程图见图8.

47、源程序如下: NEI2BCD:MOV A,6DH ;温度内码转BCD码子程序。取当前路次值 CLR C ;清除进借位标志 CJNE @R1,#01H,NEXT6 ;高八位是否相等?不相等,转移 CJNE @R0,#0F4H,NEXT4;高八位相等,低八位是否相等?不相等,转移 MOV 32H,#0 ;高低八位均相等,即为0℃ MOV 33H,#0 ; MOV 34H,#0 ; LJMP DONE2 ;完成 NEXT4:JC NEXT5 ; MOV

48、 A,@R0 ;温度大于0℃ CLR C SUBB A,#0F4H ;转换为BCD码 LCALL JISUAN ; LJMP DONE2 ;完成 NEXT5:MOV A,#0F4H ;温度小于0℃ CLR C SUBB A,@R0 ; LCALL JISUAN ;转换为BCD码 MOV A,34H ;"-" 号需显示,添加负号标志 ORL A,#80H ; MOV 34H,A ;回存 LJMP DONE2 ;完成

49、NEXT6:JC NEXT7 ;判断@R1的内容是否比01H大?? DEC @R1 ;高八位比01H大,@R1减去500的高八位01H MOV A,@R0 ;低八位和500的低八位相减 CLR C ;清除借位标志位 SUBB A,#0F4H ; MOV 20H.1,C ;保存借位标志位 JB 20H.1,NEXT11 ;判断相减过程中是否出现借位? LCALL JISUAN ;无出现借位,运算 CJNE @R1,#01H,NEXT12 ;高八位是否为1?

50、 LCALL BUCHANG ;是,补偿一次 NEXT12:INC @R1 ;否,恢复初始的@R1值,差即为目标BCD码 LJMP DONE2 ;返回 NEXT11:DEC @R1 ;出现借位,高八位再次减一 LCALL JISUAN ;运算 CJNE @R1,#01H,NEXT13 ;高八位是否还为1? LCALL BUCHANG ;是,补偿一次 NEXT13:INC @R1 ;否,恢复初始的@R1值,差即为目标BCD码 INC @R1 LJMP DONE2 ;返回

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服