如何编写一段程序,单片机是51系列的,要求编写8个LED灯有三种以上的闪烁方式,灯闪烁时间0.5S

如题所述

第1个回答  2010-12-22
给你最简单的,看得清楚易懂的,P1口接8位LED,有多种闪烁方式。P2(扫描端在P2口,P3为位选端,注意看代码)口接上两位数码管的话还可以显示00-99的数字:
ZHUCX: MOV A,#11111110B
MOV P1,A
ACALL YANSHI
MOV A,#11111100B
MOV P1,A
ACALL YANSHI
MOV A,#11111000B
MOV P1,A
ACALL YANSHI
MOV A,#11110000B
MOV P1,A
ACALL YANSHI
MOV A,#11100000B
MOV P1,A
ACALL YANSHI
MOV A,#11000000B
MOV P1,A
ACALL YANSHI
MOV A,#10000000B
MOV P1,A
ACALL YANSHI
MOV A,#00000000B
MOV P1,A
ACALL YANSHI
MOV A,#10000000B
MOV P1,A
ACALL YANSHI
MOV A,#11000000B
MOV P1,A
ACALL YANSHI
MOV A,#11100000B
MOV P1,A
ACALL YANSHI
MOV A,#11110000B
MOV P1,A
ACALL YANSHI
MOV A,#11111000B
MOV P1,A
ACALL YANSHI
MOV A,#11111100B
MOV P1,A
ACALL YANSHI
MOV A,#11111110B
MOV P1,A
ACALL YANSHI
MOV A,#11111111B
MOV P1,A
ACALL YANSHI
MOV R4,#5
D5 : MOV A,#01111110B
MOV P1,A
ACALL YANSHI
MOV A,#10111101B
MOV P1,A
ACALL YANSHI
MOV A,#11011011B
MOV P1,A
ACALL YANSHI
MOV A,#11100111B
MOV P1,A
ACALL YANSHI
MOV A,#11011011B
MOV P1,A
ACALL YANSHI
MOV A,#10111101B
MOV P1,A
ACALL YANSHI
MOV A,#01111110B
MOV P1,A
ACALL YANSHI
DJNZ R4,D5
ACALL YANSHI
MOV R0,#3
LOOP: MOV A,#01010101B
MOV P1,A
ACALL YANSHI
MOV A,#10101010B
MOV P1,A
ACALL YANSHI
DJNZ R0,LOOP
MOV A,#11111110B
MOV P1,A
ACALL YANSHI
MOV A,#11111101B
MOV P1,A
ACALL YANSHI
MOV A,#11111011B
MOV P1,A
ACALL YANSHI
MOV A,#11110111B
MOV P1,A
ACALL YANSHI
MOV A,#11101111B
MOV P1,A
ACALL YANSHI
MOV A,#11011111B
MOV P1,A
ACALL YANSHI
MOV A,#10111111B
MOV P1,A
ACALL YANSHI
MOV A,#01111111B
MOV P1,A
ACALL YANSHI
MOV A,#10111111B
MOV P1,A
ACALL YANSHI
MOV A,#11011111B
MOV P1,A
ACALL YANSHI
MOV A,#11101111B
MOV P1,A
ACALL YANSHI
MOV A,#11110111B
MOV P1,A
ACALL YANSHI
MOV A,#11111011B
MOV P1,A
ACALL YANSHI
MOV A,#11111101B
MOV P1,A
ACALL YANSHI
MOV A,#11111110B
MOV P1,A
ACALL YANSHI
START:MOV R0,#0
MOV DPTR,#TABLE
LOOP1:ACALL DISPLAY
INC R0
CJNE R0,#100,LOOP1
JMP ZHUCX
DISPLAY:MOV A,R0
MOV B,#10
DIV AB
MOV R1,A
MOV R2,B
MOV R3,#50
LOOP2:MOV A,R2
ACALL CHANG
CLR P3.6
ACALL DLY10MS
SETB P3.6
SETB P3.5
MOV A,R1
ACALL CHANG
CLR P3.7
ACALL DLY10MS
SETB P3.7
SETB P3.4
DJNZ R3,LOOP2
RET
CHANG:MOVC A,@A+DPTR
MOV P2,A
RET
DLY10MS:MOV R6,#10
D1: MOV R7,#200
DJNZ R7,$
DJNZ R6,D1
RET
YANSHI :MOV R5,#30
D3:MOV R6,#50
D4:MOV R7,#50
DJNZ R7,$
DJNZ R6,D4
DJNZ R5,D3
RET
TABLE:DB 0C0H,0F9H,0A4H,0B0H
DB 99H,92H,82H,0F8H
DB 80H,90H,88H,83H
DB 0C6H,0A1H,86H,8EH
END
第2个回答  2010-12-22
多看看书吧》》
51单片机用C语言写就好了。。。
编译工具 Keil本回答被提问者和网友采纳
第3个回答  2010-12-23
你是电子科大成都学院的吧...?

...要求编写8个LED灯有三种以上的闪烁方式,灯闪烁时间0.5S
给你最简单的,看得清楚易懂的,P1口接8位LED,有多种闪烁方式。P2(扫描端在P2口,P3为位选端,注意看代码)口接上两位数码管的话还可以显示00-99的数字:ZHUCX: MOV A,#11111110B MOV P1,A ACALL YANSHI MOV A,#11111100B MOV P1,A ACALL YANSHI MOV A,#11111000B MOV P1,A ACALL...

求单片机设计8个led灯同时闪烁的程序,
请设计一个8个led同时全部闪烁的程序 include <reg51.h> main (){int i;while (1){for (i=0;i<=30000;i++);P1=~P1;} }

C51单片机编程 求按下按键 8盏LED灯闪烁3次后 灯灭 闪烁频率为1HZ
1、是用一个I\/O口接了8个LED(当然不是,是某一P口)?是用哪一P口?2、然后呢?(单片机不会休息的)3、是用定时器?(还没学到定时器课程吧?)还是延时子程序?4、是汇编语言程序?还是C语言程序?

单片机 8个LED灯随机闪烁怎么做?
1、首先在电脑中新建项目:Keil uVision4 51单片机LED闪烁编程,如下图所示。2、然后设计单片机端口与LED灯相连,如下图所示,输入代码。3、接着创建延迟函数,如下图所示,输入以下代码。4、然后创建C语言主函数,如下图所示,输入以下代码。5、接着输入对输出取反,最后调用延迟函数,如下图所示就完...

51单片机汇编控制8个流水灯
思路:循环控制常亮状态的值,将其从最高位循环到最低位。这个用于最后状态的常亮 在常亮循环中,控制不是常亮的其它所有位进行再次循环,逐渐从最低位亮灭循环到最高位 代码如下:include <reg51.h>unsigned char PData; \/\/整体结果unsigned char CurrData;\/\/变化的最高位\/\/延时,本函数是非精确...

八个流水灯隔灯闪烁,程序怎么写?
void main()TMOD=0x01; \/\/T0为方式1 TH0=(65536-50000)\/256;TL0=(65536-50000)%256; \/\/初值 EA=1; \/\/允许中断 ET0=1;while(1)P2=0x00;delay(2000);LED = 0x7f;m =0;for (i = 0 ;i < 8 ; i++){ a=0;TR0=1;delay(100);while(m);delay(2000);P2=0x00;dela...

51单片机开发板八个led灯依次点亮(就是流水灯)然后再全部
600);D7=0;delay(600);} } 延时函数delay的实现如下:void delay(uint z){ uint x,y;for(x=100;x>0;x--){ for(y=z;y>0;y--){ } } 这段代码实现了8个LED灯的流水点亮效果,先点亮第一个LED,等待600毫秒后,再点亮第二个LED,依此类推,直到所有LED都点亮,然后循环重复。

用51单片机设计8个灯的跑马灯程序拜托各位大神
\/*延时*\/ led_sdata=0xfc; \/*显示寄存器为1.2号灯亮*\/ for(i=0;i<8;i++){ led_port = led_sdata; \/*将显示寄存器输出到LED端口*\/ led_sdata = (led_sdata<<1)+1; \/*将显示寄存器数据左移1位,并将第一位置高,即熄灭*\/ delay_1ms(200); delay_1ms(200); \/*延时*\/ } ...

要求用51单片机控制8个LED亮灭的原理图+程序+解说?
1、依次亮,依次灭:从一个灯亮到全亮,再到全灭,每次改变一个灯亮灭 2、奇偶号灯间隔亮灭:隔一个灯亮一个灯亮灯时间为1s,没有灯全灭的时候 3、依次闪烁、切换时间为3秒,闪烁时间为2秒,我理解的是,没三秒钟有一个灯在闪烁,其中有一秒钟是灭灯状态 程序中使用了P1口与8个发光二极管...

利用单片机控制8个发光二极管,实现8个灯同时闪烁的控制程序
以51位例,使用P1的八个IO口控制。先定义:sbit LED0=P1^0;sbit LED1=P1^1;...以此类推,定义八个。然后在主循环中:LED0=0;延时一段时间;LED0=1;就可以看到闪烁了。

相似回答