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

单片机——keil5

文章目录

    • 安装教程
    • 使用介绍
    • 案例展示

接下来进行keil5软件的相关学习使用

安装教程

参考视频链接bilibili 51单片机 大约在8分钟位置处

使用介绍

  1. 首先新建project
  2. 选择对应的芯片型号(例如:STC89C52 —— 由于STC系列是国产,keil5软件不支持,改用AT系列即可 AT89C52)
  3. 创建C语言main.c文件
#include <REGX52.H>void main()
{while (1){// 设置P2端口的信号值8位,由于C语言中会将8位2进制数视为10进制,所以将信号值表示为16进制形式//点亮最后一个灯P2 = 0xFE; //1111 1110 }
}
  1. 软件界面介绍
    在这里插入图片描述
    1处是 build按钮,用于编译项目文件
    2处是设置编译目标文件,点击2处,得到以下界面
    在这里插入图片描述
    勾选Create HEX File,生成.hex文件,用于烧录进单片机

  2. 通过STC-ISP软件下载/编程将.hex文件烧录进单片机,再通过冷启动后,即可执行程序
    在这里插入图片描述

  3. 设置延时函数
    在这里插入图片描述
    再STC-ISP中设置对应频率、延时时间等,生成对应的函数,复制到main.c中使用,需要引用 #include <INTERINS.H>

  4. 数据运算
    这也是C语言中常见的运算符,包括单目运算符和双目运算符等,其中要区别逻辑运算符和位运算符之间的区别,例如&&&
    在这里插入图片描述

  5. 基本语句
    C语言常见的语句形式:条件语句、循环语句、选择语句
    在这里插入图片描述

    int i;
    for(i=1; i<-8; i++)
    {fprint(i);
    }
    
  6. 数据类型
    在这里插入图片描述
    这里补充一个C语言中的知识:

    • char:它的具体类型由编译器来决定,可能是有符号的,也可能是无符号的。在大多数编译器环境中,char 会被当作 signed char 来处理,但你不能对这一点进行假设。
    • unsigned char:这是无符号类型,其取值范围是 0 到 255(以 8 位为例)。
    • signed char:属于有符号类型,采用补码形式表示数值,取值范围为 -128 到 127(以 8 位为例)
      在这里插入图片描述
      在这里插入图片描述

案例展示

在这里插入图片描述
在这里插入图片描述

  1. 独立按键控制LED移位,通过原理图可以看到,LED模块对应P2接口,独立按钮对应P3_0-P3_3接口
#include <REGX52.H>
void Delay(unsigned int xms);  \\延时函数,延时xms毫秒
unsigned char LEDNum;void main()
{P2 = ~0x01;  \\ 初始化右侧第一个灯亮while(1){if(P3_1 == 0)  \\ 实现左移{Delay(20);  \\延迟是因为独立按键模块需要调节稳定时间,大约是20ms,不进行延时科恩那个回导致多次触发while(P3_1 == 0);  \\ 检测松手,按键开关松开Delay(20);LEDNum++;if(LEDNum >=  8)LEDNum = 0;P2 =~(0x01<<LEDNum);}if(P3_0 == 0)  \\ 实现右移{Delay(20);while(P3_0 == 0);Delay(20);if(LEDNum == 0)LEDNum = 7;elseLEDNum--;P2 =~(0x01<<LEDNum);}}
}void Delay(unsigned int xms)
{unsigned char i, j;while(xms--){i = 2;j = 239;do {while (--j);}while (--i);}
}
http://www.xdnf.cn/news/704737.html

相关文章:

  • WSL 开发环境搭建指南:Java 11 + 中间件全家桶安装实战
  • STM32开发全解析:从环境搭建到项目实战的技术文档撰写指南
  • 代谢组数据分析(二十五):代谢组与蛋白质组数据分析的异同
  • day13 leetcode-hot100-23(链表2)
  • xLSTM技术介绍
  • 技术文档写作大纲
  • JWT 不对外,Session ID 对外:构建安全可控的微服务认证架构
  • jenkins集成gitlab实现自动构建
  • 力扣-最长回文子串
  • 【课堂笔记】EM算法
  • stm32cube ide如何将工具链替换成arm-none-eabi-gcc
  • 零基础设计模式——结构型模式 - 代理模式
  • 安装flash-attention失败的终极解决方案(WINDOWS环境)
  • 按照状态实现自定义排序的方法
  • 机器学习数据降维方法
  • Apache Airflow
  • 【MySQL】联合查询(下)
  • 微服务各个部分的作用
  • 【基于SpringBoot的图书购买系统】操作Jedis对图书图书的增-删-改:从设计到实战的全栈开发指南
  • 汽车总线分析总结(CAN、LIN、FlexRay、MOST、车载以太网)
  • 机器视觉2,硬件选型
  • [低代码表单生成器设计基础]ElementUI中Layout布局属性Form表单属性详解
  • 华为OD机试真题——矩形相交的面积(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现
  • spring4第4课-ioc控制反转-详解如何注入参数
  • Flutte ListView 列表组件
  • 主流Markdown编辑器的综合评测与推荐
  • <el-date-picker>组件传参时,选中时间和传参偏差8小时
  • allWebPlugin中间件VLC专用版之录像功能介绍
  • 测试Bug篇
  • Flutter GridView网格组件