您现在的位置是:首页 >宏观 > 2024-04-20 05:12:59 来源:

单片机编程代码大全(单片机编程)

导读 大家好,我是小夏,我来为大家解答以上问题。单片机编程代码大全,单片机编程很多人还不知道,现在让我们一起来看看吧!1、AA EQU 50H ;...

大家好,我是小夏,我来为大家解答以上问题。单片机编程代码大全,单片机编程很多人还不知道,现在让我们一起来看看吧!

1、AA EQU 50H ;假设第一组数据排列好后的入口地址

2、 BB EQU 55H ;假设第二组数据排列好后的入口地址

3、 CC EQU 5AH ;假设第三组数据排列好后的入口地址

4、 DD EQU 5FH ;假设第四组数据排列好后的入口地址

5、 ORG 0000H

6、 MAIN: MOV SP,#70H

7、 JMP L1 ;跳到第一组要排列的地方

8、 SORT: MOV A,R0 ;

9、 MOV R1,A ;(R1)为首地址

10、 MOV A,R2 ;字节数送入R5

11、 MOV R5,A ;(R5)为字节数

12、 CLR F0 ;互换标志位F0清零

13、 DEC R5 ;循环n-1

14、 MOV A,@R1 ;

15、 LOOP: MOV R3,A ;(R3)为前一个数

16、 INC R1 ;地址指向下一个数

17、 CLR C ;

18、 MOV A,@R1 ;取下一个数

19、 SUBB A,R3 ;比较大小

20、 JNC LOOP1 ;如果进位位Cy=0,则转移

21、 SETB F0 ;互换标志位F0置1

22、 MOV A,R3 ;前面大的数放到A

23、 XCH A,@R1 ;互换后,小的数在A,大数在@R1

24、 DEC R1 ;(R1)指向前一个地址

25、 XCH A,@R1 ;小的数放到前一个地址

26、 INC R1 ; (R1)指向下一个地址

27、LOOP1: MOV A,@R1 ;取下一个数

28、 DJNZ R5,LOOP

29、 MOV C,F0

30、 JC SORT

31、 RET

32、 K0: INC R0

33、 INC R1

34、 MOV A,@R0

35、 MOV @R1,A

36、 DJNZ R7,K0

37、 RET

38、 L1: MOV R2,#05H ;假设未排列前第一组数据的入口地址位10H,共5个数。

39、 MOV R0,#10H

40、 CALL SORT ;冒泡排列

41、 MOV R7,#04H

42、 MOV R1,#50H

43、 MOV AA,@R0

44、 CALL K0 ;将排列好的数送到50H,共5 个数。

45、 L2: MOV R2,#05H ;假设未排列前第二组数据的入口地址位20H,共5个数。

46、 MOV R0,#20H

47、 CALL SORT ;冒泡排列

48、 MOV R7,#04H

49、 MOV R1,#55H

50、 MOV BB,@R0

51、 CALL K0 ;将排列好的数送到55H,共5 个数。

52、 L3: MOV R2,#05H ;假设未排列前第三组数据的入口地址位30H,共5个数。

53、 MOV R0,#30H

54、 CALL SORT ;冒泡排列

55、 MOV R7,#04H

56、 MOV R1,#5AH

57、 MOV CC,@R0

58、 CALL K0 ;将排列好的数送到5AH,共5 个数。

59、 L4: MOV R2,#05H ;假设未排列前第四组数据的入口地址位40H,共5个数。

60、 MOV R0,#40H

61、 CALL SORT ;冒泡排列

62、 MOV R7,#04H

63、 MOV R1,#5FH

64、 MOV DD,@R0

65、 CALL K0 ;将排列好的数送到5FH,共5 个数。

66、 L5: MOV R2,#14H

67、 MOV R0,#50H

68、 CALL SORT ;将四组排列好的数据集中按冒泡排列从小到大排列,即50H~63H中的数据依次增大。

69、 END

本文到此讲解完毕了,希望对大家有帮助。