单片机汇编语言编程(在线求答案)

来源:百度知道 编辑:UC知道 时间:2024/05/07 08:35:22
使Pi口相连的LED发光循环左移一次,右移一次,时间为0.2s (不断)
第2题左移2次,右移2次,闪烁2次,间隔时间为1秒(用查表指令)
第3题有一个key,压一次左移一次,压2次右移1次,压3次闪烁4次,全灭,如此循环

<<第1题>>
实验目的:初步了解单片机I/O口的工作原理,进一步掌握51单片机的汇编指令。
实验内容:用汇编指令对单片机I/O口进行编程,控制8个发光二极管的流水亮灭。

程序详细功能介绍:
做单一灯的左移右移,八个发光二极管L0-L7分别接在单片机的P1.0-P1.7接口上,
输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。

ORG 0000H
LJMP START
ORG 0030H
MOV R2,#8 ;左移次数
MOV A,#0FEH ;A的初始值,即 P1.0的L0 点亮
SETB C
LOOP: MOV P1,A
LCALL DELAY
RLC A ;左移流水灯(带进位的左移),即亮点向P1口的高位移动
DJNZ R2,LOOP

MOV R2,#8 ;右移次数
LOOP1: RRC A ;右移流水灯
MOV P1,A
LCALL DELAY
DJNZ R2,LOOP1
LJMP START

DELAY: MOV R5,#10 ;延时子程序,改变R5,R6,R7 的值,可以改变延时的时间,从而改变流水灯移动速度
D1: MOV R6,#20
D2: MOV R7,#248
DJNZ R7,$
DJNZ R6,D2
DJNZ R5,D1
RET
END

<<第2题>>
实验目的:掌握单片机的查表原理,掌握MOV DPTR,#DATA16指令,MOVC A,@A+DPTR的运用
实验内容:利用MOVC A,@A+DPTR的指令,控制8个发光二极管的流水亮灭。
程序详细功能介绍:
利用取表的方法,使端口P1做