经常用led灯来观察现象,甚至调试代码,修改代码时用0和1很不方便,而且阅读性也不好,
故写了个宏,用起来方便些.
今天尝试控制灯的亮度. 先试试for循环控制,占空比调节...
//#include "my51.h" #include <reg52.h> typedef unsigned char u8; typedef unsigned short int u16; #ifndef _51LED_ #define _51LED_ #define led P1 //P1总线连8个led灯,灯连573锁存器,P1置低电平点亮 #define LED led #define ON(x) P1&(~(1<<(x))) //打开某个灯,开多个灯用 ON(m) & ON(n) #define OFF(x) P1|(1<<(x)) //关闭某个灯,关多个灯用 OFF(m)| OFF(n) #define on(x) ON(x) //包含大小写 #define off(x) OFF(x) #define ledon 0 //某个灯,打开 #define ledoff 1 //某个灯,关闭 sbit led0=P1^0; sbit led1=P1^1; sbit led2=P1^2; sbit led3=P1^3; sbit led4=P1^4; sbit led5=P1^5; sbit led6=P1^6; sbit led7=P1^7; sbit ledLock=P2^5; //锁定当前8个led的状态,0锁定 ,1不锁定 #endif void ledCtr(u8 ledX,u8 per) //参数1是某个灯,参数2是亮度 { u8 i=1; for(i=1;i<=100;i++) { if(i<per) { led=on(ledX) ; //打开灯 } else { led=off(ledX); //关闭灯 } } } void delayms(u16 ms) //毫秒级软延时函数 { u16 i,j; for(i=ms;i>0;i--) { for(j=113;j>0;j--) {} } } void main() //测试 { led6=ledon; //打开6号灯,亮度100% led=on(0); //打开0号灯,亮度100% led=on(1) & on(5); //打开1号和5号灯,亮度100% delayms(2000); led0=ledoff; //关闭0号灯 led=off(6)|off(1)|off(5);//关闭1,5,6号灯 while(1) { ledCtr(2,5); //仅打开2号灯,亮度5%, 省电... } }
相关推荐
HJ2GAVR单片机学习笔记1概述.pdf 本学习笔记主要介绍了HJ-2G AVR单片机的概述,包括开发板的介绍、核心处理器ATMEGA16、锁存器、数码管、矩阵键盘、液晶1602接口、串口接口MAX232、DS1302时钟电路等内容。 1.2 HJ-...
总之,51单片机控制LED数码管显示涉及到硬件设计、驱动电路和软件编程等多个环节。理解数码管的工作原理、正确配置驱动电路以及编写有效的控制程序,是实现高效、稳定显示的关键。在学习和实践中,深入理解这些知识...
首先,流水灯的基本原理是通过控制一系列LED灯的亮灭顺序,形成一种连续流动的视觉效果。这种效果可以通过微控制器(如Arduino或51单片机)编程实现。微控制器会按照预设的程序,依次改变连接到其输出引脚的LED的...
【C语言学习笔记】 在C语言中,常量表达式是一个关键概念,它指的是在编译阶段就能计算出结果的表达式,不涉及运行时的变量分配。这意味着常量表达式的值在程序编译时已经确定,且结果必须是对应类型的可表示值范围...
1. **微控制器**:如Arduino、STM32或51系列单片机,它是整个系统的"大脑",接收并处理来自用户的指令,控制灯光的开关和亮度。 2. **输入接口**:可以是按钮、触摸传感器或无线模块(如蓝牙、Wi-Fi),用于接收...
这个协议允许设备之间的通信,确保精确控制LED灯和其他类型的照明设备。"DMX512接收发送程序"是针对C51微控制器的开发项目,旨在实现DMX512协议的功能,使C51微控制器能够作为DMX512网络中的发送器或接收器。 C51是...
在描述中,我们得知这个项目的目标是利用51系列单片机控制LED灯的显示,这通常涉及到硬件接口设计和编程。 51单片机是一种广泛应用的微控制器,由Intel公司开发,但现在主要由其他制造商如Atmel、Samsung和...
首先,LED大屏幕点阵屏是由多个像素点组成的,每个像素点由一个或多个LED灯组成,通过控制这些LED灯的亮灭,可以显示各种文字、图像和动态效果。在设计过程中,我们需要考虑像素密度、亮度、颜色配置以及驱动电路等...
5. **基本实验**:从简单的LED灯控制开始,逐步过渡到数码管显示、按键扫描、定时器/计数器应用、中断系统理解和应用。 6. **串行通信**:介绍UART(通用异步收发传输器)的基本原理和配置,实现点对点或主从通信。...