51单片机c语言学习笔记,51单片机学习笔记.docx

PAGE6 / NUMPAGES13

51单片机 手册

TOC \o "1-3" \h \z \u HYPERLINK \l "_Toc431221573" 51单片机 手册 PAGEREF _Toc431221573 \h 1

HYPERLINK \l "_Toc431221574" 开发板 PAGEREF _Toc431221574 \h 1

HYPERLINK \l "_Toc431221575" 程序下载 PAGEREF _Toc431221575 \h 1

HYPERLINK \l "_Toc431221576" 程序开发 PAGEREF _Toc431221576 \h 1

HYPERLINK \l "_Toc431221577" 开发环境 PAGEREF _Toc431221577 \h 1

HYPERLINK \l "_Toc431221578" I2C PAGEREF _Toc431221578 \h 2

HYPERLINK \l "_Toc431221579" I2C通信 读写数据过程 PAGEREF _Toc431221579 \h 2

HYPERLINK \l "_Toc431221580" SPI 总线 PAGEREF _Toc431221580 \h 4

HYPERLINK \l "_Toc431221581" 概括 PAGEREF _Toc431221581 \h 4

HYPERLINK \l "_Toc431221582" C语言应用 PAGEREF _Toc431221582 \h 4

HYPERLINK \l "_Toc431221583" 中断 PAGEREF _Toc431221583 \h 4

HYPERLINK \l "_Toc431221584" data, idata, xdata, pdata, code PAGEREF _Toc431221584 \h 5

HYPERLINK \l "_Toc431221585" C语言中的static 详细分析 PAGEREF _Toc431221585 \h 6

开发板

程序下载

STC90XX的下载注意点:1. 3.3V和5V短路帽需要接到5V 2.J0挑到auto 3. TXD,RXD都在USB端 4. 用USB转串口线连接PC和板子 5. USB转串口的驱动装上. 6. 用PZISP.exe,芯片型号要选对。

程序开发

开发环境

需要转上keil3

工程文件后缀为uv2

一开始要新建一个project,会自动跳出选择相应芯片的窗口,选择对应的就ok, 主要是为了生成头文件

I2C

HYPERLINK "/phenixyf/article/details I2C通信 读写数据过程

在通信之初,主从机必须根据自己的要求约定好通信规则:command的定义和位置、address的位数和位置。

以读写从机寄存器数据为例:

假设从机寄存器地址为8位、从机寄存器也位8位(被读取数据为8位);

约定读command为0x01,写command位0x02;

约定主机发起通信后,第一个slave address字节收到ack后,紧跟的一个字节为command,再下面一个字节为address。

1. 读寄存器数据步骤:

? ? 1.1 主机先发起一次通信,将读command(0x01)和需要读取的寄存器地址address写入从机;(主机发出写操作)

? ? 1.2 从机firmware的处理:

? ? ? ? ? 1.2.1 将command和address分别提取出来;

? ? ? ? ? 1.2.2 判断command的含义(本例中,是读指令还是写指令);

? ? ? ? ? 1.2.3 根据收到的的address,将对应寄存器的的数据放入从机I2C输出buffer;(这个步骤可以使用指针)

? ? 1.3 主机再次发起一次通信,读取从机的数据;(主机发出读操作)

2. 写操作步骤:

? ? 2.1 主机发起通信,按约定依次写入command、要写入的从机寄存器地址address和要写入的数据data;

? ? 2.2 从机firmware要做的处理:

? ? ? ? ? 2.2.1 分别提取command、address和data;

? ? ? ? ? 2.2.2 根据command做出判断(本例中则判断是写入还是读取);

? ? ? ? ? 2.2.3 将data写入与接收到的address对应的寄存器。(这个步骤可以使用指针)。

SPI 总线

概括

通常有一个主设备和一个或多个从设备,需要至少4根线

(1)SDO – 主设备数据输出,从设备数据输入;

(2)SDI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值