分支实验.doc

上传人:m**** 文档编号:552810177 上传时间:2023-05-30 格式:DOC 页数:20 大小:100KB
返回 下载 相关 举报
分支实验.doc_第1页
第1页 / 共20页
分支实验.doc_第2页
第2页 / 共20页
分支实验.doc_第3页
第3页 / 共20页
分支实验.doc_第4页
第4页 / 共20页
分支实验.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《分支实验.doc》由会员分享,可在线阅读,更多相关《分支实验.doc(20页珍藏版)》请在金锄头文库上搜索。

1、微机实验报告实验名称 分支程序设计实验 专业班级 姓名 学号 序号 联系方式 一、 任务要求1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写程序。2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。P3.0为低电平时开始计时,为高电平时停止计时。a. 实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用P3.7状态选择加、减计数方式。 b. 利用P3口低四位状态控制开始和停止计数,控制方式自定。二、设计思路1.分段函数程序:将R

2、1设置为标志位。从外部RAM取出X,先判断X与40的大小,再判断X与20的大小。当X大于等于40时,标志位设置为11H;X小于等于20时,标志位设置为01H;20X40?FLAG=11HNYFLAG=01HX=20?YFLAG=01HNX40,标志位置11HSJMP CALCULAT;跳转至计算步骤JUDGETW:CJNE A,#20H,LESSTW;若X小于40,判断是否等于20MOV FLAG,#01H;若X=20,标志位置01HSJMP CALCULAT;跳转至计算步骤LESSTW: JNC MID;若X不为20,判断是否小于20MOV FLAG,#01H;若小于20,标志位置01HSJ

3、MP CALCULAT;跳转至计算步骤MID:MOV FLAG,#10H;若20x40,标志位置10HCALCULAT: CJNE FLAG,#10H,CASE1;标志位与10H比较MOV B,#2DIV AB ;若为10H,X/2SJMP STORE1;跳转至存储步骤CASE1:JNC CASE2;判断标志位是否小于10HCPL A;若小于10H,A取非SJMP STORE2;跳转至存储步骤CASE2:MOV B,A;若标志位大于10H,X取平方MUL ABSTORE1:MOV R2,A ;对乘除法存储MOV A,BINC DPTRMOVX DPTR,A;计算结果Y高位,余数存于1001HM

4、OV A,R2STORE2:INC DPTR MOVX DPTR,A;取非,低位,商存于1002HSJMP $;踏步END2.时钟程序:;R0:时;R1:分;R2:秒;R3-R7:计时循环ORG 0000HLJMP MAINORG 0200HMAIN:MOV R0,#0 ;初始化R0MOV R1,#0 ;初始化R1MOV R2,#0 ;初始化R2MOV P0,#0 ;初始化P0MOV P1,#0 ;初始化P1MOV P2,#0 ;初始化P2STAY:JB P3.0,STAY ;判断P3.0电平SEC:LCALL DELAY ;调用计时函数INC R2 ;秒加1MOV P2,R2 ;P2口输出秒

5、CJNE R2,#3CH,STAY ;判断是否到60秒MOV R2,#0 ;秒清0INC R1 ;分加1MOV P1,R1 ;P1口输出分CJNE R1,#3CH,STAY ;判断是否到60分MOV R2,#0 ;分清0INC R0 ;小时加1MOV P0,R0 ;P0口输出小时CJNE R0,#18H,STAY ;判断是否到24小时MOV R0,#0 ;小时清0AJMP STAY DELAY:MOV R7,#28H ;延时5usLOOP5: MOV R6,#05H NOP NOPLOOP4: MOV R5,#05H NOP LOOP3: MOV R4,#05H NOP LOOP2: MOV

6、R3,#41H NOP LOOP1:NOP DJNZ R3,LOOP1DJNZ R4,LOOP2DJNZ R5,LOOP3DJNZ R6,LOOP4DJNZ R7,LOOP5RETEND3. 实现4位十进制加、减1计数程序:;R1:千位,百位;R2:十位,个位;30H:暂存R2;R4:暂存A;P3.7=0,减,P3.7=1,加ORG 0000HLJMP MAINORG 0200HMAIN:MOV A,#99H ;四位数赋值MOV R1,AMOV A,#79HMOV R2,AJUDGE:JB P3.7,ADDUP ;若p3.7=1,加1;否则减1DEDUCE:DEC R2 ;R2减1CJNE R2,#0FFH,ADJUST ;判断R2是否借位MOV R2,#99H ;借位则置99DE

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号