51单片机系列--闪烁灯,呼吸灯与流水灯
51单片机是对兼容英特尔8051指令系统的单片机的统称。51单片机广泛应用于家用电器、汽车、工业测控、通信设备中。因为51单片机的指令系统、内部结构相对简单,所以国内许多高校用其进行单片机入门教学。
而我手头使用的是普中科技的51单片机学习板,mcu是stc89c52,下面是它的原理图。
下面我需要对它的led模组进行高低电平控制,进而点亮各个led,下面是led模组的原理图。
可以看到是由8个串联电阻的发光二极管并联在一起,由vcc供电,此时如果提供一个低电平(0),就能使得led亮起,反之就会熄灭。下面就是完整代码。
#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器
#include<intrins.h> //因为要用到左右移函数,所以加入这个头文件typedef unsigned int u16; //对数据类型进行声明定义
typedef unsigned char u8;#define led P2 //将P2口定义为led 后面就可以使用led代替P2口/*******************************************************************************
* 函 数 名 : delay
* 函数功能 : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{while(i--);
}/*******************************************************************************
* 函 数 名 : main
* 函数功能 : 主函数
* 输 入 : 无
* 输 出 : 无
*******************************************************************************/
void main()
{u8 i,pwm,y=500;for(i=0;i<3;i++) //闪烁灯{led=~0x01;delay(50000); //大约延时450msled=~0x00;delay(50000); //大约延时450ms}for(pwm=y;pwm>0;pwm--) //呼吸灯,控制占空比{led=0; //灯亮delay(pwm);led=1;//灯灭delay(y-pwm);}for(pwm=0;pwm<y;pwm++){led=0;delay(pwm);led=1;delay(y-pwm);} while(1){ for(i=0;i<8;i++){P2=~(0x01<<i); //将1右移i位,然后将结果赋值到P2口delay(50000); //大约延时450ms}}
}
效果图
51单片机系列--闪烁灯,呼吸灯与流水灯相关推荐
- 51单片机入门篇-LED点亮以及流水灯
目录 一.发光二极管简介 1.二极管工作工作原理 2.单片机点亮LED原理 二.硬件电路连接 三.程序部分 3.1 点亮一个LED 3.2 点亮多个LED 3.3 闪烁一个LED 3.4 不同频率闪烁 ...
- 基于51单片机的8个小彩灯花样流水灯proteus仿真汇编语言
仿真电路如下图所示: 部分代码: ORG 0000H AJMP START ORG 0003H AJMP INTR0 ORG 0013H AJMP INTR1 START:MOV IE,#85H MO ...
- 51单片机控制彩色点阵制作沙漏型交通灯
本文介绍了彩色点阵的使用,以及利用51单片机控制点阵制作的沙漏型交通灯,希望对打算用点阵做课程设计的同学有点帮助. 一.效果展示 二.彩色点阵的使用 彩色点阵有32个引脚,这里以背面图来讲 ...
- 51单片机系列(三)51 单片机游戏设计 —— 双人对战小游戏(石头剪刀布)
本博客51单片机实训系列,旨在记录本人在大学上单片机技术这门课时所做的课程实训内容,并与大家分享基于51单片的课程作业,如果作业中的某些细节和代码能给大家一点启发那就更好了,希望大家能用51单片机做出 ...
- Step1 :【C51】LED灯闪烁、跑马灯、流水灯、实现每次亮两个灯的流水灯
Step1Step1Step1 :[C51]LED灯闪烁.跑马灯.流水灯.实现每次亮两个灯的流水灯 在我所使用的开发板中,LED采用共阳极接法,即所有LED阳极管脚接电源VCC,其阴极管脚接到P2口上 ...
- c语言流水灯定时器延时,实现流水灯以间隔500ms的时间闪烁(系统定时器SysTick实现的精确延时)...
/** ****************************************************************************** * @file main.c * ...
- c语言intrins头文件,结合单片机学习板学习c语言之流水灯制作 intrins.h头文件
原标题:结合单片机学习板学习c语言之流水灯制作 intrins.h头文件 目的:实现流水灯. 本文引用地址:http://www.eepw.com.cn/article/201608/294948.h ...
- ## C51单片机2种方法让8个流水灯依次亮灭
C51单片机2种方法让8个流水灯依次亮灭 第一种 数组 就是把每次亮灯情况写在数组里面.8个二极管共同接地.比如说0xfe是二进制是11111110,第一个灯灭.然后下一个数是0xfd,对应二进制是1 ...
- 用c语言完成流水灯控制的程序设计,单片机C语言程序设计之TIMER0控制流水灯
描述 基于单片机的LED流水灯的应用十分广泛,由单片机作为的核心控制器,通过按键实现控制功能和数据输入是非常普遍的.通常在所需按键数量不多时,系统常采用独立式按键.这种按键的电路配置灵活,软件结构简单 ...
最新文章
- getsockname的使用
- 全球及中国陶瓷承烧板行业发展态势及运营前景研究报告2021-2027年版
- 程序员自我修养的4个阶段
- A20修改串口设备文件
- TFS创建团队项目(三)
- webpack-loader(加载器)
- 无需充电的太阳能汽车有多强?约17万起,续航高达1609km
- c java python小白_Java,python,c语言小白的理解
- java的dicon文件_配置文件参考
- java 调用 easypr_Java程序执行Linux命令调用EasyPR程序识别车牌号
- stata15中文乱码_如何解决 Stata 14 的中文乱码问题
- work profile关闭时桌面图标变灰
- 【C++---16】常指针和常引用
- 域控服务器里没有internet时间,加入域之后,【Internet 时间】选项没有了
- 优酷视频如何登录优酷账号?
- Django之restframework的路由Routers
- Allegro导出元器件pad坐标和网络(附带ODB++插件下载)
- 合肥python儿童编程_合肥少儿编程学习中心
- 基于单目和低成本GPS的车道定位方法
- 航嘉服务器维修电源,无故障60000小时,服务器/工控机电源推荐
热门文章
- 华为服务器网口ip配置文件,华为服务器、存储IP初始配置方法
- 【UE4_蓝图】map函数以及Clamped和Unclamped的区别
- 5分钟了解什么是OpenXR
- 提示:The word is not correctly spelled 解决方法
- 嵌入式开发为啥不适合macOS系统?
- android 计算器,Android实战:计算器
- ValueError: n_splits=n cannot be greater than the number of members in each class.
- HC小区管理系统mysql如何修改密码
- 苹果双系统怎么切换_Mac如何删除双系统中的windows系统
- 四旋翼的运动原理及几个飞行问题