历史上的今天

今天是:2024年10月19日(星期六)

正在发生

2019年10月19日 | 51单片机与PC上位机串口通信之LED控制

发布者:chunxing 来源: 51hei关键字:51单片机  PC上位机  串口通信  LED控制 手机看文章 扫描二维码
随时随地手机看文章

PC机通过上层软件控制单片机LED的亮灭或者控制LED的闪烁及闪烁时间,上层软件用户名密码均为admin 注意PROTEUS串口仿真需要配合虚拟串口软件才能工作

上位机(包含源码)软件说明:
发送数据解析
字节1、2:0x55 0xaa 数据是否正确判断标志
字节3:
           0x01 ------单个LED控制手动控制
           0x02 ------单个LED控制自动闪烁

字节4                     
    此字节从低位到高位依次控制LED0-LED7,例如0x01表示手动点亮LED0或者LED0自动闪烁;0x28表示手动点    亮LED3、LED5或者LED3、LED5自动闪烁

字节5、6:表示闪烁时间(6高8位 5低8位)    取值范围0-5000

程序源码预览:

#include

#define uint8 unsigned char

#define uint16 unsigned int

uint8 receive_buffer[6];                        //存放接收到的数据

uint8 i,k;


void delay1ms(uint16 m)                                //1ms延时程序

{

        uint8 j;

        while(m--)

                for(j=0;j<112;j++);

}


void main()

{

        uint16 time;

        P0 = 0xff;                        //初始化LED状态,熄灭

        TMOD = 0x20;                //定时器1工作在方式2

        TH1 = 0xfd;

        TL1 = 0xfd;                        //波特率9600

        TR1 = 1;                                //启动定时器1

        EA = 1;                                        //开启总中断

        SM0 = 0;

        SM1 = 1;                                //串行口工作方式1

        REN = 1;        //允许串行接收

        ES = 1;                                        //开启串行口中断

        while(1)

        {

                if((receive_buffer[0] == 0x55) && (receive_buffer[1] == 0xaa))                                        //如果接收到0x55 0xaa说明接收到的数据是正确的

                {

                        time = ((uint16)receive_buffer[5] << 8) + (uint16)receive_buffer[4];        //闪烁时间

                        switch(receive_buffer[2])

                        {

                                case 0x01:                                                                                                                                                                                                                                                //手动控制LED亮灭

                                        P0 = ~receive_buffer[3];

                                        break;

                                case 0x02:                                                                                                                                                                                                                                                //LED自动闪烁

                                        P0 = ~receive_buffer[3];

                                        delay1ms(time);

                                        P0 = 0xff;

                                        delay1ms(time);

                                        break;

                                default:

                                        break;

                        }

                }

        }

}


void uart_int() interrupt 4

{

        if(RI == 1)

        {

                RI = 0;

                receive_buffer[i] = SBUF;

                i++;

                if(i == 6)

                {

                        i = 0;

                        k = 0;

                        P0 = 0xff;

                }

        }

}



关键字:51单片机  PC上位机  串口通信  LED控制 引用地址:51单片机与PC上位机串口通信之LED控制

上一篇:DS18B20.h LCD1602.h头文件下载 温度和液晶 调试ok 可直接调用
下一篇:Keil_uvision4详细使用教程(图文并解)

推荐阅读

广州白云机场引入智能机器人用于导引乘客,阿里发布“太空梭”机器人用于医院投放药品,日本运营机器人酒店,随着越来越多的服务机器人逐渐进入我们的视野,不由想象,服务型机器人在未来将扮演一个什么样的角色? 整体市场环境分析 一。全球整体市场快速增长,服务机器人迎来发展黄金时代 《 2017 中国机器人产业发展报告》指出,当前,全球机器人...
1 前言美国Microchip公司的PIC16系列单片机是一种新型的CMOS工艺的8位单片机。其中,PIC16FXX单片机的程序存储器为电可擦除闪速存储器(flash),可多次修改程序,甚至可以在线编程。PIC16F83和PIC16F84片内数据存储器除RAM外,还有64字节的EEPROM,可以当作一般的或非易失性的数据存储器使用,简单方便。它还具有片内上电复位、延时电路、看门狗电路等。...
随着5G技术的不断发展,人们购买5G智能手机的热潮变得愈发高涨,据了解,2020 年1-9月国内市场5G手机累计出货量已过亿,同时手机里的高端应用也不断推陈出新。但在技术层面上,手机的主要区域——射频前端的复杂性也显著增加。随着移动设备可用的通信频段逐渐增多,为满足新的通信需求,更多的射频元件将被集成到射频前端模块中,然而,高度的集成化也伴...
市场上的电流探头有很多种,应用十分广泛,其基本原理是流经导线的电流会在周围产生磁场,电流探头把磁场转化成相应的电压信号,通过和示波器配合,观察对应的电流波形。那么我相信很多用户都很熟悉电流探头的使用。PRBTEK待您了解如何提高它的准确性和灵敏度。目前市场上有各种各样的探测器。其中是钳位交直流式,可用于夹持载流导线测量交直流电流。使用...

史海拾趣

问答坊 | AI 解惑

《ARM系列处理器应用技术完全手册》

《ARM系列处理器应用技术完全手册》…

查看全部问答∨

电感 变压器知识

本帖最后由 paulhyde 于 2014-9-15 08:55 编辑 以前总用不好电感,就找来些资料,···原来如此!  …

查看全部问答∨

能利用温差发电吗?

地表和地下永远存在温差,不管是春夏秋冬还是白天黑夜,如果能利用温差发电的话,那么将是一种用不完的资源,而且也没有污染,我们能利用电来改变温度,那么利用温差来发电应该也是可以吗!…

查看全部问答∨

对三级管云里雾里的

NPN型三极管,到底怎么通过基极的信号控制集电极的电流的呢?…

查看全部问答∨

路过的好心的哥哥姐姐近来看看吧

Linking... global.obj : error LNK2019: unresolved external symbol _SHCreateMenuBar referenced in function "struct HMENU__ * __cdecl GetMenu(struct HWND__ *)" (?GetMenu@@YAPAUHMENU__@@PAUHWND__@@@Z) 就是解决不了啊…

查看全部问答∨

共晶材料的选择及焊接温度的控制 高亮度LED封装工艺及方案

芯片设计 从芯片的演变历程中发现,各大LED生产商在上游磊晶技术上不断改进,如利用不同的电极设计控制电流密度,利用ITO薄膜技术令通过LED的电流能平均分布等,使在结构上都尽可能产生最多的。再运用各种不同方法去抽出LED发出的每一粒光子,如生 ...…

查看全部问答∨

用IAR调试工STM32F101RB8,遇问题请高手指点!

                                 程序大部分都正常,就是有一个函数不对,程序只要执行到那儿就进入HardFaultException() 中断死住,不知是什么原因 ...…

查看全部问答∨

tl16c554问题求助

问题:  TL16C554A现在通讯,在前面两三小时,通讯是正常的。但是过后TL16C554A数据通讯不正常,通过串口检测工具发现发送数据不对,我手动给不正常通道发数据,接受的数据也不正常。TL16C554A通道不正常不是同时开始的。 TL16C554A ...…

查看全部问答∨

二手原装 NEC MINICUBE2仿真器

本帖最后由 ddllxxrr 于 2016-1-7 16:58 编辑 二手原装 NEC  MINICUBE2仿真器,有需要的吗? 本站强荐:185娱乐╡城.足球╡真_人.彩票齐全╡手机可投╡注任何游戏. 首次开户送10元.首存送58元.信誉绝对保证185.cc …

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved