数码之家

 找回密码
 立即注册

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 3609|回复: 12

[C51] STC90C516RD+单片机P4口疑惑

[复制链接]
发表于 2021-7-11 10:37:26 | 显示全部楼层 |阅读模式

爱科技、爱创意、爱折腾、爱极致,我们都是技术控

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
STC90C516RD+单片机,因IO口不够用,于是想用P4.0~P4.2口,Keil3的52.h头文件无法编辑,换STC90C5xAD.H头文件编辑通过。首先测试了一下高低电平切换是否正常转换,结果没有反应,始终为上电时的高电平,初始化设置为零也不行。但同样的P2口却没有问题,请教问题出在那里。
sbit L1=P2^5;
sbit L2=P4^0;;
sbit L3=P4^1;
sbit L4=P4^2;
主程序切换L1、L2、L3、L4口的高低。
发表于 2021-7-11 10:52:58 | 显示全部楼层
有个寄存器叫P4SW
回复 支持 反对

使用道具 举报

发表于 2021-7-11 11:00:50 | 显示全部楼层
寄存器   ,,,,,,P4SW
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-11 11:08:07 | 显示全部楼层
rush 发表于 2021-7-11 10:52
有个寄存器叫P4SW

谢谢回复,本人小白,头文件里不是设置好的吗(如其它口)?还需要单独设置吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-11 11:20:46 | 显示全部楼层
adminismk 发表于 2021-7-11 11:00
寄存器   ,,,,,,P4SW

这么些,,,啊?头晕了。
回复 支持 反对

使用道具 举报

发表于 2021-7-11 11:22:31 | 显示全部楼层
wgsd 发表于 2021-7-11 11:20
这么些,,,啊?头晕了。

有一些端口是给寄存器用的,,如果你想用也不是不行,,就是需要更加明确的定义,,具体可以看看数据手册
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-11 13:25:33 | 显示全部楼层
谢谢朋友的指导,头文件里不会改啊,退休多年的老者了,没文化了。没办法又用52.h头文件,在程序里声明定义P4口后,好用了,再次谢谢。
回复 支持 反对

使用道具 举报

发表于 2021-7-11 14:58:18 | 显示全部楼层
在主函数的第一句加上
P4SW=0x70;
回复 支持 1 反对 0

使用道具 举报

发表于 2021-7-12 08:33:47 | 显示全部楼层
wgsd 发表于 2021-7-11 13:25
谢谢朋友的指导,头文件里不会改啊,退休多年的老者了,没文化了。没办法又用52.h头文件,在程序里声明定义 ...

既然你自己声明了P4口就好用了,估计你用的STC头文件里没有定义好P4口,其实只要打开这个.h文件查看一下就一目了然了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-12 09:19:46 | 显示全部楼层
慕名而来 发表于 2021-7-12 08:33
既然你自己声明了P4口就好用了,估计你用的STC头文件里没有定义好P4口,其实只要打开这个.h文件查看一下 ...

应该是没有选用到普通口吧,下图是头文件里的。 总之,在几位喜欢 “兔  兔” 的美女热心提示下整好了,我也喜欢 兔兔 。


感谢大家的帮助。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册 微信登录

x
回复 支持 反对

使用道具 举报

发表于 2021-7-12 10:19:24 | 显示全部楼层
听说STC的某些型号的某些端口上电后必须初始化才能使用。
官方自己承认是BUG。
就是必须要设置一下该端口的输出模式。
具体可以去查一下手册。
回复 支持 反对

使用道具 举报

发表于 2021-7-15 23:19:09 | 显示全部楼层
jjbboox 发表于 2021-7-12 10:19
听说STC的某些型号的某些端口上电后必须初始化才能使用。
官方自己承认是BUG。
就是必须要设置一下该端口的 ...

官方没说是BUG,而是STC8等系列后,为防止IO驱动电机、继电器等在上电时电平不确定专门设为高阻状态,避免乱跳。

官方手册有专门的说明。IO应该设置状态后使用。同样,串口的引脚(除P30,P31)应该设置位准双向。PWM等引脚也应做相应的设置。

(826)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-7-16 11:09:15 | 显示全部楼层
autopccopy 发表于 2021-7-15 23:19
官方没说是BUG,而是STC8等系列后,为防止IO驱动电机、继电器等在上电时电平不确定专门设为高阻状态,避 ...

奥,后出的这个改进不错,我就是用其驱动继电器,试验了一下,的确上电时IO口高电平,程序运行后初始化到低电平。这个对继电器等赵成乱动作确实不好,而且高电平内部的弱上拉短路电流只有十几uA,还得外加上拉,所以改成低电平触发了。
回复 支持 反对

使用道具 举报

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

本版积分规则

APP|手机版|小黑屋|关于我们|联系我们|法律条款|技术知识分享平台

闽公网安备35020502000485号

闽ICP备2021002735号-2

GMT+8, 2025-6-28 12:49 , Processed in 0.296400 second(s), 9 queries , Redis On.

Powered by Discuz!

© 2006-2025 MyDigit.Net

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