6992|13

7

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

问个问题,大家看下 [复制链接]

我想定义一下51单片机P2口的高四位,用一个变量表示,大家有没有好的办法啊,指教一下
此帖出自单片机论坛

最新回复

P2&0xXF 就行了。 X就是你要设置的值。。  详情 回复 发表于 2007-9-5 11:05
点赞 关注
 

回复
举报

7

帖子

0

TA的资源

一粒金砂(中级)

沙发
 

回复:问个问题,大家看下

来人啊,大家讨论下
此帖出自单片机论坛
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

回复:问个问题,大家看下

51里可以用SFR来定义端口如sfr P0 = 0x80; 其实你用 sfr PORT0 = 0x80;来定义是一样的,这样PORT0和P0具有等同的效果,如果说sfr是变量类型定义的话,那么你说的功能就可以实现,如你可以这样定义SFR PORTX; 如果你想让PORTX指向PO,那么你就用PORTX = 0X80; 但是在KEIL C中不可以这样用,所以你说的功能也就不能实现了.这个取决于编译器是否支持.
此帖出自单片机论坛
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(中级)

4
 

回复:问个问题,大家看下

我说的是定义4位,你那样是定义8位.
此帖出自单片机论坛
 
 
 

回复

6

帖子

0

TA的资源

一粒金砂(初级)

5
 

回复:问个问题,大家看下

能定义8位就能定义4位,这个道理就不用说了吧~~ 不知道还有其他的方法吗~~ 请高手跟贴~
此帖出自单片机论坛
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

6
 

回复:问个问题,大家看下

1、用结构体的位域; 2、自己写个51的c编译器,增加一个4位的变量;
此帖出自单片机论坛
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

7
 

回复:问个问题,大家看下

KEIL里是没有办法了...
此帖出自单片机论坛
 
 
 

回复

3

帖子

0

TA的资源

一粒金砂(中级)

8
 

回复:问个问题,大家看下

不知道你想做什么,如果应用,就做两个宏吧,别的我不想参与讨论
此帖出自单片机论坛
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

9
 

回复:问个问题,大家看下

没必要研究这么多吧 结构体吧
此帖出自单片机论坛
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

10
 

回复:问个问题,大家看下

结构体也没有用,因为端口是SFR... 除非给端口建立个映象RAM,先对映象RAM操作,再发送到端口,但是多此一举...
此帖出自单片机论坛
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(中级)

11
 

回复:问个问题,大家看下

我这样弄的大家看看行不 sbit D4=P2^4; sbit D5=P2^5; sbit D6=P2^6; sbit D7=P2^7; uchar LCM_Data; 在程序中这样处理的 switch(LCM_Data) {case 0 : D4=D5=D6=D7=0;break; case 1 : D4=D5=D6=0;D7=1;break; case 2 : D4=D5=D7=0;D6=1;break; case 3 : D4=D5=0;D6=D7=1;break; case 4 : D4=D7=D6=0;D5=1;break; case 5 : D4=D6=0;D7=D5=1;break; case 6 : D4=D7=0;D5=D6=1;break; case 7 : D7=D5=D6=1;D4=0;break; case 8 : D7=D5=D6=0;D4=1;break; case 9 : D4=D7=1;D5=D6=0;break; case 10 : D4=D6=1;D7=D5=0;break; case 11 : D4=D7=D6=1;D5=0;break; case 12 : D4=D5=1;D7=D6=1;break; case 13 : D4=D5=D7=1;D6=0;break; case 14 : D4=D5=D6=1;D7=0;break; case 15 : D4=D5=D6=D7=1;break;}
此帖出自单片机论坛
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(中级)

12
 

回复:问个问题,大家看下

有人说用位域效率低 而且容易出错,是这样吗
此帖出自单片机论坛
 
 
 

回复

13

帖子

0

TA的资源

一粒金砂(中级)

13
 

回复:问个问题,大家看下

MCS51中的P2是可以位寻址,直接用其位地址就可以了(如楼上定义的) 另外,位域操作具有一般性,在不具备位寻址的MCU上最终还是落实到字或字节操作。
此帖出自单片机论坛
 
 
 

回复

175

帖子

0

TA的资源

裸片初长成(初级)

14
 

回复:问个问题,大家看下

P2&0xXF 就行了。 X就是你要设置的值。。
此帖出自单片机论坛
 
个人签名谁想我?我想谁?
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表