还剩27页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实验名称分支与循环程序设计实验指导教师罗志祥专业班级光电1406姓名段昳晖学号U2014*****____137********
1、任务要求
1.设有8bits符号数X存于外部RAM单元,按以__式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序
2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P
0、P
1、P2端口输出(以压缩BCD码的形式)P
3.0为低电平时开始计时,为高电平时停止计时设计1s延时子程序(延时误差小于10us,晶振频率12MHz)
2、设计思路
1.设有8bits符号数X存于外部RAM单元,按以__式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序将外部单元1000H中的X,通过分支判断,分别执行不同的语句,三条语句分别为标记为L
1、L
2、L3先比较X与64的大小关系再判断X与10的大小关系,主要利用比较转移指令CJNE以及执行CJNE指令后的进位位CY进一步比较大小,分别跳转至对应语句将结果存于外部单元的1001H以及1002H
2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P
0、P
1、P2端口输出(以压缩BCD码的形式)P
3.0为低电平时开始计时,为高电平时停止计时设计1s延时子程序(延时误差小于10us,晶振频率12MHz)主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程序利用R
0、R
1、R2计数,R3保存分钟数、R4保存小时数,最内层循环60次,中循环循环1次,中循环60秒,外循环循环1次,外循环循环24次,清零其中对端口显示的秒数、分钟数、时间数,进行二进制修正利用循环来设计延时程序,合理计算语句长度,以及循环次数程序运行时修正P
3.0的值,可以实现暂停计数和继续的功能提高部分(选做)1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出利用P
3.7状态选择加、减计数方式2)利用P3口低四位状态控制开始和停止计数,控制方式自定初始化P
1、P2,,计数循环中插入一秒延时程序R1存千百位、R2存个十位,P
3.7=0时,进行加1计数,取出R2中的数存于A,对A加1,同时进行十进制修正,存于P2达到99,则进位对千百位进行加1P
3.7=1时,进行减一操作,取出R1中的数存于A,对A减1,同时进行十进制修正,存于P1,达到0,则对P2对R2进行减一计数循环前判断P
3.0的值,当P
3.0=1时,开始计数,P
3.0=0时,原地循环,停止计数,直到P
3.0=1,可以实现随时停止与开始
3、资源分配
1.设有8bits符号数X存于外部RAM单元,按以__式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序X存于片外1000HY存于片外1001H、1002H其中,求平方时,低位存于1001H,高位存于1002H除二时,商存于1001H,余数存于1002H
2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P
0、P
1、P2端口输出(以压缩BCD码的形式)P
3.0为低电平时开始计时,为高电平时停止计时设计1s延时子程序(延时误差小于10us,晶振频率12MHz)P0输出小时数P1输出分钟数P2输出秒数R0小时循环计数R1分钟循环计数R2秒循环计数R3保存分钟数R4保存小时数提高部分(选做)1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出利用P
3.7状态选择加、减计数方式2)利用P3口低四位状态控制开始和停止计数,控制方式自定P1输出千百位P2输出个十位P
3.0计数开始与停止控制P
3.7加1减1计数切换R1存千百位R2存个十位
4、流程图
1.设有8bits符号数X存于外部RAM单元,按以__式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序
2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P
0、P
1、P2端口输出(以压缩BCD码的形式)P
3.0为低电平时开始计时,为高电平时停止计时设计1s延时子程序(延时误差小于10us,晶振频率12MHz)提高部分(选做)1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出利用P
3.7状态选择加、减计数方式2)利用P3口低四位状态控制开始和停止计数,控制方式自定
5、源代码(含文件头说明、语句行注释)
1.设有8bits符号数X存于外部RAM单元,按以__式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序Filename:task
1.a__Description:对8bits符号数X,对于不同的X进行不同的运算操作Date:
2016.
10.13Designedby:Sour__used:1000H:存X的值1001H、1002H:存Y的值1001H平方运算所得低位;除法运算所得商1002H平方运算所得高位;除法运算所得余数ORG0000HLJMP__INORG0100H__IN:MOVDPTR#1000H;X存于1000HMOVA#-1;给X赋值MOVB#0MOVX@DPTRA;正负判断JBACC.7L3;X0L3;X0CJNEA#64L2;A!=64L2SJMPL1L1:MOVBA;X=64MULABSJMPSTORE;低位存于1001H¸高位存于1002HL2:JNCL1;X64L1CJNEA#10L4;A!=10L4SJMPL3;X=10L3L4:JCL3;X10L3MOVB#2DIVAB;X10SJMPSTORE;商存于1001H余数存于1002HL3:CPLA;X=10STORE:INCDPTR;结果存于1001HMOVX@DPTRAINCDPTRMOVABMOVX@DPTRASJMP$END
2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P
0、P
1、P2端口输出(以压缩BCD码的形式)P
3.0为低电平时开始计时,为高电平时停止计时设计1s延时子程序(延时误差小于10us,晶振频率12MHz)
3.Filename:task
2.a__Description:24小时制电子时钟Date:
2016.
10.13Designedby:DYHSour__used:P0输出小时数P1输出分钟数P2输出秒数R0小时循环计数R1分钟循环计数R2秒循环计数R3保存分钟数R4保存小时数ORG0000HLJMP__INORG0100H__IN:MOVSP#40HMOVP0#0MOVP1#0MOVP2#0MOVR3#0;保存小时MOVR4#0;保存分钟;设定循环MOVR0#24;小时外循环·24MOVR1#59;分钟中循环·60MOVR2#59;秒内循环·60CLRALOOP:JNBP
3.0$;p
3.0=0结束计数LCALLDELAY;延时1sADDA#1DAAMOVP2ADJNZR2LOOPMOVAR3;分钟开始计数将分钟赋给AADDA#1;分钟+1DAAMOVR3AMOVP1ACLRA;秒清零MOVR2#59;重置内循环·DJNZR1LOOP;R1!=0中循环MOVR3#0;分钟清零,小时计数MOVAR4ADDA#1DAAMOVR4AMOVP0AMOVR2#59;重置中循环MOVR1#59;重置外循环DJNZR0LOOPDONE:SJMP$DELAY:MOVR7#11;n==201*5+5*90+9*11+2=_____01DELAY3:MOVR6#90;t=
1.000001sDELAY2:MOVR5#201DELAY1:NOPNOPNOPDJNZR5DELAY1NOPNOPDJNZR6DELAY2NOPNOPNOPNOPNOPNOPDJNZR7DELAY3RETEND提高部分(选做)1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出利用P
3.7状态选择加、减计数方式2)利用P3口低四位状态控制开始和停止计数,控制方式自定Description:实现4位十进制加、减1计数Date:
2016.
10.13Designedby:DYHSour__used:P1输出千百位P2输出个十位P
3.0计数开始与停止控制P
3.7加1减1计数切换R1存千百位R2存个十位ORG0000HMOVP1#0;输出千百位MOVP2#0;输出个十位MOVR1#0;存千百位MOVR2#0;存个十位LJMP__INORG0100H__IN:JBP
3.0$;计数开始与停止控制JNBP
3.7ADD1;加1减1,模式选择SUB1:MOVP1#99MOVP2#99MOVR1#99LOOP2:MOVR2#99LOOP1:JBP
3.0$JNBP
3.7LOOP3MOVAR2LCALLDELAYDECAMOVR2AMOVP2R2CJNER2#0HLOOP1MOVAR1DECAMOVR1AMOVP1R1CJNER1#0HLOOP2SJMP$ADD1:MOVP1#0MOVP2#0MOVR1#0LOOP4:MOVR2#0LOOP3:JBP
3.0$JBP
3.7LOOP1MOVAR2LCALLDELAYINCAMOVR2AMOVP2R2CJNER2#99HLOOP3MOVAR1INCAMOVR1AMOVP1R1CJNER1#99HLOOP4MOVR1#0SJMP$DELAY:MOVR7#11;n==201*5+5*90+9*11+2=_____01DELAY3:MOVR6#90;t=
1.000001sDELAY2:MOVR5#201DELAY1:NOPNOPNOPDJNZR5DELAY1NOPNOPDJNZR6DELAY2NOPNOPNOPNOPNOPNOPDJNZR7DELAY3RETEND
6、程序测试方法与结果
1.设有8bits符号数X存于外部RAM单元,按以__式计算后的结果Y也存于外部RAM单元,请按要求编写完整程序1X=-30=E2HY=1DH
2.X=5=05HY=FAH
3.X=10=0AHY=F5H4X=25=19hY=0CH(商)01H(余数)
5.X=64=40HY=1000H
2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P
0、P
1、P2端口输出(以压缩BCD码的形式)P
3.0为低电平时开始计时,为高电平时停止计时设计1s延时子程序(延时误差小于10us,晶振频率12MHz)
(1)P
3.0=0,停止计数
(2)分钟进位前
(3)分钟进位后
(4)小时进位前
(5)小时进位后提高部分(选做)1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出利用P
3.7状态选择加、减计数方式2)利用P3口低四位状态控制开始和停止计数,控制方式自定
(1)P
3.0=1,停止计数
(2)P
3.0=1,中途停止计数
(3)P
3.0=0,从暂停点继续计数
(4)P
3.7=0,加1计数前后
(5)P
3.7=1,减1计数前后思考题1.实现多分支结构程序的主要方法有哪些?举例说明2.在编程上,十进制加1计数器与十六进制加1计数器的区别是什么?怎样用十进制加法指令实现减1计数?十进制加1计数器,逢10进1,计数模为10,十六进制加1计数器逢16进1,计数模为16,加上1的补码,再通过DA进行BCD修正其它说明
1.标题黑体,小四号
2.正文宋体,五号,
1.5倍行距
3.流程图使用__artDraw7或Visio软件绘制
4.不要加封面本人承诺:本报告内容真实,无伪造数据,无抄袭他人成果本人完全了解学校相关规定,如若违反,愿意承担其后果签字2016年10月25日。