哪些网站可以做go注释,学校招聘教师网站建设,在线网页截图工具,广东网络建设有限公司前言 大家好吖#xff0c;欢迎来到 YY 滴单片机系列 #xff0c;热烈欢迎#xff01; 本章主要内容面向接触过单片机的老铁 主要内容含#xff1a; 欢迎订阅 YY滴C专栏#xff01;更多干货持续更新#xff01;以下是传送门#xff01; YY的《C》专栏YY的《C11》专栏YY的… 前言 大家好吖欢迎来到 YY 滴单片机系列 热烈欢迎 本章主要内容面向接触过单片机的老铁 主要内容含 欢迎订阅 YY滴C专栏更多干货持续更新以下是传送门 YY的《C》专栏YY的《C11》专栏YY的《Linux》专栏YY的《数据结构》专栏YY的《C语言基础》专栏YY的《初学者易错点》专栏YY的《小小知识点》专栏YY的《单片机期末速过》专栏YY的《C期末速过》专栏YY的《单片机》专栏YY的《数据库》专栏YY的《数据库原理》专栏 目录 一.点亮LED灯1.新建一个工程存放工程的文件夹2.熟悉编译和建立文件项目的操作3.LED发光二极管介绍4.开发板图查询(LED对应独立按键和MCU的原理图找对应接口)5.单片机的进制转换问题6.单片机控制硬件单片机的原理1位控制8位控制的区别7.添加头文件让编译器识别寄存器P28.将代码下载到单片机中 二.LED闪烁1s为周期1.用循环让二极管能够反复接收到信号2.利用STC-ISP的软件延时计算器3.完整代码重复第二大点中写入开发板的过程 三.LED流水灯 一.点亮LED灯
1.新建一个工程存放工程的文件夹 打开软件Keil如图所示设置一个KeilProject文件夹shiftctrln新建三个文件夹对应我们这次要做的三个实验LED点亮LED闪烁LED流水灯 如下图所示步骤操作 点击保存后会出现【单片机器件选择界面】黄框里面是各种公司的名字由于我们是STC所以软件中没有出现但我们可以选用Atmel公司的AT89c52功能都相同找到AT89C52后点击OK 随后它会询问我们是否添加启动文件我们一般是不需要改动启动文件的这里选择否 工程建立完毕 添加C语言文件 一般用C语言C语言效率会慢一些汇编语言更加底层命名一个main文件 创建文件成功右边是程序编辑框 2.熟悉编译和建立文件项目的操作 在左上角有三个选项分别代表【编译】【建立工程】【所有工程编译建立】一般选择第二个即可 点击【建立工程后】 3.LED发光二极管介绍 发光二极管只有正极接正极负极接负极才有电流通过 如何区分LED的正负极 电极小的是正极大的是负极引脚长的是正极短的是负极长正短负 4.开发板图查询(LED对应独立按键和MCU的原理图找对应接口) 可以进入该传送门下载对应资料传送门 下载解压后得到文件如下图所示 找到对应的LED模块 根据对应端口找到MCU中与其链接的口发现控制LED的是P2寄存器 5.单片机的进制转换问题 在单片机中 一般都是把 二进制 转换成 十六进制 原因比较好看出来十六进制事实上是二进制的一种简写0x是一个前缀代表后面的是十六进制数 6.单片机控制硬件单片机的原理1位控制8位控制的区别 CPU通过配置控制的寄存器P20/1来控制硬件电路高低电平,(PS该过程还要经过驱动器驱动如下图所示我们给P20置0对应低电平LED低接低高接高第一个D1LED灯亮其余不亮 根据以上原理我们知道 我们 既可以8位方式直接控制P2寄存器 来控制8盏LED灯也 可以通过1位方式 如下图所示通过控制该引脚高低电平来单独控制某一盏LED 相对应的代码设置会出现如下于是我们要利用进制转换来解决这个问题 经过进制转换后代码变化如下 7.添加头文件让编译器识别寄存器P2 针对如下代码编译后会报错 我们只要包含头文件就可以解决这个问题右键编辑栏即可 包含头文件成功 头文件展开后我们可以发现头文件中定义了P2寄存器的地址 8.将代码下载到单片机中 因为Keil默认不生成程序下载的文件所以需要我们点击下图所示图标生成 再次点击编译则生成下载程序文件 打开软件STC-SIP选择单片机型号 插上单片机后串口号会出现带USB的字样直接选择就行 点击“打开程序文件”选择文件夹中的下载程序文件 程序打开完毕后点击“下载” 重新打开单片机开关 再次点击开关点亮成功 二.LED闪烁1s为周期
1.用循环让二极管能够反复接收到信号 在明白点亮LED灯的操作后我们引入“循环”的概念每一次while循环二极管都会接到一次信号我们如下所示设计代码会发现由于循环发生的频率太快人眼无法捕捉到亮灭只能一直看到微弱灯光;形成一种视觉暂停效应 解决方法我们要让他每次执行后都要有一定的延时 2.利用STC-ISP的软件延时计算器 如下图所示得到延时子程序 复制粘贴到程序中 添加_nop函数的头文件 3.完整代码重复第二大点中写入开发板的过程 写入过程参考第二大点所示略 三.LED流水灯 大体操作和第四步的LED闪烁项目一致主要区别是代码区别先写出二进制下的状态再转换成十六进制代码