1 / 14
文档名称:

微机实验报告(2).doc

格式:doc   大小:474KB   页数:14页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

微机实验报告(2).doc

上传人:iris028 2019/11/12 文件大小:474 KB

下载得到文件列表

微机实验报告(2).doc

相关文档

文档介绍

文档介绍:实验名称    分支与循环程序设计实验               指导教师   王小英                专业班级  中法1201  姓名  肖洋   学号U201214343       联系电话  134********      1、任务要求熟练掌握Keil环境下汇编语言程序的调试方法,加深对汇编语言指令、机器码、寻址方式等基本内容的理解,掌握分支程序和简单程序的设计与调试方法,了解并行IO口的使用。,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写程序。,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出(以压缩BCD码的形式)。,为高电平时停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。提高部分(选做):、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。、减计数方式。,控制方式自定。2、,根据变量X的取值范围不同进行不同的运算,即要设计一个分支程序。首先,对X的值属于哪个范围(PART)进行判断,可利用比较转移指令CJNE来判断X与临界值20、40是否相等,如果不等,再根据CJNE指令执行后的CY值来判断X与临界值的大小关系。如CY=0,则X大于临界值;如CY=1,则X小于临界值。然后根据X的值所属范围,选择相应的输出(OUT),进行相应的运算。。首先构建一个三重循环实现“一秒延迟”,循环体利用NOP指令(单字节指令,1μs)经过多次循环达到1s的效果。再利用已构建好的“一秒延迟”部分,设计计时的三重循环,秒(0-59)、分(0-59)、时(0-23)。秒钟位、分钟位和时钟位均从0开始计数,但秒钟位和分钟位计数到59时,下一次计数清零,时钟位到达23时,下一次计数清零。。(,为高电平时停止计数)3、,设8位无符号数X的值为19H,将片外地址2000H分配给它,把片外地址2001H和2002H分配给经分段函数计算得到的结果Y。按位取反的结果存于2001H中;平方结果地位存于2001H中,高位存于2002H中;除法结果商存于2001H中,余数存于2002H中。而寄存器A、B用来存放乘除运算的中间结果。、R1、R2分别用于时、分、秒循环次数的设定,R3、R4分别用于分与时的循环计数,R5、R6、R7用于“一秒延时”三重循环中的循环次数设定。时、分、秒的数值分别由P0、P1、P2端口输出。4、流程图五、源代码(含文件头说明、语句行注释)1、分段函数程序MAIN:MOVA,#19H        ;将8位无符号数赋给AMOVDPTR,#2000H     ;定义数据指针******@DPTR,A       ;将X存于片外RAMCLRC          ;将进位位清零PART1:CJNEA,#14H,PART2    ;将A中内容与20比较,若不等于20,则跳转至PART2OUT1:CPLA          ;对A中内容取反MOVDPTR,#2001H     ;定义数据指针******@DPTR,A       ;将计算结果存于片外地址2001HSJMPDONEPART2:JNCPART3        ;判断进位位是否为0,若为0,跳转至PART3SJMPOUT1        ;否则跳转至OUT1PART3:CLRC          ;将进位位清零CJNEA,#28H,PART4    ;将A中内容与40比较,若不等于40,则跳转至PART4OUT2:MOVB,A         ;将A中内容赋给BMULAB          ;计算X的平方,高位赋给B,地位赋给AMOVDPTR,#2001H     ;定义数据指针******@DPTR,A       ;将结果低八位赋给片外地址2001HINCDPTR         ;数据指针加1MOVA,B         ******@DPTR,A       ;将结果高八位赋给片外地址2002HSJMPDONE        PART4:JNCOUT2         ;判断进位位是否为0,若为0,跳转至OUT2SJMPOUT3        ;否则跳转至OUT3OUT3:MOVB,#02H        ;赋值除数DIVAB          ;计算X/2,将商存于A,余数存于BMOVDPTR,#2001H