找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求助一个C语言编程的问题

[复制链接]
跳转到指定楼层
楼主
ID:194752 发表于 2017-5-28 17:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用我的理解大概的表达一下,因为现在学的实在是太皮毛,很多概念都还不是很清楚,忘个位高手海涵。
我想咨询的问题就是:
如何来定义一个地址组。不知道这样描述是不是正确。
我用
unsigned char code table[]={1,2,3,4,5,6,7,8,9,0};
这个语句来打个比方。
如果我有一个unsigned char变量a,和一个unsigned char变量c那我可以让a=table[c],
现在我想让table里面的数组改成地址。就是P1.0,P1.1,P1.2,P1.3.............P1.7,我分别用a,b,c,d,e,f,g,h来定义P1各引脚。
然后我想让table[1]=1;这样,就是让P1.1输出高电平。。。
这样的语句要怎么写???望高手指点一下。。。
可能我描述的比较含糊。。不知道有没有高手看懂。。。?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:155507 发表于 2017-5-29 15:54 | 只看该作者
unsigned char变量 是8个bit为一个单元,
P1.0 是一个bit

unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //共阴极0~f数码管段码 编码       
P1.0,P1.1,P1.2,P1.3.............P1.7,可以分别用a,b,c,d,e,f,g,h来定义P1各引脚。

8段共阴极led数码管显示“0”,对应字形码为0x3f  

table[0]=0x3f;
P1 = table[0];

8位二进制数为 0011、1111;转换为16进制就是3FH。

这样,就是让P1.0输出高电平,P1.1输出高电平,P1.2输出高电平,P1.3输出高电平,P1.4输出高电平,P1.5输出高电平,P1.6输出低电平,P1.7输出低电平。

楼主明白了吗?

回复

使用道具 举报

板凳
ID:194752 发表于 2017-5-29 22:09 来自手机 | 只看该作者
angmall 发表于 2017-5-29 15:54
unsigned char变量 是8个bit为一个单元,
P1.0 是一个bit


恩,谢谢,这个我明白,但是我想要实现的不是这样的。我想让P0,P1,P2共24个io口,能够被一个变量来控制。比方说变量a=0,P0^0口输出低电平。变量a=9,P1^0输出低电平,变量a=24,P2^7输出低电平。就类似unsigned char table[]={}所能实现的功能一样。
回复

使用道具 举报

地板
ID:47933 发表于 2017-5-30 11:17 | 只看该作者
elise 发表于 2017-5-29 22:09
恩,谢谢,这个我明白,但是我想要实现的不是这样的。我想让P0,P1,P2共24个io口,能够被一个变量来控制。 ...

一楼已经说得很明白了,说白了就是端口控制一个数组怎么写也只能控制一个端口8个位。24个IO口即3个端口,不可能跨端口控制,你的思路是把简单问题复杂化,三个数组表达3个端口24个IO口难道不够简单么?
回复

使用道具 举报

5#
ID:206038 发表于 2017-5-30 12:27 | 只看该作者
让p0=1,变量不变
回复

使用道具 举报

6#
ID:205288 发表于 2017-5-30 19:21 来自手机 | 只看该作者
不太懂你在说啥,等号是赋值用的,table[i]=1并不能表示让某个电平变高,只是给table赋值
回复

使用道具 举报

7#
ID:155507 发表于 2017-5-30 22:13 | 只看该作者
KEIL环境下就不能在sbit使用数组或指针进行“位”操作。
回复

使用道具 举报

8#
ID:194752 发表于 2017-5-30 23:46 来自手机 | 只看该作者
可能是我没表达对,我把我需要达到的目的描述一下吧!!如果P0,P1,P2共计2
回复

使用道具 举报

9#
ID:206304 发表于 2017-5-31 11:35 | 只看该作者
table[0]=0x3f;
P1 = table[0];
回复

使用道具 举报

10#
ID:194752 发表于 2017-6-1 09:18 来自手机 | 只看该作者
angmall 发表于 2017-5-30 22:13
KEIL环境下就不能在sbit使用数组或指针进行“位”操作。

恩,我要的就是这样的回答,如你所说,那我想要实现的语句是写不出来了,看来只能别找办法了。。。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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