51单片机串口中断控制灯
在上一篇文章中我们通过串口实现了上位机接收单片机发送的信息,也可以通过上位机控制接在单片机上的led 但是有延迟。解决这个问题我们可以通过串口中断实现。
#include "reg52.h"
#include "intrins.h"
sfr AUXR = 0x8e;
sbit D5 = P3^7;char cmd;void UartInit(void) //9600bps@11.0592MHz
{SCON = 0x50; //配置串口工作方式1,RE不使能接受PCON = 0x00; //TMOD &=0x0F;TMOD |=0x20;TH1 = 0xFD;TL1 = 0xFD;TR1 = 1;EA =1 ;//打开总中断ES = 1;//开启串口中断
}void Delay1000ms() //@11.0592MHz
{unsigned char i, j, k;_nop_();i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i);
}void sendByte(char data_msg)
{SBUF = data_msg;while(TI==0);TI =0;
}void sendString(char* str)
{while(*str !='\0'){sendByte(*str);str++;}
}void main()
{ D5 =1;UartInit(); while(1){Delay1000ms();sendString("xiao wang ");//向缓冲区写入数据;
// if(RI==1)
// {// RI = 0 ;
// cmd = SBUF;
// if (cmd == 'o'){// D5 =0;
//}
// if (cmd == 'c'){// D5 =1;
// }}}void Uart_Handler() interrupt 4
{//中断处理函数中对于接收中断的处理if(RI==1) //RI = 1 说明单片机接收缓冲区接收到到了数据{RI = 0 ; // 软件复位接收中断标志位RI 以可以连续工作cmd = SBUF;// 判断接收的数据是说明,o开灯 c关灯if (cmd == 'o'){D5 =0;}if (cmd == 'c'){D5 =1;}//对于发送中断的处理if(TI);}
}
实现效果:类似于双线程,单片机一直向上位机发送信息;而当上位机向单片机发送开灯关灯指令单片机立刻相应。
51单片机串口中断控制灯相关推荐
- 关于51单片机串口中断的理解
关于51单片机串口中断的理解 关于这个问题找了好几个帖子,都没看到能让我明白的.自己就想了想,又看了看.新手不一定说得对,您凑合着看看.要不对的话,望指正. 首先,我们在SCON中设置的时候,一般都会 ...
- 单片机串口中断控制流水灯c语言,基于单片机AT89C51控制的中断控制流水灯_课程设计报告...
<基于单片机AT89C51控制的中断控制流水灯_课程设计报告>由会员分享,可在线阅读,更多相关<基于单片机AT89C51控制的中断控制流水灯_课程设计报告(25页珍藏版)>请在 ...
- 单片机串口中断控制流水灯c语言,利用单片机中断实现流水灯
在我们的生活中,随处可见各式各样的彩灯,给这本来充满美丽的世界又添加了一份别致的美,想知道流水灯是怎么实现的吗?现在就跟我走进这实现流水灯的大道吧! 其实利用单片机的中断功能就可以实现.本篇文章是当每 ...
- 51单片机串口中断功能的设置
51单片机的串口功能就是和外界进行通讯,所谓的"外界"也就是与单片机进行交互的媒介,最常用的就是我们经常使用的计算机.平板或者其他设备(比如另一个单片机配合显示模块使用). 既然和 ...
- 笔记 学习51单片机串口中断
单片机的串口通信功能是比较常用的功能. 80C51的串行口 我在学习的过程中,觉得SBUF的使用方法是最难的,于是对着这个图和资料一步步理解,才搞明白一点"A=SBUF"和&quo ...
- 51单片机震动传感器控制灯,控制继电器
震动传感器控制灯 震动传感器原理图: 由产品介绍知道,震动传感器感受震动时输出低电平,那要实现震动时灯亮则可以用如下代码: #include "reg52.h"sbit led1 ...
- 中断控制流水灯c语言程序,51单片机按键中断控制流水灯
满意答案 levis501523 2018.01.03 采纳率:58% 等级:12 已帮助:8301人 #include #include #define uchar unsigned char ...
- 51单片机外中断流水灯
按下K3按键,触发外中断,启动灯效; 按下K4按键,触发外中断,停止灯效 #include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器 #include< ...
- c语言一个按键控制1个灯的亮灭,51 单片机:按键控制灯亮灭和闪烁
要求: 上电灯不亮,按一下按键灯亮,再按一下灯闪烁,再按一下灯闪烁更快, 再按一下灯灭.... 如此循环. 链接:http://zhidao.baidu.com/question/1639123949 ...
- 51单片机-串口通信(串口向电脑发送信息电脑通过串口控制LED)
文章目录 前言 一.串行通信口的功能以及串行通信口的结构及原理 1.1 串行通信口的功能 1.2 51单片机串口的结构 二.串行通信口的控制寄存器 2.1 串行控制寄存器SCON 2.2 电源控制寄存 ...
最新文章
- 4岁的儿子还不会写红黑树,我该怎么办?
- 编程语言“考古”:曾经影响一代人的BASIC,原来还有前身
- s3c6410 uboot代码分析《一》
- 庄导就业指导2020.4.6
- OpenCV霍夫直线检测的实例(附完整代码)
- 2020年lumia怎样安装软件_2020年软件行业市场分析
- udemy下载课程无法播放_最好的Udemy Web开发课程+热门免费课程
- The Shapes of CSS
- 单人存档_R星:会为GTA做更多单人内容,steam圣诞特惠即将开启,2077坏档BUG,那个游戏重回steam销量榜,Epic喜加一...
- java 阻塞 直到完成_完成所有提交的任务后关闭Java执行程序而不会阻塞
- 第1章 数据库系统及应用
- 走在“辞职”路上的数据科学家们!
- 和catch的区别_面试刷题2:Exception和Error的区别?
- python日期模块datetime常用操作总结(字符串与datetime对象互转、日期差值计算、时间戳获取、时间数组生成等)
- Java蓝桥杯杨辉三角形_Java蓝桥杯练习——杨辉三角形
- html固定表格宽度代码,如何固定HTML表格的宽度
- 时隔两年之后,证监会官网再次更新瑞丰银行的IPO进度。
- 计算机科学顶尖期刊,重磅!中国各学科顶级期刊名单发布!(影响力指数排名)...
- 网络安全技能竞赛之Web安全之综合渗透测试
- Discarded invalid param(s) “msg“ when navigating