标题: 单片机定义P4端口的定义不被认可? [打印本页]

作者: 君工创    时间: 2022-12-30 09:07
标题: 单片机定义P4端口的定义不被认可?
用STC15F60S2,有几个端口如果定义是P2,可以通过,定义P4就不能通过。

作者: hi等你    时间: 2022-12-30 15:39
只能间接操作p4口相对应的寄存器,不能直接定义p4
作者: wufa1986    时间: 2022-12-30 15:57
怎么可能,应该是你的头文件缺少P4寄存器定义
作者: 张天师    时间: 2022-12-30 16:19
应该是楼上说的那样!
作者: 大漠落日    时间: 2022-12-30 17:34
要先用sfr 定义一下
作者: 188610329    时间: 2022-12-30 19:59
因为你没用stc15的头文件。
作者: angmall    时间: 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;

作者: hoshina    时间: 2022-12-30 22:05
缺少定义。
作者: 君工创    时间: 2022-12-30 23:36
多谢各位回答。已经解决了。要先定义sfr P4=0xe8;之后再定义P4^n.
作者: 大漠落日    时间: 2022-12-31 08:41
添加一个官方头文件就可以
作者: angmall    时间: 2022-12-31 09:40
君工创 发表于 2022-12-30 23:36
多谢各位回答。已经解决了。要先定义sfr P4=0xe8;之后再定义P4^n.

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

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


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






作者: 君工创    时间: 2022-12-31 11:22
试过了,0xe8,0xc0.都可以过。
作者: 188610329    时间: 2022-12-31 16:07
君工创 发表于 2022-12-31 11:22
试过了,0xe8,0xc0.都可以过。

你要这么说的话,unsigned char bdata P4;  之后,再sbit 也可以过,你何苦sfr ?
作者: coody_sz    时间: 2022-12-31 16:26
君工创 发表于 2022-12-31 11:22
试过了,0xe8,0xc0.都可以过。

你定义为0x80~0xff编译都可以通过的。
作者: 君工创    时间: 2022-12-31 22:35
多谢各位指正,P4=0xc0,才是正确的。
作者: npn    时间: 2023-1-1 08:40
angmall 发表于 2022-12-31 09:40
为什么是0xe8? 这个是定义 P6 的啊

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




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1