单片机实验参考程序

更新时间:2023-11-06 12:40:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

1. 存储块赋值

将内部RAM30H-40H的所有单元内容全部赋值为33H,并将这些单元的内容传递到片外RAM的0040H-0050H单元中。

要求:(1)简化精炼原程序;(2)有规律地修改内部RAM30H-40H中的数据

ORG LJMP ORG Start: MOV MOV INC MOV INC MOV INC MOV INC MOV INC MOV INC MOV INC MOV INC MOV INC MOV

MOV MOV MOV Main: MOV MOVX INC INC DJNZ MAIN2: LJMP END

00H Start

100H R0, #30H @R0, #33H R0 @R0, #33H R0 @R0, #33H R0 @R0, #33H R0 @R0, #33H R0 @R0, #33H R0 @R0, #33H R0 @R0, #33H R0 @R0, #33H R0 @R0, #33H R0, #30H

DPTR, #40H R7, #10H A, @R0 @DPTR, A R0 DPTR R7, Main MAIN2 2. 数据排序

将内部RAM3AH-40H中的随机数按从小到大的顺序排列。

要求:(1)用查表法修改内部RAM中原来的数据,这样可以修改内部RAM中的数据而不改变原指令。 (2) 用“冒泡”法重新改编此程序。

Size EQU 6 ; 数据个数 Array EQU 3Ah ; 数据起始地址 Change BIT 0 ; 交换标志 ORG 00H LJMP Start ORG 100H Start: MOV R0, #Array MOV @R0, #33H INC R0 MOV @R0, #05H INC R0 MOV @R0, #78H INC R0 MOV @R0, #10H INC R0 MOV @R0, #90H INC R0 MOV @R0, #45H

Main: MOV R0, #Array MOV R7, #Size-1 CLR Change Main2: MOV A, @R0 MOV R2, A INC R0 MOV B, @R0 CJNE A, B, Main4 SJMP Main6 Main4: JC Main6 ; 前小后大, 不交换 SETB Change ; 前大后小, 置交换标志 XCH A, @R0 ; 交换 DEC R0

XCH A, @R0 INC R0

Main6: DJNZ R7, Main2 JB Change, Main Main8: LJMP

Main8

END

Main: MOV R7, #Size-1

Main2:

MOV R0, #Array

MOV A, R7 MOV R6, A DEC R6 Main2: MOV A, @R0 MOV R2, A INC R0 MOV B, @R0 CJNE A, B, Main4 SJMP Main6 Main4:

JC Main6 XCH A, @R0 DEC R0 XCH A, @R0 INC R0 Main6: DJZN R6, Main2

DJNZ R7, Main2

; 前小后大, 不交换; 交换 3. P1口输出的参考程序:

P1口做输出口,P1.0引脚接一只发光二极管,编写程序,使该发光二极管循环亮灭(亮0.2s、灭0.8s)。

要求:根据系统的时钟频率精确定时延时子程序的时间。 ORG 00H LJMP Start ORG 100H Start: NOP NOP

Main:

SETB P1.0

LCALL Delay CLR P1.0 LCALL Delay LCALL Delay LCALL Delay SJMP Main

Delay: MOV R0, #50 Delay2: NOP NOP DJNZ R0, Delay2 RET

END

4. 外部中断

利用实验箱上的单脉冲按键和发光二极管实现:每当单脉冲按键按下时(产生一个脉冲),发光二极管亮灭变化。

要求:(1)用位访问指令初始化外部中断0相关特殊功能寄存器的相关位;

ORG LJMP ORT LJMP ORG Start: MOV MOV MOV Main: NOP LJMP INT0:

PUSH CPL POP RETI END

00H Start 03H INT0 100H TCON, #01h ; 外部中断0下降沿触发 IE, #81h ; 打开外部中断允许位(EX0)及总中断允许位(EA) SP, #50H Main PSW ; 保护现场 P1.0 PSW ; 恢复现场

本文来源:https://www.bwwdw.com/article/dbp2.html

Top