目录
首先,介绍下流水灯的原理,下图为我们这个工程的原理图。其中主要包括51单片机芯片和流水灯模块,流水灯模块接在了单片机的P1口,200欧电阻是用来保护电路的。由原理图可以知道,我们可以看到LED的左边接了电源(高电平),在P1口给一个低电平即可点亮LED灯。相反,如果要LED灯熄灭,就要把P1口的电平变为高电平即可。要实现流水灯功能,我们只要将LED1~LED8依次点亮、熄灭,以此类推,8只LED变回一亮一暗的做流水灯了。

大家可以打开Proteus新建一个名为LED的工程,然后照着我的硬件图进行连接,需要用到的元器如下图,大家可以在元件库(点击P按钮进入元件库,上一章讲过的)里面搜索。

硬件设计好了之后,我们就可以根据硬件连接来写代码了,也就是我们的软件设计环节。
首先我们要新建一个工程,打开Keil新建一个名为LED的工程,在下面的代码复制到main.c里。新建工程上一章详细讲过了,不知道怎么建工程的同学见第二章。我的代码将下面的代码复制到工程里,再进行初步编译,看看代码是否会报错。
#include <reg51.h>
#include <intrins.h>
void delay(unsigned char i)
{
unsigned char m,n;
for(m=i;m>0;m--)
for(n=200;n>0;n--);
}
void main()
{ unsigned char k;
while(1)
{
P1=0xfe;
for(k=0;k<8;k++)
{
delay(500);
P1=_crol_(P1,1);
}
}
}

我们可以看到,初步编译之后,编译窗口显示0错误0警告,说明我们的代码在语法上是正确的,软件设计部分就基本完成了,最后我们怎么把软件和硬件结合起来呢?
在综合调试部分,我将教大家如何把代码烧录到硬件里,最后实现我们的流水灯效果。
首先我们必须知道一个概念,计算机是只认识0和1的,我们对电脑的所有操作和命令,最终都会变成很多0101010101001011010111,然后计算机就能看懂是什么意思,并作出反应,我们的单片机其实也是一台计算机,它也只认识0和1,但是我们刚刚软件设计写的代码是C语言写的,只有我们人能看懂,所以要怎么做才能把C语言转换为0和1的二进制语言呢,其实很简单,我们只需进行一个设置即可,跟我一起操作吧。
首先点击Keil主界面的这个魔法棒。


这个魔法棒很重要,里面有很多重要的设置,大家可以多摸索摸索,可以看到我们的2步骤是Create HEX File,翻译一下就是创建HEX文件,HEX文件其实就是机器代码,也就是计算机可以识别的文件了。
HEX文件:如何大家百度一下会发现HEX是十六进制的含义,那么刚刚不是说计算机只能识别二进制吗,为什么这里是十六进制。其实导入到单片机的是二进制文件,之所以要变为HEX文件,是因为HEX文件带校验,在传输、存储过程中有错误的话,容易提前发现,而二进制文件就不能,假如在存储中由于某一位或几位数受损,那么下载时照样按受损的文件导入到单片机。但最后烧录时HEX文件首先变成二进制数,再烧录进入单片机。
设置了之后我们再进行编译,这个时候就不需要全编译了,因为之前全编译过一次,现在进行部分编译即可,因为如果是很长的代码全编译一次很费时间,部分编译只会编译我们刚刚被修改过的设置和代码)

我们可以去流水灯工程的路径下找到这个HEX文件,用记事本打开给大家看看里面是什么。

这就是我们刚刚C语言的代码被转换成了计算机所能识别的文件了,虽然我们看不懂HEX文件的含义,但在计算机眼里,这就是让他做流水灯的指令。
下面我们来把这个文件放到单片机里面,也就是到了我们最后的环节了——烧录代码。首先打开Proteus,前面硬件部分已经连接好了。

进入编辑界面,我们在Program File里找到我们刚刚生成的hex文件



现在我们的HEX文件已经烧录到单片机当中,我们只需要点击运行就可以看到仿真的现象了。

下面就是最后实现的流水灯效果(动态依次点亮),大家做出来了吗。

在这个流水灯的实现教程中,我是以工程的形式展现出来的。原因在于我想让大家从入门开始就建立起工程的意识,从硬件设计再到软件设计,最后我们进行综合调试,把工程实现。包括在这章里面,我讲了很多细节的知识,比如全编译和部分编译的使用、HEX文件等,这都是在实际工程中经过自己的理解总结出来的,相信大家学习到这里,已经基本掌握了这两个软件的使用,对于刚入门51单片机,我们可以使用这两个软件做很多有意思的工程,下一章我会教大家如何如何用数码管显示自己的学号。
我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden
华为OD机试题本篇题目:明明的随机数题目输入描述输出描述:示例1输入输出说明代码编写思路最近更新的博客华为od2023|什么是华为od,od薪资待遇,od机试题清单华为OD机试真题大全,用Python解华为机试题|机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为o
C#实现简易绘图工具一.引言实验目的:通过制作窗体应用程序(C#画图软件),熟悉基本的窗体设计过程以及控件设计,事件处理等,熟悉使用C#的winform窗体进行绘图的基本步骤,对于面向对象编程有更加深刻的体会.Tutorial任务设计一个具有基本功能的画图软件**·包括简单的新建文件,保存,重新绘图等功能**·实现一些基本图形的绘制,包括铅笔和基本形状等,学习橡皮工具的创建**·设计一个合理舒适的UI界面**注明:你可能需要先了解一些关于winform窗体应用程序绘图的基本知识,以及关于GDI+类和结构的知识二.实验环境Windows系统下的visualstudio2017C#窗体应用程序三.
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,
说在前面这部分我本来是合为一篇来写的,因为目的是一样的,都是通过独立按键来控制LED闪灭本质上是起到开关的作用,即调用函数和中断函数。但是写一篇太累了,我还是决定分为两篇写,这篇是调用函数篇。在本篇中你主要看到这些东西!!!1.调用函数的方法(主要讲语法和格式)2.独立按键如何控制LED亮灭3.程序中的一些细节(软件消抖等)1.调用函数的方法思路还是比较清晰地,就是通过按下按键来控制LED闪灭,即每按下一次,LED取反一次。重要的是,把按键与LED联系在一起。我打算用K1来作为开关,看了一下开发板原理图,K1连接的是单片机的P31口,当按下K1时,P31是与GND相连的,也就是说,当我按下去时
目录前言滤波电路科普主要分类实际情况单位的概念常用评价参数函数型滤波器简单分析滤波电路构成低通滤波器RC低通滤波器RL低通滤波器高通滤波器RC高通滤波器RL高通滤波器部分摘自《LC滤波器设计与制作》,侵权删。前言最近需要学习放大电路和滤波电路,但是由于只在之前做音乐频谱分析仪的时候简单了解过一点点运放,所以也是相当从零开始学习了。滤波电路科普主要分类滤波器:主要是从不同频率的成分中提取出特定频率的信号。有源滤波器:由RC元件与运算放大器组成的滤波器。可滤除某一次或多次谐波,最普通易于采用的无源滤波器结构是将电感与电容串联,可对主要次谐波(3、5、7)构成低阻抗旁路。无源滤波器:无源滤波器,又称
MIMO技术的优缺点优点通过下面三个增益来总体概括:阵列增益。阵列增益是指由于接收机通过对接收信号的相干合并而活得的平均SNR的提高。在发射机不知道信道信息的情况下,MIMO系统可以获得的阵列增益与接收天线数成正比复用增益。在采用空间复用方案的MIMO系统中,可以获得复用增益,即信道容量成倍增加。信道容量的增加与min(Nt,Nr)成正比分集增益。在采用空间分集方案的MIMO系统中,可以获得分集增益,即可靠性性能的改善。分集增益用独立衰落支路数来描述,即分集指数。在使用了空时编码的MIMO系统中,由于接收天线或发射天线之间的间距较远,可认为它们各自的大尺度衰落是相互独立的,因此分布式MIMO
在VMware16.2.4安装Ubuntu一、安装VMware1.打开VMwareWorkstationPro官网,点击即可进入。2.进入后向下滑动找到Workstation16ProforWindows,点击立即下载。3.下载完成,文件大小615MB,如下图:4.鼠标右击,以管理员身份运行。5.点击下一步6.勾选条款,点击下一步7.先勾选,再点击下一步8.去掉勾选,点击下一步9.点击下一步10.点击安装11.点击许可证12.在百度上搜索VM16许可证,复制填入,然后点击输入即可,亲测有效。13.点击完成14.重启系统,点击是15.双击VMwareWorkstationPro图标,进入虚拟机主
@作者:SYFStrive @博客首页:HomePage📜:微信小程序📌:个人社区(欢迎大佬们加入)👉:社区链接🔗📌:觉得文章不错可以点点关注👉:专栏连接🔗💃:感谢支持,学累了可以先看小段由小胖给大家带来的街舞👉微信小程序(🔥)目录自定义组件-behaviors 1、什么是behaviors 2、behaviors的工作方式 3、创建behavior 4、导入并使用behavior 5、behavior中所有可用的节点 6、同名字段的覆盖和组合规则总结最后自定义组件-behaviors 1、什么是behaviorsbehaviors是小程序中,用于实现
遍历文件夹我们通常是使用递归进行操作,这种方式比较简单,也比较容易理解。本文为大家介绍另一种不使用递归的方式,由于没有使用递归,只用到了循环和集合,所以效率更高一些!一、使用递归遍历文件夹整体思路1、使用File封装初始目录,2、打印这个目录3、获取这个目录下所有的子文件和子目录的数组。4、遍历这个数组,取出每个File对象4-1、如果File是否是一个文件,打印4-2、否则就是一个目录,递归调用代码实现publicclassSearchFile{publicstaticvoidmain(String[]args){//初始目录Filedir=newFile("d:/Dev");Datebeg