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

下载本文档

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

文档简介

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

2、RAM单元,按以下方式计算后的结 果Y也存于外部RAM单元,请按要求编写完整程序 X2当 X64 YX /2当 10X64 X当 X10 将外部单元1000H中的X,通过分支判断,分别执行不同的语句,三 条语句分别为标记为L1、L2、L3,先比较X与64的大小关系,再判断X与 10的大小关系,主要利用比较转移指令CJNE,以及执行CJNE指令后的进 位位CY,进一步比较大小,分别跳转至对应语句。将结果存于外部单元的 1001H 以及 1002H。 2.利用51系列单片机设计一个 24小时制电子时钟,电子时钟的时、 分、秒数值分别通过 P0、P1、P2端口输出(以压缩 BCD码的形式)。为低 电

3、平时幵始计时,为高电平时停止计时。设计1s延时子程序(延时误差 小于10us,晶振频率12MHZ。 主程序设计三层循环,分别对应时、分、秒,最内层安放一秒延时程 序。利用R0、R1、R2计数,R3保存分钟数、R4保存小时数,最内层循环 60次,中循环循环1次,中循环60秒,外循环循环1次,外循环循环24 次,清零。其中对端口显示的秒数、分钟数、时间数,进行二进制修正。 利用循环来设计延时程序,合理计算语句长度,以及循环次数。 程序运行时修正的值,可以实现暂停计数和继续的功能。 提高部分(选做): 1)实现4位十进制加、减1计数,千位、百位由 P1 口输出;十位、 个位由P2 口输出。利用状态选

4、择加、减计数方式。 2)利用P3 口低四位状态控制幵始和停止计数,控制方式自定。 初始化P1、P2,,计数循环中插入一秒延时程序 R1存千百位、R2存 个十位,=0时,进行加1计数,取出R2中的数存于A,对A加1,同时 进行十进制修正,存于 P2,达到99,则进位对千百位进行加 1。=1时,进 行减一操作,取出R1中的数存于A,对A减1,同时进行十进制修正,存 于P1,达到0,则对P2,对R2进行减一。 计数循环前判断的值,当=1时,幵始计数,=0时,原地循环,停止计 数,直到=1,可以实现随时停止与幵始。 三、资源分配 1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结 果Y

5、也存于外部RAM单元,请按要求编写完整程序。 X2 当X 64 YX /2 当10 X 64 X 当X 10 X存于片外1000H Y存于片外1001H、1002H 其中,求平方时,低位存于 1001H,,高位存于1002H 除二时,商存于1001H,,余数存于1002H 2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、 分、秒数值分别通过 P0、P1、P2端口输出(以压缩 BCD码的形式)。为低 电平时幵始计时,为高电平时停止计时。设计1s延时子程序(延时误差 小于10us,晶振频率12MHZ。 P0输出小时数 P1输出分钟数 P2输出秒数 R0小时循环计数 R1 分钟循环计

6、数 R2秒循环计数 R3保存分钟数 R4保存小时数 提高部分(选做) : 1)实现 4 位十进制加、减 1 计数,千位、百位由 P1 口输出;十位、 个位由P2 口输出。利用状态选择加、减计数方式。 2)利用P3 口低四位状态控制幵始和停止计数,控制方式自定。 P1 输出千百位 P2输出个十位 计数开始与停止控制 加 1减1 计数切换 R1 存千百位 R2存个十位 四、流程图 1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结 果Y也存于外部 RAM单元,请按要求编写完整程序 X2 当X 64 YX /2 当10 X X 当X 10 64 2. 利用 51 系列单片机设计一个

7、24 小时制电子时钟,电子时钟的时、 分、秒数值分别通过 PO、P1、P2端口输出(以压缩 BCD码的形式)。为低 电平时开始计时,为高电平时停止计时。设计 1s 延时子程序(延时误差 小于10us,晶振频率12MHZ。 tfiV 隔胎咖顷a丽创 麻网曲刼泌)G硼 Bu/SnsftDrawk pjref)sd ccfM pmt (Nt doaxiwnr wrtho a watrmerk. Visa wzAv.smartO oc call 1-800-768-3729. 提高部分(选做) : 1)实现 4 位十进制加、减 1 计数,千位、百位由 P1 口输出;十位、 个位由 P2 口输出。利用状

8、态选择加、减计数方式。 2)利用 P3 口低四位状态控制开始和停止计数,控制方式自定。 加1计数 P1*-0 P2T R2T 1 R2-. K2I 1 R2 Y RI-RI 1 X Pl Rl 咖 a WaD Buy SmartOra?/1- purchased copies print this document without a watermark . Visit vavv smartdraw com or call 1 800-768-3729. 五、源代码(含文件头说明、语句行注释) 1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结 果Y也存于外部RAM单元,请按要

9、求编写完整程序 X2 当X 64 YX /2 当10 X 64 X 当X 10 File n ame: Description:对8bits符号数X,对于不同的X进行不同的运算操作 Date: by: Source used: 1000H:存 X 的值 1001H、1002H:存 Y 的值 1001H:平方运算所得低位;除法运算所得商 1002H:平方运算所得高位;除法运算所得余数 ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV DPTR,#1000H ;X 存于 1000H MOV A,#-1; 给 X赋值 MOV B,#0 MOVX DPTR,A ;正负判断

10、 JB ,L3;X0 CJNE A,#64,L2;A!=64,L2 SJMP L1 MUL AB SJMP STORE L2: JNC L1 CJNE A,#10,L4 SJMP L3 L4: JC L3 MOV B,#2 DIV AB SJMP STORE L3: CPL A STORE: INC DPTR MOVX DPTR,A INC DPTR MOV A,B MOVX DPTR,A END SJMP $ ; 低位存于 1001H,? 高位存于 1002H ;X64,L1 ;A!=10,L4 ;X=10,L3 ;X10 商存于 1001H, 余数存于 1002H ;X=10 ; 结果存于

11、 1001H 2. 利用 51 系列单片机设计一个 24 小时制电子时钟,电子时钟的时、 分、秒数值分别通过 PO、P1、P2端口输出(以压缩 BCD码的形式)。为低 电平时开始计时,为高电平时停止计时。设计 1s 延时子程序(延时误差 小于10us,晶振频率12MHZ。 3. File name: Description: 24 小时制电子时钟 Date: by: DYH Source used: P0:输出小时数 P1:输出分钟数 P2:输出秒数 R0:小时循环计数 R1:分钟循环计数 R2:秒循环计数 R3:保存分钟数 R4:保存小时数 ORG 0000H LJMP MAIN ORG 0

12、100H MAIN: MOV SP,#40H MOV P0,#0 MOV P1,#0 MOV P2,#0 MOV R3,#0 ; 保存小时 MOV R4,#0 ; 保存分钟 ; 设定循环 MOV R0,#24 ;小时外循环 24 MOV R1,#59 ; 分钟中循环 60 MOV R2,#59 ; 秒内循环 60 CLR A LOOP: JNB ,$ ;=0, 结束计数 LCALL DELAY ; 延时 1s ADD A,#1 DA A MOV P2,A DJNZ R2,LOOP MOV A,R3 ; 分钟开始计数 将分钟赋给 A ADD A,#1 ; 分钟 +1 DA A MOV R3,A

13、MOV P1,A CLR A; 秒清零 MOV R2,#59;重置内循环 DJNZ R1,LOOP ;R1!=0, 中循环 MOV R3,#0; 分钟清零,小时计数 MOV A,R4 ADD A,#1 DA A MOV R4,A MOV P0,A MOV R2,#59; 重置中循环 MOV R1,#59; 重置外循环 DJNZ R0,LOOP DONE: SJMP $ DELAY:MOV R7,#11 ;n=(201*5+5)*90+9)*11+2=1000001 DELAY3: MOV R6,#90 ;t= DELAY2: MOV R5,#201 DELAY1: NOP NOP NOP DJ

14、NZ R5,DELAY1 NOP NOP DJNZ R6,DELAY2 NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY3 RET END 提高部分(选做) : 1)实现 4 位十进制加、减 1 计数,千位、百位由 P1 口输出;十位、 个位由 P2 口输出。利用状态选择加、减计数方式。 2)利用 P3 口低四位状态控制开始和停止计数,控制方式自定。 Description: 实现 4 位十进制加、减 1 计数 Date: by: DYH Source used: P1输出千百位 P2输出个十位 计数开始与停止控制 加1减1计数切换 R1 存千百位 R2存个十位 OR

15、G 0000H MOV P1,#0 输出千百位 MOV P2,#0 输出个十位 存千百位 MOV R1,#0 存个十位 MOV R2,#0 LJMP MAIN ORG 0100H MAIN: JB ,$ ; 计数开始与停止控制 JNB ,ADD1 ; 加 1减 1,模式选择 SUB1: MOV P1,#99 MOV P2,#99 MOV R1,#99 LOOP2: MOV R2,#99 LOOP1: JB ,$ JNB ,LOOP3 MOV A,R2 LCALL DELAY DEC A MOV R2,A MOV P2,R2 CJNE R2,#0H,LOOP1 MOV A,R1 DEC A MO

16、V R1,A MOV P1,R1 CJNE R1,#0H,LOOP2 SJMP $ ADD1: MOV P1,#0 MOV P2,#0 MOV R1,#0 LOOP4: MOV R2,#0 LOOP3: JB ,$ JB ,LOOP1 MOV A,R2 LCALL DELAY INC A MOV R2,A MOV P2,R2 CJNE R2,#99H,LOOP3 MOV A,R1 INC A MOV R1,A MOV P1,R1 MOV R1,#0 SJMP $ DELAY:MOV R7,#11 ;n=(201*5+5)*90+9)*11+2=1000001 DELAY3: MOV R6,#9

17、0 ;t= DELAY2: MOV R5,#201 DELAY1: NOP NOP NOP DJNZ R5,DELAY1 NOP NOP DJNZ R6,DELAY2 NOP NOP NOP NOP NOP NOP DJNZ R7,DELAY3 RET END 六、程序测试方法与结果 1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结 果Y也存于外部RAM单元, Y 请按要求编写完整程序。 X2 当X 64 X /2 当10 X 64 X 当X 10 (1)X=-3O二E2H Y =1DH .X=5=05H,Y二FAH Reolsters -:Bs= 10 OkOO rl Ck

18、OQ r OkOO i3 OkOO r4 OzOO rb Qkuu rb OicOO r7 kOU b QkOO QiO 1缸 OkE zp max QkW 1命tr OrlOOS K $ C:DtD】即 10421939 Tit 94 n=* Dk80 Villi Diwstfmby n El MOV Af託 ;给X賦直 A C:0s01C3 7405 MOV At #0 x05 1 6: C :O3eQ1CS ONG omc 国 Pre,Ed 盍 Reoisten CommandQ 3 Rsumiiiig wxth Cod?- Sxze I Load E:大学柴程PPT .X=10=0AH

19、,Y二F5H Menary I LJT1F KATN ORG C19DH HO DIT,#1ODOH 班存于 1Q0皿 MOV ?, *5 ;治,防信 me -, *n WVX tDPTR f - ;正戾判断 JB A?C.7,L3;X0 CJNE A, *6, LZ ;A6#L; SJMP LI MOV 3fA ;X=61 MUL LE INC EF7F 5JIIF 5TORE ;f衣宜有于:10口1丸高位存于:LQO2E Addrt: peOGOH X: urooiaoo : OS Fl OQ GO QO QD 00 DO OO OQ 00 OQ QO OO XsOmOOIOCE: 00

20、OC OQ CO DO OD 00 DO DO 00 CO OD 00 00 E3A (4)X=25=19h Y二0CH (商)01H (余数) .X=64=40H Y =1000H 2.利用51系列单片机设计一个 24小时制电子时钟,电子时钟的时、 分、秒数值分别通过 PO、P1、P2端口输出(以压缩 BCD码的形式)。为低 电平时幵始计时,为高电平时停止计时。设计1s延时子程序(延时误差 小于10us,晶振频率12MHZ。 (1)=0,停止计数 (2)分钟进位前 (3)分钟进位后 IParallef Port 0I富 Parallel Port 0 FW Q i 7 Bis 0 p IkF

21、F丽 |话7丽*言7 Fins: |OiFF I7I7I7I7I7I7I7I7 (5)小时进位后 Paralle Port 0 S3 Parallel Port 1 Parallel Port 2 Parallel Port 2 Pins: |C5厂厂厂厂厂研厂帀 Par-alkl Port 3 PPcMt 工 7BU 0 P3: |fttFF I7FI717I7PFI7 Pins:陽FF ITpp诃诃7T7V 提高部分(选做): 1) 实现4位十进制加、减1计数,千位、百位由 P1 口输出;十位、 个位由P2 口输出。利用状态选择加、减计数方式。 2)利用P3 口低四位状态控制幵始和停止计数,控制方式自定。 (1)=1,停止计数 Parallel Port 0 S3 (4) =0,加1计数前后 r Port 0 Pins: aralle Port 1 Parallel Port 2 Parallel Port -Port 3 I/ Bts 0 F土 |血FF

温馨提示

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

评论

0/150

提交评论