分支和循环程序设计实验报告_第1页
分支和循环程序设计实验报告_第2页
分支和循环程序设计实验报告_第3页
分支和循环程序设计实验报告_第4页
分支和循环程序设计实验报告_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

./实验名称分支与循环程序设计实验指导教师罗志祥专业班级光电1406姓名段昳晖学号U2014*****联系电话137********任务要求1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出〔以压缩BCD码的形式。P3.0为低电平时开始计时,为高电平时停止计时。设计1s延时子程序〔延时误差小于10us,晶振频率12MHz。设计思路1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。将外部单元1000H中的X,通过分支判断,分别执行不同的语句,三条语句分别为标记为L1、L2、L3,先比较X与64的大小关系,再判断X与10的大小关系,主要利用比较转移指令CJNE,以及执行CJNE指令后的进位位CY,进一步比较大小,分别跳转至对应语句。将结果存于外部单元的1001H以及1002H。利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出〔以压缩BCD码的形式。P3.0为低电平时开始计时,为高电平时停止计时。设计1s延时子程序〔延时误差小于10us,晶振频率12MHz。主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程序。利用R0、R1、R2计数,R3保存分钟数、R4保存小时数,最内层循环60次,中循环循环1次,中循环60秒,外循环循环1次,外循环循环24次,清零。其中对端口显示的秒数、分钟数、时间数,进行二进制修正。利用循环来设计延时程序,合理计算语句长度,以及循环次数。程序运行时修正P3.0的值,可以实现暂停计数和继续的功能。提高部分〔选做:实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用P3.7状态选择加、减计数方式。利用P3口低四位状态控制开始和停止计数,控制方式自定。初始化P1、P2,,计数循环中插入一秒延时程序。R1存千百位、R2存个十位,P3.7=0时,进行加1计数,取出R2中的数存于A,对A加1,同时进行十进制修正,存于P2,达到99,则进位对千百位进行加1。P3.7=1时,进行减一操作,取出R1中的数存于A,对A减1,同时进行十进制修正,存于P1,达到0,则对P2,对R2进行减一。计数循环前判断P3.0的值,当P3.0=1时,开始计数,P3.0=0时,原地循环,停止计数,直到P3.0=1,可以实现随时停止与开始。资源分配1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。X存于片外1000HY存于片外1001H、1002H其中,求平方时,低位存于1001H,,高位存于1002H除二时,商存于1001H,,余数存于1002H利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出〔以压缩BCD码的形式。P3.0为低电平时开始计时,为高电平时停止计时。设计1s延时子程序〔延时误差小于10us,晶振频率12MHz。P0输出小时数P1输出分钟数P2输出秒数R0小时循环计数R1分钟循环计数R2秒循环计数R3保存分钟数R4保存小时数提高部分〔选做:1实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用P3.7状态选择加、减计数方式。2利用P3口低四位状态控制开始和停止计数,控制方式自定。P1输出千百位P2输出个十位P3.0计数开始与停止控制P3.7加1减1计数切换R1存千百位R2存个十位流程图1.设有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口低四位状态控制开始和停止计数,控制方式自定。源代码〔含文件头说明、语句行注释1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。Filename:task1.asmDescription:对8bits符号数X,对于不同的X进行不同的运算操作Designedby:Sourceused:1000H:存X的值1001H、1002H:存Y的值1001H:平方运算所得低位;除法运算所得商1002H:平方运算所得高位;除法运算所得余数ORG0000HLJMPMAIN ORG0100HMAIN:MOVDPTR,#1000H;X存于1000HMOVA,#-1;给X赋值 MOVB,#0MOVX@DPTR,A;正负判断 JBACC.7,L3;X<0,L3 ;X>0 CJNEA,#64,L2;A!=64,L2 SJMPL1L1:MOVB,A;X>=64MULABSJMPSTORE;低位存于1001H,¸高位存于1002HL2:JNCL1;X>64,L1CJNEA,#10,L4;A!=10,L4 SJMPL3;X=10,L3L4:JCL3;X<10,L3MOVB,#2DIVAB;X>10SJMPSTORE;商存于1001H,余数存于1002HL3:CPLA;X<=10STORE:INCDPTR;结果存于1001HMOVX@DPTR,A INCDPTRMOVA,BMOVX@DPTR,A SJMP$END利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输出〔以压缩BCD码的形式。P3.0为低电平时开始计时,为高电平时停止计时。设计1s延时子程序〔延时误差小于10us,晶振频率12MHz。Filename:task2.asmDescription:24小时制电子时钟Designedby:DYHSourceused:P0:输出小时数P1:输出分钟数P2:输出秒数R0:小时循环计数R1:分钟循环计数R2:秒循环计数R3:保存分钟数R4:保存小时数ORG0000H LJMPMAIN ORG0100HMAIN:MOVSP,#40HMOVP0,#0 MOVP1,#0 MOVP2,#0 MOVR3,#0;保存小时 MOVR4,#0;保存分钟 ;设定循环 MOVR0,#24;小时外循环·24 MOVR1,#59;分钟中循环·60 MOVR2,#59;秒内循环·60 CLRALOOP:JNBP3.0,$;p3.0=0,结束计数 LCALLDELAY;延时1s ADDA,#1 DAAMOVP2,ADJNZR2,LOOP MOVA,R3;分钟开始计数将分钟赋给A ADDA,#1;分钟+1 DAA MOVR3,A MOVP1,A CLRA;秒清零 MOVR2,#59;重置内循环· DJNZR1,LOOP;R1!=0,中循环MOVR3,#0;分钟清零,小时计数 MOVA,R4 ADDA,#1 DAA MOVR4,A MOVP0,A MOVR2,#59;重置中循环 MOVR1,#59;重置外循环 DJNZR0,LOOPDONE:SJMP$DELAY:MOVR7,#11;n==<<201*5+5>*90+9>*11+2=1000001DELAY3:MOVR6,#90;t=1.000001sDELAY2:MOVR5,#201 DELAY1:NOP NOP NOP DJNZR5,DELAY1 NOP NOP DJNZR6,DELAY2 NOP NOP NOP NOP NOP NOP DJNZR7,DELAY3 RET END提高部分〔选做:1实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。利用P3.7状态选择加、减计数方式。2利用P3口低四位状态控制开始和停止计数,控制方式自定。Description:实现4位十进制加、减1计数Designedby:DYHSourceused:P1输出千百位P2输出个十位P3.0计数开始与停止控制P3.7加1减1计数切换R1存千百位R2存个十位ORG0000H MOVP1,#0;输出千百位 MOVP2,#0;输出个十位 MOVR1,#0;存千百位 MOVR2,#0;存个十位 LJMPMAIN ORG0100HMAIN: JBP3.0,$;计数开始与停止控制JNBP3.7,ADD1;加1减1,模式选择SUB1:MOVP1,#99 MOVP2,#99 MOVR1,#99LOOP2:MOVR2,#99LOOP1:JBP3.0,$JNBP3.7,LOOP3MOVA,R2LCALLDELAY DECA MOVR2,A MOVP2,R2 CJNER2,#0H,LOOP1 MOVA,R1 DECA MOVR1,A MOVP1,R1 CJNER1,#0H,LOOP2 SJMP$ADD1:MOVP1,#0 MOVP2,#0 MOVR1,#0LOOP4:MOVR2,#0LOOP3:JBP3.0,$JBP3.7,LOOP1MOVA,R2LCALLDELAY INCA MOVR2,A MOVP2,R2 CJNER2,#99H,LOOP3 MOVA,R1 INCA MOVR1,A MOVP1,R1 CJNER1,#99H,LOOP4 MOVR1,#0 SJMP$DELAY:MOVR7,#11;n==<<201*5+5>*90+9>*11+2=1000001DELAY3:MOVR6,#90;t=1.000001sDELAY2:MOVR5,#201 DELAY1:NOP NOP NOP DJNZR5,DELAY1 NOP NOP DJNZR6,DELAY2 NOP NOP NOP NOP NOP NOP DJNZR7,DELAY3 RETEND程序测试方法与结果1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序。X=-30=E2HY=1DH.X=5=05H,Y=FAH.X=10=0AH,Y=F5HX=25=19hY=0CH〔商01H〔余数.X=64=40HY=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论