单片机综合实验 - 01 | 汇编程序设计二

Posted Neutionwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单片机综合实验 - 01 | 汇编程序设计二相关的知识,希望对你有一定的参考价值。

一、实验目的和任务

1、掌握分支、循环结构程序以及子程序的设计方法。

2、进一步熟悉Keil C51集成开发环境。

二、实验原理简介

在汇编语言程序设计中,普遍采用结构化程序设计方法。因为任何复杂的程序都可由顺序结构、分支结构及循环结构等构成。每种结构只有一个入口和出口,整个程序也只有一个入口和出口。结构化程序设计的特点是程序的结构清晰、易于读写和验证、可靠性高。结构化程序设计的基本方法有顺序结构、分支结构、循环结构、子程序。

本实验在实验一基础上,要求掌握分支、循环结构程序以及子程序的设计方法。

三、实验内容和步骤

1、分支程序:是根据要求无条件或有条件地改变程序执行流向。编写分支程序主要在于正确使用转移指令。

设变量x以补码形式存放在片内RAM的30H单元中,变量y与x的关系如下:

      

程序代码如下所示:

		ORG	 0000H
		JMP	 MAIN
		ORG	 0100H
MAIN:	MOV	 30H,#0H
		MOV	 A,30H
		JZ	 NEXT
		ANL	 A,#80H
		JZ	 ED
		MOV	 A,#05H
		ADD	 A,30H
		MOV	 30H,A	;(30H)=20H 
		SJMP ED
NEXT:	MOV	 30H,#20H
ED:		SJMP $
		END

2、循环程序:循环程序一般包含四部分:初始化部分、循环处理部分、循环控制部分和循环修改部分。

设有一带符号的数组存放在内部RAM以20H为首址的连续单元中,数组长度为30,要求找出其中的最大值,并将其存放到内部RAM的1FH单元中。

程序代码如下所示:

		ORG	 0000H
		JMP	 MAIN
		ORG	 0100H
			
MAIN:	MOV  R0,#20H
		MOV  A,#0
		MOV  R1,#30
		MOV  DPTR,#TAB
		
LOOP1: PUSH ACC
		MOVC A,@A+DPTR
		MOV  @R0,A
		POP  ACC
		INC  R0
		INC  A
		DJNZ R1,LOOP1	
		
		MOV	 R0,#20H
		MOV	 B,#29
		MOV	 A,@R0
		
LOOP:	INC  R0
		MOV  R1,A
		XRL	 A,@R0
		JB	 ACC.7,LAT
		MOV	 A,R1
		CLR  C
		SUBB A,@R0
		JNB  ACC.7,AA
		NOP
		
CXA:	MOV  A,@R0
		SJMP BB
LAT:	XRL  A,@R0
		JNB  ACC.7,BB
		SJMP CXA
AA:		MOV  A,R1
BB:		DJNZ B,LOOP
		MOV  1FH,A
		
TAB: 	DB	-7,9,34,11,-43
		DB	-27,29,4,21,-13
		DB	-17,19,24,41,-23
		DB	-37,49,14,31,-53
		DB	-47,59,54,51,-54
		DB	-57,69,44,61,-45
		END

3、子程序:同一个程序中,往往有许多地方都需要执行同一任务,这时可对这项任务独立编写。

实验内容:设0、1、...、9存放在内部RAM的20H开始的存储区域内,对其进行平方运算,计算所得结果存放在R3、R2中。要求:平方运算编写成子程序SORT,主程序通过调用SORT并求和完成运算。参数的传递用累加器。

		ORG	 0000H
		JMP	 MAIN
		ORG	 0100H
			
MAIN:	MOV  R1,#20H
		MOV	 R2,#10
		MOV  A,#0
		
LOOP1:	MOV  @R1,A
		INC  R1
		INC  A
		DJNZ R2,LOOP1
		
		MOV  R0,#20H
		MOV  R7,#10
		MOV  R3,#0
		MOV  R2,#0
		CLR  C
		
LOOP:	MOV  A,@R0
		ACALL SORT
		ADD  A,R2
		MOV	 R2,A
		MOV  A,R3
		ADDC A,#0
		MOV  R3,A
		INC  R0
		DJNZ R7,LOOP
		SJMP EN
		
SORT:	MOV  DPTR,#TAB
		MOVC A,@A+DPTR
		RET
TAB: 	DB   0,1,4,9,16
		DB	 25,36,49,64,81
EN:		NOP
		END

 

以上是关于单片机综合实验 - 01 | 汇编程序设计二的主要内容,如果未能解决你的问题,请参考以下文章

单片机综合实验 - 05 | 简易电子钟设计

单片机综合实验 - 03 | 音乐门铃设计

单片机综合实验 - 06 | 数字温度计设计

单片机综合实验 - 02 | 中断与定时/计数器实验

汇编实验四

汇编实验四