单片机课程标准c51版
⑴ 单片机写程序C51和C52区别大吗
C51和C52,如果指的是AT89C51和AT89C52的话,他们最大的区别是ROM容量不一样,C51 4KB,C52 8KB,都需要高压写入程序,需要专门的烧写器。AT89S51 和AT89S52支持ISP 常电压写入的。
⑵ C51单片机
你说的是在定义一组数组时,可以作为数据表格时,就用code 语句,意思是这些数据放在程序存储器中。
如下:
unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
这就是典型的用法,这是定义一组数据,即为数码管的段码表,因都是常数,就可以放在程序存储区。
如果没有code 就放在数据存储区了,但是,因单片机的内部RAM容量比较小,像这样的常数就不必放在RAM数据区,以节省RAM数据区的使用。
⑶ c51单片机程序实例
#include<reg51.h>
#defineucharunsignedchar
uchartab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};//0到9
ucharnum,cnt,disn;
ucharkeyval,disk;
ucharled[]={1,2,3,4};
voiddealdat(uchara)
{
led[0]=0;
led[1]=0;
led[2]=0;
led[3]=0;
led[a]=disk;
}
voiddelay(unsignedinta)
{
unsignedinti,j;
for(i=0;i<a;i++)
for(j=0;j<1000;j++);
}
voidt0isr()interrupt1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
switch(num)
{
case0:P2=0x01;break;
case1:P2=0x02;break;
case2:P2=0x04;break;
case3:P2=0x08;break;
default:break;
}
P0=~tab[led[num]];
num++;
num&=0x03;
cnt++;
if(cnt>100)
{
cnt=0;
disn++;
disn%=4;
dealdat(disn);
}
}
ucharkbscan(void)
{
unsignedcharsccode,recode;
P3=0x0f;//发0扫描,列线输入
if((P3&0x0f)!=0x0f)//有键按下
{
// delay(20);//延时去抖动
if((P3&0x0f)!=0x0f)
{
sccode=0xef;//逐行扫描初值
while((sccode&0x01)!=0)
{
P3=sccode;
if((P3&0x0f)!=0x0f)
{
recode=(P3&0x0f)|0xf0;
return((~sccode)+(~recode));
}
else
sccode=(sccode<<1)|0x01;
}
}
}
return0;//无键按下,返回0
}
voidgetkey(void)
{
unsignedcharkey;
key=kbscan();
if(key==0){keyval=0xff;return;}
switch(key)
{
case0x11:keyval=7;break;
case0x12:keyval=4;break;
case0x14:keyval=1;break;
case0x18:keyval=10;break;
case0x21:keyval=8;break;
case0x22:keyval=5;break;
case0x24:keyval=2;break;
case0x28:keyval=0;break;
case0x41:keyval=9;break;
case0x42:keyval=6;break;
case0x44:keyval=3;break;
case0x48:keyval=11;break;
case0x81:keyval=12;break;
case0x82:keyval=13;break;
case0x84:keyval=14;break;
case0x88:keyval=15;break;
default:keyval=0xff;break;
}
}
main()
{
TMOD=0x11;
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
TR0=1;
ET0=1;
EA=1;
while(1)
{
getkey();
if(keyval!=0xff)disk=keyval;
delay(10);
}
}
⑷ C51单片机和C52单片机有什么区别和相似之处
51具有2个定时器T0/T1,而52具有3个定时器T0/T1/T2。另外52在51的基础上,扩展了很多功能
⑸ 给51单片机编程用的C51与C语言有什么区别
其实区别不是太多。C语言中的所有运算符,在C51中都可以用。但是C51也有特有运算符,如sbit,还有特殊的寄存器名等可以直接写。C语言中没有相关的内容。
⑹ c51和mcs51有什么区别 开始学单片机 有的教程写着c51有的是MCS51 到底有什么区别
MCS-51,这是单片机。是指由Intel公司开发的、沿用多年至今的单片机系列芯片。
C51,这是编程语言。是指以C语言为基础,应用在MCS-51系列单片机上的C语言。
⑺ c51单片机与c52单片机的区别
C51及C52单片机在内核结构上完全一样,两者的主要差别在RAM和ROM上,C51是128byte
RAM,4K
ROM,C52是256Byte,8K
ROM。
⑻ c51单片机编程
一位共阳数码管接在P0口,为静态显示。P3口接有8个独立式按键,按键为K1~K8,按键8个按键中的任意一个,数码管则显示出按键编号。仿真图如下,这是按下K6时显示6。
⑼ c51单片机与c52单片机的区别
C51及C52单片机在内核结构上完全一样,两者的主要差别在RAM和ROM上,C51是128byteRAM,4KROM,C52是256Byte,8KROM。
⑽ C51和标准C语言的主要差别
c51是标准c的扩展,使用专用的编译器,如keil 与franklin等;
c51特有的有以下几点,可能不全:
bit型变量,
bdata code xdata pdata idata 存储类型控制字,
interrupt 中断函数,
最主要的是c51主要面向的是硬件,程序的编写思路与标准c差别很大。