找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1056|回复: 3
收起左侧

单片机数组模块化问题

[复制链接]
ID:837401 发表于 2021-5-21 20:38 | 显示全部楼层 |阅读模式
想把数组单独放到一个文件但是怎么编译都出错,主要是我现在不知道怎么定义外部数组
all.H文件
#include <STC8.H>
#include <intrins.H>
#include "Chinese.H"
typedef unsigned char u8;
typedef unsigned short u16;

main文件
#include "all.H"
void main
{
  u8 i,j;
   while(1)
   {
      P1=Chinese[ i][j]      //假如这么写[ i]
   }
}

Chinese.c文件

#include "all.H"
u8 code Chinese[3][32]=
{{0x00,0x00,0x3F,0xF0,0x20,0x20,0x20,0x20,0x3F,0xF0,0x00,0x01,0x00,0x06,0x3F,0xF8,0x22,0x00,0x22,0x00,0x22,0x00,0x43,0xFF,0xC2,0x00,0x42,0x00,0x02,0x00,0x00,0x00},/* (16 X 16 ) */{0x02,0x08,0x02,0x30,0x02,0x02,0x02,0x01,0xFE,0xFE,0x22,0x00,0x22,0x20,0x02,0x19,0x20,0x02,0x3E,0x04,0x21,0xC8,0x20,0x30,0x21,0xCC,0x3E,0x02,0x00,0x01,0x00,0x00},/* (16 X 16 ) */{0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00},/* (16 X 16 ) *




Chinese.H 文件
#ifndef __Chinese_H_#define __Chinese_H_extern u8 code Chinese[3][32]#endif
回复

使用道具 举报

ID:213173 发表于 2021-5-22 08:40 | 显示全部楼层
  1. //main.c
  2. #include "all.H"

  3. void main()
  4. {
  5.   u8 i,j;
  6.    while(1)
  7.    {
  8.       P1=Chinese[i][j];      //假如这么写[ i]
  9.    }
  10. }
复制代码

  1. //all.H文件
  2. #ifndef _ALL_H_
  3. #define _ALL_H_
  4.         #include <STC8.H>
  5.         #include <intrins.H>
  6.         #include "Chinese.H"
  7.         #define u8 unsigned char
  8.         #define u16 unsigned int

  9. #endif
复制代码

  1. //Chinese.c
  2. #include "all.H"

  3. u8 code Chinese[3][32]={
  4. {0x00,0x00,0x3F,0xF0,0x20,0x20,0x20,0x20,0x3F,0xF0,0x00,0x01,0x00,0x06,0x3F,0xF8,
  5. 0x22,0x00,0x22,0x00,0x22,0x00,0x43,0xFF,0xC2,0x00,0x42,0x00,0x02,0x00,0x00,0x00},/* (16 X 16 ) */
  6. {0x02,0x08,0x02,0x30,0x02,0x02,0x02,0x01,0xFE,0xFE,0x22,0x00,0x22,0x20,0x02,0x19,
  7. 0x20,0x02,0x3E,0x04,0x21,0xC8,0x20,0x30,0x21,0xCC,0x3E,0x02,0x00,0x01,0x00,0x00},/* (16 X 16 ) */
  8. {0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,
  9. 0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x00,0x00},/* (16 X 16 ) */
  10. };
复制代码

  1. //Chinese.H 文件
  2. #ifndef __Chinese_H_
  3. #define __Chinese_H_

  4.         extern unsigned char code Chinese[3][32];

  5. #endif
复制代码
回复

使用道具 举报

ID:837401 发表于 2021-5-22 11:23 | 显示全部楼层

谢谢大佬,已经过编译了
回复

使用道具 举报

ID:802198 发表于 2021-5-22 11:36 | 显示全部楼层
数组定义问题
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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