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

下载本文档

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

文档简介

1、实验名称分支与循环程序设计实验指导教师罗志祥专业班级光电1406 姓名 段昳晖学号 U2014*联系电话 137*一、任务要求1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果丫也存于外部RAM单元,请按要求编写完整程序。2. 利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输岀(以压缩 BCD码的形式)。P3.0为低电平时开始计时,为高电平时停止计时。设计1s延时子程序(延时误差小于 10us,晶振频率12MHZ。二、设计思路1. 设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果丫也存于外部RAM单元,请按

2、要求编写完整程序。将外部单元1000H中的X,通过分支判断,分别执行不同的语句,三条语句分别为标记为 L1、L2、L3,先比较X与64的大小关系,再判断X与10的大小关系,主要利用比较转移指令 CJNE,以及执行CJNE指令 后的进位位 CY,进一步比较大小,分别跳转至对应语句。将结果存于外部单元的1001H以及1002H。2. 禾U用51系列单片机设计一个 24小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、P1、P2端口输岀(以压缩 BCD码的形式)。P3.0为低电平时开始计时,为高电平时停止计时。设计1s延时子程序(延时误差小于 10us,晶振频率12MHZ。主程序设计三层循环,分

3、别对应时、分、秒,最内层安放一秒延时程序。利用R0、R1、R2计数,R3保存分钟数、R4保存小时数,最内层循环 60次,中循环循环1次,中循环60秒,外循环循环1次,外循环 循环24次,清零。其中对端口显示的秒数、分钟数、时间数,进行二进制修正。利用循环来设计延时程序,合理计算语句长度,以及循环次数。程序运行时修正 P3.0的值,可以实现暂停计数和继续的功能。提高部分(选做):1 )实现 4 位十进制加、减 1 计数,千位、百位由 P1 口输出;十位、个位由 P2 口输出。利用 P3.7 状 态选择加、减计数方式。2 )利用 P3 口低四位状态控制开始和停止计数,控制方式自定。初始化P1、P2

4、,,计数循环中插入一秒延时程序。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 单元,请

5、按要求编写完整程序。X 存于片外 1000HY 存于片外 1001H、 1002H其中,求平方时,低位存于 1001H, ,高位存于 1002H 除二时,商存于 1001H, ,余数存于 1002H2. 利用 51 系列单片机设计一个 24 小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、 P1、P2 端口输岀(以压缩 BCD 码的形式)。 P3.0 为低电平时开始计时,为高电平时停止计时。设计1s 延时子程序(延时误差小于 10us,晶振频率12MHz )。P0 输岀小时数P1 输岀分钟数P2 输岀秒数R0 小时循环计数R1 分钟循环计数R2 秒循环计数R3 保存分钟数R4 保存小时数

6、提高部分(选做):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 单元,请 按要求编写完整程序。2. 利用 51 系列单片机设计一个 24 小时制电子时钟,电子时钟的时、分、秒数值分别通过P0、 P1、P

7、2 端口输岀(以压缩 BCD 码的形式)。 P3.0 为低电平时开始计时,为高电平时停止计时。设计1s 延时子程序(延时误差小于 10us,晶振频率12MHz )。提高部分(选做):1) 实现4位十进制加、减1计数,千位、百位由P1 口输岀;十位、个位由 P2 口输岀。利用 P3.7状 态选择加、减计数方式。2)利用P3 口低四位状态控制开始和停止计数,控制方式自定。五、源代码 (含文件头说明、语句行注释)1. 设有 8bits 符号数 X 存于外部 RAM 单元,按以下方式计算后的结果 Y 也存于外部 RAM 单元,请 按要求编写完整程序。File name: task1.asmDescri

8、ption:对 8bits 符号数 X ,对于不同的 X 进行不同的运算操作Date:Designed by:Source used: 1000H:存 X 的值1001H 、1002H: 存 Y 的值1001H :平方运算所得低位;除法运算所得商1002H :平方运算所得高位;除法运算所得余数ORG 0000HLJMP MAINORG 0100HMAIN: MOV DPTR,#1000H;X 存于 1000HMOV A,#-1; 给 X 赋值MOV B,#0MOVX DPTR,A;正负判断JB ACC.7,L3;X<0,L3;X>0CJNE A,#64,L2;A!=64,L2SJM

9、P L1L1: MOV B,A;X>=64MUL ABSJMP STORE;低位存于1001H,?高位存于1002HL2: JNC L1;X>64,L1CJNE A,#10,L4;A!=10,L4SJMP L3;X=10,L3L4:JC L3;X<10,L3MOV B,#2DIV AB;X>10SJMP STORE; 商存于 1001H, 余数存于 1002HL3:CPL A;X<=10STORE: INC DPTR;结果存于 1001HMOVX DPTR,AINC DPTRMOV A,BMOVX DPTR,ASJMP $ENDP0、P1、1s延时子2. 利用 5

10、1 系列单片机设计一个 24 小时制电子时钟,电子时钟的时、分、秒数值分别通过P2 端口输出(以压缩 BCD 码的形式)。 P3.0 为低电平时开始计时,为高电平时停止计时。设计 程序(延时误差小于10us,晶振频率12MHz )。File name: task2.asmDescription:24 小时制电子时钟Date:Designed by: DYHSource used:P0:输岀小时数P1:输岀分钟数P2:输岀秒数R0:小时循环计数R1:分钟循环计数R2:秒循环计数R3:保存分钟数R4:保存小时数ORG 0000HLJMP MAINORG 0100HMAIN: MOV SP,#40H

11、MOV P0,#0 MOV P1,#0 MOV P2,#0 MOV R3,#0 MOV R4,#0 ;设定循环 MOV R0,#24MOV R1,#59MOV R2,#59 CLR ALOOP: JNB P3.0,$ LCALL DELAY ADD A,#1 DA A MOV P2,A DJNZ R2,LOOP MOV A,R3 ADD A,#1 DA A MOV R3,A MOV P1,A CLR A MOV R2,#59 DJNZ R1,LOOPMOV R3,#0;保存小时;保存分钟;小时外循环 24;分钟中循环 60渺内循环 60;p3.0=0, 结束计数; 延时 1s;分钟开始计数 将

12、分钟赋给 A; 分钟 +1; 秒清零;重置内循环;R1!=0,中循环; 分钟清零,小时计数MOVA,R4ADDA,#1DAAMOVR4,AMOVP0,AMOVR2,#59 ;重置中循环MOVR1,#59 ;重置外循环DJNZ R0,LOOPDONE: SJMP $DELAY: MOV R7,#11 ;n=(201*5+5)*90+9)*11+2=1000001DELAY3: MOV R6,#90 ;t=1.000001sDELAY2: MOV R5,#201DELAY1: NOPNOPNOPDJNZ R5,DELAY1NOPNOPDJNZ R6,DELAY2NOPNOPNOPNOPNOPNOP

13、DJNZ R7,DELAY3RETEND提高部分(选做):P3.7 状1)实现 4 位十进制加、减 1 计数,千位、百位由 P1 口输出;十位、个位由 P2 口输出。利用 态选择加、减计数方式。2 )利用 P3 口低四位状态控制开始和停止计数,控制方式自定。Description: 实现 4 位十进制加、减 1 计数Date:Designed by: DYHSource used:P1 输出千百位P2 输出个十位P3.0 计数开始与停止控制P3.7 加 1 减 1 计数切换R1 存千百位R2 存个十位ORG 0000HMOV P1,#0MOV P2,#0;输出千百位;输出个十位MOV R1,#

14、0MOV R2,#0LJMP MAIN;存千百位;存个十位ORG 0100HMAIN:JB P3.0,$;计数开始与停止控制JNB P3.7,ADD1;加 1 减 1,模式选择SUB1:MOV P1,#99MOV P2,#99MOV R1,#99LOOP2: MOV R2,#99LOOP1: JB P3.0,$JNB P3.7,LOOP3MOV A,R2LCALL DELAYDEC AMOV R2,AMOV P2,R2CJNE R2,#0H,LOOP1MOV A,R1DEC AMOV R1,A MOV P1,R1CJNE R1,#0H,LOOP2 SJMP $ADD1: MOV P1,#0MO

15、V P2,#0MOV R1,#0LOOP4: MOV R2,#0LOOP3: JB P3.0,$JB P3.7,LOOP1 MOV A,R2 LCALL DELAYINC AMOV R2,AMOV P2,R2CJNE R2,#99H,LOOP3MOV A,R1INC AMOV R1,AMOV P1,R1CJNE R1,#99H,LOOP4MOV R1,#0SJMP $DELAY: MOV R7,#11DELAY3: MOV R6,#90;n=(201*5+5)*90+9)*11+2=1000001;t=1.000001sDELAY2: MOV R5,#201DELAY1: NOPNOPNOPD

16、JNZ R5,DELAY1NOPNOPDJNZ R6,DELAY2NOPNOPNOPNOPNOPNOPDJNZ R7,DELAY3RETEND六、程序测试方法与结果1. 设有 8bits 符号数 X 存于外部 RAM 单元,按以下方式计算后的结果 Y 也存于外部 RAM 单元,请 按要求编写完整程序。(1) X=-30=E2H Y=1DH.X=5=05H,Y=FAHOhaswnHyMGVC:X匚103#?XJ5+ID Project荃 R£Qister5Ccmmand画OstfX) ox OkOO 04 OxOO usw 0x00 iwxiB(OxF0> f *0x00耳 Rf

17、l?=rOsp0x0了sp marOxOfdptr0x1002FC iCOMDlil1©421$3Sc)4 2LtW6?Sa一眄Q嗣)血DO 血XIffiya&rnp K1ORG000OR矢2LOME HAIN寻ORB 01003MAIN: MOV ?7T7 . tlOOOH ;X存于 1000Ht>5MOV;怂前信莒MOV R, #7MCfVX 2DFTf -.59;正狈判断IQJB AJC.,L3;K<0.L31112;X>013CCNE Ar*rL2 ;A f = n,L21弓5JMP LIIS匸.:MOV BA;X>=fl1MUL AE17IN

18、C EFTR|18SJMP STQRI ;偉位仔于 1C JLH, ft ±存于UQZti1920V0 -1T F甲Fl盲产t iv% £"出t n<>f施mo邛1.X=10=0AH,Y=F5H(4) X=25=19h Y=0CH (商)01H (余数)(5) .X=64=40HY=1000H2. 利用51系列单片机设计一个 24小时制电子时钟,电子时钟的时、分、秒数值分别通过PO、P1、P2端口输岀(以压缩 BCD码的形式)。P3.0为低电平时开始计时,为高电平时停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz )。(1) P3.0=0 ,停止计数(2) 分钟进位前(3) 分钟进位后(4) 小时进位前(5) 小时进位后 提高部分(选做):1)实现4位十进制加、减1计数,千位、百位由P1 口输岀;十位、个位由 P2 口输岀。利用 P3.7状态选择加、减计数方式。2)利用P3 口低四位状态控制开始和停止计数,控制方式自定。(1) P3.0=1,停止计数(2) P3.0=1,中途停止计数(3) P3.0=0,从暂停点继续计数(4) P3.7=0,加1计数前后(5) P3.7=

温馨提示

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

最新文档

评论

0/150

提交评论