led_5 BIT P1.5;led_6 BIT P1.6;led_7 BIT P1.7; ;定义开关LED的数据,假定LED正极一端接电源,另一端通过限流电阻接I/O端口: DATA_CloseLED EQU 11111111B;DATA_OpenLED E

{ case 0xfe:P0=0x01;break;case 0xfd:P0=0x02;break;case 0xfb:P0=0x04;break;case 0xf7:P0=0x08;break;case 0xef:P0=0x10;break;case 0xdf:P0=0x20;break;case 0xbf:P0=0x40;break;case 0x7f:P0=0x

把所有的灯都定一下。void delay(int ms){ int x,y;for(x=ms;x>0;x--)for(y=110;y>0;y--);} 一个nms的延迟,要求是12m的晶振。void main(){ while(1){ led1=0;delay(1000);led1=1;里面随便写了

1、依次亮,依次灭:从一个灯亮到全亮,再到全灭,每次改变一个灯亮灭 2、奇偶号灯间隔亮灭:隔一个灯亮一个灯亮灯时间为1s,没有灯全灭的时候 3、依次闪烁、切换时间为3秒,闪烁时间为2秒,我理解的是,没三秒

if(KEY1==0)//如果按键1被按下 {LED1=0;}//开启LED1灯 else{LED1=1;}//否则关闭LED1等,以下雷同if(KEY2==0){LED2=0;} else{LED2=1;} }//end main-for(;;)}//end main;

define uint unsigned int define uchar unsigned char void delay(uint z);void main(){ uchar a;a=0x00;P0=0x00;//P0输出; led共阴接法 P1输入按键另一端接地 P0加上拉电阻 P1=0xff;while(1){ P0=0x00;i

/***/void main()//主函数{u8 k,i;while(1){k=P1;//读按键键值,此处省略消抖程序for(i=0;i<8;i++){ //8次循环if((k&0x01)==0){//扫描到按下的按键break;//跳出循环}k>>=1;//k右移1位}P2=t

C51如何用8个按键,分别控制8个LED亮灭只允许一个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.

P1口接SW,SW另一端接地 P2口接LED,LED另一端接地

你的电路,弄反了。你把八个LED,都反过来,公共端,接在电源上,就可以了。正确电路,可见:http://zhidao.baidu.com/question/591052586.html --- 按照楼主的电路,如下程序即可:ORG 0000H JMP MAIN ORG

程序如下:ORG 0000H LJMP MAIN ORG 000BH LJMP T0_INT ORG 0030H ;--- MAIN:MOV TMOD, #01H MOV TH0, #HIGH(65536 - 10000) ;10ms@12MHz MOV TL0, #LOW(65536 - 10000)SETB TR0

急求程序,89C51汇编语言写8个按键控制8个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.

P1口接SW,SW另一端接地 P2口接LED,LED另一端接地

你的电路,弄反了。你把八个LED,都反过来,公共端,接在电源上,就可以了。正确电路,可见:http://zhidao.baidu.com/question/591052586.html --- 按照楼主的电路,如下程序即可:ORG 0000H JMP MAIN ORG

程序如下:ORG 0000H LJMP MAIN ORG 000BH LJMP T0_INT ORG 0030H ;--- MAIN:MOV TMOD, #01H MOV TH0, #HIGH(65536 - 10000) ;10ms@12MHz MOV TL0, #LOW(65536 - 10000)SETB TR0

急求程序,89C51汇编语言写8个按键控制8个LED

假设 八个开关分别接在 P1.0—— P1.7,八个发光二极管接在 P0.0 -P0.7 。汇编语言编程如下。 ORG 0000H start: mov P1,#0ffH mov P0,#0ffH mov A,P1 mov P0,A lcall delay ljmp start

汇编:ORG 00H MOV P2,#80H START:MOV A,#0FFH ;赋初值 CLR C MOV R2,#8 LOOP:RRC A ;带进位右移 MOV P1,A CALL DELAY DJNZ R2,LOOP MOV R2,#7 LOOP1:RLC A ;带进位左移 MOV P1,A CALL DELAY DJNZ

MAIN:MOV SP,#7 MOV P0,#0FFH;P0口初始化,设置P0口为输入方式 LOOP:MOV A,P0;将P0口的状态读入累加器A,P0口的状态由开关SW1~SW2控制 MOV P1,A;P0口的状态送P1口显示 MOV 20H,A;将P0口的状态数据送20H单元

8个开关分别接P1.0-P1.7 控制输出是P0.0-P0.7LED灯 还有开关延时6S和按住一个按钮锁住其它按钮 例如:按下P0.0松开按钮 然后延时5s灯亮并且在5s之内锁住P0.1-P0.7的输入 --P0.0,是接的按键? 前面不

CPL P1.1 LOOP2:JB P0.2,LOOP3 JNB P0.2,CPL P1.2 LOOP3:JB P0.3,LOOP4 JNB P0.3,CPL P1.3 LOOP4:JB P0.4,LOOP5 JNB P0.4,CPL P1.4 LOOP5:JB P0.5,LOOP6 JNB P0.5,CPL P1.5 LOOP

求汇编语言程序:8个开关p0.0——p0.7分别控制8个灯p1.0——p1.7,

是用51单片机实现吗,是要画仿真图吗?首先要有仿真图或原理图才能写程序呀。

早上起来没有什么事,跟你写个简单的供您学习与参考吧,这个程序是对应某个按键按下,对应序列号的灯就亮起来,释放按键,则灯灭,都是低电平有效。至于其他功能,你可以自己扩展吧。我只写2个,8个太多了,懒的动了。

程序如下:ORG 0000H LJMP MAIN ORG 000BH LJMP T0_INT ORG 0030H ;--- MAIN:MOV TMOD, #01H MOV TH0, #HIGH(65536 - 10000) ;10ms@12MHz MOV TL0, #LOW(65536 - 10000)SETB TR0

用单片机的汇编来编程,思路是编写一个占空比可调的子程序,8个灯用8个IO口控制,通过设置8个IO口的输出波形的占空比不同从而控制8个灯的亮暗.

CLR P0.7 ;清0 接口0第7位,SJMP NEX8 ;短转移到 NEX8,NEXT8: SETB P0.7 ;位-置1 接口0第7位,NEX8: SJMP START ;短转移到 START,END ;END 第二种:先说硬件连接 将8个灯接到P1口的8根线法 灯的排列

MAIN:MOV P1,#0FFH ;灯初始全灭 MOV P0,#0FFH ;按键初始都没有按下 LOOP:JB P0.0,LOOP1 ;第一个键没按转下一个 JNB P0.0,$ ;第一键按下则等抬起 CPL P1.0 ;第一个灯如果开始灭则点亮

ORG 000HLJMP MAINORG 0030HMAIN:MOV SP,#7MOV P0,#0FFH;P0口初始化,设置P0口为输入方式LOOP:MOV A,P0;将P0口的状态读入累加器A,P0口的状态由开关SW1~SW2控制MOV P1,A;P0口的状态送P1口显示MOV 20H,A;将P0

如何用汇编语言实现八个开关控制八个灯

是用51单片机实现吗,是要画仿真图吗?首先要有仿真图或原理图才能写程序呀。
用单片机的汇编来编程,思路是编写一个占空比可调的子程序,8个灯用8个IO口控制,通过设置8个IO口的输出波形的占空比不同从而控制8个灯的亮暗.
汇编语言的变成已经很不习惯了。 假设 八个开关分别接在 P1.0—— P1.7,八个发光二极管接在 P0.0 -P0.7 。汇编语言编程如下。 ORG 0000H start: mov P1,#0ffH mov P0,#0ffH mov A,P1 mov P0,A lcall delay ljmp start delay: mov r7,#100 loop: mov r6,#100 djnz r6,$ djnz r7,loop ret END
延时做 nop 的多次嵌套循环,用ajump 指令和 djnz Rn 指令 关于屏蔽接收,可以用相关寄存器做 逻辑处理,或者是比较跳转处理 摁钮来说,因为是输入,在输入之前,先对接脚做输出高电平处理,然后做接收,否则可能会烧掉单片机接脚内部的fet 管 延时六秒不好控制,如果晶振频率你知道的话,多用nop指令,来缓冲循环段的长短不一问题
这程序,是我写的。 程序,是好用的,初始状态,可以做到全灭。 你的电路,弄反了。 你把八个LED,都反过来,公共端,接在电源上,就可以了。 正确电路,可见: http://zhidao.baidu.com/question/591052586.html ------------ 按照楼主的电路,如下程序即可: ORG 0000H JMP MAIN ORG 000BH JMP T0_INT ORG 0030H ;--------------------------------- MAIN: MOV TMOD, #01H MOV TH0, #HIGH(65536 - 10000) ;10ms@12MHz MOV TL0, #LOW(65536 - 10000) SETB TR0 MOV IE, #82H MOV R7, #50 ;500ms ;初始化 MOV 20H, #03FH ;低 6 位的初始状态,是灭的 MOV 21H, #0FFH ;初始化 LOP:SJMP LOP ;--------------------------------- T0_INT: MOV TH0, #HIGH(65536 - 10000) ;10ms@12MHz MOV TL0, #LOW(65536 - 10000) MOV A, P2 CPL A MOV B, A XRL A, 21H ANL A, 21H MOV 22H, A MOV 21H, B ANL A, #3FH XRL 20H, A MOV A, 22H ANL A, #0C0H XRL 23H, A DJNZ R7, T0_E MOV R7, #50 ;500ms亮500ms灭 JB 23H.7, S2 XRL 20H, #80H SJMP S3 S2: ANL 20H, #7FH ;ORL 20H, #80H S3: JB 23H.6, S4 XRL 20H, #40H SJMP T0_E S4: ANL 20H, #0BFH; ORL 20H, #40H T0_E: MOV P1, 20H RETI ;--------------------------------- END
ORG 00H AJMP MAIN ORG 13H AJMP EX1INT ORG 0030H MAIN: MOV P1,#0 SETB EA SETB EX1 SETB IT1 MAIN1: MOV P1,A AJMP MAIN1 EX1INT: INC A CJNE A,#0,RTI MOV A,#0 RTI: RETI END
程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP T0_INT ORG 0030H ;--------------------------------- MAIN: MOV TMOD, #01H MOV TH0, #HIGH(65536 - 10000) ;10ms@12MHz MOV TL0, #LOW(65536 - 10000) SETB TR0 MOV IE, #82H MOV R7, #50 ;500ms LOP:SJMP LOP ;--------------------------------- T0_INT: MOV TH0, #HIGH(65536 - 10000) ;10ms@12MHz MOV TL0, #LOW(65536 - 10000) MOV A, P2 CPL A MOV B, A XRL A, 21H ANL A, 21H MOV 22H, A MOV 21H, B ANL A, #3FH XRL 20H, A MOV A, 22H ANL A, #0C0H XRL 23H, A DJNZ R7, T0_E MOV R7, #50 ;500ms亮500ms灭 JB 23H.7, S2 XRL 20H, #80H SJMP S3 S2: ORL 20H, #80H S3: JB 23H.6, S4 XRL 20H, #40H SJMP T0_E S4: ORL 20H, #40H T0_E: MOV P1, 20H RETI ;--------------------------------- END 仿真电路如下: C 语言程序可见: http://hi.baidu.com/do_sermon/item/f8812371c31434590d0a0791 注意两者接口不同。
参考: http://hi.baidu.com/do_sermon/item/21321b80887395d25e0ec1f8

八个灯接在单片机的P1口(P0,P2,P3,P4都一样) while(1) { delay(你想要延时的时间); P1=0xff; delay(你想要延时的时间); P1=0; } 注意led最好加驱动,不然单片机会坏的。