51单片机8个流水灯,一个按键从左到右,一个按键从右到左,用汇编语言
发布网友
发布时间:2023-07-13 15:01
我来回答
共2个回答
热心网友
时间:2023-09-11 01:14
KEYR EQU P1.0//改下端口 忘记 p3口 是低还是高了
KEYL EQU P1.1
LED EQU P0
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB ET0
SETB EA
MOV A,#0FEH
MOV LED,A
MOV R2,#0
CLR 00H
LOOP:
CLR TR0
LOOPL:
JB KEYL,LOOPR
SETB TR0
RL A
MOV LED,A
JNB 00H,$
CLR 00H
SJMP LOOPL
LOOPR:
JB KEYR,LOOP
SETB TR0
RR A
MOV LED,A
JNB 00H,$
CLR 00H
SJMP LOOPR
T0ISR:
CLR TR0
MOV TH0,#HIGH(65536-50000)
MOV TL0,#LOW(65536-50000)
SETB TR0
INC R2
CJNE R2,#20,T0E
MOV R2,#0
SETB 00H
T0E:
RETI
END
追问灯不亮啊,而且按键一直按才有电平输出,能不能就按一下就可以
热心网友
时间:2023-09-11 01:14
要求这么简单,程序,就不用很长。
如下即可:
用汇编语言让51单片机八个灯从左到右依次点亮且都不灭,每个灯亮的时
用汇编语言让51单片机八个灯从左到右依次点亮且都不灭,每个灯亮的时间间隔0.5秒,然后全灭,再循环之前的步骤。参考如下:电路 代码 LED_COUNTDATA30H T0_COUNTDATA31H ORG0000HLJMPMAINORG000BHLJMPT0_INTORG0030HMAIN:ANLTMOD,#0F0HORLTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HORLIE,#82HSETBTR0CL...
无源蜂鸣器与有源蜂鸣器的区别是什么?
联系我们一、有无震荡源 无源这里的“源”不是指电源,而是指震荡源。也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会叫。而无源内部不带震荡源,所以如果用直流信号无法令其鸣叫。 二、价格不同 有源蜂鸣器往比无源蜂鸣器贵,就是因为里...
51单片机制作一个由一个按钮控制的8盏流水灯程序,要求按下按钮后流水...
sbit key=P1^0;uchar led;void delay(uchar x){ uchar i,j;for(i=0;i<x;i++)for(j=0;j<125;j++);} void disled(){ uchar i,j;led=0xfe;for(j=0;j<2;j++){ for(i=0;i<8;i++){ P0=led;delay(200);P0=0xff;delay(200);led<<=1;led|=0x01;}} for(i=0;i<...
...C语言编程:让8个LED流水灯以0.2s时间间隔从左到右依次点亮然后重复实 ...
delay:mov r6,#0ffh loop1: mov r7,#01h djnz r7,djnz r6,loop1 ret end 好像是这样,延迟时间可能不太准,也是P1口接8个LED灯
51单片机中如何用汇编语言编写流水灯
SETB TR1;启动定时器1SETB EA;开总中断 MOV P1,LED;初始化流水灯LOOP:JMP LOOP;循环等待中断T1INT:PUSH PSW;定时器1中断程序PUSH ACC;保护现场MOV TH1,#3CH;定时时间=50mSMOV TL1,#0B0H;INC YSJS; PUSH ACC;保护ACCMOV A,YSJI;CJNE A,#2,QT1;50mS*2=100mSMOV P1,LED...
跪求单片机c51用汇编语言写的程序,功能为:8只发光二极管依次点亮,从...
if(i==8)P1=~0x01;//P1_0所接二极管亮,下面依次是P1_1到P1_7(电路连接时二极管一端连P1_0,一端连电阻再连5v,低电平的时候亮,因此加取反“~”)if(i==7)P1=~0x02;if(i==6)P1=~0x04;if(i==5)P1=~0x08;if(i==4)P1=~0x10;if(i==3)P1=~0x20;if(i==2)P1=~0x...
求一个用汇编语言编写一个8051单片机的时钟程序(急急急啊)
HOUR: DS 1 MIN: DS 1 SEC100: DS 1 DIS_BUF: DS 8 BUF_HOUR_H EQU DIS_BUF ; 小时十位 BUF_HOUR_L EQU DIS_BUF+1 ; 小时个位 BUF_MIN_H EQU DIS_BUF+3 ; 分十位 BUF_MIN_L EQU DIS_BUF+4 ; 分个位 BUF_SEC_H EQU DIS_BUF+6 ; 秒十位 BU...
51单片机 用1个按键控制8盏灯,进行花样显示
void key1(){ if(key==0){ P1=0x00; //灯全亮 } void key2(){ if(key==0){ P1=0xfe;P1=P1<<1; //左移或右移,这个自己试一下 delay(1000);.//继续移动到最后一个灯亮 if(P1=0x80) //判断最后一个灯是否亮了,亮了就全部灭 { P1=0xff;} } } void key3(){...
51单片机用汇编语言实现八个LED的全亮全灭
led_1 BIT P1.1;led_2 BIT P1.2;led_3 BIT P1.3;led_4 BIT P1.4;led_5 BIT P1.5;led_6 BIT P1.6;led_7 BIT P1.7;;定义开关LED的数据,假定LED正极一端接电源,另一端通过限流电阻接I/O端口:DATA_CloseLED EQU 11111111B...
单片机C语言如何实现8个LED流水灯来回流动?
1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:
...与外设的连接图并用汇编语言编程使它们从左到右轮流点亮
ORG 0000HLJMP MAINORG 0030HMAIN:MOV A,#7FHLOOP:MOV P0,ALCALL DELAYRR ASJMP LOOPDELAY:MOV R2,#200DLY:MOV R3,#250DJNZ R3,$DJNZ R2,DLYRET END