精华内容
下载资源
问答
  • 51单片机发光二极管启动程序51单片机发光二极管启动程序51单片机发光二极管启动程序51单片机发光二极管启动程序
  • 使用AT89C51单片机串口工作方式0,由串口发送控制码并传送到外接扩展芯片74LS164, 74LS164的数据端接L8~L15(硬件已经连接好),按用户要求完成发光二极管的左闪烁,右闪烁,间歇闪烁,可由发光二极管的闪亮情况看串口数据...
  • 发光二极管亮灭程序,用keil51编写的控制程序
  • 51单片机 发光二极管

    2010-05-13 21:01:12
    这是一个不错的51单片机编译的点亮发光二极管程序, 51单片机 编程 hex 文件 点亮发光二极管
  • 本文主要是单片机驱动发光二极管数码管时钟程序,希望对你的学习有所帮助。
  • 例:编写程序,通过单片机控制: ... 编写让一个发光二极管亮的流水灯程序(每颗灯逐次亮)。 答案: 1) #include<reg52.h> sbit L=P1^0; void main ( ) { L=0;//低电平打开,高电平关闭 } ...

    例:编写程序,通过单片机控制:

    1. 点亮系统上的第一个发光管.

    2. 点亮系统上的最后一个发光管.

    3. 点亮系统上的第1、3、5、7个发光二极管

    4. 编写让一个发光二极管亮的流水灯程序(每颗灯逐次亮)。

    答案:

    1)	
    #include<reg52.h>
    sbit L=P1^0;
    void main ( )
    {
        L=0;//低电平打开,高电平关闭
    }
    
    2)	
    #include<reg52.h>
    sbit L=P1^7;
    void main ( )
    {
        L=0; //低电平打开,高电平关闭
    }
    
    3)	
    #include<reg52.h>
    sbit L=P1^7;
    void main ( )
    {
        P1=0xaa;
        //要点亮1、3、5、7就要使第1、3、5、7位上的电平为低电平,即0,
        //其他位位高电平,即1,则有10101010,换算成十六进制为aa h。
    }
    
    4)	
    #include<reg52.h>
    #include<intrins.h>1)	//里面有循环函数(郭天祥视频有教学)
    unsigned char t,i;
    void main ( )
    {
        P1=0xfe;//思考为何此句不写在while里面?
        while (1)
        {
    	t=P1;
            t = _crol_(t,1) ; //字符型变量t,循环左移,每次移动一位
            for(i=0; i<100; i++);//延时(更清楚发光二极管有没有亮)
                P1=t; 
        }
    }
    

     

    展开全文
  • 发光二极管循环点亮程序发光二极管循环点亮程序发光二极管循环点亮程序
  • 单片机机在执行指令时,是一条一条指令顺序执行的,对于C语言也一样,也是一条一条语句执行,而每执行一条指令或一条语句,都要占用一定的时间,利用单片机执行程序的这个特点就可能用来实现发光二极管闪烁。
  • 用keil编写程序实现下列功能:在P1.0端口接一个发光二极管D1,使D1不停地一亮一灭,亮灭的时间间隔为0.2s。

    Description

    用keil编写程序实现下列功能:
    在P1.0端口接一个发光二极管D1,使D1不停地一亮一灭,亮灭的时间间隔为0.2s。
    要求:用Proteus仿真验证:

    1. 单片机选用AT89C52
    2. 提交仿真过程、结果和源程序

    实验电路图

    在这里插入图片描述

    实验分析

    这个实验过于简单,也没啥可分析的。

    源程序

    #include<reg52.h>
    
    sbit light = P1^0;
    
    // delay 0.2s
    void delay(void) {
    	unsigned int i, j, k;
    	for(i = 20; i > 0; i--) {
    		for(j = 20; j >0; j--) {
    			for(k = 248; k > 0; k--);
    		}
    	}
    }
    
    void main() {
    	while(1) {
    		light = 0;
    		delay();
    		light = 1;
    		delay();
    	}
    }
    
    展开全文
  • 设计单片机与8个发光二极管和4个按键相连的Proteus仿真电路,编程实现如下功能:按下K1,8个灯按照一定频率同时闪烁,频率自定;按下K2,使某个灯闪烁10次后,转到下个灯闪烁,从左往右(D1到D8)循环不停;按下K3,...

    Description

    设计单片机与8个发光二极管和4个按键相连的Proteus仿真电路,编程实现如下功能:

    1. 按下K1,8个灯按照一定频率同时闪烁,频率自定
    2. 按下K2,使某个灯闪烁10次后,转到下个灯闪烁,从左往右(D1到D8)循环不停
    3. 按下K3,相邻的4个LED灯为一组,两组LED灯每隔约0.5秒交替发亮一次,周而复始
    4. 按下K4,从右往左依次点亮,然后全灭,不断循环

    实验电路图

    在这里插入图片描述

    实验分析

    1. K1按下,八个灯同时闪烁。即P1在0xff与0x00之间交替取值。
    2. K2按下,某个灯闪烁十次,然后从左往右循环。P1初始时为0xfe,然后P1在0xfe与0xff之间交替取值十次,即最左边的灯闪烁十次,然后右移,第二个做同样的操作,直到第八个灯也闪烁了十次,最后再左移即可。
    3. K3按下,相邻的4个LED为一组,交替发亮。即P1在0xf0与0x0f之间交替取值。
    4. K4按下,从右往左依次点亮,然后全灭,不断重复。从D8到D1,不断从1变为0即可。

    源程序

    #include<reg52.h>
    #include <intrins.h>    
    
    //LED
    sbit D1 = P1^0;
    sbit D2 = P1^1;
    sbit D3 = P1^2;
    sbit D4 = P1^3;
    sbit D5 = P1^4;
    sbit D6 = P1^5;
    sbit D7 = P1^6;
    sbit D8 = P1^7;
    
    //switch
    sbit K1 = P0^0;
    sbit K2 = P0^1;
    sbit K3 = P0^2;
    sbit K4 = P0^3;
    
    //延时
    void delay(int m, int n) {
    	unsigned int i, j;
    	for(i = m; i > 0; i--) {
    		for(j = n; j >0; j--);
    	}
    }
    
    void main() {
    	unsigned char led, i, j; //设置变量
      led = 0xfe; //初值为11111110
    	while(1) {
    		//按下K1,八个灯按照同一频率同时闪烁
    		P1 = 0xff;
    		if(K1 == 0) {
    			while(K1 == 0) {
    				P1 = 0x00;
    				delay(50, 20);
    				P1 = 0xff;
    				delay(50, 20);
    			}
    		}
    		P1 = 0xff;
    		//按下K2,从D1到D8闪烁10次后转到下个灯
    		if(K2 == 0) {
    			while(K2 == 0) {
    				//右移
    				for(i = 0; i < 7; i++) {
    					//闪烁10次
    					for(j = 0; j < 10; j++) {
    						delay(100, 50);
    						P1 = led;
    						delay(100, 50);
    						P1 = 0xff;  //全灭
    						delay(100, 50);
    					}
    					led = _crol_(led, 1);
    				}
    				//左移
    				for(i = 0; i < 7; i++) {
    					//闪烁10次
    					for(j = 0; j < 10; j++) {
    						delay(100, 50);
    						P1 = led;
    						delay(100, 50);
    						P1 = 0xff;  //全灭
    						delay(100, 50);
    					}
    					led = _cror_(led, 1);
    				}
    			}
    			P1 = 0xff;
    		}
    		if(K3 == 0) {
    			while(K3 == 0) {
    				delay(50, 50);
    				P1 = 0xf0;   //左边四个灯亮
    				delay(50, 50);
    				P1 = 0x0f;  //右边四个灯亮
    			}
    		}
    		if(K4 == 0) {
    			while(K4 == 0) {
    				P1 = 0xff;
    				//从右往左依次点亮
    				delay(150, 150);
    				D8 = 0;
    				delay(150, 150);
    				D7 = 0;
    				delay(150, 150);
    				D6 = 0;
    				delay(150, 150);
    				D5 = 0;
    				delay(150, 150);
    				D4 = 0;
    				delay(150, 150);
    				D3 = 0;
    				delay(150, 150);
    				D2 = 0;
    				delay(150, 150);
    				D1 = 0;
    				delay(150, 150);
    				P1 = 0xff;  //全灭
    				delay(150, 150);
    				//从右往左依次点亮
    				D8 = 0;
    				delay(150, 150);
    				D7 = 0;
    				delay(150, 150);
    				D6 = 0;
    				delay(150, 150);
    				D5 = 0;
    				delay(150, 150);
    				D4 = 0;
    				delay(150, 150);
    				D3 = 0;
    				delay(150, 150);
    				D2 = 0;
    				delay(150, 150);
    				D1 = 0;
    				delay(150, 150);
    			}
    		}
    	}
    }
    
    展开全文
  • 随着现代科技的发展,高科技产品以其简洁化...用滚珠开关检测当前摇动状态,单片机控制16 个发光二极管进行不同频率的亮灭刷新,则只要摇动就可以可显示输出文字及图案等信息,从而达到在该视觉平面上传达信息的作用。
  • 单片机的IO口控制LED亮灭,这是关于单片机开发的基础的小程序
  • 设计单片机的Proteus仿真电路,实现如下功能:P1口控制8个发光二极管,P0连接数码管;利用定时器/计数器T0产生定时,采用中断方式,让8个发光二极管每隔1s依次点亮,全亮后全灭,再次开始循环;数码管从1开始,每...

    Description

    设计单片机的Proteus仿真电路,实现如下功能:

    1. P1口控制8个发光二极管,P0连接数码管
    2. 利用定时器/计数器T0产生定时,采用中断方式,让8个发光二极管每隔1s依次点亮,全亮后全灭,再次开始循环
    3. 数码管从1开始,每点亮一个发光二极管,显示+1,显示9时二极管全灭,再次开始循环
    4. 系统的晶振频率 f o s c = 12 M H z f_{osc}=12MHz fosc=12MHz,用Proteus仿真验证如下连续矩形脉冲
      在这里插入图片描述

    实验电路图

    在这里插入图片描述

    实验分析

    1. 八个发光二极管每隔1s依次点亮,同时数码管从1显示到8,9时全灭,然后不断循环。采用定时器0中断,事先写好依次点亮时的八种状态,然后每隔一秒P1变换到下一个状态。
    2. 高电平40ms,低电平360ms,采用定时器1中断,每次定时40ms,40ms时由高电平到低电平,400ms时候翻转即可。

    源程序

    #include<reg52.h>
    #include<intrins.h>
    #define uint unsigned int
    #define uchar unsigned char
    	
    uchar t = 0, cnt = 1, n;
    sbit wave = P2^7;
    bit flag;
    uchar code DSY_CODE[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};  //0-9
    uchar code LED_CODE[]={0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00}; //依次点亮
    
    void init_time0() {
    	P1 = LED_CODE[cnt - 1];
    	P0 = DSY_CODE[cnt];
    	TMOD = 0x01; //设置T0为定时器模式,工作方式在1
    	EA = 1;
    	ET0 = 1;
    	TR0 = 1;
    }
    
    void init_time1() {
    	TMOD = 0x11;
    	EA = 1;
    	ET1 = 1;
    	TR1 = 1;
    	wave = 1;  //高电平
    	flag = 1;
    }
    
    void time0() interrupt 1 {   //定时器0中断服务程序
    	TH0=(65536-50000) / 256;
      TL0=(65536-50000) % 256;
    	if(++t == 20) {  //1s
    		t = 0;
    		cnt++;
    		P1 = LED_CODE[cnt - 1];
    		P0 = DSY_CODE[cnt];
    		if(cnt == 9) {
    			P1 = 0xff;
    			cnt = 0;
    		}
    	}
    }
    
    void timer1() interrupt 3 {
    	TH1=(65536-40000) / 256;  //40ms高电平
      TL1=(65536-40000) % 256;
    	if(flag) {
    		wave = ~wave;   //变为低电平
    		flag = 0;
    	}
    	n++;
    	if(n == 10) {   //400ms时候,此时低电平已经持续360ms,翻转
    		n = 0;
    		wave = ~wave;
    		flag = 1;
    	}
    }
    
    void main() {
    	init_time0();
    	init_time1();
    	while(1);
    }
    

    附录

    矩形脉冲截图如下:
    在这里插入图片描述
    高电平:-760-(-800)=40ms,低电平:-400-(-760)=360ms。

    展开全文
  • 单片机是使用最多的一个CPU器件,而发光二极管的使用是单片机最常用的器件。本文对发光二级管的工作原理和最常见的编程方法进行介绍和总结,并给出了完整的程序
  • 摘要:单片机是使用最多的一个CPU器件,而发光二极管的使用是单片机最常用的器件。本文对发光二级管的工作原理和最常见的编程方法进行介绍和总结,并给出了完整的程序。  0 引言  单片机由于体积小、价格低廉、...
  • 单片机控制发光二极管显示

    千次阅读 2015-10-09 20:21:16
    p0口做通用I/O用,需外接上拉电阻,而P1~P3内部有30K欧的...制作流水灯,8个发光二极管接到0P1口的P1.0~P1.7引脚上,编写程序来控制由上至下反复循环流水点亮。 第一种方法:移位运算符实现 c中的移位运算符补零,c中
  • 单片机课程中发光二极管教学与思政融合项目开发研究.pdf
  • 51单片机教程 第一个51程序 :点亮一个发光二极管

    千次阅读 多人点赞 2020-01-21 16:39:48
    第一个51程序 :点亮一个发光二极管 相信很多朋友在初学51单片机的时候不知道如何入手,今天我来带领大家入门STC89C52单片机。(与AT89C51差不多,代码兼容)只需要安装两个软件,无需购买开发板也可以学会51单片机...
  • 4.观察发光二极管的显示效果 这里只进行第2,3步 最后:代码解析 ———————————————————————————————————————— 第二步: 首先新建工程 编译成功,结束 ——...
  • } } 扩展资料 单片机C语言16种方式流水灯 voidmain() { while(1) { P1=0xfe;//点亮第一个发光管 Delay(5000); P1=0xfd;//点亮第二个发光管 Delay(5000); P1=0xfb; Delay(5000); P1=0xf7; Delay(5000); P1=0xef; ...
  • 如图为共阳极发光二极管,即发光二极管的正极共同连在电源正极(共阴极即发光二极管负极共同接地),在单片机中,操作共阳极发光二极管时,若要使led亮,则IO口应输出低电平,反之若要熄灭led,则IO应输出高电平....
  • 文章目录前言一、什么是发光二极管?二、怎么使它点亮呢?三、如何判别它的正负四、程序 前言 作为一个刚接触单片机的小白,在这里分享自己的学习经验以及心得,有... 这里假设单片机P1口控制一个发光二极管,串联一个
  • 使单片机发光二极管闪烁

    千次阅读 2009-03-25 13:16:06
    下面是我做的第一个例程,效果是使发光二极管闪烁起来,比较简单,程序是用C开发的,源代码如下: [code="c"] #include sbit p=P1^0; unsigned int a; void main() { while(1) { p=0; ...
  • 做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出“0”时,发光二极管亮,开始时P1.0→P1.1→P1.2→P1.3→┅→P1.7→P1.6→┅→P1.0亮,重复循环。...
  • 单片机控制发光二极管灯点亮(C语言)单片机控制led灯点亮;主要内容;一、点亮板子上的第一个灯D0;引脚:; ;硬件说明;点亮D0灯:D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 1 1 1 1 0从二进制转化为十六进制:0xfe;源程序;十六进制...
  • 1. 发光二极管简介   发光二极管是半导体二极管的一种,可以把电能转化成光能。常简写为LED(lightemittingdiode)。   发光二极管与普通二极管一样也具有单向导电性。当给发光二极管加上正向电压(大于LED的...
  • 设置中断优先级寄存器,当有外部中断0请求中断时,中断程序执行发光二极管程序,在此过程中,外部中断1也有中断请求,外部中断0的中断程序将被中断去执行外部中断1的中断程序(数码管加1显示程序)。 #include<...
  • 此为AVR单片机入门程序可以轻松对AVR单片机的I/O进行操作
  • 单片机 二极管发光

    2012-03-18 17:14:00
    #include<reg52.h> sbit led1=P1^0; // 声明P1口的第一位 void main() ...TX-1C实验板上,8个发光二极管的阴极通过一个71HC573锁存器分别连接至单片机的P1口,若要控制某个二极管发光...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,125
精华内容 1,250
关键字:

单片机发光二极管程序