




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微机实验报告实验名称分支程序设计实验专业班级姓名学号序号联系方式一、任务要求熟练掌握KeilC环境下汇编语言程序的调试方法,加深对汇编语言指 令 机器码 寻址方式等基本内容的理解,掌握分支程序和简单程序的设 计与调试方法,了解并行10 口的使用。1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后 的 结果丫也存于外部RAM单元,请按要求编写程序。X2 当X狂40丫 勻 X /2 当 20 cX 40X 当 X202. 利用51系列单片机设计一个24小时制电子时钟,电子时钟 的 时、分 秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形 式)。P3.0为低电平时开始计时,为
2、高电平时停止计时。提高部分(选做):a. 实现4位十进制加 减1计数,千位 百位由P1 口输出;十位 个 位由P2 口输出。利用P3.7状态选择加、减计数方式。b. 利用P3 口低四位状态控制开始和停止计数,控制方式自定。设计思路1. 分段函数设计对于第一个任务,相当于设计一个分段函数程序,根据变量X的 值所处的区间进行相应的计算。由学过的知识知道,可利用比较转移指 令CJNE来判断X是否等于临界值20,40,若不等,再根据执行CJNE指令 后的进位位CY的值来判断X与临界值的的大小关系,易知CY=0则X大 于临界值,CY-侧X小于临界值;如此,再进行相应的计算。另外,除 法计算中可能产生余数
3、,商和余数应该分开存储,若乘方运 算结果大于 255,高八位与低八位应分开存储。2. 24小时制时钟程序本程序须可以构建两部分循环。首先构建一个三重循环实现“一 秒延时”,循环体利用NOPW令(单字节指令,1 g )经多次循环达到 延时一秒的效果。再利用已经构建好的“一秒延时”部分,设计计时系统 的三重循环,秒(0-59)、分(0-59)、时(0-23)。需要注意的 是,在小时 分 秒达到59时,下一次应该为零。程序运行时修改P3.0 的值可以实现暂停和继续的功能。3. 加一减一程序先初始化P1和P2,然后当P3低四位均为0作为开始计数的标志,每次计数中插一个延时程序。P3.7为0时进行加1计
4、数:先把低 2位从P2中取出至A,对A进行ADD加一计数并进行十进制修正,然后 存进P2;再把高2位从P1取出至A,对A进行ADDC勺加进位操 作并十 进行进制修正,然后存进P1o P3.7为1时进行减一计数:只需改用ADD指令加上1的补码即可,高2位在第二位为99时进行同样的操作, 最后分别用P1和P2输出高2位和低2位。即可实现所需功能。三、资源分配1. 分段函数根据题目的条件,首先,设该8位无符号数为30H,把片外地址 4000H分配给它,把片外地址4001 H和4002H分配给经分段函数计算 得 到的结果丫。按位取反计算结果存于4001H单元,而除法计算结果的商 与余数和乘方计算中结果
5、的高 低八位分开存储于4001H-4002H单元。 用寄存器A,B来存放在乘除运算中所得的中间结果。2. 二十四小时制时钟工作寄存器R0R1、R2分别用于秒 分 时循环次数的设定,R3 R4 分别用于分与时的循环计数,R5-R7用于“一秒延时”中三重循环的循 环次数设定。秒 分 时数值分别由P2、P1、P0端口输出。3加、减1计数程序:将十进制数的千位数和百位数存于P1,将十进制数的十位数和个位数 存放于P2,P3.0至P3.3为是否进行计数的4个控制位,P3.7为选择加一或减一的计数方式的控制位;R3, R4, R5为计数中的延时程序 指定循环次数。四、流程图1 分段函数开始X赋值A X设置
6、数据指针Y=/X(DPTR A存X于片外RAMCY 八 1?CYAO(4001H) AY=X/2NN C 仔 1?A工 40?Y=X2(4001H) A(4002H) B结束2时钟程序P2jA开始PO JO P1 JOP2 J 0 P3 J 0P3.0=0 ?延吋1s秒钟计数,RO加1A RO,并转换成BCDRO T P2 TDIV AB;计算X/2,将商存于A,余数存于B分钟计数,R1加1A-R1?并转换为BCDI冯R1J 0 P1 J 0DHAPO J AR2=24 ?时钟计数,R2加1AJR2,并转换为BCDR2j 0 PO J 0五源代码1 分段函数ORG 0000HLJMP MAIN
7、ORG 0100HMAIN: MOV A, #30H ;将8位无符号数赋给AMOV DPTR, #4000H;定义数据指针MOVX DPTR, A;将X存于片外RAMCLRC ;将进位位清零KIND1:CJNE A, #14H, KIND2;将A与14H比较,若不等于14H,跳转至KIND2OUT1:CPLA;对A中内容取反MOV DPTR, #4001H;定义数据指针MOVX DPTR, ASJMP DONE;将计算结果存于片外地址4001HKIND2:JNC KIND3;判断进位位CY是否为0,若为0,跳转至KIND3SJMP OUT1;否则跳转至OUT1KIND3:CLR C;将进位位清
8、零CJNE A,#28H, KIND4;将A中内容与28H比较,若不等于28H,跳转至KIND4OUT2: MOV B,A;将A中内容赋给BMUL AB;计算X的平方,将结果高八位存于B,低八位存于AMOV DPTR, #4001H;定义数据指针MOVX DPTR,A;将结果低八位存于片外地址4001HINC DPTR;数据指针加一MOV A,B;将B中内容赋给AMOVX DPTR,ASJMP DONE;将结果高八位存于片外地址4002HKIND4:JNC OUT2;判断进位位是否为0,若为0,跳转至OUT2SJMP OUT3;否则跳转至OUT3OUT3: MOV B,#02HMOV DPTR
9、,#4001HMOVX DPTR,AINC DPTRMOV A,BMOVX DPTR,ASJMP DONE定义数据指针;将商存于片外地址4001H;数据指针加1;将余数存于片外地址4002HDONE:SJMP$END2.时钟程序ORG 0000HLJMP MAINORG 0100HMAIN: MOV R0,#00HMOV P0,#00HMOVP1,#OOHMOV P2,#00HSTART: JB P3.0,STARTMOV R2,P2CJNE R2,#60H,DELMOV P2,#00HMOV A,P1ADD A,#01HDA AMOVP1,AMOV R1,P1CJNE R1,#60H,DEL
10、;时钟位清零;分钟位清零;秒钟位清零;P3.0为低电平开始计数,高电平停止计数;P2的值存入R2秒钟达到60继续,不足60跳转;秒钟清零;分钟位加1;分钟位改为BCD码;P1的值存入寄存器R1;分钟达到60继续,不足60跳转MOVP1,#00H;分钟清零MOV A,ROADD A,#01HDA AMOV RO,AMOV P0,ACJNE R0,#24H,DELMOV P0,#00HMOV R0,#00HDEL: MOV R7,#24LOOP1: MOV R6,#61LOOP2: MOV R5,#170LOOP3: NOPNOPDJNZ R5,LOOP3DJNZ R6,LOOP2DJNZ R7,LOOP1MOV A,P2A
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 5009.305-2025食品安全国家标准食品中双酚A、双酚F和双酚S的测定
- 嵩山少林武术职业学院《航空航天概论》2023-2024学年第二学期期末试卷
- 贵州工业职业技术学院《教育法规与职业道德》2023-2024学年第二学期期末试卷
- 河北经贸大学《华为HCIA-GausDB应用开发实训》2023-2024学年第一学期期末试卷
- 西北大学现代学院《生药学实验》2023-2024学年第一学期期末试卷
- 桂林信息科技学院《伦理学理论教学》2023-2024学年第一学期期末试卷
- 上海兴伟学院《汽车电器与电子技术B》2023-2024学年第二学期期末试卷
- 遂宁能源职业学院《英语二》2023-2024学年第二学期期末试卷
- 建筑劳务联合经营合同
- 建筑工程扩大劳务清包合同
- 2023年公安机关人民警察高级执法资格考试题卷
- 长输管道施工工序
- 食品工程原理实验教学大纲
- 教学设计 《分数的基本性质》教学设计 全国公开课一等奖
- 骨盆与髋臼骨折
- 江苏码头工程防洪影响评价报告
- CommVault备份及恢复优势
- 危险品运输车辆事故应急演练方案
- 《西方哲学史》第二章-苏格拉底哲学和柏拉图哲学课件
- 水利基本建设财务管理讲义
- 会计学总论知识讲义课件
评论
0/150
提交评论