STC89C51学习记录-利用串口传送数据控制LED的点亮。

2023-10-12 10:10

本文主要是介绍STC89C51学习记录-利用串口传送数据控制LED的点亮。,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

首先编写串口的初始化函数。

void UsartInit()
{SM0=0;SM1=1;						//采用模式1REN=1;						//让串口中断使能TMOD|=0X20;				//设置计数器的工作方式PCON|=0x80;				//最高位置1表示波特率加倍TH1=0xf3;TL1=0xf3;					//设置波特率为4800ES=1;							//接收串口中断EA=1;							//开启总中断TR1=1;						//开启计数器1的中断
}

关于LED的点亮函数,单独编写,根据发送的数值选择点亮的灯。

void LED(u8 num)
{if(num == 0x01){led1=0;}else if(num == 0x02){led2=0;}else if(num == 0x03){led3=0;}else if(num == 0x04){led4=0;}else if(num == 0x05){led5=0;}else if(num == 0x06){led6=0;}else if(num == 0x07){led7=0;}else if(num == 0x08){led8=0;}else if(num == 0x00){P2=0xff;}
}

程序思路很简单,就看代码吧。


#include "reg52.h"//时间:2020-1-12
//制作者:SaBo
//适用:普中科技51单片机开发板(HC6800-ES V2.0 新版)/*********************************************使用串口实现指令控制单片机的LED灯的亮起和熄灭(hex显示和hex发送)输入0x - 第x个灯亮起  (x的取值从1~8)输入00 - 所有灯都会熄灭
*********************************************/sbit led1=P2^0;
sbit led2=P2^1;
sbit led3=P2^2;
sbit led4=P2^3;
sbit led5=P2^4;
sbit led6=P2^5;
sbit led7=P2^6;
sbit led8=P2^7;typedef unsigned char u8;void UsartInit()
{SM0=0;SM1=1;						//采用模式1REN=1;						//让串口中断使能TMOD|=0X20;				//设置计数器的工作方式PCON=0x80;				//最高位置1表示波特率加倍TH1=0xf3;TL1=0xf3;					//设置波特率为4800ES=1;							//接收串口中断EA=1;							//开启总中断TR1=1;						//开启计数器1的中断
}//---------------------------------------
//名称:主函数
//适用:普中科技51单片机开发板(HC6800-ES V2.0 新版)
//日期:2020-1-12
//---------------------------------------void main()
{UsartInit();while(1){};}
//---------------------------------------
//名称:LED显示函数
//适用:普中科技51单片机开发板(HC6800-ES V2.0 新版)
//功能:根据不同的值点亮不同的LED灯
//日期:2020-1-12
//---------------------------------------void LED(u8 num)
{if(num == 0x01){led1=0;}else if(num == 0x02){led2=0;}else if(num == 0x03){led3=0;}else if(num == 0x04){led4=0;}else if(num == 0x05){led5=0;}else if(num == 0x06){led6=0;}else if(num == 0x07){led7=0;}else if(num == 0x08){led8=0;}else if(num == 0x00){P2=0xff;}
}//---------------------------------------
//名称:串口中断服务函数
//适用:普中科技51单片机开发板(HC6800-ES V2.0 新版)
//日期:2020-1-12
//---------------------------------------void UsartService() interrupt 4
{u8 receiveData;receiveData=SBUF;RI=0;									//清除接受中断标志位SBUF=receiveData;LED(receiveData);while(!TI);						//等待数据发送完成(发送完成会将TI置为1)TI=0;									//发送完成
}

 

2020-1-14终于传上来了~~~~

 

 

 

 

这篇关于STC89C51学习记录-利用串口传送数据控制LED的点亮。的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/195122

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

基于Spring Boot 的小区人脸识别与出入记录管理系统功能

《基于SpringBoot的小区人脸识别与出入记录管理系统功能》文章介绍基于SpringBoot框架与百度AI人脸识别API的小区出入管理系统,实现自动识别、记录及查询功能,涵盖技术选型、数据模型... 目录系统功能概述技术栈选择核心依赖配置数据模型设计出入记录实体类出入记录查询表单出入记录 VO 类(用于

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用

java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)

《java中pdf模版填充表单踩坑实战记录(itextPdf、openPdf、pdfbox)》:本文主要介绍java中pdf模版填充表单踩坑的相关资料,OpenPDF、iText、PDFBox是三... 目录准备Pdf模版方法1:itextpdf7填充表单(1)加入依赖(2)代码(3)遇到的问题方法2:pd

Zabbix在MySQL性能监控方面的运用及最佳实践记录

《Zabbix在MySQL性能监控方面的运用及最佳实践记录》Zabbix通过自定义脚本和内置模板监控MySQL核心指标(连接、查询、资源、复制),支持自动发现多实例及告警通知,结合可视化仪表盘,可有效... 目录一、核心监控指标及配置1. 关键监控指标示例2. 配置方法二、自动发现与多实例管理1. 实践步骤

浅析Spring如何控制Bean的加载顺序

《浅析Spring如何控制Bean的加载顺序》在大多数情况下,我们不需要手动控制Bean的加载顺序,因为Spring的IoC容器足够智能,但在某些特殊场景下,这种隐式的依赖关系可能不存在,下面我们就来... 目录核心原则:依赖驱动加载手动控制 Bean 加载顺序的方法方法 1:使用@DependsOn(最直

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺