导航:首页 > 操作系统 > 单片机串口控制灯

单片机串口控制灯

发布时间:2024-10-06 11:04:06

A. 单片机串口通信控制led灯的点亮

pc通过串口和单片机交换数据,从而控制LED灯。 pc程序用labview 调用Visa 进行串口通讯。单片机接受到串口命令后控制I/O口的高低电平实现led灯亮灭控制。
用串口调试助手就行,网上到处可以下载。也好用。关键问题是在电脑上发送的0,1,是以什么数据格式发送的,通常以字符格式发送的,即是ASCII码。所以,单片机接收时,也要按字符格式发才行。而你的程序是按十六进制数的格式判断的,也就是二进制数,所以,发送和接收格式不统一,单片机就不能正常接收控制LED0,也就不能正常返回数据。 if(SBUF==0) //这是按二进制数接收的 if(SBUF==1) //这也是按二进制数接收的 这样写程序,要求电脑上,要按二进制数即十六进制数发送才行。 还是按字符格式收发比较好。
看你这程序编的,ha 查询RI 不是等于 1,而是0 只有当数据传送过来的时候,RI才会由1变为0,所以需要查询的状态是 0,不是1 当接收完数据后,再进行对RI的清零 还是不多说了,上程序,若满意请记得采纳一下,谢谢! 这是一个由串口助手发送十六进制码来控制单片机的8个LED亮灭的简单小程序
电脑上,你是用什么软件发送数据的看用串口调试助手就行,网上到处可以下载。也好用。关键问题是在电脑上发送的0,1,是以什么数据格式发送的,通常以字符格式发送的,即是ASCII码。所以,单片机接收时,也要按字符格式发才行。而你的程序是按十六进制数的格式判断的,也就是二进制数,所以,发送和接收格式不统一,单片机就不能正常接收控制LED0,也就不能正常返回数据。

B. 单片机串口通信,实现接收到数据后,灯亮。

看你这程序编的,ha
查询RI
不是等于
1,而是0
只有当数据传送过来的时候,RI才会由1变为0,所以需要查询的状态是
0,不是1
当接收完数据后,再进行对RI的清零
还是不多说了,上程序,若满意请记得采纳一下,谢谢!
这是一个由串口助手发送十六进制码来控制单片机的8个LED亮灭的简单小程序
/***************************************************************************/
#include
<REG52.h>//通用89C52头文件
/***************************************************************************/
void
main(void)//主函数
{

TMOD=0x20;


//定时器1和2工作方式2(8位定时/计数)

TH1=0xfd;


//定时器1设置初值,波特率9600bit/s,

TL1=0xff;

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

PCON=0x00;


//SMOD=0,不加倍

SCON=0x50;


//串口工作方式1,允许接收

IE=0x00;
//关闭所有中断

while(1)

{

if(RI==0)//如果有数据

{

P2=SBUF;
//接收数据并输出至LED上显示

while(!RI);
//等待接收完成

RI=0;
//清空标识

}

}
}
/***************************************************************************/

C. 51单片机串口控制led灯方法是什么

unsigned char tmp;
sbit led=P1^0;
void main(void)
{
TMOD = 0x20; // 定时器1工作于8位自动重载模式, 用于产生波特率
TH1 = 0xFD; // 波特率9600
TL1 = 0xFD;
SCON = 0x50; // 设定串行口工作方式
PCON &= 0xef; // 波特率不倍增
TR1 = 1; // 启动定时器1
IE = 0x0; // 禁止任何中断
while(1)
{
if(RI) // 是否有数据到来
{
RI = 0;
tmp = SBUF; // 暂存接收到的数据
switch(tmp )
{
case 0x03:led=1;break;//收到0x03,LED灯亮
case 0x33:led=0;break;//收到0x33,LED灯灭
}
}
}
}

D. 单片机控制LED灯程序设计总结300字(急!!)

呵呵 这个就是自己的心得体会而已,我可以为了提供大概的个人心得,仅个人观点。
首先是控制LED的意义:(通常初学单片机的人控制LED是用并口,也就是掌握IO口输入输出功能、相应的寄存器等等,简单了解一下单片机,以及对于单片机每个功能模块的学习应该怎么入手等等。当然控制LED并不是只能用并口,用串口、红外等等通讯方式都可以)
其次是控制LED的方法:(还是以IO口控制为例,其实法方是死的,可以有很多,比如:1、每个IO直接赋值;2、用移位等等方式处理)

再其次是控制LED的用途:(通常一般仪器设备上的LED都是作为指示灯,比如电源指示啊,通讯啊等等或者只是为了美观好看,其实点阵也是指示的一种吧!这个可以自己想了)

最后是控制LED学到了什么:(其实这个就是写废话了,自己随便想,结合上面的几点)

备注:以上只是突然看到这个提问随便写的,也没考虑得太多,可能不够完善,不喜勿喷!

E. 怎么用上位机通过串口去控制51单片机点亮一个LED 求程序。。

编了一个小程序,供参考,没有环境调试,大概意思就这样,你可以参考自己试试。
#include<reg51.h>
#include<string.h>
#define uchar unsigned char
sbit LED=P1^0;
uchar buf[16],num;
uchar strOpen="Open";
uchar strClose="Close";
void uart() interrupt 4
{
if(RI)
{
RI=0;
buf[num]=SBUF;
num++;
}
if(TI)TI=0;
}
void initbuf()
{
uchar i;
for(i=0;i<16;i++)buf[i]=0x00;
}
main()
{
TMOD=0x20;
SCON=0x50;
TH1=TL1=0xfd;
TR1=1;
ES=1;
EA=1;
initbuf();
while(1)
{
switch(num)
{
case 0:break;
case 1:break;
case 2:break;
case 3:break;
case 4:
if(strcmp(strOpen,buf)==0)LED=0;
initbuf();
num=0;
break;
case 5:
if(strcmp(strClose,buf)==0)LED=1;
initbuf();
num=0;
break;
default:num=0;break;
}
}
}

F. 51单片机一个串口跟几个LED灯串联可以吗

51单片机一个串口跟几个LED等串联当然是可以这么连接的,但是这样连接没有什么实质意义,达不到分别控制的目的,这样连接,串口也就起到一个普通IO口的作用,LED灯也就是起到一个降压的作用。

阅读全文

与单片机串口控制灯相关的资料

热点内容
android系统运行动态编译的程序 浏览:415
计算编程中常用的if语句是 浏览:734
linux文件夹权限乱了 浏览:909
程序员职业病预防保健操 浏览:678
c程序修改后需不需要重新编译 浏览:721
怎样把图片分别放置在文件夹中 浏览:871
推流服务器地址是什么 浏览:630
java允许多重继承 浏览:511
解压小玩具好玩又可爱 浏览:408
腾讯云大带宽服务器 浏览:821
加密锁的售后 浏览:268
linux登不上去 浏览:729
联想服务器休眠后如何唤醒 浏览:111
四川话女孩学习编程 浏览:322
编译原理文法区分 浏览:1001
教师可以做程序员嘛 浏览:637
终结战场安卓国际服怎么下载 浏览:155
现在的高端服务器属于什么 浏览:810
企业银行解压流程 浏览:447
用app压缩文件 浏览:227