第二次微机实验报告.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

youshen + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档