找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4462|回复: 12
打印 上一主题 下一主题
收起左侧

单片机引脚只有高低电平1、0之分,那数据是如何传输的?

[复制链接]
跳转到指定楼层
楼主
ID:511168 发表于 2020-3-15 20:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
void Write_MAX7219_Byte(uchar record)        //MAX7219写入字节
{  //假如record = 0xF0
        uchar i = 0;
        MAX7219_CS = 0;
        for(i=1;i<=8;i++)  //传输8位数据
        {
                MAX7219_CLK = 0;
                MAX7219_DIN = record & 0x80; //MAX7219_DIN = 1111 0000 | 1000 0000 = 1000 0000(取出高位)
                record = record << 1;  //左移,准备提取下一位
                MAX7219_CLK = 1;
        }
}
因为单片机引脚只有高低电平(1、0)之分,那么我想知道当i=1时,MAX7219_DIN(STC89C52中P20引脚)是怎么传输的?是传输高电平1,
还是传输字节1000 0000?原理是什么?


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:235200 发表于 2020-3-15 23:12 | 只看该作者
1个引脚每一时刻只能表示0和1里的1个,表示0时电压0.8V以下,表示1时电压2.4V以上,对单片机来说,3.3V单片机一般3.3V表示1,0V表示0;5V单片机一般5V表示1,0V表示0;
回复

使用道具 举报

板凳
ID:709172 发表于 2020-3-16 00:11 | 只看该作者
0和1决定信号电平,每次传送1个0或1,即每次传送1个低或高电平。
回复

使用道具 举报

地板
ID:462827 发表于 2020-3-16 00:46 | 只看该作者
串行的话每次传一个bit,循环8次正好传完一个字节
回复

使用道具 举报

5#
ID:420836 发表于 2020-3-16 05:39 | 只看该作者
在数字电子产品中,0和1代表一切。 数据包中的所有位都用0或1编码。数据包在设备之间传输并在接收到数据后解码。
回复

使用道具 举报

6#
ID:675145 发表于 2020-3-16 16:43 | 只看该作者
当i=1时,MAX7219_DIN=1000 000的真值为1,所以传输1个位“1”,而不是一个字节“0x80”。
回复

使用道具 举报

7#
ID:675145 发表于 2020-3-16 16:49 | 只看该作者
当i=1时, MAX7219_DIN = 0x80的真值为1,所以传输的是1个位“1”,而不是1个字节“0x80”。相反,为假时传输“0”,而不是传输“0x00”
例如:if(MAX7219_DIN = 0x80),括号里的真值为1时,执行if语句,否则跳过。
回复

使用道具 举报

8#
ID:709787 发表于 2020-3-17 23:21 来自手机 | 只看该作者
一个io口一次只能传输一个
回复

使用道具 举报

9#
ID:709787 发表于 2020-3-17 23:24 来自手机 | 只看该作者
一个io口一次只能传输一个位,就是0或者1!!你有一个for循环八次。就是八次一起才传一个八位的16进制数。后面有一个clk。这个是给模块信号:你可以读我给你的数据了。避免模块在你不要它读的时候读了错误的数。
回复

使用道具 举报

10#
ID:531524 发表于 2020-3-18 11:17 | 只看该作者
这个可以这样理解,串行通信就是在一个单位时间内,比如1s内 我们把它划分成10份就是100ms,引脚在1s内就有10个状态,比如1100100011,这样一串二进制编码就可以表示一个含义。这就是串行通信,并行通信就更好理解了,比如有10个引脚在数据采集的时候就可以得到一串10位二进制编码。
这要理解就很简单了。
回复

使用道具 举报

11#
ID:602576 发表于 2020-3-18 16:03 | 只看该作者
首先搞明白,MAX7219是SPI接口,使用时最好用单片机或DSP的SPI接口来操作,如果使用IO模拟SPI接口,那会很费劲的
回复

使用道具 举报

12#
ID:724314 发表于 2020-4-7 21:01 | 只看该作者
一个io口一次只能传输一个
回复

使用道具 举报

13#
ID:692132 发表于 2020-4-7 21:18 来自手机 | 只看该作者
这样理解,把一段时间画成一个线段,再把线段分成很多个小段,每一小段时间里单片机引脚只能有高或低电平,但下一小段又可以有相同或不同的高低电平,经过几个小段,就可以表示几位二进制数了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表