找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机定义P4端口的定义不被认可?

[复制链接]
跳转到指定楼层
楼主
用STC15F60S2,有几个端口如果定义是P2,可以通过,定义P4就不能通过。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:996773 发表于 2022-12-30 15:39 | 只看该作者
只能间接操作p4口相对应的寄存器,不能直接定义p4
回复

使用道具 举报

板凳
ID:879348 发表于 2022-12-30 15:57 | 只看该作者
怎么可能,应该是你的头文件缺少P4寄存器定义
回复

使用道具 举报

地板
ID:814525 发表于 2022-12-30 16:19 | 只看该作者
应该是楼上说的那样!
回复

使用道具 举报

5#
ID:195496 发表于 2022-12-30 17:34 | 只看该作者
要先用sfr 定义一下
回复

使用道具 举报

6#
ID:624769 发表于 2022-12-30 19:59 来自手机 | 只看该作者
因为你没用stc15的头文件。
回复

使用道具 举报

7#
ID:155507 发表于 2022-12-30 20:10 | 只看该作者
要先用sfr 定义一下

sfr P4   = 0xC0;
sbit P40 = P4^0;
sbit P41 = P4^1;
sbit P42 = P4^2;
sbit P43 = P4^3;
sbit P44 = P4^4;
sbit P45 = P4^5;
sbit P46 = P4^6;
sbit P47 = P4^7;
回复

使用道具 举报

8#
ID:1059846 发表于 2022-12-30 22:05 | 只看该作者
缺少定义。
回复

使用道具 举报

9#
ID:965189 发表于 2022-12-30 23:36 | 只看该作者
多谢各位回答。已经解决了。要先定义sfr P4=0xe8;之后再定义P4^n.
回复

使用道具 举报

10#
ID:195496 发表于 2022-12-31 08:41 | 只看该作者
添加一个官方头文件就可以
回复

使用道具 举报

11#
ID:155507 发表于 2022-12-31 09:40 | 只看该作者
君工创 发表于 2022-12-30 23:36
多谢各位回答。已经解决了。要先定义sfr P4=0xe8;之后再定义P4^n.

为什么是0xe8? 这个是定义 P6 的啊
回复

使用道具 举报

12#
ID:155507 发表于 2022-12-31 09:48 | 只看该作者
君工创 发表于 2022-12-30 23:36
多谢各位回答。已经解决了。要先定义sfr P4=0xe8;之后再定义P4^n.


为什么会是 定义sfr P4=0xe8 ?





回复

使用道具 举报

13#
ID:965189 发表于 2022-12-31 11:22 | 只看该作者
试过了,0xe8,0xc0.都可以过。
回复

使用道具 举报

14#
ID:624769 发表于 2022-12-31 16:07 来自手机 | 只看该作者
君工创 发表于 2022-12-31 11:22
试过了,0xe8,0xc0.都可以过。

你要这么说的话,unsigned char bdata P4;  之后,再sbit 也可以过,你何苦sfr ?
回复

使用道具 举报

15#
ID:1034262 发表于 2022-12-31 16:26 | 只看该作者
君工创 发表于 2022-12-31 11:22
试过了,0xe8,0xc0.都可以过。

你定义为0x80~0xff编译都可以通过的。
回复

使用道具 举报

16#
ID:965189 发表于 2022-12-31 22:35 | 只看该作者
多谢各位指正,P4=0xc0,才是正确的。
回复

使用道具 举报

17#
ID:57657 发表于 2023-1-1 08:40 | 只看该作者
angmall 发表于 2022-12-31 09:40
为什么是0xe8? 这个是定义 P6 的啊

不同系列的部分sfr地址可能会不一样,不能乱用其他系列的头文件。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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