单片机——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
    }
    }

  4. 软件界面介绍

    1处是 build按钮,用于编译项目文件

    2处是设置编译目标文件,点击2处,得到以下界面

    勾选Create HEX File,生成.hex文件,用于烧录进单片机

  5. 通过STC-ISP软件下载/编程将.hex文件烧录进单片机,再通过冷启动后,即可执行程序

  6. 设置延时函数

    再STC-ISP中设置对应频率、延时时间等,生成对应的函数,复制到main.c中使用,需要引用 #include <INTERINS.H>

  7. 数据运算

    这也是C语言中常见的运算符,包括单目运算符和双目运算符等,其中要区别逻辑运算符和位运算符之间的区别,例如&&&

  8. 基本语句

    C语言常见的语句形式:条件语句、循环语句、选择语句

    复制代码
    int i;
    for(i=1; i<-8; i++)
    {
    	fprint(i);
    }
  9. 数据类型

    这里补充一个C语言中的知识:

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

案例展示


  1. 独立按键控制LED移位,通过原理图可以看到,LED模块对应P2接口,独立按钮对应P3_0-P3_3接口

C 复制代码
#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;
			else
				LEDNum--;
			P2 =~(0x01<<LEDNum);
		}
	}
}

void Delay(unsigned int xms)
{
	unsigned char i, j;
	while(xms--)
	{
		i = 2;
		j = 239;
		do 
		{
			while (--j);
		}while (--i);
	}
}
相关推荐
Jason_zhao_MR3 小时前
RK3576 MIPI Camera ISP调试:主观调优与工程实战(下)
stm32·嵌入式硬件·安全·系统架构·嵌入式
ACP广源盛139246256735 小时前
iOS 27 开放 AI 生态@ACP#小型化扩展黄金风口,IX8008全面超越 ASM2806,铸就嵌入式 AI 扩展核心
人工智能·嵌入式硬件·macos·ios·计算机外设·objective-c·cocoa
smartpi_ai5 小时前
玩具产品从按键控制升级为语音控制:语音模块与MCU串口通信实战
单片机·嵌入式硬件
BreezeJuvenile7 小时前
【STM32】时钟摘取法
stm32·单片机·嵌入式硬件
崇山峻岭之间8 小时前
单片机GPIO配置
单片机·嵌入式硬件
不会武功的火柴8 小时前
SystemVerilog语法(7)-接口(interface)
嵌入式硬件·fpga开发·仿真·ic验证·rtl
深圳英康仕8 小时前
五网口六USB:一台龙芯2K3000工控机的接口配置解读
嵌入式硬件·信创·工控机·工业计算机·龙芯2k3000
lllllllccccc9 小时前
FReeRtos中断管理、临界段保护和任务调度器挂起和恢复学习
单片机·嵌入式硬件
ACP广源盛139246256739 小时前
IX8024 对标 ASM2824 @ACP#搭配昆仑芯 P800 构建 AI 服务器 PCIe4.0 高速互联架构
网络·人工智能·嵌入式硬件·电脑
踏着七彩祥云的小丑10 小时前
嵌入式测试学习第 15 天:逻辑门基础:与或非、简单逻辑电路
单片机·嵌入式硬件