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

下载本文档

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

文档简介

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

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

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

4、。2)利用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,可以实现随时停止与开始。三、资源分配RAM单元,请按要求编写完整程序。当 X -64当 10 : X

5、 : 64当 X - 10X存于片外1000HY存于片外1001H、1002H其中,求平方时,低位存于1001H,,高位存于1002H除二时,商存于1001H,,余数存于1002H1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果Y也存于外部32.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通 过P0、P1、P2端口输出(以压缩BCD码的形式)。P3.0为低电平时开始计时,为高电平时 停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。4P0输出小时数P1输出分钟数P2输出秒数R0小时循环计数R1分钟循环计数R2秒循环计数R

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

7、P1、P2端口输出(以压缩BCD码的形式)。P3.0为低电平时开始计时,为高电平时 停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。8提高部分(选做) :1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。 利用P3.7状态选择加、减计数方式。2)利用P3口低四位状态控制开始和停止计数,控制方式自定。9加1计数1F减1计数小-仆pm-99p恥-99TR2*-R2l 1 -P2 12R2如Lr1FR2R2 wP2R2bRl R1 I 1_I_卩I*-RlPl R1Rl (JR?-0Biy SmartDrail-ixircha&edco

8、pies print ltil$document without a watrmaik .Viait www .smarrdtaw com or call 1-900-768-3729.10五、源代码 (含文件头说明、语句行注释)1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果RAM单元,请按要求编写完整程序。X2当 X K64Y =三 X /2当 10 : X ::: 64X当 x 兰 10Y也存于外部File n ame: taskl.asmDescription:对8bits符号数X,对于不同的X进行不同的运算操作Date:Desig ned by:Source us

9、ed: 1000H:存X的值1001H、1002H:存Y的值1001H:平方运算所得低位;除法运算所得商1002H:平方运算所得高位;除法运算所得余数ORG 0000HLJMP MAINORG 0100HMAIN:MOV DPTR,#1000HMOV A,#-1MOV B,#0MOVX DPTR,A;X存于1000H;给X赋值;正负判断JB ACC.7 ,L3;X0CJNE A,#64,L2SJMP L1;A!=64,L2L1:MOV B,AMUL ABSJMP STORE;X=64;低位存于1001H, ?高位存于1002HL2:JNC L1;X64 ,L1CJNE A,#10,L4;A!=

10、10,L4SJMP L3;X=10,L3L4:JC L3;X10SJMP STORE;商存于1001H,余数存于1002H11L3: CPL ASTORE: INC DPTRMOVX DPTR,A INC DPTR MOV A,BMOVX DPTR,ASJMP $END2.利用51系列单片机设计一个24小时制电子时钟,电子时钟的时、分、秒数值分别通 过P0、P1、P2端口输出(以压缩BCD码的形式)。P3.0为低电平时开始计时,为高电平时 停止计时。设计1s延时子程序(延时误差小于10us,晶振频率12MHz)。3.File name: task2.asmDescription:24小时制电子

11、时钟Date:Designed by: DYHSource used:P0:输出小时数P1:输出分钟数P2:输出秒数R0:小时循环计数R1:分钟循环计数R2:秒循环计数R3保存分钟数R4保存小时数ORG 0000HLJMP MAINORG 0100HMAIN: MOV SP,#40HMOV P0,#0MOV P1,#0MOV P2,#0MOV R3,#0;保存小时MOV R4,#0;保存分钟;X=10;结果存于1001H12DELAY: MOV R7,#11 ;n=(201*5+5)*90+9)*11+2=1000001DELAY3: MOV R6,#90 ;t=1.000001sDELAY2

12、: MOV R5,#201DELAY1: NOPNOPNOPDJNZ R5,DELAY1NOPNOPDJNZ R6,DELAY2;设定循环MOVR0,#24 MOVR1,#59 MOVR2,#59 CLR ALOOP: JNB P3.0,$ LCALLDELAY ADD A,#1DA A MOV P2,ADJNZ R2,LOOPMOV A,R3 ADDA,#1 DA A MOVR3,A MOV P1,ACLR A MOVR2,#59 DJNZR1,LOOP MOVR3,#0 MOV A,R4ADD A,#1 DA AMOV R4,A MOVP0,A MOV R2,#59MOV R1,#59DJ

13、NZ R0,LOOPDONE: SJMP $;小时外循环24;分钟中循环60渺内循环60;p3.0=0,结束计数;延时1s;分钟开始计数 将分钟赋给A;分钟+1;秒清零;重置内循环;R1!=0,中循环;分钟清零,小时计数;重置中循环;重置外循环13NOPNOPNOP14NOPNOPNOPDJNZ R7,DELAY3RETEND提高部分(选做) :1)实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。 利用P3.7状态选择加、减计数方式。2)利用P3口低四位状态控制开始和停止计数,控制方式自定。Description:实现4位十进制加、减1计数Date: Designe

14、d by: DYHSource used:P1输出千百位P2输出个十位P3.0计数开始与停止控制P3.7加1减1计数切换R1存千百位R2存个十位ORG 0000HMOV P1,#0MOV P2,#0MOV R1,#0MOV R2,#0;输出千百位;输出个十位;存千百位;存个十位LJMP MAINORG 0100HMAIN: JB P3.0,$JNB P3.7,ADD1SUB1: MOV P1,#99MOV P2,#99MOV R1,#99 LOOP2: MOV R2,#99 LOOP1: JB P3.0,$JNB P3.7,LOOP3MOV A,R2LCALL DELAY DEC AMOV R

15、2,AMOV P2,R2CJNE R2,#0H,LOOP1MOV A,R1;计数开始与停止控制;加1减1,模式选择15DEC AMOV R1,AMOV P1,R1CJNE R1,#0H,LOOP2SJMP $ADD1: MOV P1,#0MOV P2,#0MOV R1,#0LOOP4: MOV R2,#0LOOP3: JB P3.0,$JB P3.7,LOOP1MOV A,R2LCALL DELAYINC AMOV R2,AMOV P2,R2CJNE R2,#99H,LOOP3MOV A,R1INC AMOV R1,AMOV P1,R1CJNE R1,#99H,LOOP4MOV R1,#0SJ

16、MP $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,DELAY2NOPNOPNOPNOPNOP16NOPDJNZ R7,DELAY3RETEND六、程序测试方法与结果1.设有8bits符号数X存于外部RAM单元,按以下方式计算后的结果RAM单元,请按要求编写完整程序。“X2当 X K64Y=e诫计ObdOCl0 x00OKOOGxOO0 x00QsOO0

17、x000 x00ChDOCkOO0 x07OxOOOD c:owoaoo00.00000000ChdOO吒:MAIN: MOV DPTRf*100Gii存于 lOQCijiCiOxOlOD901000MOVDPTR,*0 x10005:MOVA,#-30MOV;给喰值0P cijcct 亘 Registen匚 1R& 000OH# 2LJMP MAIM3ORG 0100H|目MAIN:MCV DPTR, flDOOfi存于丄 O(QHMOV:给 X 底洼l:MOVtDMOVX DPTRPA1 *;正员判断询JB ACCH7rL3rX013CJNE A, f64FLJ2 ;AJ=64jL

18、21-5SJMP LI1511:MOV BjA;X=S4IEMD1 AS17SJMP STORE :低空存于 100LHJ存于 10DJISVCommandDijrnblyst&Cias1 td 殖耳曲 m1 td5K2,dim17Running witk Code Sz.e liriLiLoad E 八大学课理 PFlAh 大三X:0 x001000: E2 ID 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00X:0 x001011: 00 00 0D 00 DO 00 00 00 00 00 00 00 00 00 DO 00 00说ail

19、 $td-ri- - Loca s Memory 1Simulation|X1KWHASM ASSIGNRegisters4 QDisassembly El18Regi strllS-rOOKOOrl0 x00r2OKDOr3OKOOT4DxOOr50 x00r$0 x00rTOKOOaOKOObOKOOHP_p曲0 x0Nptf0 x3002PC $COsOUIstates18&421939sec94.21W69501呻0 x80匡5;MOVArt5;给英赋值A0:0 x01037405MOVA,#0 x05C:0 x010575FOOOMOV BfMOVtoB(OxFO)#*OxO

20、OV因Yrasm XTORGOOOOHA23LMP MAINORG 0100H4MAIN:MOV DPTR,41OOOH ;X存于1000且5MOV Ar#5 ;给刘按值6MOV Br#07MOVX DPTR,Q9正负判断JB ACC.7rL3;X013CJNEL214SJMP LI15LI:HOV B,A;X=6416MOL AB17IMC DPTRia5JMF STORE:低位存于1001H,高位存于10D2H19201 r姬TY1/* T 1H 仕 AT FPro. ect s Registers(3). X=10=0AH, Y=F5H19IE Project言RegistersDisa

21、ssemblyU 15:MOVAHtic;给黑摩值AC:0KD103740AMOVA, #0 x0A6 =MOV Br#|C:OxO10575FODOMOVB (OxFO)f#0 x30it址昭0100HMAIN:;X=64q567a:正负判断JE ACC.7rL3;X0CJTIE Ar#6, L2 ;A!=64rL2S-JMP LIMOVMULINC;低:位存于1D01H,高位存于丄0O2HASM ASSI右N BreakDisabl皂Running with Code Size ILoadWE?大学课程PPTW;| Memory 1* QAddin|X;1QWHKlX:0 xQ01000:

22、 DA F5 00 00 00 00 DO 00 DO 00 DO 00 DO 00 X:0 xa0100E: 00 00 00 00 0000 00 00 0000 00 0000 00viCall Sitaick Locals |L_2Memory 1Commaind4 Q(4)X=25=19h Y=0CH(商)01H(余数)legist ersH Q20m Register!a Command0 x00IMOVai us0 x000 x00QidDO(hOO(MX)GhflO0 x00CWD7OxOOOQC:OxDOOO00.OOODOOOORunning with Code Sise

23、LiwLead E.A大学 TPPTW 大三|C:DxOOODD2010DLJMPM&IN(C:0100JASC:0X0003DONOPCs0 x00000NOPCTTnirnnnsnaNOPVctask.3.asnn匡| task 1.asm_J task2.asmw X1 ORG DOO-OH典t 2LJMP M&iy3D:RG OlDOEi勺 gI:J:KCV兀阳:?:存于 isaoHSMOV A, #2S ;给创世直6MOV E, f07MOVX DPTRA目9;正员判断10JB ACC.7fL3;X013CJNE 瓦丰酣”L2rL214SJMP LI15 LI:MOV

24、BFA?X-S41-6MUL AB17SOME STORE 昇土住存于 10JlEi自世存于二 OMH18VMfiTiQiry 1 |X:1MK)H|D 冏碗 mblyX.:0 x0D1000: 19 DC 01 00 00 00 00 00 00 00 00 DO 00 00 00 00 DOX:0 x001011: 00 DO 00 00 DO 00 DO 00 00 00 00 00 00 00 00 00 003SM ASSIGN BieakDiaablevi Ca I- Lc64,L1Memory 1Address|X;1O0WBf#00RG CDOOHL-JMP HADIORGMA

25、IN: MOT DPTR,#1000H存于1000HMOVMOVMOVX 3DPTR,,正负判斷JB ACC;X0CJNE#64,L2皿=$冲3JHP LIMOV B,A ;X=4MULAB5JHP STORE:低T存于LODIHHSt*存于10Q汕ASH ASSIGN BreakDisable22Parallel Port 0出Port DI7 Bits QPO Soo Illi厂厂厂厂Rns: |0 xDD厂厂厂厂厂厂厂厂Parallel Port 1Port 1I7 Bits 0P1:|M4厂厂厂厂厂厂厂Pins: |(lcD4 | | | | | PI |Parallel Port2P

26、art 2P2:Pins: I&C40-Port 3i _7 Bis 0P3:圧 臣宙臣目厂Pins: |ns: |&oo i i rr i r r Parallel Port 1Port1r_ 7 Bits 0PI:厂厂 E 厂丽17Pin: 0 x17 rTTVTPPPParallel Port 2Port 2吃|SoFn-rrrrwPra M9厂厂厂厂17厂厂17-Port 3 -7 BU 0Parallel Port 3S325F3: &FF顾两臣丽两庄Pins: ScFF I7PI7J7I7I7I7J7(4)小时进位前26Parallel Port 0Part

27、 0-7 Bits呛|MI| | | | pPins: |d(00 rTTTT-Parallel Port 1Parallel Port 3浓Parallel Port227Port 3I7 Bits 0P3: |0cFF I7J7J7冋7PI7PPhs: |ttcFF顾应宙庄顾臣(5)小时进位后Parallel Port 02228Pins: SOO rTTTTTTlPort 1Rns 10(02厂厂厂厂厂TlPins: |&cFF I7J7I7I7J7PPI7提高部分(选做):1) 实现4位十进制加、减1计数,千位、百位由P1口输出;十位、个位由P2口输出。 利用P3.7状态选择加

28、、减计数方式。2)利用P3口低四位状态控制开始和停止计数,控制方式自定。(1)P3.0=1,停止计数PO:SoT7 Bits 0rrrrrrriParallel Port 1S3 Port 3 P3: |tt(FF7 Bits 0I 7 Bits|M2厂厂厂厂厂Parallel Port2Parallel Pon 329Parallel Port 0Port 1Parallel Port2肚-Port 2i 7 Bits 0陀:|%00 rTTTTTTTPins:|MO I I I I I IrrParallel Port 3Port 3P3:限FFBits0I7I7J7I7J7I7J7I7P

29、ins: |tkFF(2)P3.0=1,中途停止计数Parallel Port 1P1: | MOPins:IMO-30Port 2-7 BitsP2: |(k5D rprVPPTPRns |ftc5DParallel Port 3Port 3(3)P3.0=0,从暂停点继续计数Parallel Port 0Port 0PO:7 Bits 0Pins: tkcFFParallel Port 1S2rPoft 17 Bits 0PI: |(k3厂iprr厂PF?Parallel Port2S3P3: ttcFFPins: SFFBitG31Parallel Port 0Port 0I-7 Brts 0PO: |CkFF|7|717|717|7|7Pins |&cFF己冲两Parallel Pori 1Port 1PI:|QK63Pins:|QK631Bits 0rprp両厂IF厂I7FI7T7厂I7PParallel Port 3Port 3-1Bits 0Pl: |欧FE硕疋斥|丽啟应厂Parallel Port 2Port 2P2血5日Pins: |Jbc5B32Pins:

温馨提示

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

评论

0/150

提交评论