ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:204.96KB ,
资源ID:17164895      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17164895.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机实验报告实验二文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

微机实验报告实验二文档格式.docx

1、 输入的自变量 2001H:若X20,则为取反结果 若20X40,则为X除以二的整数部分 若X40,则为平方后的低八位 2002H:若20X40,则为X除以二的余数部分 若X40,则为平方后的高八位 DPTR:数据指针 R0、R1、R2:秒、分、时进位计数器B:秒钟计数R3:分钟计数R4:时钟计数P0:时钟输出P1:分钟输出P2:秒钟输出P3:电子钟开关控制 3.加、减1计数程序:十进制数的千位数和百位数十进制数的十位数和个位数P3.0-P3.3:是否进行计数的4个控制位P3.7:选择加一或减一的计数方式的控制位R3,R4,R5:计数中的延时程序指定循环次数。四、流程图 五、源代码 File

2、name: 1.asmDescription: 多分支程序设计Date: 2014/10/8Designed by: LXQSource used: ORG 0000H LJMP MAIN ORG 0100HMAIN: MOV A,#25 ;输入自变量 MOV B,#00H ;B清零 MOV DPTR,#2000H ;设置数据指针 MOVX DPTR,A ;存入片外RAM JNB ACC.7,COMP1 ;判断符号位 SJMP LOOP1 ;负数则取反COMP1: CJNE A,#20,COMP2 ;A20H时跳转到COMP2A=20H时取反COMP2: JC LOOP1 ;CY=1时取反 C

3、JNE A,#40,COMP3 ;A40H时跳转到COMP3 SJMP LOOP3 ;A=40H时平方COMP3: JC LOOP2 ;CY=1时除以二 SJMP LOOP3 ;CY=0时平方LOOP1: CPL A ;取反操作 SJMP STORE ;跳转存储指令LOOP2: MOV B,#02H DIV AB ;除以二LOOP3: MOV B,A MUL AB ;平方跳转存储指令 STORE: INC DPTR ; MOVX DPTR,A INC DPTR MOV A,B MOVX DPTR,A ;高位和低位依次存入片外RAM SJMP $ ;原地踏步 END 2.任务二: MOV R0,

4、#60 MOV R1,#60 MOV R2,#24 ;时针、分针、秒针计数器赋初值 MOV R3,#0H MOV R4,#0H ;时钟、分钟赋初值 MOV P0,#0H MOV P1,#0H MOV P2,#0H MOV P3,#0HSTART: JB P3.0,STOP ;若P3.0为高电平则停止计时 ACALL DLY MOV A,B ADD A,#01H DA A MOV B,A ;秒钟计时 MOV P2,A ;输出秒钟 DJNZ R0,START ;R0-1,不等于零则跳到START继续循环 MOV B,#0H MOV P2,#0H MOV A,R3 MOV R3,A ;分钟计时 MO

5、V P1,A ;输出分钟 MOV R0,#60 ;计数器归位 DJNZ R1,START ;R1-1,不等于零则跳到START继续循环 MOV R3,#0H MOV A,R4 MOV R4,A ;时钟计时 MOV P0,A ;输出时钟 MOV R1,#60 ; DJNZ R2,START ;R2-1,不等于零则跳到START继续循环 SJMP MAIN STOP: SJMP $ ;原地踏步DLY: MOV R5,#46 ;延时1s,误差1us ;DLY:DELAY: MOV 72H,#100 MOV 71H,#100 MOV 70H,#47LOOP0: DJNZ 70H,LOOP0 NOP D

6、JNZ 71H,LOOP1 MOV 70H,#46 DJNZ 70H,LOOP2 DJNZ 72H,LOOP3 MOV 70H,#48LOOP4: DJNZ 70H,LOOP4RETEND ORG 0000H LJMP MAIN ORG 0100H MOV P1,#00H ;P1端口置零 MOV P2,#00H ;P2端口置零 MOV P3,#7FH ;P3端口置#7FH JB P3.0,START JB P3.1,START JB P3.2,START JB P3.3,START ;判断是否开始计时 LJMP DELAY ;跳转到延时子程序 MOV R7,#24 DEL1: MOV R6,#

7、61DEL2: MOV R5,#170DEL3: NOP DJNZ R5,DEL3 DJNZ R6,DEL2 DJNZ R7,DEL1 ;延时1秒 JB P3.7 ,DOWN ;P3.7为0时,加1计数;P3.7为1时,减1计数 LJMP UPDOWN: CLR C MOV A,P2 SUBB A,#01H MOV R1,A ANL A,#0FH MOV R7,A MOV A,R1 ANL A,#0F0H MOV A,P1 SUBB A,#00H MOV R0,A MOV R6,A MOV A,R0 CJNE R7,#0FH,LOOP1 MOV R7,#09H CJNE R1,#0F0H,LO

8、OP2 MOV R1,#90H CJNE R6,#0FH,LOOP3 MOV R6,#09H CJNE R0,#0F0H,LOOP4 MOV R0,#90H MOV A,R1 ADD A,R7 DA A MOV P2,A ADD A,R6 MOV P1,A LJMP START ;减1计数子程序UP: MOV A,P2 ADD A,#01H ADDC A,#00H MOV P1,A LJMP START ;加1计数子程序六、程序测试方法与结果1.任务一:取X=10,则结果应为F5H,即(2000H)=0AH,(2001H)=F5H,(2002H)=00H。编译结果如下:取X=25,则结果应为0

9、CH,即(2000H)=19H,(2001H)=0CH,(2002H)=01H。取X=60,则结果应为3600,即(2000H)=3CH,(2001H)=10H,(2002H)=0EH。综上可得程序功能正确,运行成功。 P3.0设为低电平,设置断点,开始计数,秒种到60时,分钟进位,秒钟清零:重新设置断点,开始计数,分种到60时,时钟进位,分钟清零:重新设置断点,开始计数,时种到24时,全部清零,重新判断P3.0。P3.0置一则计时停止:测试完成,程序运行顺利,功能正确。P3.0至P3.3全为低电平时开始计数,P3.7为0时加1计数(0加1为1):P3.7为0时减1计数(0减一则为9999):

10、功能运行正常。七、心得与体会 通过这次的微机实验,我加深了对于分支程序设计的理解,并通过自己设计程序框图和代码,提高了我的编程和调试代码的能力。在编程过程中,由于分支众多,我常常遇到思路不清晰的情况,这就要求我们在动手写代码之前一定要先想好代码的整体架构,设计好流程图,再跟着流程图的思路一步步编写代码,才能保持思路清晰,减少错漏。总之,要学会编写复杂的程序,看书是远远不够的,还需要我们多动手,多实际操作,去解决一些实际遇到的问题,这样才能提高我们的编程水平。思考题1实现多分支结构程序的主要方法有哪些?举例说明。答:实现多项分支的主要方法是采用分支表法,常用的分支表法的组成有三种形式:分支地址表

11、:它是由各个分支程序的首地址组成的一个线性表,每个首地址占连续的两个字节。如: MOV DPTR,#BRATAB ;取表首地址 MOV A,R3 ADD A,R3 ;AR3*2 JNC NADD INC DPH ;R3*2的进位加到DPH NADD:暂存A MOVC A,A+DPTR ;取分支地址高8位 XCH A,R4 INC A取分支地址低8位 MOV DPL,A ;分支地址低8位送DPL MOV DPH,R4 ;分支地址高8位送DPH CLR A JMP A+DPTR ;转相应分支程序BRATAB: DW SUBR0 ;分支地址表 DW SUBR1 DW SUBR7转移指令表:它是由转移

12、指令组成的一个分支表,其各转移指令的目标地址即为各分支程序的首地址。若采用短转移指令,则每条指令占两个字节;若采用长转移指令,则每条指令占三个字节。 MOV DPTR,#JMPTAB ;AR32有进位加到DPHJMPTAB: AJMP SUBR0 ;转移指令表 AJMP SUBR1 AJMP SUBR7 地址偏移量表:各分支程序首地址与地址偏移量表的标号之差(为一个字节)称为地址偏移量,有这些地址偏移量组成地址偏移量表。 MOV DPTR,#DIATAB ; MOV A,R3 ;表的序号数送A查表DISTAB: DB SUBR0-DISTAB ;地址偏移量表 DB SUBR1-DISTAB D

13、B SUBR7-DISTABSUBR0:SUBR1:2在编程上,十进制加1计数器与十六进制加1计数器的区别是什么?怎样用十进制加法指令实现减1计数? 答:十六进制加1计数器可以直接对计数器进行加1的操作,相当于单字节或者多字节的加法运算,其中被加数为当前计数器值,加数始终为1;但是十进制加1计数器不能直接对计数器直接进行加1操作,而必须在对加1操作后紧跟一条DA A指令对其进行二十进制修正才能实现。 用十进制加法进行减1计数时,应讲计数器当前值与1的十进制补码99H进行想加,然后用DA A指令进行二十进制修正,从而实现十进制减1计数功能。本人承诺:本报告内容真实,无伪造数据,无抄袭他人成果。本人完全了解学校相关规定,如若违反,愿意承担其后果。签字: 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1