delay();P3=0xef;//第五个灯亮 delay();P3=0xdf;//第六个灯亮 delay();P3=0xbf;//第七个灯亮 delay();P3=0x7f;//第八个灯亮 delay();} }

include "intrins.h"define uchar unsigned char define uint unsigned int sbit Led=P1;void delay(void);void main(void){ unsigned char tmp,i;P1=0x00;//全熄灭 while(1){ for(i=0;i<8;i++)//左移 {

电路很简单八个led灯接在p1口.运行后看到的效果是 从第一个灯开始 随着时间变化 二进制数的递减 所有的灯都会依次的点亮,当全部的灯都被点亮后再重新开始这个过程 一直循环下去 单片机是不是很有趣?下面是c语言程序源码

1:设置一个变量zhidaoi,它可以从0循环到3 2:检测一个已取消缓冲的键。按“+1”3:当I值为每个值时,执行相应的模式。水量灯参考程序 #include #include #定义uchar无符号字符 Ucharj,温度;无效延迟(无符号整型

8个LED指示灯循环闪烁的程序(单片机)

汇编语言 LEDEQU 30H ORG 0000H LJMP MAIN ORG 0030H MAIN:CLR EA MOV SP,#5FH MOV LED,#0FEH MOV R0,#7 LOOP:MOV R7,#50 LCALL DELAY MOV A,LED RL A MOV LED,A MOV P3,A DJNZ R0,LOOP MOV R0,#7

其次,1hz闪烁,即代表定时1s开、关灯。所以要用到定时器。代码如下:include "stdio.h"define led_on p1.1 = 1;define led_off p1.1 = 0;bit flag_1s;bit flag_cnt;void main(void){ sys_init();while(1)

ORG 0000HLJMP MAINORG 0030HMAIN:MOV A,#7FHLOOP:MOV P0,ALCALL DELAYRR ASJMP LOOPDELAY:MOV R2,#200DLY:MOV R3,#250DJNZ R3,$DJNZ R2,DLYRET END

JMP MAIN ORG 30H MAIN:MOVA,#0FFH;设置左移初值 CLRC;C=0 MOVR2,#08H;设置左移次数 LOOP:RLCA;左移1位 MOVP1,A;输出到P1 CALLDELAY;延时 DJNZR2,LOOP;左移7次 MOVR2,#07H;LOOP1:RRCA;右移1位 MOVP1,A;

用汇编语言让51单片机八个灯从左到右依次点亮且都不灭,每个灯亮的时间间隔0.5秒,然后全灭,再循环之前的步骤。参考如下:电路 代码 LED_COUNTDATA30H T0_COUNTDATA31H ORG0000HLJMPMAINORG000BHLJMPT0_INTORG0030HMAIN:

define uint unsigned int //延时 void DelayMS(uint x){ uchar i;while(x--){ for(i=0;i<120;i++);} } //主程序 void main(){ uint s;while(1){ P0=0xfe;DelayMS(150);for(s=8;s>1;s--){ P0=

MOV P1,#0FFH //初始化,灯全灭 MOV A,#77H MOV P1,A //先亮P0,P4 XUNHUAN1: RL A //左循环 MOV P1,A //P1,P5亮 MOV A,P1 DJNZ 30H,XUNHUAN1 //循环三次 LC

8051汇编语言8只LED左右来回点亮

首先,是单灯如何点亮的问题,无非就是某个gpio口输出高电平或者低电平(由外部电路决定)使灯亮灭,假设输出高电平为亮,输出低电平为灭。其次,1hz闪烁,即代表定时1s开、关灯。所以要用到定时器。代码如下:include "std

;假设1:D1~D8八个彩灯接在P1口,输出低电平发光 ;假设2:系统晶振为12MHz ;假设3:N = 5 ;程序如下:ORG 0000H MOV R3, #5 ;N=5 LOOP0:MOV A, #0FFH MOV P1, #0FFH ;开始时全灭 ;---逐个

;定时器定时一秒,一个数码管秒个位加1,同时八个LED灯循环流动 很简单的题目,只能写很简单的程序:ORG 0000H JMP START ORG 000BH INC R2 RETI START:SETB TR0 MOV IE, #82H MOV R3, #127

求汇编,八个led交替闪烁,汇编语言汇编语言 按下开关s1(开关是那种按下去不会弹回来的),led1.3.5.7和led2.4.6.8交替闪烁,按下s2,led1234和led5678交替闪烁,间隔都是0.5秒,按下s3全灭 --- 电路与程序

求汇编,八个led交替闪烁,汇编语言汇编语言

} led=0xfe; for(i=0;i<8;i++) { P1=led; led=led<<1; delay(200); } led=0x00; for(i=0;i<8;i++)

//主程序 void main(){ uint s;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);} } }

delay();P3=0xdf;//第六个灯亮 delay();P3=0xbf;//第七个灯亮 delay();P3=0x7f;//第八个灯亮 delay();} }

unsigned LED,i;LED = 0xfe;EA = 0;while(1){ for(i=0;i<7;i++){delay(100);LED = (LED<<1)|0x01;P3 = LED;} for(i=0;i<7;i++){delay(100);LED = (LED>>1)|0x80;P3 = LED;} } } 汇

c语言和汇编的程序八个LED依次左移逐个点亮,点亮后在依次右移逐个点亮不断循环

你好,可以用单片机实现 来自天蝎雨之林的回答,满意请采纳,谢谢~祝你生活愉快~
若P1.7—P1.0对应LED7—LED0 ,低电平点亮,高电平熄灭 初始值 A=0xfe ,即LED0 亮,其余灭 执行CLR C; RLC A; A=0xfc ,LED0、LED1亮 执行CLR C; RLC A; A=0xf8 ,LED0、LED1、LED2亮 以此类推: CLR C; RLC A; 在这段程序中,这2条指令目的就是使A变量的数值左移,然后末位补0(bit 0); SETB C; RRC A; 在这段程序中,这2条指令目的就是使A变量的数值右移,然后高位补1(bit 7);
不会。。。。路过。。。。网络100分 专业人士也不会花那么多时间来 编这个题吧 应该把 手机 留下
/程序:ex1_1.c //功能:控制一个信号灯闪烁程序 #include //包含头文件REG51.H,定义了MCS-51单片机的特殊功能寄存器 sbit P1_0=P1^0; //定义位名称 void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P1_0=0; //点亮信号灯 delay(10); //调用延时函数,实际变量为10 P1_0=1; //熄灭信号灯 delay(10); //调用延时函数,实际变量为10 } } //函数名:delay //函数功能:实现软件延时 //形式参数:unsigned char i; // i控制空循环的外循环次数,共循环i*255次 //返回值:无 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数 { unsigned char j,k; //定义无符号字符型变量j和k for(k=0;k<i;k++) //双重for循环语句实现软件延时 for(j=0;j<255;j++); }
MAIN: MOV P1, #11111110B ; P1 口 点亮一个发光二极管 ACALL DELAY ; 调用延时子程序 MOV P1, #11111101B ; 从左向右移动 一位 ACALL DELAY MOV P1, #11111011B ACALL DELAY MOV P1, #11110111B ACALL DELAY MOV P1, #11101111B ACALL DELAY MOV P1, #11011111B ACALL DELAY MOV P1, #10111111B ACALL DELAY MOV P1, #01111111B ACALL DELAY JMP MAIN ; 转移 至 MAIN 循环 DELAY: MOV R5,#250 ; 延时子程序 6.000 M 晶振 约 0.5 秒 D1: MOV R6,#250 D2: DJNZ R6,$ DJNZ R5,D1 RET
一般这种就用查表,假设1为亮:00011000,00111100……如此下去就可以了。
方法: 1:设定一个变量i,可以从0到3循环的变化 2:检测一个经过消抖处理的按键,按一下,i+1 3:当i值为各个值时,执行相应的花样。 流水灯参考程序 #include #include #define uchar unsigned char uchar j,temp; void delay(unsigned int ms) { uchar t; while(ms--) for(t=0;t<123;t++); } void main() { P1=0xff; delay(500); temp=0xfe; //有点怪,led接在P2.3~P2.6 for(j=0;j<4;j++) { P1=temp; delay(500); temp=_crol_(temp,1); } P1=0xff; while(1); }
请设计一个8个led同时全部闪烁的程序 #include main () {int i; while (1) {for (i=0;i<=30000;i++); P1=~P1; } }