‘壹’ 51单片机 汇编 数组
用伪指令DB来定义
比如我想定义一个数码管0~9的断码可以这样定义
MOV DPTR,#TAB
MOVC A,@A+DPTR
TAB: DB 06H,5BH,4FH,73H,66H,6DH
DB 7DH,3FH,07H,7FH,6FH,40H
想显示什么数时只要把数放到A里面就可以了
‘贰’ 单片机C语言中如何在外RAM中定义数组
unsigned char xdata arr[];数组定义在外部
arr[0] = XBYTE [0000]; 数组的起氏樱始歼纤丛地竖闷址
‘叁’ c51 如何定义数组
code 为关键字,表示asbp[]数组是存在在ROM空间中,是不可改变的(只读),主程序或函数可以读取里面的值但不能写。这是用于存放一些常量数据、字表一类所使用的。
unsigned char data asb[]
data表示:在片内RAM空间定义了一个无符号字符型数组asb[]
相应xdata 在片外RAM。
idata:在52单指握轿片机中的128-256字节RAM(片内)区别于SFR
bdata:51系列有16字节的位寻址区,有逻辑标志位时可定义在这里,可大大减少皮嫌data的占用
还有pdata,个人觉得用唯肆得少
‘肆’ 51单片机定义数组
不确定你如何用数线呢?51单片机不支持动态数组,本身只有那么一点儿内存,你必须先明确需要多大数组。
一个办法是声明足够用的数组,比如text[16],并在程序中判断不要超出数组范围。
‘伍’ 如何在单片机程序中如何定义一个数组,用矩阵键盘输入里面的数组里面的变量(我想用键盘扫描)
矩阵扫描?正常我是用翻转法来检查按键的,下面贴出代码,希望能给你一些帮助
typedefunsignedcharu8;
typedefunsignedintu16;
sbitkey=P1;
u8key_scan()
{
u8key_value=0;
key=0x0f;
if(key!=0x0f)
{
if(key==0x0e) key_value=1;
elseif(key==0x0d) key_value=2;
elseif(key==0x0b)key_value=3;
elseif(key==0x07) key_value=4;
key=0xf0;
if(key==0xe0) key_value+=0;
elseif(key==0xd0) key_value+=4;
elseif(key==0xb0)key_value+=8;
芦颤升elseif(key==0x70) key_value+=12;
while(key==0xf0);
}
returnkey_value;
}
u8 key_scan()这个函数返回的就是键洞册值,key是一个端口,请自行改(可以在最后加上10ms的延时,消抖用)。
其中key_value就是键值,从1-16,你需要时检测或者在定时器里检测。陪老
‘陆’ 单片机如何正确定义一维数组
看你需要定义什么类型的数组,
8位
的是
char
array[20];
16位的是
int
array[20];
20表示数组的大小
赋值的话可以
array[0]=100;
表示
数组的第一个元素
的值=100
‘柒’ c51单片机,如何定义可变长数组
用int定义长数组是16位的,没有问题的,可以定义的,也没有限制的。下面的程序是定义了30元素的。用单步执行来查看数组的值,用P1口显示高8位,用P0显示低8位,即可以赋值,也可以输出值的,没有问题,这个程序测试通过的。
#include <reg52.h>
int number[30];
unsigned char i;
void main()
{
for(i=0;i<30;i++)
{
number[i]=256*i+2*i;
}
while(1)
{
for(i=0;i<30;i++)
{
P0=number[i]%256;
P1=number[i]/256;
}
}
}
‘捌’ 单片机数组的定义和使用方法
单片机数组的定义和使用方法,单片机数组的定义就是说他是通过一个单机片组成个主板,然后使用方法是相对来说比较简单的,然后可以参照使用说明来操作
‘玖’ 51单片机中如何定义比较大的数组变量 比如 char[1024][10]
定义这种大的数组,你首先得有这么大的RAM才可以,不然肯定不好用。内部地址空间就别想了,肯定是放在外部。
如果是常数数组,可以定义到代码里面,code char cc[1024][10],这种程序只能读,不能改,像字库点阵一般用这种。
如果有足够的外部RAM,xdata char xx[1024][10]; 这是把数组定义到外部RAM,需要用MOVX访问。
‘拾’ 51单片机C语言编程怎样创建一个空的数组,之后我要把数据放到数组里
很简单,定义一个指定长度(戚敏必须有)的数组,不初始化就可以了,最好指定一下樱仔基存储段,在访问时可以优化一些。
例:
int data address[20]; /* 整型数组,名称 address,长度 20,存储在 data 段 */
char idata name[10]; /* 字符数组,名称 name,长度 10,存储在 idata 段 */
long xdata table[100]; /* 长整型数组,名称 table, 长度 100,存储在脊谨 xdata 段 */