分支程序设计实验实验~报告.doc





《分支程序设计实验实验~报告.doc》由会员分享,可在线阅读,更多相关《分支程序设计实验实验~报告.doc(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#*实验二 分支程序设计实验实验报告实验名称:分支程序设计实验 指导教师 罗志祥 专业班级 光信 1006 姓名 张博 学号 U201013339 联系方式 13554098548 #*一、任务要求:熟练掌握 KeilCKeilC 环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行 IOIO 口的使用。1. 设有 8bits 符号数 X 存于外部 RAM 单元,按以下方式计算后的结果 Y 也存于外部RAM 单元,请按要求编写程序。240/2204020XXYXXXX 当当当2. 利用 51 系列单片机设计一个 2
2、4 小时制电子时钟,电子时钟的时、分、秒数值分别通过 P0、P1、P2 端口输出(以压缩 BCD 码的形式) 。P3.0 为低电平时开始计时,为高电平时停止计时。提高部分(选做):a. 实现 4 位十进制加、减 1 计数,千位、百位由 P1 口输出;十位、个位由 P2 口输出。利用 P3.7 状态选择加、减计数方式。b. 利用 P3 口低四位状态控制开始和停止计数,控制方式自定。二、设计思路:1.分支函数程序设计:首先将 X 赋给累加器 A,与 40 比较大小,将大于或等于 40 的执行乘方操作;小于 40 的再与 20 做比较,大于 20 的执行取除法操作,小于或等于 20 的执行取反操作。
3、最后将计算结果 Y 存于片外的 RAM 上。2.电子时钟程序设计思路:首先用循环程序的嵌套实现一个 1s 的延时,同时让记秒的端口 P2 同步加一,到 60 后清零;再让此循环执行 60 次实现 1min 的延时,同时让 P1 同步加一,到 60 后清零;再让分钟的循环执行 24 次,实现 1hour 的延时,同时让 P0 同步加一。至此循环,即可实现 24 小时的时钟功能。 (注:本计算机的晶振频率为 12MHz)3.4 位十进制加、减 1 计数程序思路:低位的个位和十位赋给一个寄存器,而将高位即百位千位赋给另外一个寄存器,通过循环程序使低位数循环 100 次即向高位进位或借位,#*高位循环
4、 100 次后即回归初始状态,同时设计两个子函数分别执行加一、减一操作。其中,用 P3 的第 7 位的状态实现对计数与否的控制。三、资源分配:1 1.分支函数程序:A:累加器C:位操作B:做乘方的寄存器DPTR:片外寻址指针2000H、2001H、2002H:片外存储空间2 2.电子时钟程序:A:累加器C:位操作P0、P1、P2:分别电子时钟的时、分、秒输出R0、R1、R2:分别时分秒计数用存储器R3、R4、R5:完成 1s 延时的相关数据存储3 3.四位十进制加、减 1 计数程序:A:累加器C:位操作P0:低位输出口 P1:高位输出口 R0:高位寄存器 R1:低位寄存器 R7 R6:分别临时
5、储存低位和高位的寄存器#*四、流程图:1. 分支函数程序流程图2电子时钟程序流程图3四进制加、减 1 计数程序流程图各图形如下:大于或等于 40小于或等于 20大于 20取数开始比较 X 与 40 的大小执行平方运算比较 X 与 20 的大小执行取反 运算求平均值存结果于 Y结束#*电子时钟:NOYESNOYESNO YES开始R0,R1,R2 置零 P0,P1,P2 置零R2-0R1-0R0-0空操作延时 1 秒R0 加 1,输出 P2R0=60?R1=60?R2=24?R1+1,输出 P1R2+1,输出 P0清零结束#*加减计数器流程图:YESNO NOYES YESYES YES NO
6、NO开始P0, P1, P2-0P3.7=0?执行+1 计数P0, P1-0低两位 R0+1,转 换为十进制,输出 P1R1-0R0=99?R0-0高两位 R1+1,转 换为十进制,输出 P0R0=99?清零执行1 计数P0, P1-99低位 R01,转换 为十进制,输出 P1R1-99R0=0?R0-99高两位 R1-1,转换 为十进制,输出 P0R0=0?结束#*五、源代码:1)ORG 0000HMOV A,#50HMOV DPTR,#2000HMOVX DPTR,A ;将数存入片外 RAMMOV DPTR,#2000HMOVX A,DPTR ;从片外 RAM 中取数 XMOV R7,AC
7、LR CMOV R0,#40H ;对 X 的值进行比较SUBB A,R0JNC MUTIMOV R1,#20HCLR CMOV A,R1SUBB A,R7JC DIVIMOV A,R7CPL A ;对 X 进行取反MOV DPTR,#2001HMOVX DPTR,A ;存入片外 RAMLJMP STOPDIVI:MOV B,#2H ;除法子程序MOV A,R7DIV ABMOV DPTR,#2001HMOVX DPTR,ALJMP STOPMUTI:MOV A,R7 ;平方子程序#*MOV B,AMUL ABMOV DPTR,#2001H ;低位存入片外 RAM 中 2001HMOVX DPT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分支 程序设计 实验 报告

限制150内