-
DS18B20 是美信公司的一款温度传感器,单片机可以通过 1-Wire 协议与 DS18B20 进行通信,最终将温度读出。1-Wire 总线的硬件接口很简单,只需要把 DS1...
-
PCF8591 的通信接口是 I2C,那么编程肯定是要符合这个协议的。单片机对 PCF8591 进行初始化,一共发送三个字节即可。第一个字节,和 EEPROM 类似,是器件地址...
-
我们前边学习 UART、I2C、SPI 这些通信协议,都是最底层的协议,是“位”级别的协议。而我们在学习 13 章做实用串口通信程序的时候,我们通过串口...
-
给从机下发不同的指令,从机去执行不同的操作,这个就是判断一下功能码即可,和我们前边学的实用串口例程是类似的。多机通信,无非就是添加了一个设备地址判断而已,难度也不大。我们找了一...
-
在PIC系列单片机入门并不难(1)中,我们已经把8条腿消化掉了,其实我们要弄明白的也就3只腿,我们再简单一些,先整明白两条腿,即GP0,GP1...
-
在PIC系列单片机入门并不难(2)中讲的是两个指令如何控制管脚电平的高低。前提是所有管脚已经被定义成输出了(OUT)如果被定义成了输入,则上次...
-
前面已经学会了三条指令,至此,8位寄存器的概念概念一定要建立起来,程序通过写入寄存器不同的数据控制管脚作为输入使用还是输出使用,作为输出时是输...
-
单片机的大部分指令,或者说单片机所做的大部分工作,多数在写入或读出寄存器。关于寄存器的初步概念我想我们已经建立起来了,它是一个能够存储8位二进...
-
下面我们学习两个新指令incf和decf,它们都是对某一个寄存器进行增1或减1操作,例句中假如我们要操作的寄存器是09H。
&n...
-
下面介绍单片机汇编语言里的一个概念“子程序”
先打个比方,如果你做一...
-
自己以前用结构体时,较少封装实现方法即:函数指针。这一点,造成了现在对于程序扩展起来有些捉襟见肘,这里以后要注意。
同时,函数参数也尽量使用结构体,这样避免函数接口...
-
首先普通变量有两种形态:a &a
a:表示内存中的值。
&a:表示存放该值的内存地址。
指针变量有3种形态:p *p &p;
p: ...
-
最近在进行C语言复习,不借助课本死知识,试图直接通过某些方式进行推理验证,来得出一些听过的和没听过的、还有忘记的结论。
比较浅,适合初学者看。但也有一些不容易发现的小...
-
1.位段结构中位段的定义格式为: unsigned <成员名>:<二进制位数> 例如: struct bytedata&nbs...
-
对于堆,栈,堆栈的味道,一直就跟猪八戒吃啥来着,从没有细细地品尝过。发了下狠心,各个网页看了很多,这里就把我东抓西拼的东西整理整理。
一 这些个概念怎么来的...
-
volatile 的英文解释是——“易失的,易改变的”。
顾名思义,这个关键字的含义是向编译器指明变量的内容可能会由于编译器意想不...
-
一、五大内存分区:
内存分成5个区,它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。
1、栈区(stack):FIFO就是那些由编译器在...
-
举例说明volatile:
volatile int i=10;
int j = i;
...
int k = i;
volatile 告诉编译器i是随时可能发生变化的,...
-
1、sizeof操作符
sizeof(类型说明符,数组名或表达式)
sizeof 变量名
作用:返回一个对象或类型所占的内存字节数
size是尺寸,of是…&...
-
附程序分布图:
程序的内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动分配释放 ,存放函...