前面我们学习了《8051单片机实战分析(以STC89C52RC为例) | 07 - 独立按键驱动》,但是在单片机系统中,若使用按键较多时如电子密码锁、电话机键盘等一般都至少有12到16个按键,通常采用矩阵式按键,即矩阵键盘。1 矩阵键盘矩阵键盘又称行列键盘,它是用四条I/O线作为行线,四条I/O线作为列线组成的键盘。在行线和列线的每个交叉点上设置一个按键。这样键盘上按键的个数就为4*4个。
1 数码管介绍数码管是给我们展示数据或者信息的电子器件,它是最原始以及成本比较低。以下是数码管的实物图: 1.1 数码管的段选与位选以下是数码管的每一段所对应的位置: 从图可以看出来,数码管共有 a、b、c、d、e、f、g、dp 这么 8 个段,而实际上,这 8 个段每一段都是一个 LED 小灯,所以一个数码管就是由 8个 LED 小灯组成的。注意 dp 这个段,它是表示一个小数点!我们看一下数码
Linux 被部署到比 Linus Torvalds 在他的宿舍里开发时所预期的更广泛的设备。令人震惊的支持了各种芯片,使得Linux 可以应用于大大小小的设备上:从 IBM 的巨型机到不如其连接的端口大的微型设备,以及各种大小的设备。它被用于大型企业数据中心、互联网基础设施设备和个人的开发系统。它还为消费类电子产品、移动电话和许多物联网设备提供了动力。在为桌面和企业级
1 原理图以点亮单片机P2.2端口的LED为例:从图中不难看出,LED的右边是通过电阻接到VCC,如果要点亮LED就得把LED左边的端口进行拉低,根据二极管的单向导电性,LED正向导通从而LED发光。2 代码main.c文件的代码:#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器sbit led=P2^2; //将单片机的P2.2端口定义为led/*
Overlayfs是一种类似aufs的一种堆叠文件系统,于2014年正式合入Linux-3.18主线内核,目前其功能已经基本稳定(虽然还存在一些特性尚未实现)且被逐渐推广,特别在容器技术中更是势头难挡。本系列博文将首先介绍overlayfs的基本概念和应用场景,然后通过若干实例描述它的使用方式,最后从源码角度结合Linux VFS Layer和Ext4fs连通分析overlayfs的实现。本文先来
建议先看《8051单片机实战分析(以STC89C52RC为例) | 01 - 点亮一个LED》,我们从这个基础上修改代码。代码修改如下:#include "reg52.h" //此文件中定义了单片机的一些特殊功能寄存器typedef unsigned int u16; //对数据类型进行声明定义typedef unsigned char u8;sbit led=P2^2;
建议先看: 《8051单片机实战分析(以STC89C52RC为例) | 01 - 点亮一个LED》 《8051单片机实战分析(以STC89C52RC为例) | 02 - LED延时约5s闪烁》 我们从这些基础上修改代码。1 原理图从图中不难看出,整个P2端口都接有LED,写代码时需要驱动整个P2端口。 2 代码#include "reg52.h" //此文件中定义了单片
OPTEE-OS技术概要
1 PC机与嵌入式系统启动的对比1.1、计算机系统的主要部件(1)计算机系统就是以CPU为核心来运行的系统。 典型的计算机系统有: PC机(台式机+笔记本) 嵌入式设备(手机、平板电脑、游戏机) 单片机(家用电器像电饭锅、空调)(2)计算机系统的组成部件非常多,不同的计算机系统组成部件也不同。但是所有的计算机系统运行时需要的主要核心部件都是3个东西: CPU +&n
彩色阴极射线管的剖面图:1. 电子QIANG Three Electron guns (for red, green, and blue phosphor dots)2. 电子束 Electron beams3. 聚焦线圈 Focusing coils4. 偏向线圈 Deflection coils5.&n
我们在linux上调试代码的时候, 往往需要往终端中输出大量的调试信息, 但是如果各个级别的调试信息文字的颜色、大小都是一样的话, 我们往往无法一眼找到比如错误日志或者其他级别的日志图中只是简单的做了个测试, 真实环境下的调试信息, 远比配图要复杂的多, 如果在调试某个 bug 的时候, 一下子甩出一堆文字, 要定位部分输出, 还是很考究眼力。有没有什么方法能让调试信息一目了然呢? 当然有, 而且
开发工作中经常见到终端中各种命令输出的彩色文字,例如 ls 命令就以不同颜色表示文件的不同类型。而在我们自己写的程序输出的信息却是默认的黑色,本文将为你介绍终端输出带颜色的文字的原理,让我们开发的程序输出的控制台信息有更强的可读性!ANSI Escape code终端用于文本字符的输入和输出,ASCII编码中有些字符是不能用来打印显示的,比如'\a' 0x
在初步了解overlayfs用途之后,本文将介绍如何使用overlayfs以及理解该文件系统所特有的一些功能特性。由于目前主线内核对overlayfs正在不断的开发和完善中,因此不同的内核版本改动可能较大,本文尽量与最新的内核版本保持一致,但可能仍会存在细微的出入。内核版本:Linux-4.14示例环境:pi3挂载文件系统挂载文件系统的基本命令如下:mount -t overlay overlay
国际名酒知识与品鉴
温度是表示物体冷热程度的物理量,微观上来讲是物体分子热运动的剧烈程度。温度只能通过物体随温度变化的某些特性来间接测量,而用来量度物体温度数值的标尺叫温标。它规定了温度的读数起点(零点)和测量温度的基本单位。国际单位为热力学温标(K)。目前国际上用得较多的其他温标有华氏温标(°F)、摄氏温标(°C)和国际实用温标。从分子运动论观点看,温度是物体分子运动平均动能的标志。温度是大量分子热运动的集体表现,
玩转内核链表list_head,3个超级哇塞的的例子
蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路。三极管的作用为驱动,通过三极管放大驱动电流,从而可以让蜂鸣器发出声音。有源蜂鸣器和无源蜂鸣器的区别:这里的“源”不是指电源。而是指震荡源。 也就是说,有源蜂鸣器内部带震荡源,所以只要一通电就会
一、建立buildroot编译环境$ sudo apt install gcc build-essential bison flex gettext tcl sharutils libncurses-dev zlib1g-dev \ exuberant-ctags g++ texinfo patch vim libtool bc git python3安装qemu工具:$ sudo apt ins
一、安装gitsudo apt-get install git二、设置git用户名与邮箱根据GitHub仓库注册的用户名与邮箱进行设置:git config --global user.name "Your Name"git config --global user.email "email@example.com"git config --global credential.help
一、拉取最新Ubuntu镜像docker image pull是抓取 image 文件的命令:$ docker pull ubuntu:latestlatest: Pulling from library/ubuntud72e567cc804: Pull complete 0f3630e5ff08: Pull complete b6a83d81d1f4: Pull complete Dig
一、设置Docker仓库(1)更新 apt 包索引:$ sudo apt-get update(2)安装 apt 依赖包,用于通过HTTPS来获取仓库:$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-com
一、更换国内镜像$ mkdir ~/.pip$ vim ~/.pip/pip.conf在 pip.conf 文件中添加以下内容:[global]timeout = 6000index-url = https://pypi.tuna.tsinghua.edu.cn/simpletrusted-host = pypi.tuna.tsinghua.edu.cn 二、升级pip3$ pip3 instal
一、创建.bin文件夹mkdir ~/.bin二、把.bin文件夹加入环境变量vim ~/.profile PATH更改一下内容:# set PATH so it includes user's private bin directoriesPATH="$HOME/bin:$HOME/.local/bin:$HOME/.bin:$PATH"三、下载repo工具git clone http
一、添加Etcher仓库echo "deb https://deb.etcher.io stable etcher" | sudo tee /etc/apt/sources.list.d/balena-etcher.list二、添加网站GPG密钥sudo apt-key adv --keyserver hkps://keyserver.ubuntu.com:443 --recv-keys 379C
一、执行以下命令安装openNTPDsudo pacman -S openntpdsudo systemctl restart openntpdsudo systemctl enable openntpd二、关于openNTPDOpenNTPD是一个Unix系统网络时间协议(NTP)实现的守护进程,可以使计算机系统的本地时钟与远程NTP服务器同步。它也可以作为一个NTP兼容客户端的NTP服务器。
一、打开终端执行以下命令:sudo pacman -S vim二、执行vim发生错误:$ vim avim: error while loading shared libraries: libperl.so: cannot open shared object file: No such file or directory三、安装libperl.so库:sudo pacman -S perl
一、resize命令安装执行如下命令:$ sudo apt-get install xterm二、resize命令介绍Linux resize命令设置终端机视窗的大小。执行resize指令可设置虚拟终端机的视窗大小。(1)语法resize [-cu][-s <列数> <行数>]参数:-c 就算用户环境并非C Shell,也用C Shell指令改变视窗大小。-s <列
执行如下命令:$ sudo date -s "20200907 21:35:50"$ sudo hwclock --systohc
一、string命令安装执行如下命令:$ sudo apt-get install binutils二、GNU binutilsGNU binutils是一组二进制工具集。包括:addr2line ar gprof nm objcopy objdump ranlib size strings strip。其中 ar 用于建立、修改、提取档案文件(archive)。archive是一个包含
window版本:win10专业版、x64虚拟机版本:VMware Workstation Pro 15.5manjaro发行版:manjaro-xfce-20.0.3-200606-linux56一、下载Manjaro-xfce镜像文件清华大学镜像:https://mirrors.tuna.tsinghua.edu.cn/osdn/storage/g/m/ma/manjaro/xfce/20
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号