找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2669|回复: 7
收起左侧

关于STC89C52单片机引脚功能存在疑惑

[复制链接]
ID:825513 发表于 2021-5-5 20:17 | 显示全部楼层 |阅读模式
前几天在网上找到一个通过STC89C52软件模拟IIC协议读写片外EEPROM的源码,在尝试修改的过程中,对以下的引脚定义存在疑惑: Snipaste_2021-05-05_19-55-02.png

89C52的数据手册中的引脚说明

89C52的数据手册中的引脚说明



其中,我觉得 RST 像是复位功能的,而 CS 应该是片选功能的,这两个引脚只在IIC初始化的时候用到,但当我尝试将RST和CS这两个定义修改为其他引脚后,都将变得无法进行IIC通信,所以我觉得STC89C52当中的 P2^4 和 P2^5 这两个引脚是有特殊作用的;并且,我还发现,89C52软件模拟IIC中对 SDA 和 SCL 两条线的引脚定义只能分别是 P2^0 和 P2^1,修改为其他引脚后,同样无法进行IIC通信

但无论是源码本身还是STC官方的数据手册均没有对P2^0、P2^1、P2^4、P2^5这四个引脚的特殊说明,所以才来求助论坛里的大佬。

IIC初始化

IIC初始化
回复

使用道具 举报

ID:401564 发表于 2021-5-6 00:31 | 显示全部楼层
它就是个IO而已,就一个正常的IO,可以读写数据,你操作IIC用哪个IO都可以,只要有能读写数据的能力就可以,不用什么特殊说明之类的
而你这个问题是出现在IIC器件(从机)上的,你要看的是IIC器件的数据手册,这RST和CS是IIC器件要求的
回复

使用道具 举报

ID:65297 发表于 2021-5-6 03:45 | 显示全部楼层
你的问题应该是使用单片机型号的问题,程序与单片机型号不搭配,主要区别是老款51单片机引脚都是准双向弱上拉I/O口,新单片机有引脚配置功能,如果源程序是基于老款51单片机,那应该没问题,如果源程序是基于新款单片机编写的,而你用旧款单片机测试可能就会出错,主要是引脚配置问题,你看一下程序初始化过程有没有配置引脚方面的代码,IIC通讯在写前有没有配置SDA为输出,读前有没有配置SDA为输入,
所以学习单片机时要注意,旧款单片机的代码可用用在新款单片机上,但新款单片机的代码不一定能用在老款单片机上,
回复

使用道具 举报

ID:390416 发表于 2021-5-6 07:53 | 显示全部楼层
15 03 04 06 单片机IO口 四种结构.png
回复

使用道具 举报

ID:916177 发表于 2021-5-6 08:37 | 显示全部楼层
P0、P1、P2三组端口没有任何特殊功能,之所以对 SDA 和 SCL 两条线的引脚定义只能分别是 P2^0 和 P2^1是因为AT24C02的 SDA 和 SCL的端口分别连到了P2^0 和 P2^1上,详见你开发板的原理图
回复

使用道具 举报

ID:825513 发表于 2021-5-6 12:01 | 显示全部楼层
mkkop 发表于 2021-5-6 03:45
你的问题应该是使用单片机型号的问题,程序与单片机型号不搭配,主要区别是老款51单片机引脚都是准双向弱上拉 ...

源码用的是AT89S52,我用的是STC89C52,两款芯片的引脚定义都是一样的,所以应该不是芯片型号的问题
回复

使用道具 举报

ID:825513 发表于 2021-5-6 12:03 | 显示全部楼层
T990820 发表于 2021-5-6 08:37
P0、P1、P2三组端口没有任何特殊功能,之所以对 SDA 和 SCL 两条线的引脚定义只能分别是 P2^0 和 P2^1是因 ...

谢谢,找到原因了,之前忽略了开发板上EEPROM的SDA和SCL的接线引脚
回复

使用道具 举报

ID:825513 发表于 2021-5-8 20:55 | 显示全部楼层
Y_G_G 发表于 2021-5-6 00:31
它就是个IO而已,就一个正常的IO,可以读写数据,你操作IIC用哪个IO都可以,只要有能读写数据的能力就可以,不用 ...

找到原因了,单片机有个引脚是开发板上的EEPROM输入和DS1302输出共用的,需要先把连接DS1302复位端的P2^5引脚置0,使得DS1302不输出,即不对EEPROM的输入产生干扰
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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