8个LED流水灯依次循环亮的C语言程序,问题详细内容为:我用的是PROTUSE做的仿真程序,想让这8个流水灯依次亮从P0到P7口要它的C语言程序可以在KEILC51里面运行的,希望在每句C语言后面有个解释不用WHILE和for语句i高分悬赏我这里有个程序希我用的是PROTUSE做的仿真程序,想让这8个流水灯依次亮,从
void delay(uint);void main(){ temp=0xfe;while(1){ for(num1=0;num1<3;num1++) //八个发光二极管从上到下依次被点亮3三次 { for(num=0;num<8;num++) //八个发光二极管依次被点亮 { P1=temp; //点亮一个发光二极管 delay(100); //延时 temp=_crol_(temp,1);//变量
第一步:8个发光二极管同时亮并且闪烁2次,闪烁间隔为0.3秒。第二步:8个发光二极管一个一个亮,间隔时间为0.5秒。第三步:开始时,8个发光二极管全部熄灭,0.3秒后一个被点亮,间隔0 第一步:8个发光二极管同时亮并且闪烁2次,闪烁间隔为0.3秒。第二步:8个发光二极管一个一个亮,间隔时间为0.5秒。第三步:开始
K1 EQU P1.0K2 EQU P1.1ORG 0000HLJMP MAINORG 0030HMAIN: MOV A,#0FEH CLR 00H CLR 01HLOOP: JB K1,LOOP1 SETB 00H CLR 01H SJMP LOOPLOOP1: JB K2,LOOP2 SETB 01H CLR 00HLOOP2: JB 01H,LOOP3 JB 00H,LOOP4 SJMP MAINLOOP3:
include
编程要求:用八个LED发光二极管实现流水灯,系统启动后,流水灯左向流转,按下K1键,则反向流转,再按则再
可以用 _crol_(),记得要家#include
module ledwater(clk,led,s) input clk; input[1:0]s; output[7:0]led; reg [7:0] led=0; reg [1:0] olds=0; always@(posedge clk) olds<=s; always@(posedge clk) if (olds^s) case (s) 2'b00: led<=1; //*a 2'b01: led<=
RL A MOV P1,A ;1秒一变的花样流水灯。T0E:RETI END
第一种,顺时针逐个点亮,第二种逆时针逐个 点亮,第三种前四个依次点亮,后四个同时依次点亮。第四种,间隔一个依次点亮,第五种,全部点亮,然后再全部熄灭,第六种,前四个亮,后四个灭,然后后四个亮前四个灭,第七种,先1357亮,隔几秒,8642亮,第八种,每个闪烁两次后,在依次点亮后面
ACALL DELAY_05s;延时0.5s MOV P0,#0FDH;P0.1灯亮 ACALL DELAY_05s;延时0.5s MOV P0,#0FBH;P0.2灯亮 ACALL DELAY_05s;延时0.5s MOV P0,#0F7H;P0.3灯亮 ACALL DELAY_05s;延时0.5s MOV P0,#0EFH;P0.4灯亮 ACALL DELAY_05s;延时0.5s MOV P0,#0DFH;
实现8个LED花样流水灯 要求《1》2种以上的花样形式,花样表演并须有一定的规律:
1、可以通过左移函数_crol_()和右移函数_cror_()来实现LED等的来回流动。2、具体实现方法可以参考如下程序:
// 左移1位 } j=0x80; // 设置右移初始值j为0x80 for (i=0;i<8;i++){ P1= ~ j;delay02s( );j= j>>1; // 右移1位 } } } 这只是延时的方法实现的。
while(1){ P0=0xfe;DelayMS(150);for(s=8;s>1;s--){ P0=_crol_(P0,1); //P0 的值向左循环移动 DelayMS(150);} P0=0x00;DelayMS(150);p0=0xff;DelayMS(150);
假设P1接8 个LED,高电平时LED点亮,主程序如下:void main(void){ uchar i;while(1){ for(i=0;i<7;i++){ P1=1<>i;delay_ms(500);} } }
P3=0xfe;//第一个灯亮 delay();//延时 P3=0xfd;//第二个灯亮 delay();P3=0xfb;//第三个灯亮 delay();P3=0xf7;//第四个灯亮 delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay();P3=0xbf;//第七个灯亮 delay();P3=0x7f;//第八个灯亮 delay();}
void delay(unsigned int z );void main(){ unsigned int a;unsigned char b=0xfe;for(a=0;a<8;a++){ P1=b;//P1口接8个LED灯 delay(200);b=_crol_ (b,1);} } void delay(unsigned int z){ unsigned int i;for(;z>0;z--) //延迟时间自己算吧 for(i=110;i>0;i--)
单片机C语言编程:让8个LED流水灯以0.2s时间间隔从左到右依次点亮然后重复实现
MAIN:MOV P3,#00H SETB P3.2 CALL DELY CLR P3.2 SETB P3.3 CALL DELY CLR P3.3 SETB P3.4 CALL DELY 按照上面省略,你自己补全。AJMP MAIN DELY:延时省略。END 这种方法比较麻烦。但容易理解,你可以用循环左移,或者查表比较简洁
1. 先做个AT89S51或AT89S52最小系统开发板;2. 写程序如下:它的效果是依次点亮32只LED,达到全亮后,再反向依次关闭32只LED。 谢谢采纳!ORG 0 ;依次清空P0.0~P0.7,顺次点亮P0口的8个LED=== LOOP: CLR P0.0 LCALL DELAY CLR P0.1 LCALL DELAY CLR P0.2
流水灯的程序我已经写出来了,就是不知道怎么加按键,打算用p3.0作为按键输入口,要求是先是灯全灭,然后按一下按键流水灯就开始工作,然后再按下灯就灭了,再按下再工作的那种,最好加点解释,这是流水灯的程序:ORG 0000H LJMP START ORG 0030H START: MOV A,#0FEH OUTPUT: MOV P2,A RL
按键按下,给一标志位,子函数 通过识别 标志位,判断是否 执行流水。 猜测:又一个受 郭大侠荼毒的孩子!
int main(void){ while(100){ LED=0XFE; //LED1亮 delay500ms();LED=0XFD; //LED2亮 delay500ms();LED=0XFB; //LED3亮 delay500ms();LED=0XF7; //LED4亮 delay500ms();LED=0XEF; //LED5亮 delay500ms();LED=0XDF; //LED6亮 delay500ms();LED=0XBF; //LED
ORG 0000HLJMP MAINORG 0030HMAIN: MOV P1,#00H MOV P3,#0FFHLOOP: MOV P1,#00H JNB P3.0,KEY1 JNB P3.1,KEY2 LJMP LOOP KEY1: ACALL DELAY10 JNB P3.0,ZUOYI RETKEY2: ACALL DELAY10 JNB P3.1,YOUYI RETZUOYI: MOV P1,#7FH MOV A,P1LOOP1: RR A MOV P1,A ACALL DELAY500 CJNE
实现两个按键控制LED流水灯,按下P3.0,8个LED循环左移,按下P3.1,8个LED循环右移 调试时只能循环一次
C语言程序如下:/* 该实验是花样流水灯(8个发光二极管以各种方式循环点亮),功能是花样流水灯(8个发光二极管以1S间隔以各种方式循环点亮) */ include//包含reg.52文件 define uint unsigned int//宏定义 define uchar unsigned char//宏定义 void delay(uint z);//声明延时函数 uint a;//定义循环
这个流水灯是很普通的一种花样,假设LED接P1口,程序如下:ORG 0000H LJMP MAIN 0RG 000BH LJMP T0ISR ORG 0030H MAIN:MOV TMOD,#01H MOV TH0,#HIGH(65536-50000) ;50毫秒定时 MOV TL0,#LOW(65536-50000)SETB TR0 SETB ET0 SETB EA MOV A,#0FEH MOV P1,A MOV R2,#20 SJMP T0
ORG 0000H;程序开始 AJMP MAIN;跳转到主程序MAIN ORG 0030H;主程序从030H开始 ;以下是主程序 MAIN: MOV P0,#0FEH;P0.0灯亮 ACALL DELAY_05s;延时0.5s MOV P0,#0FDH;P0.1灯亮 ACALL DELAY_05s;延时0.5s MOV P0,#0FBH;P0.2灯亮 ACALL DELAY_05s;延时0.
; 花样流水灯(8个发光二极管以各种形式循环点亮); 功能:流水灯(8个发光二极管循环以1S间隔以各种形式循环点亮)ORG H ;伪指令,指定程序从H开始存放 LJMP MAIN ;跳转指令,程序跳转至MAIN处执行 ORG H ;伪指令,指定程序从H开始存放 MAIN: MO SP, #60H ;给堆栈指针赋初值 MO
程序如下:;启动后,八路流水灯同时闪烁,每秒闪烁一次。;按下按键A,顺时针依次闪烁,间隔1秒。;按下按键B,顺时针间隔0.5秒依次闪烁。;按下按键C,逆时针间隔一秒依次闪烁。;按下按键D,逆时针间隔2秒依次闪烁 ;按下按键E,同时常亮。;按下按键F,同时常灭。;按下按键G,复位,同时间隔1秒闪烁
;假设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
8路流水灯汇编语言程序的写法
可以用for循环试试unsingned char i;for(i=0;i<5;i++)//流水灯闪烁程序。若干个灯泡依次点亮就叫流水灯,它用在夜间建筑物装饰方面。例如在建筑物的棱角上装上流水灯,可起到变换闪烁美不胜收的效果。单片机(Single-Chip Microcomputer)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据
void delay(uint); //声明延时函数 void main(void){ uint i;uchar temp;while(1){ temp=0x01;for(i=0;i<8;i++) //8个流水灯逐个闪动 { P1=~temp;delay(100); //调用延时函数 temp<<=1;} temp=0x80;for(i=0;i<8;i++) //8个流水灯反向逐个闪动 { P1=~temp;delay(100);
单片机流水灯代码:#include
单片机流水灯程序代码(汇编语言):ORG0000HAJMPMAINORG0030HMAIN:MOVP1,#11111110BACALLDELAY;跳转到子程序MOVP1,#11111101BACALLDELAYMOVP1,#11111011BACALLDELAYMOVP1,#11110111BACALLDELAYMOVP1,#11101111BACALLDELAYMOVP1,#11011111BACALLDELAYMOVP1,#10111111BACALLDELAYMOVP1,#01111111BACALLDELAYAJMPM
具体如下。#include,sbitLED1=P1^0;//定义0/1变量,是因为在电路中一般为高电压以及低电压两种,也就是代表者0或1。sbitLED2=P1^1;sbitLED3=P1^2;sbitLED4=P1^3;sbitLED5=P1^4;sbitLED6=P1^5;sbitLED7=P1^6。单片机(Microcontrollers)又称微控制器,由中央处理器、存储器、输入输出端
单片机流水灯代码怎么写?
#include #include #define uchar unsigned char #define uint unsigned int void Delay500ms() { uchar i,j,k; for(i=0;i<15;i++) { for(j=0;j<202;j++) { for(k=0;k<81;k++); } } } void main(void) { uchar n; P2 = 0x07;/*0x07共阴0xf8共阳*/ P3 = 0x01; while(1) { for(n=0;n<8;n++) { P3=_crol_(P3,1); Delay500ms(); Delay500ms(); Delay500ms(); } } }8个LED灯的流水系统还需写循环程序?光电路都行了
用C语言编程实现下图中8个LED循环点亮,每个LED每次点亮时间为1秒钟怎么做?1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。2、#include "reg51.h"首先写出单片机的头函数。3、#include "intrins.h"输入位移函数。4、unsigned int count=0,led;定义函数。5、输入主函数,定义单片机的端口,写入延时函数。6、中断跳转,使流水灯运行起来。【摘要】 用C语言编程实现下图中8个LED循环点亮,每个LED每次点亮时间为1秒钟怎么做?【提问】 【提问】 控制8个LED灯闪烁【提问】 用C语言编程实现下图中8个LED循环点亮,每个LED每次点亮时间为1秒钟怎么做?1、用精确定时的方法,设置流水灯运行时的时间间隔,延时时间为500MS。2、#include "reg51.h"首先写出单片机的头函数。3、#include "intrins.h"输入位移函数。4、unsigned int count=0,led;定义函数。5、输入主函数,定义单片机的端口,写入延时函数。6、中断跳转,使流水灯运行起来。【回答】 控制第五个和第七个灯灯闪烁,并用开关控制【提问】 制作8个LED流水灯【提问】 姐姐,我是不知道编程,想知道编程出来的样子【提问】 运行编程,谢谢了【提问】 https://blog.csdn.net/deepdebug007/article/details/80338858【回答】
1,LED灯箱采用超薄设计,比传统灯箱节能70%以上。国际领先的照明工艺技术,使光照更集中,更高效节能; 2,LED光源,一千小时仅耗几度电(普通60W白炽灯十七小时耗1度电,普通10W节能灯一百小时耗1度电)。
可以用 _crol_(),记得要家#include
跑马灯程序用汇编是很好实现的,只要用好循环移位指令就可以,以下是程序。 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV A,#0FEH LOOP: MOV P1,A ;将控制字送端口 RL A ;控制字循环左移 LCALL DELAY ;延时 SJMP LOOP DELAY
#include #define uchar unsigned char #define uint unsigned int uint num=0,i=0; uchar code LED[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; void main() { EA=1; ET0=1; TMOD=0x01; TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; P1=0; while(1) { if(num==2) { num=0; P1=LED[i]; i++; if(i>7) i=0; } } } void time0() interrupt 1 { num++; TH0=(65536-50000)/256; TL0=(65536-50000)%256; }