找回密码
 立即注册

QQ登录

只需一步,快速开始

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

求解单片机静态数码管程序编写问题 P0=smgduan[0];语句理解

[复制链接]
跳转到指定楼层
楼主
ID:442937 发表于 2019-3-4 21:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
u8 code smgduan[17]=里面定义的都是16进制的模式,为什么后面只要输入P0=smgduan[0];而不是写P0=smgduan[0x71];求大神解释。

  1. #include "reg52.h"               

  2. typedef unsigned int u16;      
  3. typedef unsigned char u8;

  4. sbit LSA=P2^2;
  5. sbit LSB=P2^3;
  6. sbit LSC=P2^4;

  7. u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  8.                                         0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值
  9. void main()
  10. {      
  11.         LSA=0;
  12.         LSB=0;
  13.         LSC=0;        //控制38译码器的Y0输出低电平
  14.         P0=smgduan[0];
  15.         while(1);
  16. }
复制代码

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

使用道具 举报

沙发
ID:472242 发表于 2019-3-4 23:17 | 只看该作者
这将数组下标与数组元素的概念弄混了

评分

参与人数 2黑币 +26 收起 理由
areyouok + 16 很给力!
春风十里吹 + 10 很给力!

查看全部评分

回复

使用道具 举报

板凳
ID:473758 发表于 2019-3-5 00:11 来自手机 | 只看该作者
我是C语言的初学者,我看你规定了数组有17个元素,但你只写了16个,那最后一位只能是用0表示了,也不能是0x71,而且根据一楼说的,你把数组下标和数组元素概念弄混了!smgduan【0】应该指的是0x3f。若有不对,还请谅解!

评分

参与人数 1黑币 +10 收起 理由
春风十里吹 + 10 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:478073 发表于 2019-3-5 08:17 | 只看该作者
孤独一笑 发表于 2019-3-5 00:11
我是C语言的初学者,我看你规定了数组有17个元素,但你只写了16个,那最后一位只能是用0表示了,也不能是0x ...

你说的很对,有空常来

评分

参与人数 1黑币 +16 收起 理由
Trump1438 + 16

查看全部评分

回复

使用道具 举报

5#
ID:442937 发表于 2019-3-5 14:18 | 只看该作者
谢谢,我把数组下标和数组元素去看下
回复

使用道具 举报

6#
ID:442937 发表于 2019-3-5 14:49 | 只看该作者
找到了,刚开始学,没有数组的元素和下标的概念,谢谢大家!
数组的下标表示在数组中的元素,从0开始的数值,0代表的是第一个元素,1代表的是第二个元素,往上依次类推。实例如下:
int[] intarry = new int[]{1,2,4};//新建一个int类型的数组
System.out.println(int[0]);//其中0就是代表数组的第一个数值,也就是1,下标为0。
回复

使用道具 举报

7#
ID:473758 发表于 2019-3-5 21:54 | 只看该作者
春风十里吹死你 发表于 2019-3-5 08:17
你说的很对,有空常来

回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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