- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《微机实验》报告
PAGE \* MERGEFORMAT 1
实验名称 分支与循环程序设计 成 绩
指导教师 ******
专业班级 ****** 姓 名 白*** 学 号 *******
联系电话 ********
一、任务要求
熟练掌握Keil环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO口的使用。
设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。
利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。P3.0为低电平时开始计时,为高电平时停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。
1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用P3.7状态选择加、减计数方式。
2)利用P3口低四位状态控制开始和停止计数,控制方式自定。
二、设计思路
先在外部RAM取数,然后判断该符号数是否为负数,若为负数,则取相反数并存数;若为正数,则接着判断该数是否大于等于64,若满足,则求平方并存数,先存低位,后存高位;若小于64,则接着判断该数是否大于10,若满足,则求该数的一半并存数;若小于等于10,则取相反数并存数。
第一步先编可以延时1S的子程序DELAY;接着判断P3.O是否满足开始计数条件,若不满足,则重复判断;若满足,则对时分秒分别赋值,调用延时子程序,判断是否满足计时条件,若不满足,则重复判断直至满足;若满足,则秒钟自加一,循环,判断秒钟循环满60次后出循环,对分钟自加一,然后继续循环,最后判断分钟循环满60次后出循环,对时钟自加一,然后判断时钟循环满24则回到初值,时分秒重新赋值并重新开始循环。
判断P3.7,若为1,则进行加一计数,若为0,则跳转至另一程序进行减一计数;加一计数中,先取低位P1送A,自加一,送P1,判断是否有溢出,若有,则取高位P2送A,自加一,送P2,然后回判断循环;减一计数同理,即先取低位P1送A,自减一,送P1,判断是否有进位,若有,则取高位P2送A,自减一,送P2,然后回判断继续循环。
三、资源分配
1.2000H 片外RAM存数
2001H 存结果低八位
2002H 存结果高八位
B寄存器 暂存结果高八位
2.P3.0 存计时判断位
R0、R1、R2 存延时子程序中各重循环的循环次数
R3、R4、R5 存时分秒的循环次数
P0、P1、P2 存时分秒的输出值
3.P1、P2 分别存十进制计数的低两位、高两位
P3.7 存计数方式的控制位
四、流程图
1、8 bit符号数的判断与计算
2、时钟设计
3.十进制加减一计数器
五、源代码 (含文件头说明、语句行注释)
1.8 bit符号数的判断与计算
ORG 0000H
LJMP START
ORG 1000H
START: MOV DPTR,#2000H;地址指针赋初值
MOV A,#22
MOVX @DPTR,A
MOVX A,@DPTR;取数
JB ACC.7,DD
CJNE A,#64,AA;若A≠64,则转AA
AA: JC BB;若A<64,则转BB
MOV B,A
MUL AB;求A的平方
INC DPTR
MOVX @DPTR,A;存结果低八位
INC DPTR
MOV A,B
MOVX @DPTR,A;存结果高八位
SJMP $
BB: CJNE A,#10,CC;若A≠10,则转CC
CPL A
EE: INC DPTR
MOVX @DPTR,A
SJMP $
CC: JC DD;若A<10,则转DD
RR A;若A>10,则右移一位
SJMP EE
DD: CPL A
INC A
SJMP EE
END
2.时钟设计
ORG 0000H
LJMP START
ORG 1000H
START: JB P3.0,STA
文档评论(0)