IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> 蓝桥杯3·LED模块化编程 -> 正文阅读

[嵌入式]蓝桥杯3·LED模块化编程

LED模块化编程思路:

创建一个 LED显示子函数;

创建一个关闭外设子函数

LED从下往上数;电路采用M74HC573M1R锁存器对单片机P0口的输出信号进行缓冲,并增强信号驱动能力进而驱动LED发光,其中U6的锁存输入Y4C=Y4+WR=Y4·WR,Y4是译码器输入P27~P25为100时的有效输出。

# include "bsp_init.h" ?//调用初始化的头文件
# include "bsp_led.h"?
#include "delay.h"

void main()
{
?? ?unsigned char i,j; //为循环变量做准备?
?? ?
?? ?Cls_Peripheral(); ? ? //关闭外设

?? ?
?? ?while(1)
?? ?{
?? ??? ?for (i = 0; i < 9 ; i++) //控制亮度等级
?? ??? ? {
?? ??? ??? ? for(j=0;j<50;j++) //控制当前亮度等级的循环次数
?? ??? ??? ? {?
?? ??? ??? ??? ? Led_Disp(0XFF); //全亮
?? ??? ??? ??? ? Dlay(i+1);?
?? ??? ??? ??? ? Led_Disp(0X00); //全灭
?? ??? ??? ??? ? Dlay(9-i);
?? ??? ??? ? }
?? ??? ? }
?? ? }
?}

?

# include "bsp_led.h" ? ? ?//相当于bsp_init.h的替代 ?

//函数名:LED显示函数
//入口参数:要显示数值的十六进制数据。从右往左,例如:OXAA:1010 1010 按照L8~L1的顺序
//返回值:无
//函数功能:按照入口参数顺序将LED点亮,1为亮,0为灭。

? //P2一共八个端子,高位在前低位在后(P27 P26……P20)“&”:与 “|”:或
? //对于LED来说只有右边是1,左边是0的情况才会亮,接通了Y4口。P27~P25清零,再定位Y4C
?? ?
void Led_Disp(unsighed char ucLed) ? ? ?//在.c中每个函数写好之后,在.h中定义
{
?? ?
? P0=~ucLed ? ? //?? ?将输入数据取反,做好数据准备
? P2=P2 & 0X1F | 0X80 ?//选通Y4,也就是LED的锁存器,将数据全部透传过去
? P2&=0X1F //使得任何一个锁存器都不打开
}

?# include "STC15F2K60S2.H"?
//函数名:LED显示函数
//入口参数:要显示数值的十六进制数据。从右往左,例如:OXAA:1010 1010 按照L8~L1的顺序
//返回值:无
//函数功能:按照入口参数顺序将LED点亮,1为亮,0为灭。
void Led_Disp(unsighed char ucLed) ? ? ?//在.c中每个函数写好之后,在.h中定义

关闭外设函数放在bsp_init.c中(bsp_init.h相当于bsp_init.c的说明书,在.c中调用.h

#include "bsp_init.h" ? ? ?//相当于bsp_init.h的替代 ?

//函数名:关闭外设的初始化函数
//入口参数:无
//返回值:无
//函数功能:将LED、蜂鸣器、继电器全部关闭

? //P2一共八个端子,高位在前低位在后(P27 P26……P20)“&”:与 “|”:或
? //对于LED来说只有右边是1,左边是0的情况才会亮,接通了Y4口。P27~P25清零,再定位Y4C
?? ?
void Cls_Peripheral(void) ? ? ?//在.c中每个函数写好之后,在.h中定义
{
?? ?
? P0=0XFF ? ? ?//?? ?P0全部为1,准备将LED全部熄灭,数据准备。
? P2=P2 & 0X1F | 0X80 ?//选通Y4,也就是LED的锁存器,将数据全部透传过去,使LED真实关闭。
??
? P2&=0X1F //使得任何一个锁存器都不打开
?? ?
??P0=0X00 ? ? ?//?? ?P0全部为1,准备将外设全部关闭,数据准备。
? P2=P2 & 0X1F | 0XA0 ?//选通Y5,也就是外设的锁存器,将数据全部透传过去,使外设真实关闭。
? P2&=0X1F //使得任何一个锁存器都不打开
?? ?

?

# include "STC15F2K60S2.H"?
//函数名:关闭外设的初始化函数
//入口参数:无
//返回值:无
//函数功能:将LED、蜂鸣器、继电器全部关闭
void Cls_Peripheral(void)?

#include "delay.h"

//函数名:延时毫秒函数
//入口参数:延时的数值,2个字节,16位,0---65535
//返回值:无
//函数功能:延时一定的毫秒数据
void Delay(unsighed int num)
{
?? ?unsigned int ?i;
?? ?while (num-)
?? ?for (i=0;i<628;i++)
}

//函数名:延时毫秒函数
//入口参数:延时的数值,2个字节,16位,0---65535
//返回值:无
//函数功能:延时一定的毫秒数据
void Delay(unsighed int num)?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-01-24 11:03:47  更:2022-01-24 11:05:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 1:31:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码