51单片机编程题单片机P1.0~1.7口接八个发光二极管(爱心图样)试编写流水灯的汇编程序使发光二极管逐个亮

左右3个,上下1个
不需要C语言程序,谢谢~~

第1个回答  推荐于2017-12-16
;启动入口
ORG 0000H ;复位启动
LJMP START ;
ORG 000BH ;T0中断
LJMP T0INT ;
ORG 0100H ;
LJMP START ;
;
;主控程序
START: MOV SP,#80H ;初始堆栈值
MOV TMOD,#01H ;定时器0工作于方式1,50毫秒@12.000MHz
MOV TH0,#03CH ;定时器0定时时间=50mS
MOV TL0,#0B0H ;设置定时初值
MOV P1,#0FEH ;
MOV YSJS,#4 ;4*50mS=200mS
SETB ET0 ;允许定时器0中断
SETB EA ;开总中断
SETB TR0 ;定时器0启动,开始定时
JMP $ ;死循环等待中断
;
;定时器0中断服务程序
T0INT: PUSH PSW ;保护现场
PUSH ACC ;
;
DJNZ YSJS,QT0 ;
MOV YSJS,#4 ;4*50mS=200mS
MOV A,P1 ;
RL A ;
MOV P1,A ;
;
QT0: MOV TH0,#03CH ;定时器0定时时间=50mS
MOV TL0,#0B0H ;
POP ACC ;恢复现场
POP PSW ;
RETI ;
;
YSJS EQU 30H ;
END ;追问

请问YSJS EQU 30H是?还有PUSH ACC是?

追答

YSJS EQU 30H是定义一个变量YSJS,地址为30H。因为一次定时时间太短,有了这个变量,就可以长时间定时。
PUSH ACC就是将累加器A压栈。

追问

你好,“RETI ;”我输入电脑,显示操作码错误,请你再帮我解答下!

追答

你不要输入,复制过去就行。

本回答被网友采纳
第2个回答  2015-06-16

;P1 输出低电平时,LED 发光

    ORG   0000H
    MOV   A, #127
LP:
    MOV   P1, A
    RR    A

    MOV   R5, #5
    DJNZ  R7, $
    DJNZ  R6, $ - 2
    DJNZ  R5, $ - 4
    JMP   LP

END

...P1.0至P1.7接8个发光二极管,要求编写程序实现如下功能:8个发光二极管...
编程实现对 8 个 LED 的输出控制 将实验箱中的 8255 片选信号连接到 218H~21FH,将 8255 的 4 个寄存器地址(A、B、 C 端口及控制字寄存器端口)设置为 218H~21BH。将 8255 的端口 A 的 8 个引脚:PA0~PA7 与 8 个 LED 对应相连,然后打开实验箱电源,最后编程对 8 个 LED 进行显示...

单片机编程:P1口P1.1-P1.7接八个LED灯L0-L7。分别用查询方式,中断方式...
点亮子函数:include"reg51.h"include"intrins.h"define uchar unsigned char void dd(){ uchar temp=0xfe,i;for(i=0;i<8;i++){ P1=temp;temp=_crol_(temp,1);\/\/左移函数 delay();} } 然后你要什么中断你就在中断函数里面调用这个函数就可以 ...

单片机P1口的8个端口P1.0~P1.7分别接LED灯L1~L8,编程使8盏灯按照下列要 ...
while(1){ temp=i<8?(temp<<1):(temp>>1)|0x80; P1=temp; delay(20000); if(!k1)break; if(i++==16)i=0; } }} SW1接通第1种效果;断开为第2种效果。

单片机编程8个led灯,让最低灯亮,循环左移s
这8个LED使用同一P口上的所有引脚,假设为P1口中的P1.0-P1.7共8个脚。软件中,只需要将这些灯使用一个for循环即可。代码 include <reg51.h>unsigned char PData; \/\/记录当前是哪个状态,值为1表示亮,输出到P口时取反\/\/延时,本函数是非精确延时,若需要精确延迟则需要根据本函数的汇编语句...

单片机硬件实验中,p1.0~p1.7作输入口,接开关k1~k8,p2.0~~p2.7作输出...
直肠子程序。void main(void){ while(1){ P2=P1;} } 或者 ORG 0000H LOOP:MOV P2, P1 SJMP LOOP

单片机点亮八个led灯
要使用单片机点亮八个LED灯,首先需要确定你使用的单片机型号(如AT89C51、STM32等),因为不同型号的单片机其编程方式和引脚配置可能有所不同。以常见的51单片机为例,假设LED灯分别连接到了P1端口的八个引脚(P1.0到P1.7)。在编程时,你需要将P1端口设置为输出模式,然后通过对P1端口写入相应的数据...

用单片机控制的LED流水灯设计(电路、程序全部给出)
硬件部分,流水灯基于单片机最小应用系统构建,仅需八个LED、晶振、复位、电源等基本元件,每个LED的亮灭控制依赖P1口的电平调节。通过控制P1.0到P1.7的电平变化,连续点亮和熄灭,创造出流水灯效果。软件编程部分,有三种方法:位控法通过逐个位操作控制LED,虽然直观但代码较长;循环移位法利用循环指令...

用单片机P1.0和P1.7作输出,分别接小喇叭和发光二极管
做这个系统时,就将以前单片机所学的知识,做了一个综合的应用,包括有LCD1602控制,串口的控制等。经过以上三个步骤的学习之后,对于51单片机的开发基本上就算入门了。而对于其他类型的单片机,如飞思卡尔单片机,LPC2148 ARM7单片机,PIC16F887等,虽然每个系列的功能不一样,但是最基本的编程思想还是一...

单片机流水灯程序设计,p1.0和p1.7一起点亮,然后是p1.1和p1.6...要...
知道最简单的那种 org 0000h START:clr P1.0 CLR P1.7 ACALL DELAY SETB P1.0 SETB 1.7 clr P1.1 CLR P1.6 ACALL DELAY SETB P1.1 SETB 1.6 clr P1.2 CLR P1.5 ACALL DELAY SETB P1.2 SETB 1.5 clr P1.3 CLR P1.4 ACALL DELAY SETB P1.3 SETB 1.4 SJMP ...

51单片机c语言编程:编写一段程序,P1.0控制LED,P1.1控制LED的亮和灭...
P1.0、P1.1,都是控制 LED 的?试试下面的程序:include <reg51.h> sbit led = P1^0;sbit key = P1^7;void main(){ while(1) led = key;} P1.1,不知道怎么用。

相似回答