当前位置: 首页 > news >正文

51单片机 01 LED

一、点亮一个LED

在STC-ISP中单片机型号选择 STC89C52RC/LE52RC;如果没有找到hex文件(在objects文件夹下),在keil中options for target-output- 勾选 create hex file。

如果要修改编程 :重新编译-下载/编程-单片机重新启动

#include <REGX52.H>
void main()
{P2=0xFE;   //1111 1110   注意是大写P// P2=0x55; 间隔亮LED小灯while(1){}
}

二、LED闪烁

这里我的keil中我STC database出现了于是我就选了STC89C52RC。

RC后缀单片机的系统频率是 11.0592mhz

#include <STC89C5xRC.H>
#include <INTRINS.H>void Delay500ms()		//@11.0592MHz
{unsigned char i, j, k;_nop_(); // need .h filei = 4;j = 129;k = 119;do{do{while (--k);} while (--j);} while (--i);
}void main(){while(1){P2=0xFE;Delay500ms();P2=0xFF;Delay500ms();}
}

三、LED 流水灯

LED和蜂鸣器共用P2引脚,所以会响(正常现象)

#include <STC89C5xRC.H>
void Delay500ms()		//@11.0592MHz
{unsigned char i, j, k;// _nop_(); // can delete this sentensei = 4;j = 129;k = 119;do{do{while (--k);} while (--j);} while (--i);
}void main()
{while(1){P2=0xFE;Delay500ms();P2=0xFD;Delay500ms();P2=0xFB;Delay500ms();P2=0xF7;Delay500ms();P2=0xEF;Delay500ms();P2=0xDF;Delay500ms();P2=0xBF;Delay500ms();P2=0x7F;Delay500ms();}
}

四、流水灯代码优化版

unsigned char: 适用于 8 位数据(如 P2 寄存器),内存占用小,与硬件匹配度高。

注意在 delay 函数中选择的值是500,所以要用unsigned int。

左移运算符 << 会将二进制数向左移动一位,右边空出的位用 0 填充。

按位或运算符 | 会将两个二进制数的每一位进行或运算。|0x01:将最低位置1。

#include <STC89C5xRC.H>
void Delayms(unsigned int x)		//@11.0592MHz
{unsigned char i, j;while(x){i = 2;j = 199;do{while (--j);} while (--i);x--;}
}void main()
{unsigned char pattern =0xFE;while(1){P2=pattern;Delayms(500);pattern=(pattern<<1)|0x01; //() is more distinctif(pattern==0xFF) pattern=0xFE;}
}

C51数据类型 

http://www.lryc.cn/news/531105.html

相关文章:

  • WPF进阶 | WPF 动画特效揭秘:实现炫酷的界面交互效果
  • 分页按钮功能
  • 数据分析系列--⑦RapidMiner模型评价(基于泰坦尼克号案例含数据集)
  • 集合通讯概览
  • 【FreeRTOS 教程 八】直达任务通知
  • Ubuntu 18.04安装Emacs 26.2问题解决
  • nodejs:js-mdict 的下载、安装、测试、build
  • CSS关系选择器详解
  • Python在线编辑器
  • 蓝桥杯备考:高精度算法之除法
  • 笔试-业务逻辑4
  • 《Linux服务与安全管理》| 数据库服务器安装和配置
  • 麦芯 (MachCore) 应用开发教程 6:一台设备中多台电脑主从机的设置
  • RAG 与历史信息相结合
  • 99,[7] buuctf web [羊城杯2020]easyphp
  • BUUCTF_[安洵杯 2019]easy_web(preg_match绕过/MD5强碰撞绕过/代码审计)
  • Vue05
  • ubuntu18.04环境下,Zotero 中pdf translate划线后不翻译问题解决
  • 基于Python的简单企业维修管理系统的设计与实现
  • 【C++】B2120 单词的长度
  • 2501,编写dll
  • 【router路由的配置】
  • 算法基础——一致性
  • 刷题记录 动态规划-6: 62. 不同路径
  • docker直接运行arm下的docker
  • 014-STM32单片机实现矩阵薄膜键盘设计
  • Sentinel 断路器在Spring Cloud使用
  • [内网安全] 内网渗透 - 学习手册
  • 算法总结-二分查找
  • 基于python的Kimi AI 聊天应用