精华内容
下载资源
问答
  • 此代码可以实现蓝牙控制单片机的LED灯亮灭
  • 四个开关控制led亮灭

    2012-10-24 08:46:40
    四个开关控制led亮灭,通过单片机控制,然后接四个开关,电动开关key1 和key2
  • 单片机基础:开关控制LED亮灭

    千次阅读 多人点赞 2020-07-14 16:20:28
    摘要:单片机基础练习。先使用Proteus画出电路图,再利用keil软件进行编辑并生成hex文件,最后实现所要达成的目标

    (一) 单片机的初级运用。通过两个开关来控制LED灯的亮灭。首先要使用Proteus来绘制电路原理图。图中的LED灯为共阴接法。如图:

    (二)当单片机P3口做输入时,首要让其端口输出1。如图中的P3^4和P3^6端口,需要先输出1。 使用keil4来编辑程序,使其实现:当KEY0按下时,D1亮;当KEY1按下时,D2亮。如图所示:

    (三) 编译所写程序,并使之生成hex文件。如图:

    (四) 双击proteus中的单片机,并选择hex文件。如图:

    (五) 点击proteus右下角播放键。运行电路原理图。如图:

    按下KEY0:

    按下KEY1:

    (六) 总结。本次实验为最简单的单片机应用。本次实验主要练习proteus的使用以及keil软件的基本编程使用。

    展开全文
  • 用51单片机中断控制LED灯亮灭 #include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED sbit k3=P3^2;//位定义按键 void delay()//延时函数 { unsigned char a,b; for(a=0;a<200;a++) for(b=0;b<200;...

    用51单片机中断控制LED灯亮灭

    #include<reg51.h>//头文件
    sbit LED=P2^0;//位定义LED灯
    sbit k3=P3^2;//位定义按键
    void delay()//延时函数
    {
        unsigned char a,b;
    	for(a=0;a<200;a++)
    	for(b=0;b<200;b++);
    }
    void Int0()//使用中断所做的处理函数
    {
    	IT0=1;//外部中断0下降沿触发
    	EX0=1;//打开外部中断0
    	EA=1;//打开总中断	
    }
    void main()//主函数
    {
    	Int0();//调用函数
    	while(1);
    }
    void ledxs() interrupt 0//中断执行内容函数,
                            //用外部中断0
    {
    	delay();//延时
    	if(k3==0)
    	{
    		delay();//延时消抖
    		if(k3==0)
    		{
    		LED=~LED;//LED取反
    		}
    	}
    }
    
    
    

    注:

    1. LED灯接于单片机P2口
    2. 该程序为外部中断0,对应的P3口的2端接k3
    展开全文
  • 蓝牙控制单片机LED 亮灭

    千次阅读 多人点赞 2019-10-09 19:54:15
    通过蓝牙通讯 使用手机来控制 单片机 上 LED 亮灭。 1)硬件使用 89c52 单片机 2)BT06 蓝牙模块 3) Android 手机一部 手机 —(蓝牙连接)—> BT06 ----(串口通信)–> 单片机 -----> LED 2.蓝牙模块 ...

    1.简介

    通过蓝牙通讯 使用手机来控制 单片机 上 LED 灯的亮灭。

    1)硬件使用 89c52 单片机
    2)BT06 蓝牙模块
    3) Android 手机一部

    手机 —(蓝牙连接)—> BT06 ----(串口通信)–> 单片机 -----> LED

    在这里插入图片描述

    2.蓝牙模块 硬件连接

    蓝牙模块与 51 开发板接线主要有 4 根线需要接,分别为 VCC、GND、TXD、RXD,蓝牙模块上的 VCC 接 到开发板上的 VCC 针脚,蓝牙模块的 GND 接到开发板上的 GND 针脚,蓝牙模块的 TXD 接到开发板上的 P30 针脚,蓝牙模块的 TXD 接到开发板上的 P31 针脚。
    在这里插入图片描述
    单片机上电之后,手机会搜索到 一个蓝牙名称为 “BT04-A” 的蓝牙信号,就是这个蓝牙模块。

    在这里插入图片描述

    3、手机端apk 功能实现

    手机端主要是通过蓝牙连接,发送信号给单片机蓝牙模块

    1. 代码结构
      在这里插入图片描述
      2)AndroidManifest.xml
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="myapplication.lum.com.ledcontrol">
    
        <uses-permission android:name="android.permission.BLUETOOTH"/>
        <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    
    1. activity_mani.xml 布局文件
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:context=".MainActivity">
    
    <Button
        android:layout_width="180dp"
        android:layout_height="60dp"
        android:id="@+id/connect_id"
        android:textSize="30dp"
        android:text="连接蓝牙"/>
    
    
        <Button
            android:layout_width="180dp"
            android:layout_height="60dp"
            android:id="@+id/led_id"
            android:textSize="30dp"
            android:text="开灯"/>
    
    
    </LinearLayout>
    

    4) mainActivity.java 功能文件

    这里 我知道自己买的蓝牙模块的物理地址 44:44:1B:0F:0D:B8 ,就可以直接手动连接 蓝牙,然后通过 蓝牙物理地址 找到 连接的设备,进而连接socket 等,

    package myapplication.lum.com.ledcontrol;
    
    import android.bluetooth.BluetoothAdapter;
    import android.bluetooth.BluetoothDevice;
    import android.bluetooth.BluetoothManager;
    import android.bluetooth.BluetoothSocket;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.provider.Settings;
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
    
    import java.io.IOException;
    import java.io.OutputStream;
    import java.lang.reflect.Method;
    import java.util.List;
    import java.util.Set;
    import java.util.UUID;
    
    import static android.bluetooth.BluetoothProfile.GATT_SERVER;
    
    
    public class MainActivity extends AppCompatActivity implements View.OnClickListener {
    
        private String TAG = "LUM: ";
    
        private Button buttonConnect, buttonLed;
        private BluetoothAdapter mbluetoothAdapter;
        private String bluetoothDeviceMacAddress = "44:44:1B:0F:0D:B8"; //Bluetooth module physical address  
        private BluetoothDevice bluetoothDevice = null; // Connected Bluetooth device
        private BluetoothSocket btSocket = null; // Bluetooth communication socket
        private final static String MY_UUID = "00001101-0000-1000-8000-00805F9B34FB"; // SPP service UUID number
        private final static int RESULT_CODE = 100;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            initView();
        }
    
        private void initView() {
            mbluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); //get the default bluetooth adapter
            buttonConnect = (Button) findViewById(R.id.connect_id);
            buttonLed = (Button) findViewById(R.id.led_id);
    
            buttonConnect.setOnClickListener(this);
            buttonLed.setOnClickListener(this);
    
            IntentFilter filter = new IntentFilter();
            filter.addAction(BluetoothDevice.ACTION_FOUND);  //Bluetooth search
            filter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED);
            filter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED);
            registerReceiver(mReceiver, filter);
    
        }
    
        @Override
        public void onClick(View view) {
            switch (view.getId()) {
                case R.id.connect_id:
                    Log.i(TAG, "check link");
                    //Jump directly to the Bluetooth settings interface
                    if ("连接蓝牙".equals(buttonConnect.getText().toString())) {
                        if (!mbluetoothAdapter.isEnabled()){
                            startActivityForResult(new Intent(Settings.ACTION_BLUETOOTH_SETTINGS), RESULT_CODE);
                        } else {
                            connectBtSocket();
                        }
    
                    } else {
                        disconnect();
                    }
                    break;
                case R.id.led_id:
                    Log.i(TAG, "led control");
                    if (btSocket != null && btSocket.isConnected()) {
                        if ("开灯".equals(buttonLed.getText().toString())) {
                            send(1);
                            buttonLed.setText("关灯");
                        } else {
                            send(2);
                            buttonLed.setText("开灯");
                        }
                    }
            }
    
        }
    
        public void send(int command) {
            try {
                if (btSocket != null) {
                    OutputStream os = btSocket.getOutputStream();   //Bluetooth connection output stream
                    os.write(command);
                } else {
                    Toast.makeText(this, "请先连接蓝牙", Toast.LENGTH_SHORT).show();
                }
    
            } catch (IOException e) {
            }
        }
    
        public void onActivityResult(int requestCode, int resultCode, Intent data) {
            if (requestCode == RESULT_CODE) {
                connectBtSocket();
            }
        }
    
        private void connectBtSocket() {
            // Get the handle of the Bluetooth device
            bluetoothDevice = mbluetoothAdapter.getRemoteDevice(bluetoothDeviceMacAddress);
            //Turn off scanning before pairing
            if (mbluetoothAdapter.isDiscovering()) {
                mbluetoothAdapter.cancelDiscovery();
            }
            // Get the connected socket
            try {
                btSocket = bluetoothDevice.createRfcommSocketToServiceRecord(UUID
                        .fromString(MY_UUID));
                btSocket.connect();  //Connection socket
            } catch (IOException e) {
                Toast.makeText(this, "Connection failed, can't get Socket!" + e, Toast.LENGTH_SHORT).show();
                e.printStackTrace();
            }
    
            if (btSocket.isConnected()) {
                Log.i(TAG, "socket connected");
                Toast.makeText(this, "connect success", Toast.LENGTH_SHORT).show();
                buttonConnect.setText("蓝牙已连接");
            } else {
                Log.i(TAG, "socket didn't connected");
                Toast.makeText(this, "connect failed", Toast.LENGTH_SHORT).show();
            }
        }
    
    
        private void disconnect() {
            try {
                if (btSocket != null) {
                    btSocket.close();
                }
            } catch (IOException e) {
            }
            buttonConnect.setText("连接蓝牙");
        }
    
        // Help us find the physical address of the Bluetooth module that needs to be connected
        private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                String action = intent.getAction();
                if (BluetoothDevice.ACTION_FOUND.equals(action)) {
                    BluetoothDevice device = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
                    Log.i(TAG, "Searched Bluetooth device;  device name: " + device.getName() + "  device address: " + device.getAddress());
                }
                if (BluetoothDevice.ACTION_ACL_CONNECTED.equals(action)) {
                    Log.i(TAG, "ACTION_ACL_CONNECTED");
                    if (btSocket.isConnected()) {
                        buttonConnect.setText("蓝牙已连接");
                    }
                }
                if (BluetoothDevice.ACTION_ACL_DISCONNECTED.equals(action)) {
                    Log.i(TAG, "ACTION_ACL_CONNECTED");
                    if (btSocket.isConnected()) {
                        buttonConnect.setText("连接蓝牙");
                    }
                }
            }
        };
    
        public void onDestroy() {
            super.onDestroy();
            unregisterReceiver(mReceiver);
            Log.i(TAG, "Unregister");
        }
    }
    
    

    4. 单片机端 程序

    
    #include <reg52.h> //51头文件
    
    sbit LED1 = P1^0; //位定义 LED1硬件接口
    void delay(unsigned int z)//毫秒级延时
    {
    	unsigned int x,y;
    	for(x = z; x > 0; x--)
    		for(y = 114; y > 0 ; y--);
    }	
    
    
     /******************************************************************/
    /* 串口中断程序*/
    /******************************************************************/
    void UART_SER () interrupt 4
    {
    	unsigned int n; 	//定义临时变量
    
    	if(RI) 		//判断是接收中断产生
    	{
    		RI=0; 	//标志位清零
    		n=SBUF; //读入缓冲区的值
    
    		switch(n)
    		{
    			case 1:	LED1 = 0;	break;	//亮灯
    			case 2:	LED1 = 1;	break;	//灭灯
    		}
    	}
    
    }
    
    
    
    //蓝牙初始化
    void boothint(void)
    {
       
       	SCON = 0x50; 	// SCON: 模式1, 8-bit UART, 使能接收 
    	TMOD |= 0x20;
    	TH1=0xfd; 		//波特率9600 初值
    	TL1=0xfd;
    	TR1= 1;
    	EA = 1;	    //开总中断
    	ES= 1; 		//打开串口中断
    
    
    }
    void main()
    {
    	boothint();
    	while(1)
    	{
    
    	}
    }
    

    文件参考:
    安卓手机与蓝牙模块联合调试(三)—— 单片机蓝牙控制LED灯亮灭(下)
    https://blog.csdn.net/u010898329/article/details/82177958

    展开全文
  • 89C51单片机protues+keil仿真源码+录屏结果 /*仅S1按下时跑马*/ /*仅S2按下时闪烁*/ /*S1,S2同时按下时12345678*/ /*S1,S2同时断开时*/
  • 单片机控制LED亮灭

    2020-10-20 01:11:03
    如图所示,监视开关K1(接在P3.0端口上),用发光二极管L1(接在单片机P1.0端口上)显示开关状态,如果开关合上,L1开关打开,L1熄灭。
  • 要求:上电灯,按一下按键灯亮,再按一下闪烁,再按一下闪烁更快,再按一下灯灭...。如此循环。链接:http://zhidao.baidu.com/question/1639123949796505340.html做而论道分析:要求有四种不同的显示,通过...

    要求:

    上电灯不亮,按一下按键灯亮,再按一下灯闪烁,再按一下灯闪烁更快,

    再按一下灯灭...。

    如此循环。

    链接:http://zhidao.baidu.com/question/1639123949796505340.html

    做而论道分析:要求有四种不同的显示,通过一个按键进行切换。

    为此,编程如下。

    //----------------------------------------------

    #include

    unsigned char n = 0;

    sbit key = P3^4;

    sbit led = P0^0;

    void delay()

    {

    unsigned int  i, j;

    for(i = 0; i < 100; i++)   for(j = 0; j < 500; j++);

    }

    void readkey(void)

    {

    unsigned char  i, j;

    if(!key)  {

    for(i = 0; i < 10; i++)

    for(j = 0; j < 120; j++);  //延时消抖

    if(!key)  {

    while(!key);  //等待按键释放

    n++;

    n %= 4;       //n = 0~3

    }

    }

    }

    main()

    {

    while(1)  {

    switch(n)    {

    case 0: led = 1; readkey(); break;      //熄灭

    case 1: led = 0; readkey(); break;      //长亮

    case 2: delay(); readkey();             //慢速闪烁

    case 3: delay(); readkey(); led = ~led; //快速闪烁

    }

    }

    }

    //----------------------------------------------

    本程序经过了实践验证,可以满足题目的要求。

    提问者选择了一个错误的程序,并不能实现【闪烁】变换到【闪烁更快】。

    展开全文
  • stm32f103c8t6+ESP8266利用onenet平台上传数据到云平台,再利用云平台远程下发命令给单片机控制LED灯亮灭 接触stm32已经有一年半的时间了,从最开始的stm32F103ZET6 V3战舰版开始学习,慢慢看视频,学会自己查手册找...
  • 手机联网控制单片机风扇转动、RGB灯亮灭不同亮度和颜色、加湿器开关
  • (2)安卓手机与蓝牙模块联合调试(二)—— 单片机蓝牙控制LED灯亮灭(上) (3)安卓手机与蓝牙模块联合调试(三)—— 单片机蓝牙控制LED灯亮灭(下) 本教程的项目地址:1989Jiangtao/BluetoothSCM: 安卓手机...
  • 51 单片机:按键控制灯亮灭和闪烁

    万次阅读 多人点赞 2016-01-25 12:11:59
    要求:上电灯,按一下按键灯亮,再按一下闪烁,再按一下闪烁更快,再按一下灯灭...。如此循环。链接:http://zhidao.baidu.com/question/1639123949796505340.html做而论道分析:要求有四种不同的显示,通过...
  • (2)安卓手机与蓝牙模块联合调试(二)—— 单片机蓝牙控制LED灯亮灭(上) (3)安卓手机与蓝牙模块联合调试(三)—— 单片机蓝牙控制LED灯亮灭(下) 本教程的项目地址:1989Jiangtao/BluetoothSCM: 安卓手机...
  • 用51单片机实现按键控制LED灯亮灭

    千次阅读 2021-05-12 18:18:09
    用51单片机实现按键控制LED灯亮灭 #include<reg51.h>//头文件 sbit LED=P2^0;//位定义LED sbit k1=P3^1;//位定义按键 void delay()//延时函数 { unsigned char a,b; for(a=0;a<200;a++) for(b=0;b<...
  • 1、通过手机APP可以控制8路LED亮灭。 2、通过手机APP可以控制8路LED的亮度。每个的亮度有3档。 3、可以发送指令控制8个全灭和全亮。 //蓝牙发送数据内容: ON // 打开所有 大写字母’O’ SN // 关闭所有...
  • 本帖最后由 ll13536121668 于 2017-11-2 17:32 编辑4只独立按键控制4只LED,按下按键,LED,再按下,LED。因为我们很多都是按完按键,松开手LED才。 我现在是想一按按键,LED就,这个又怎么写呢?...
  • 该代码实现了VB程序控制单片机LED亮灭
  • 本章介绍基于Android studio设计的APP通过esp8266WiFi控制51单片机LED亮灭实现过程。 目录对ESP8266WiFi模块进行设置编写Android studio代码编写89C51单片机代码 对ESP8266WiFi模块进行设置 1、ESP8266WiFi特点...
  • 51单片机按键控制LED亮灭

    千次阅读 2020-06-30 22:54:32
    通过两个按键来控制2个lded的灭亮 按一下灯亮在按一下灯灭 #include <reg52.h> //位绑定操作 sbit ADDR0 = P1^0; sbit ADDR1 = P1^1; sbit ADDR2 = P1^2; sbit ADDR3 = P1^3; sbit ENLED = P1^4; sbit LED1 ...
  • 80C51 单片机 继电器控制灯亮灭

    千次阅读 2013-10-30 22:53:50
    #include #include sbit light=P2^4; //将light设置为P2的第4位,该IO口连接继电器。 #define uchar unsigned char #define uint unsigned int void delay(uint ms); ... //灯灭 delay(200); l
  • 2、实验目的:学习通过编程使LED灯亮灭变化。 3、实验连接图。 4、实验代码。 #include<reg52.h> unsigned int a; sbit p1_1=P1^0; void main(void) { while(1) { a=50000; p1_1=0; while(a--); a=...
  • 51定时器控制灯亮灭

    千次阅读 2020-02-01 23:55:15
    任务:定时器控制灯亮灭(注意点) 1)学习寄存器 2)用定时器控制灯亮灭 3)5s亮10s灭 计数(不用python,单片机自身定时器) 第一种操作://单片机一次最大计数为65.536ms,想要设计单次计时5ms,每一次i++,...
  • /*指示灯控制开关*/ private OnCheckedChangeListener switchLamplistener = new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { if ...
  • 选择什么单片机和数码管,8个按键最简单8个IO口控制。一般简单的是用三极管驱动数码管。如果你会C语言的话,很容易上手。自己先从控制1个数码管学,在控制2个数码管(2个数码管基本上可以完成上面试验,8个就可以类推...
  • 指示灯控制开关 */ private OnCheckedChangeListener switchLamplistener = new OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) ...
  • 单片机按一下灯亮,按一下灯灭

    千次阅读 2020-11-27 15:11:48
    void key_scan(void) { if(PT1_6 == 0) { delay10ms(); if(PT1_6 == 0) { while(!PT1_6);//等待按键释放 //key_flag = 1; key_cnt++; key_cnt %= 2; } } } void main() { PT...
  • 控制开关 EditText editTextIPAdress,editTextPort; // ip地址和端口号的编辑框 Button buttonConnect; // 连接按钮 Socket socket; // cocket boolean ConnectFlage = false ; // 连接标志,控制按钮...
  • 一、系统方案 手机APP通过ESP8266 WIFI模块与51单片机通信控制LED的开关。下位机由单片机、ESP8266...我们在APP上发送LED开关控制指令,ESP8266将收到的数据发送给单片机,从而实现对LED进行开关控制。 ...

空空如也

空空如也

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

单片机开关控制灯亮灭