单片机怎么实现一个开关控制八个灯按一下亮一个按八下八个灯都亮汇编语言程序

急急急,,谢谢

用一个寄存器做变量就可以。

假如按键是一个开个,接在P1.0,八个灯在P0,低电平灯亮
程序是这样的
MOV 30H ,#00
LOP :
SETB P1.0
JNB P1.0, PRESS
AJMP LOP
PRESS:
INC 30H
MOV A,30H
CJNE A,#9,L_NEXT
MOV 30H,#1
L_NEXT:
JNB P1.0,$
MOV A,30H
CJNE A,#1 ,LED1_ON
CJNE A,#2, LED2_ON
CJNE A,#3, LED3_ON
CJNE A,#4, LED4_ON
CJNE A,#5, LED5_ON
CJNE A,#6, LED6_ON
CJNE A,#7, LED7_ON
CJNE A,#8, LED8_ON
LJMP LOP

LED1_ON: MOV P0,#0FEH //亮一个灯
LJMP LOP
LED2_ON: MOV P0,#0FDH //亮一个灯
LJMP LOP
LED3_ON: MOV P0,#0F8H //亮一个灯
LJMP LOP
LED4_ON: MOV P0,#0F0H //亮一个灯
LJMP LOP
LED5_ON: MOV P0,#0E0H //亮一个灯
LJMP LOP
LED6_ON: MOV P0,#0D0H //亮一个灯
LJMP LOP
LED7_ON: MOV P0,#080H //亮一个灯
LJMP LOP
LED8_ON: MOV P0,#00H //亮一个灯
LJMP LOP追问

谢谢 ,那如何进一步实现按一下亮一个灯,亮几个灯LED屏显示几.第九次显示0

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-10-12
;一个开关控制八个灯
;按一下亮一个
;按八下八个灯都亮

;按键接在P1.0
;八个灯在P0,低电平灯亮

KEY EQU P1.0

ORG 0000H
MOV A, #11111111B
WAIT:
MOV P0, A
JB KEY, $
DJNZ R7, $
DJNZ R7, $
JB KEY, WAIT
JNB KEY, $
CLR C
RLC A
JC WAIT
JMP 0000H
END
第2个回答  2014-10-10
C语言才会,汇编不会。。。。。

一个IO作KEY,再用一个全局变量判断亮灯状态,随按键反转。另外可以使用一P1 IO连接8个LED追问

感谢你

单片机怎么实现一个开关控制八个灯按一下亮一个按八下八个灯都亮汇编...
CJNE A,#8, LED8_ON LJMP LOP LED1_ON: MOV P0,#0FEH \/\/亮一个灯 LJMP LOP LED2_ON: MOV P0,#0FDH \/\/亮一个灯 LJMP LOP LED3_ON: MOV P0,#0F8H \/\/亮一个灯 LJMP LOP LED4_ON: MOV P0,#0F0H \/\/亮一个灯 LJMP LOP LED5_ON: MOV P0,#0E0H \/\/亮一...

单片机用汇编语言编写用一个控制器控制8个LED灯亮
MAIN:MOVA,#0FFH;设置左移初值 CLRC;C=0 MOVR2,#08H;设置左移次数 LOOP:RLCA;左移1位 MOVP2,A;输出到P2 CALLDELAY;延时 DJNZR2,LOOP;左移7次 MOVR2,#07H;LOOP1:RRCA;右移1位 MOVP2,A;输出到P2 CALLDELAY;DJNZR2,LOOP1;右移7次 JMPMAIN DELAY:MOVR3,#20;延时0.2s D1:MOVR4,#2...

编程:使用单片机P1口控制8个LED。显示方式:自上而下逐个点亮,再自下而...
ORG0000H AJMPMAIN ORG0030H MAIN:MOV P1,#01111111B ;P1口低电平 对应灯亮 点亮P1.7对应的LED LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况 MOV P1,#10111111B LCALL DLY_500MS ;延时500ms 可以清晰看到每个LED的亮灭情况 MOV P1,#11011111B LCALL DLY_500MS ;延时...

8路流水灯汇编语言程序的写法
;假设1:D1~D8八个彩灯接在P1口,输出低电平发光 ;假设2:系统晶振为12MHz ;假设3:N = 5 ;程序如下:ORG 0000H MOV R3, #5 ;N=5 LOOP0:MOV A, #0FFH MOV P1, #0FFH ;开始时全灭 ;---逐个点亮 MOV R2, #8 LOOP1: CLR C RLC A MOV P1, A CALL DL500MS DJNZ R...

单片机p0循环点亮八盏灯的程序怎么写?
写单片机P0循环点亮八盏灯的程序并不复杂,只需要实现一个循环点亮的过程,就可以实现了。一、硬件接线 首先,电路接线是最重要的环节,需要将外部组件与单片机核心引脚相连接,如接线正确,接地和电源,以及led灯和信号脚之间的接法、灯丝与中断脚的线路等,全部调整正确才能正常工作。二、编程操作 接着,...

最简单单路跑马灯汇编程序 8展灯 一个开关 开关按下 8个灯从上到下依 ...
AJMP MAIN ;跳转到 MAIN程序 ORG 030H ;MAIN程序从030H开始运行 MAIN:MOV P2,#0FEH ACALL DEL ;调用延时子程序 MOV P2,#0FCH ACALL DEL ;调用延时子程序 MOV P2,#0F8H ACALL DEL MOV P2,#0F0H ACALL DEL MOV P2,#0E0H ACALL DEL MOV P2,#0C0H ACALL DEL MOV P2,#080H ...

51单片机用汇编语言实现八个LED的全亮全灭
;以89c51单片机为例,假定用P1控制LED:IO_LED EQU P1;led_0 BIT P1.0;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的数据...

用汇编语言AT89C51单片机对八个LED小灯的一个控制
ORG00H AJMPMAIN MAIN:MOVR0,#3 MAIN1:MOVP2,#0FH ACALLD2S MOVP2,#0FFH ACALLD2S DJNZR0,MAIN1 MOVR0,#3 MAIN2:MOVP2,#0F0H ACALLD2S MOVP2,#0FFH ACALLD2S DJNZR0,MAIN2 AJMPMAIN D2S:MOVR7,#20 MOVR6,#200 MOVR5,#250 DJNZR5,DJNZR6,$-4 DJNZR7,$-8 RET END ...

用单片机P0控制8个LED,要求8个LED按1357——2468的顺序轮流点亮_百度...
一键多功能按键识别技术 1.实验任务 开关K1接在P3.2管脚上,在AT89S51单片机的P0.0端口接有1个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在亮,当一次按下开关K1的时候,灯灭,再按一次,灯亮,如此轮流下去。 2.系统板上硬件连线 把“单片机系统”区域中的P3.2端口连接到“独立式...

单片机用汇编做一个控制8个LED灯泡从左到右依次点亮,最后全部亮,再全部...
#,包括 #包括 无符号字符型温度;无效延迟(无符号整数);无效的主要(){ TEMP = 0XFE;P1 =温度;(1){ TEMP = _crol_(温度,1);\/ \/循环离开转移功能 延迟(600);P1 =温度;} } 无效延迟(无符号整数Z)无符号整数X,Y;为(X = Z,X> 0,X - )(Y = 20,Y> 0,Y - ...

相似回答