80C51单片机:2.初学点亮发光二极管,流水灯案例
80C51单片机系列
- 80C51单片机介绍
- 点亮第一个发光二极管,流水灯案例
文章目录
- 80C51单片机系列
- 前言
- 点亮第一个发光二极管
- 程序烧录等操作
- 二极管流水灯
- 下一章:数码管显示及封装与消隐
前言
我们先来看一下原理图,学习单片机首先需要看懂原理图!
注意:每个人买的单片机都不一定相同,各个板子的原理图都不一定一样!
原理图一般购买单片机都附带的,仔细看一下包裹里有没有原理图链接!自行下载!
点亮第一个发光二极管
首先从原理图上找到 LED模块。
我们可以看到LED的八个二极管连接着,MCU单片机芯片(也就是80C51单片机)上,P2口的八个串口(P2^0 ~ P2^7)。
这样我们只需要操作P2口的八个串口,即可控制LED二极管的发光与熄灭。
创建项目,创建文件这里就不多说了。
代码如下
#include<reg52.h>sbit LED1 = P2^0;void main()
{LED1 = 0;
}
在单片机中控制器件,是根据高低电平进行控制
因为开机之后,默认给的都是高电平,所以我们想要控制二极管发光,就需要给一个低电平!也就是 0
这里0:代表低电平,1:代表高电平
给 P2 ^ 0,也就是P2口的第一个串口,赋一个 0 即可!。
然后下载到单片机里面就可以啦!
程序烧录等操作
具体操作,如烧出软件、项目配置(设置运行MHZ)、生成hex文件等,烧出软件请自行网上搜索下载。
项目配置,生成hex文件,这里截图说明!
首先项目配置,设置运行速率MHZ
然后设置生成hex文件,hex文件就是程序最终编译后,需要下载到单片机里的文件!
在刚才的基础上,勾选生成hex文件即可!
最后编译一下,用烧录软件下载到单片机里!
开机即可!
这样单片机上的第一个发光二极管就发亮啦!
注意:有的可能只亮一下,在LED1 = 0;
后面加一个while(1);死循环就行了!
是不是很简单?
二极管流水灯
有了上面的简单实验,下面我们就写一个二极管流水灯。
代码如下
#include<reg52.h>
#include<intrins.h>#define GPIO_LED P2void Delayms(unsigned char);void main()
{unsigned char i;GPIO_LED = 0xfe;Delayms(10);//流水灯while(1){for(i = 0; i<7; i++){ //左移7次GPIO_LED = _crol_(GPIO_LED,1); //GPIO_LED 左移1位Delayms(10);}for(i = 0; i<7; i++){ //右移7次GPIO_LED = _cror_(GPIO_LED,1); //GPIO_LED 右移1位Delayms(10);}}
}/*
//手动实现轮流赋值
void main()
{unsigned char i,led_list[8]= {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0xBF};while(1){for(i = 0; i<8; i++){ //循环GPIO_LED = led_list[i];Delay10ms(2);}}
}
*///延时函数
void Delayms(unsigned char c)
{unsigned char a,b;for(;c>0;c--)for(b=76;b>0;b--)for(a=130;a>0;a--);}
程序中注释部分为,手动实现赋值P2操作。
而导入的**#include<intrins.h>**头文件,可以直接进行位移操作。
调用_crol_进行左移。
调用_cror_进行右移。
下一章:数码管显示及封装与消隐
这里建议新学的小伙伴,可以手动实现以下,轮流给P2口赋值。
下一章:3.数码管显示及封装与消隐
80C51单片机:2.初学点亮发光二极管,流水灯案例相关推荐
- 单片机原理及其应用——单片机控制按键点亮发光二极管
目录 一.实验要求 二.分析 (一)电路原理 (二)机械式按键的抖动时间与解决方法 三.Proteus仿真软件画原理图 四.Keil编程软件编写程序 五.实验结果 (一)仿真结果 (二)连接电路烧录 ...
- c语言流水灯程序 16,16个发光二极管流水灯程序
文件: 流水灯16.rar 大小: 32KB 下载:16个发光二极管流水灯程序 作者:流水落花 ORG 0100H LOOP0: MOV A, #0FEH MOV P2, #0FEH MOV R2, ...
- STM32F03寄存器方式点亮LED流水灯
STM32F03寄存器方式点亮LED流水灯 文章目录 STM32F03寄存器方式点亮LED流水灯 一.题目内容 二.STM32F03系列芯片的地址映射和寄存器映射映射原理:了解GPIO端口的初始化设置 ...
- 单片机C语言流水灯花样编程,51单片机学习之陆 —— 1.3 流水灯的花样玩法
原标题:51单片机学习之陆 -- 1.3 流水灯的花样玩法 上一次我们点亮了一个1,其实仅仅点亮一个流水灯还是有些单调的. 这一次让我们试着尝试些别的花样 1 多个流水灯的点亮 a 打开将原来的c文件 ...
- 蓝桥杯51单片机之利用中断同时控制流水灯、数码管、独立按键、蜂鸣器【单片机开发初学者有趣综合案例】
文章目录 一.流水灯与数码管 二.独立按键.数码管.流水灯.蜂鸣器 一.流水灯与数码管 流水灯不断左移,通过外部中断0来控制数码管的显示. #include <reg52.h> #defi ...
- STM32F103C8T6以寄存器方式借助面包板搭建电路点亮LED流水灯详解
文章目录 一.寄存器原理 1.什么是寄存器 2.如何访问寄存器 二.GPIO端口的初始化设置 1.时钟配置 (1)找到时钟使能寄存器映射基地址 (2)找到端口偏移地址以及对应端口所在位置 (3)使能对 ...
- GPIO端口初始化设置,STM32F103点亮LED流水灯过程
文章目录 一.STM32F103系列芯片地址映射和寄存器映射原理 1.什么是寄存器 2.地址映射和寄存器映射 3.寄存器地址查找 二.GPIO端口初始化设置 1.GPIO简介 2.配置时钟 3.输入输 ...
- 【stm32cubeMX】使用HAL库点亮LED流水灯
stm32cubeMX使用HAL库点亮LED流水灯 1.安装STM32CubeMX 2.安装HAL库 3.新建项目 4.keil仿真调试 五.实现 六.参考资料 1.安装STM32CubeMX 官网下 ...
- 单片机串口中断控制流水灯c语言,基于单片机AT89C51控制的中断控制流水灯_课程设计报告...
<基于单片机AT89C51控制的中断控制流水灯_课程设计报告>由会员分享,可在线阅读,更多相关<基于单片机AT89C51控制的中断控制流水灯_课程设计报告(25页珍藏版)>请在 ...
- 基于ESP32学习MicroPython(三): 流水灯案例
一.工作目标 通过ESP32 Pico和ESPBlock完成流水灯案例 二.环境准备 ESP32 Pico主板(已安装支持MicroPython固件) ESPBlock扩展板 Micro-USB线 母 ...
最新文章
- 讲讲 Redis 缓存更新一致性
- oracle 三表关联更新_Oracle数据库入门
- mysql pool返回值_Mysql成神之路-InnoDB 的 Buffer Pool
- k8s get命令:以yaml格式输出deployment对象
- linux跟aix时间同步,Linux 与AIX环境下修改时间
- 【转】C#数据结构-有限状态机
- go的实现接口的一个小demo
- Spring Cloud中的分布式组件五花八门,我到底该怎么学?
- 修改 系统文件夹 名称 视频设备
- 中国吉他效果市场趋势报告、技术动态创新及市场预测
- Intel发6款全新9代i9/i7/i5 CPU:巅峰8核
- s3c2440的GPIO驱动
- ASM 管理 转自三思笔记
- 数据库原理及应用总结
- 传输线阻抗方程的推导
- 昆仑通态MCGS与3台欧姆龙E5*C温控器通讯程序功能:通过昆仑通态触摸屏
- CAE软件技术现状调研
- 计算机中分页符号是什么,分节符和分页符有什么区别?
- python循环中释放内存的方法_我怎样才能在Python中明确释放内存?
- 用r语言画时序图和自相关图,并检验纯随机性