第一讲笔记
因为遇见,所以学习,因为学习,所以喜欢,先学习一下
不得不说,这款MCU还是挺强悍的
第二讲笔记
不得不说,这个平台做的还是蛮全面的,适合快速评估原型机,也适合验证一下想法,挺好的
开发环境可以用我们熟悉的keil
安装工具/开发环境这一块一定要按着这个方法处理,不然会走弯路
测试了一个简单的工程
- #include "ai8051u.h" //µ÷ÓÃÍ·Îļþ
-
- //×¢Òâ£ºÇæÌìÖùµÄLED¶Ë¿ÚÔÚP2£¬ÇÒûÓÐÈý¼«¹ÜµÄµçÔ´¿ØÖÆ£¬ËùÒÔÖ»Òª¿ØÖÆP2¶Ë¿Ú¼´¿É
- void main(void)
- {
- P2M0 = 0; //P2¶Ë¿Ú(P20-P27)Ϊ׼˫Ïò¿Ú
- P2M1 = 0;
-
- while(1)
- {
- P20 = 0; //P20¶Ë¿ÚÊä³ö0V
- P21 = 0; //P21¶Ë¿ÚÊä³ö0V
- }
- }
复制代码
编译通过,下一步,等板子来了,就可以开干了
虽然板子还没有申请到,为了兼容自己以前的程序,把数据类型稍微修改一下
- /*----------------------------------------------------------------------------------------------------------------------
- * Copyright(c) 2025, Mark Xu Work Studio R&D Department. All rights reserved.
- * 文件名称 : DataTypes.h
- * 文件版本 : V1.0.0
- * 功能描述 : typedef the datas
- * 编辑人员 : Mark
- * 编辑日期 : 2025/02/16
- ----------------------------------------------------------------------------------------------------------------------*/
- #ifndef __DATATYPES_H__
- #define __DATATYPES_H__
-
- //----------------------------------------------------------------------------------------------------------------------
- // 宏定义
- //----------------------------------------------------------------------------------------------------------------------
- #define TRUE (1)
- #define FALSE (0)
-
- #ifndef NULL
- #define NULL (0)
- #endif
-
- #define ENABLE (1)
- #define DISABLE (0)
-
- #define SUCCESS (0)
- #define FAIL (-1)
-
- #define Priority_0 0 //中断优先级为 0 级(最低级)
- #define Priority_1 1 //中断优先级为 1 级(较低级)
- #define Priority_2 2 //中断优先级为 2 级(较高级)
- #define Priority_3 3 //中断优先级为 3 级(最高级)
-
- #define I2C_Mode_Master (1)
- #define I2C_Mode_Slave (0)
-
- #define PIE (0x20) //1: 比较结果由0变1, 产生上升沿中断
- #define NIE (0x10) //1: 比较结果由1变0, 产生下降沿中断
-
- #define PWMA (128)
- #define PWMB (129)
-
-
-
- //----------------------------------------------------------------------------------------------------------------------
- // 类型定义
- //----------------------------------------------------------------------------------------------------------------------
- typedef unsigned char u8; // 8 bits
- typedef unsigned int u16; // 16 bits
- typedef unsigned long u32; // 32 bits
-
- typedef signed char int8; // 8 bits
- typedef signed int int16; // 16 bits
- typedef signed long int32; // 32 bits
-
- typedef unsigned char uint8; // 8 bits
- typedef unsigned int uint16; // 16 bits
- typedef unsigned long uint32; // 32 bits
-
- typedef signed char int8_t;
- typedef signed int int16_t;
- typedef signed long int32_t; // 32 bits
-
- typedef unsigned char uint8_t;
- typedef unsigned int uint16_t;
- typedef unsigned long uint32_t;
-
- typedef bit BOOL;
- typedef unsigned char BYTE;
- typedef unsigned int WORD;
- typedef unsigned long DWORD;
-
- typedef unsigned char uchar;
- typedef unsigned int uint;
- typedef unsigned int ushort;
- typedef unsigned long ulong;
-
- //兼容自己的老程序
- typedef unsigned char U8;
- typedef unsigned int U16;
- typedef unsigned long U32;
- typedef signed char S8;
- typedef signed int S16;
- typedef signed long S32; // 32 bits
-
- #endif //#ifndef __DATATYPES_H__
复制代码
第三讲笔记
万事开头难,有了第一个工程,可以点亮一颗灯,点亮了一颗灯,可以搞定一个数码管,搞定一个数码管,可以驱动LCD……
走路嘛,总是从爬开始,然后坚持,坚持 再坚持才能健步如飞,才能跨越山海
看到这里迫不及待的想写个工程试一下,可是发现出现下面问题:
这说明KEIL的插件没有安装完成,说明视频没有看仔细,再看一遍,发现需要安装C256版本,目前电脑中只安装了c51与arm,
下载安装
Keil C251简介
Keil C251是美国Keil公司(该公司2005年被ARM公司收购)出品的针对251微控制器系列兼容单片机C语言软件开发系统。
与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。Keil C251是支持251微控制器体系结构的Keil开发工具,适合每个阶段的开发人员,不管是专业的应用工程师,还是刚学习嵌入式软件开发的学生。
扩展:Keil公司开发的ARM开发工具MDK(Microcontroller Development Kit),是用来开发基于ARM核的系列微控制器的嵌入式应用程序。
打开的界面如下:
至于安装与C51类似,这里就不重复叙述了,不会的可以网上查一下
单个附件只能是20M,分了个包
c251v560.7z.001
(20 MB, 下载次数: 32)
c251v560.7z.002
(18.92 MB, 下载次数: 27)
第四讲笔记
STC的特点可能就是稳定,下载方便
第五讲笔记
作为MCU的支柱编程语言,C一定要学好,能精通是最好,然后数据结构,算法
第六讲笔记
这个可能是每一位MCU编程者入门的必经之路,致敬每一位第一次点亮LED的时刻
第七讲笔记
大部分电子产品都可以以时间做状态机完成,定时器是控制逻辑的核心,所以一定要知道怎么用
第八讲笔记
定时器的应用
第八讲学习笔记
本节主要是定时器调度,对于MCU开发者来说,学会了 定时器的妙用,可以开发出很多有趣的好玩意

第九讲学习笔记
数码管是消费电子及家电产品常用的器件

第十讲学习笔记
输入动作的获取,输出信息的显示,这是电子类产品基本的操作

第十一讲学习笔记
对于IO口少,按键多的产品,矩阵键盘是一个不错的选择,作为软件开发,一定要知道矩阵扫描的原理

第十二讲学习笔记
为什么要复位系统?可能是为了恢复初始状态,也可能是因部分异常导致

第十三讲学习笔记
什么是中断?就是我正在学MCU视频,妈妈让我倒垃圾,于是我先暂停视频,然后去倒垃圾,倒完回来继续学

第十四讲学习笔记
IO口的中断对于捕获信号,唤醒系统,编写通讯协议都有用处

第十五讲学习笔记
这是定时器的一个用法

第十六讲学习笔记
单片机调试的法宝之一,就是用串口打印信息
 |
| |
|