- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二次微机实验报告
实验名称 分支与循环程序设计实验 成 绩
任务要求
1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。
2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。P3.0为低电平时开始计时,为高电平时停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。
提高部分(选做):
1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用P3.7状态选择加、减计数方式。
2)利用P3口低四位状态控制开始和停止计数,控制方式自定。
二、设计思路
1.第一题中只需通过CJNE判断x与10,64的大小关系,转向不同的分支程序,进行运算输出y。由于本题中要进行x/2,则要考虑余数部分的处理,要将余数另存入一个单元。
2.第二题中延时1s子程序可以通过NOP指令以及几重循环嵌套实现。当P3.0为低电平开始计时,先延时1s,秒数值+1,输出秒钟数值,判断秒是否满60s,满60s,则P2端口秒示数清零,且分钟数值加1;没满60s,则返回判断P3.0电平,再进入计时。每次分钟数值+1后,输出分钟数值,再判断分钟是否满60min,满60min,则P1端口清零,且小时数值+1;没满60min,则返回判断P3.0电平,再计时。每次时+1后,输出时,再判断时是否满24h,满24h,则P0端口清零,返回判断P3.0电平,再计时;若没满24h,则返回P3.0电平,再计时。
3.提高题延时1s子程序同上。当P3.0低四位端口允许计数后,先进入延时,再判断P3.7指示进行加一还是减一计数。若是加一计数,则先给十位个位+1,要注意考虑会不会产生进位,使千位百位+1;若是减一计数,则让十位个位减一,由于DA不能用于减法,则考虑加-1H的十进制补码99H,同样需要考虑十位个位借位的情况。
资源分配
程序一:2400H 存放数据
2401H,2402H 存放结果
A,B用于计算
程序二:R5,R6,R7 存放循环次数
A用于计算
程序三:R5,R6,R7 存放循环次数
A用于计算
流程图
程序一:
程序二:
程序三:
源代码 (含文件头说明、语句行注释)
程序一:
Description: 根据x的值计算相应y的值
Date: 2016/10/23
Designed by: 陈钰
Source used: 片外RAM 2400H~2402H
A,B
ORG 0000H
LJMP START
ORG 0100H
START: MOV DPTR,#2400H
MOV A,#09H
MOVX @DPTR,A ;设定2400H中的数
MOVX A,@DPTR ;从片外2400H中取数
JUDGE0: JB ACC.7,JS1 ;判断是否为负数,若是负数(小于10)则取反
CJNE A,#10,JUDGE1 ;比较A和10的大小,若等于10则取反,若不等于10转JUDGE1
JS1: CPL A ;取反
LJMP DONE
JUDGE1: JC JS1 ;若C=1,则A小于10,转JS1,取反
CJNE A,#64,JUDGE2 ;A大于10,再比较A与64,不等于64转JUDGE2
JS2: MOV B,A ;令B=A
MUL AB ;求A平方,且积的高位存入B,低位存入A
LJMP DONE
JUDGE2: JNC JS2 ;C=0,则A大于64,转JS2求平方;C=1,则A小于64,则将A除以2
MOV B,#2
DIV AB ;X/2运算,A中存商,B中存余数
XCH A,B ;交换A、B,即将余数存入A,商存入B
LJMP DONE
DONE: INC DPTR
INC DPTR
MOVX @DPTR,A ;将 积的低位/除2后的小数部分/取反结果 存入2402H
MOV DPTR,#2401H
MOV A,B
MOVX @DPTR,A ;将 积的高位/除2后的整数部分 存入2402
您可能关注的文档
最近下载
- 最新安全生产标准化模板——目标职责.pdf VIP
- 新生儿肠外营养管理专家共识(2025).pptx VIP
- 05G359-3悬挂运输设备轨道标准图集.pdf VIP
- 最新人教版四年级数学下册期末试卷(可打印).doc VIP
- 2022年国家公务员考试行测试题及答案(地市级).pdf VIP
- 泄漏扩散模拟计算方法模型.pdf VIP
- 新解读《CH_T 1054 - 2022无人机航空摄影成果质量检查与验收》最新解读 (1).docx VIP
- 高中语文(统编版)必修下册全册单元教材解读课件.pptx
- 肺部结节的CT鉴别诊断-肺部磨玻璃样病变【90页】.pptx VIP
- 2024年国家公务员考试行测试题及答案.docx VIP
文档评论(0)