单片机led_单片机led灯 - CSDN
  • 单片机LED灯(一)

    2017-06-27 22:18:22
    51单片机的学习笔记

    单片机LED灯学习(一)

    点亮第一个灯

    #include<reg52.h> //头文件
    sbit LED0=P2^0;  //命名P2^0为LED0
    void main()
    {
        P2=0x00;  //所有灯都熄灭
        while(1)
        {
            LED0=1;  //LED0点亮
        }
    }

    第一个灯

    间隔灯

    #include<reg52.h>
    void main()
    {
        while(1)
        {
            P2=0xaa; //16进制数aa代表10101010,代表亮灯方式
        }
    }

    间隔灯

    点亮任意灯

    #include<reg52.h>
    void main()
    {
        P2=0x8b;
        while(1);
    }

    任意灯

    延时灯

    #include<reg52.h>
    #define unit unsigned int  //宏定义
    sbit led1= P2^3;
    unit i,j;
    void main()
    {
        P2=0x00;   //让所有灯熄灭
        while(1)
        {
            led1=0;
            for(i=1000;i>0;i--)  //双循环获得更长的延长时间
                for(j=100;j>0;j--);
            led1=1;
            for(i=1000;i>0;i--)
                for(j=100;j>0;j--);
        }
    }

    这里写图片描述
    加入延时函数

    #define unit unsigned int  //宏定义
    sbit led1= P2^3;
    unit i,j;
    void delayms(xms)  //延时函数
    {
        unit i,j;
        for(i=xms;i>0;i--)
            for(j=110;j>0;j--);
    }
    void main()
    {
        P2=0x00;   //让所有灯熄灭
        while(1)
        {
            led1=0;
            delayms(500); //熄灭和点亮时间不同,可以控制延时间隔
            led1=1;
            delayms(5000);
        }
    }

    跑马灯

    熄灭的灯逐渐左移

    #include<reg52.h>
    #include<intrins.h>   //包含_crol_函数的头文件
    #define uchar unsigned char
    #define uint unsigned int
    uchar aa;
    
    void delayms(xms);
    void main()
    {
        aa=0xfe;  //1111 1110 只有一个灯熄灭
        // aa=0x01;  亮着的等左移
        while(1)
        {
            P2=aa;
            delayms(500);    //延时
            aa=_crol_(aa,1);   //将aa左移,熄灭的灯逐渐向左
            // aa=_crol_(aa,-1)  右移一个单位
        }
    }
    void delayms(xms)   //延时函数
    {
        uint i,j;
        for(i=xms;i>0;i--)
            for(j=110;j>0;j--);
    }

    熄灭的等左移
    这里写图片描述

    展开全文
  • 51单片机LED点阵显示文字 代码如下。 #include #define u8 unsigned char sbit SER = P3^4; sbit RCLK = P3^5; sbit SCLK = P3^6;  //横向 D0->D7 u8 tao[32]={8,240,8,15,8,136,126,145,8,82,8,2,62,8,8,231,8,...

    51单片机LED点阵显示文字 代码如下。

    #include <REGX51.H>

    #define u8 unsigned char
    sbit SER = P3^4;
    sbit RCLK = P3^5;
    sbit SCLK = P3^6; 

    //横向 D0->D7

    u8 tao[32]={8,240,8,15,8,136,126,145,8,82,8,2,62,8,8,231,8,129,126,129,72,231,72,129,88,129,40,129,8,255,8,129};


    u8 heng[32]=
    {
    0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x08,
    0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x80,
    0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,
    0x10,0x00,0x20,0x00,0x40,0x00,0x80,0x00
    };
    void display(u8 zimo[],u8 heng[]);
    void sendData(u8 d1, u8 d2, u8 d3, u8 d4);


    void main(void)
    {
    display(tao,heng); 
    }


    void display(u8 zimo[],u8 heng[])
    {
    unsigned char i;
    for (i=0;i<16;i++)
    {
    sendData(~zimo[2*i+1],~zimo[2*i],heng[2*i],heng[2*i+1]);
    }

    }


    void sendData(u8 d1, u8 d2, u8 d3, u8 d4)
    {


    u8 i;
    RCLK = 0;
    SCLK = 0;
    for(i=0;i<8;i++)
    {
    SER = d1>>7; //往74HC595的串口送信
    SCLK = 0;
    SCLK = 1;  //74HC595的移位
    d1 = d1 << 1;
    }
    // d1送到了74HC595A

    for(i=0;i<8;i++)
    {
    SER = d2>>7; //往74HC595的串口送信
    SCLK = 0;
    SCLK = 1;  //74HC595的移位
    d2 = d2 << 1;
    }
    // d1送到了74HC595B,d2送到了74HC595A


    for(i=0;i<8;i++)
    {
    SER = d3>>7; //往74HC595的串口送信
    SCLK = 0;
    SCLK = 1;  //74HC595的移位
    d3 = d3 << 1;
    }
    // d1送到了74HC595C,d2送到了74HC595B,d3送到了74HC595A


    for(i=0;i<8;i++)
    {
    SER = d4>>7; //往74HC595的串口送信
    SCLK = 0;
    SCLK = 1;  //74HC595的移位
    d4 = d4 << 1;
    }
    // d1送到了74HC595D,d2送到了74HC595C,
    // d3送到了74HC595B,d4送到了74HC595A


    RCLK = 0;
    RCLK = 1;//74HC595 锁存,往LED点阵送信
     

    }

    图片如下



    展开全文
  • 单片机第一个程序----点亮LED灯 准备: 安装Keil软件 软件官网 单片机实验板(某宝可以买到) 简单的C语言编程能力 单片机C语言教程 简单介绍下keil软件的使用方法: 第一步:新建工程,这里取名为test1.Uv2,如图...

    单片机第一个程序----点亮LED灯


    准备:

    1. 安装Keil软件 软件官网
    2. 单片机实验板(某宝可以买到)
    3. 简单的C语言编程能力 单片机C语言教程

    简单介绍下keil软件的使用方法:

    第一步:新建工程,这里取名为test1.Uv2,如图:
    打开软件

    新建工程
    第二步:选择cpu的型号,这里选择ATMEL下的AT89c51,如图:
    选择cpu类型
    第三步:新建源程序文件,文件–>新建–>新建文件,这里我们新建.c文件,如果是汇编语言编,则以‘.ASM’或‘.A51’为扩展名。如图:
    新建源程序
    第四步:添加源代码到‘源代码工作组’,如图:
    添加文件到源代码组

    添加文件到源代码组
    第五步:编写代码,如图:
    编写代码

    源代码:

    #include <reg52.h>  //包含特殊功能寄存器定义的头文件
    
    sbit LED = P0^0;  //位地址声明,注意:sbit 必须小写、P 大写!
    
    void main(){  //任何一个 C 程序都必须有且仅有一个 main 函数
        LED = 0;  //分号表示一条语句结束
    }
    

    第六步:使用烧录程序将程序写入到单片机中,我使用的是普中科技的软件,如图:
    烧入程序
    软件下载链接

    时间:2018年9月17日23:23:13


    -END-

    展开全文
  • 51单片机LED流水灯

    2019-08-29 09:49:05
    数据类型 在写流水灯程序之前,我们了解一下数据类型。 类型 位数 数据范围 int 16 -32768 ~ 32767 short 16 -32768 ~ 32767 long 32 -2147483648 ~ 2147483647 unsigned int ...unsigne...

    数据类型

    在写流水灯程序之前,我们了解一下数据类型。

    类型 位数 数据范围
    int 16 -32768 ~ 32767
    short 16 -32768 ~ 32767
    long 32 -2147483648 ~ 2147483647
    unsigned int 16 0 ~ 65535
    unsigned short int 16 0 ~ 65535
    unsigned long int 32 0 ~ 4294967295
    char 8 -128 ~ 127
    unsigned char 8 0 ~ 255

    使用对应数据时,应该注意溢出问题,若溢出编译器也有可能编译通过,但是执行结果是错误的。

    流水灯

    操作LED前必须先了解LED是什么电平点亮,LED连接在什么引脚上,通常需要查找原理图。此处我的8个LED连接在P2口,为低电平点亮(因为灌电流比拉电流能力强)。

    1、函数式循环流水灯:

    #include "reg52.h"   
    #include <intrins.h>	//函数头文件
      
    #define led P2	//对整个LED的P2端口进行定义
    
    /*	延时函数		*/
    void delay(unsigned int del) 	//10ms * del
    {
    	unsigned int i,j;
    	for(i=0; i<del; i++)
    	for(j=0; j<1827; j++);
    }
    
    /*	while(i--);//延时 10 * i  us;因为单指令为1us;	*/
    
    void main()
    {
    	unsigned char  i;		//使用char 节省RAM
    	led=0xfe;				//初始状态将LED0点亮,1111 1110
    	while(1)
    	{
    		for(i=0;i<7;i++)	 //将led循环左移一位
    		{
    			led=_crol_(led,1);
    			delay(10); 		//大约延时100ms,LED显示比较快
    		}
    		// 此时 led为 0111 1111
    		
    		for(i=0;i<7;i++)	//将led循环右移一位
    		{
    			led=_cror_(led,1);
    			delay(10); 
    		}
    	}		
    }
    

    逻辑移位式(补0)流水灯

    #include "reg52.h"   
    #include <intrins.h>	//此为函数头文件
      
    #define led P2	//对整个P2端口进行操作
    
    /*	延时函数		*/
    void delay(unsigned int del) 	//10ms * del
    {
    	unsigned int i,j;
    	for(i=0; i<del; i++)
    	for(j=0; j<1827; j++)      
    	    ;
    }
    
    /*	while(i--);//大概延时10us;因为单指令为1us;	*/
    
    void main()
    {
    	unsigned  char i;	
    	led=0xfe;	//初始状态将LED0点亮
    	while(1)
    	{
    		for(i=0;i<8;i++)//	1111 1110
    		{
    			P2=~(0x01<<i);	 //将0000 0001左移i位,然后将结果取反赋值到P2口
    			delay(10); 	//大约延时100ms,比较快哦
    		}
    		for(i=0;i<8;i++)
    		{
    			P2=~(0x80>>i);	 //将1右移i位,然后将结果取反赋值到P2口
    			delay(10); 
    		}
    	}		
    }
    
    

    这两种方式效果一致。至此,LED的操作结束啦。

    展开全文
  • 51单片机入门教程(1)——点亮一个LED灯 先放这里,下午再写
  • 前期准备 keil软件的安装 ...安装烧录软件和添加单片机 由于笔者所用的芯片为STC89C52,keil软件中没有集成STC系列的单片机,需要自己添加,于是登录STC官网http://www.stcisp.com下载最新的stc-isp软件。 然...
  • 51单片机LED灯)

    2019-05-04 11:17:47
    led点亮原理 led的工作是有方向性的,只有正极接到阳极上,负极接到阴极上,led灯中才会有电流通过,否则,led是不会亮的。 电源接到vcc上,要使led发光,就要给p2管脚赋低电平,即 p2 = 0(0表示低电平,1表示高电...
  • 单片机控制LED

    2020-02-21 17:47:50
    暑假参加全国大学生电子设计大赛,是...核心是STM32,当然也支持插装C51单片机系列,板子是不错双核心两用的,但初学者的话建议买块30~60块钱的板子就行,便宜不代表质量不好,只是模块少了些,但基本的模块像LED灯...
  • 单片机 LED点阵

    2018-06-01 18:15:55
    单片机 LED点阵一、简述 使用8×8LED点阵显示汉字。向上滚动"中华"两个汉字。 文件打包:链接: https://pan.baidu.com/s/1oHSAIY6qVA7qFFWUvMvJEA 密码: snyg二、效果三、工程文件结构1、Keil工程2、...
  • STM89C52单片机LED闪烁

    2018-05-03 19:23:04
    单片机LED原理图:LED灯闪烁实验:/********************************************************************************** 【作 者】: 小硕:董宇龙* 【版 本】: V1.0* 【实验平台】: 清翔 QX-MCS51 单片机...
  • 51单片机led显示代码

    2020-07-29 14:18:17
    利用C语言实现led控制。
  • 这是一个我自己写的上位机控制单片机LED灯亮灭的程序,里面包括上位机和下位机源码。软件涉及到数据传输过程中的打包与解包算法,具有可扩展性。对于第一次写上位机的同学或专业人士来说,这可以作为一个参考。
  • Led点阵屏在51单片机的驱动下显示数字与图案滚动效果,资源内含有51源码、protues可模拟仿真图。下面是制作完成视频:https://v.qq.com/x/page/j0686xwriv1.html
  • 制作LED灯塔的电路连接图,代码,原件表
  • 51单片机LED灯闪烁

    2020-07-30 23:31:50
    C语言代码。
  • 请问如何做一个安卓软件控制51单片机led灯的亮灭?有没有人能教我或者给我源码看看
  • 通过蓝牙通讯 使用手机来控制 单片机LED 灯的亮灭。 1)硬件使用 89c52 单片机 2)BT06 蓝牙模块 3) Android 手机一部 手机 —(蓝牙连接)—> BT06 ----(串口通信)–> 单片机 -----> LED 2.蓝牙模块 ...
  • 包括完整proteus仿真。。。。。。。。
  • 实验目的:用8*8的LED点阵显示一颗爱心。 实验仪器:普中开发板(非广告) 实验背景:出于一些原因,最近在看Arduino,但仍觉得51好玩。遂,一边看Arduino,一边整理51。 8*8的LED点阵电路如图一所示,有两种方式...
  • 51单片机LED 1秒闪烁

    2018-05-18 15:59:22
    1.单片机晶振的脉冲的频率和周期为F = f/12 = 11.0592M/12 = 0.9216MHZ T = 1/F = 1.085us 2.在主频为11.0592M时,每计一个脉冲为1.085us,所以溢出一次的时间为1.085usx65536=71.1ms。代码如下:#include&lt;...
1 2 3 4 5 ... 20
收藏数 21,144
精华内容 8,457
关键字:

单片机led