㈠ 学C51单片机看什么书
单片机,其实就是微控制器,主要用于控制外围器件,本身干不了任何事情。要学习单片机,书是少不了的,至于书的选择,只要是单片机方面基础的书都可以,讲得东西都是一样的(北航出的《单片机与最小系统实践》就不错)。但是光看书很显然是不行的,要理论加实践,并且要注重实践。看书只是让你对单片机的硬件结构有所了解,要想真正掌握单片机,就必须多实践。推荐一款视频教程,郭天祥讲的《10天学会51单片机和C语言》,照着这个视频做实验(实验板可以网上买,也可以自己搭建),从头做到尾的话,相信你的单片机编程水平不仅仅是入门久别的了。
㈡ c51单片机c语言程序
用C51是多么简单的事情啊。你的每个灯的顺序不说。不好写。思路这样的:sbit led1=P1^0;~~~把所有的灯都定一下。void delay(int ms){int x,y;for(x=ms;x>0;x--)for(y=110;y>0;y--);}一个Nms的延迟,要求是12M的晶振。void main(){while(1){led1=0;delay(1000);led1=1;里面随便写了。}}
㈢ c51单片机与c52单片机的区别
C51及C52单片机在内核结构上完全一样,两者的主要差别在RAM和ROM上,C51是128byte RAM,4K ROM,C52是256Byte,8K ROM。
㈣ c51单片机是什么
单片机,是典型的嵌入式微控制器,一般用在工业控制上,现在用的c51大都是AT89c51.
㈤ MCS51和8051和C51单片机什么联系
MCS-51单片机是美
国INTE公司于1980年推出的产品,典型产品有 8031(内部没有程序存储器,实际使用方面已经被市场淘汰)、8051(芯片采用HMOS,功耗是630mW,是89C51的5倍,实际使用方面已经被市场淘汰)和8751等通用产品,一直到现在, MCS-51内核系列兼容的单片机仍是应用的主流产品(比如目前流行的89S51、已经停产的89C51等),各高校及专业学校的培训教材仍与MCS-51单片机作为代表进行理论基础学习。
有些文献甚至也将8051泛指MCS-51系列单片机,8051是早期的最典型的代表作,由于MCS-51单片机影响极深远,许多公司都推出了兼容系列单片机,就是说MCS-51内核实际上已经成为一个8位单片机的标准。
其他的公司的51单片机产品都是和MCS-51内核兼容的产品而以。同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51, PHILIPS(菲利浦),和WINBOND(华邦)等,我们常说的已经停产的89C51指的是ATMEL公司的 AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000次)存储器取带了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。
不过在市场化方面,89C51受到了PIC单片机阵营的挑战,89C51最致命的缺陷在于不支持ISP(在线更新程序)功能,必须加上ISP功能等新功能才能更好延续MCS-51的传奇。89S51就是在这样的背景下取代89C51的,现在,89S51目前已经成为了实际应用市场上新的宠儿,作为市场占有率第一的Atmel目前公司已经停产AT89C51,将用AT89S51代替。89S51在工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。89SXX可以像下兼容89CXX等51系列芯片。同时,Atmel不再接受89CXX的定单,大家在市场上见到的89C51实际都是Atmel前期生产的巨量库存而以。
㈥ 单片机C51
你把“STARTUP.A51”,从项目中删除,就好了。
㈦ C51单片机分类
你的提问是C51单片机的分类,就是说,特指MCS-51系列,那么MCS-51系列的单片机基本上没什么区别的,至少内核都是一模一样的。就是功能模块可能稍有不一样。比如说:
有些具有AD/DA模块,有些不具有;
有些有EEPROM(STC89C52),有些没有(AT89S52);
有些ROM有8K(AT89S52),有些只有2K;
有些RAM有256B,而有些只有128BIT;
有些40个管脚(AT89C51、89C52、89S52),有些20个管脚(AT89C2051、89C4051);
有些有内部晶振,有些没有;
但这些都是稍微一点点的区别,基本都还是算一样的。
单片机是一个很大的类,这个类下面有很多子类,C51是单片机其中一个子集,其它的子类还有PIC、AVR、Cortex、STM等。
至于楼上说的ARM,其实ARM已经有点偏离单片机的定义了,更趋向于处理器,ARM9经常用在强大的智能手机中,各种硬件资源和运算速度都不是普通单片机可以相比的,而且编程与电路方面的设计也跟单片机不太一样。ARM7类似,但现在已经基本不用ARM7了。
还有最后一个PLC,看到PLC就知道他不是专业,可能是复制来的。PLC我们现在正在学,其实是一种工控设备,外形就是一个大大的盒子,里面装的也是单片机,可能是PIC的,也可能是ST的,也可能是其它的,还有一些外围电路。总之,我不敢说ARM不属于单片机,但PLC绝对不是单片机!!!
如果楼主要学,一般从40管脚的89C52或89S52开始学,也可以学STC的,STC的跟AT非常非常像,你可以简单的认为,STC是仿AT的,型号也一一对应,但STC的往往会加入一些AT没有的模块。
㈧ 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单片机编程
51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。
㈩ 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数据区的使用。