51单片机

作者&投稿:麻郎 (若有异议请与网页底部的电邮联系)
51单片机~

霍尔元件侧转速,可以通过模数转换器来完成。如果只是检测转速是否过大?可以设计一个电压比较器,对霍尔元件的输出电压进行比较,转速低时,比较器为低电平;当转速高于某个值时,输出为高电平。

呵呵 可以采纳哦

检查有没有标点符号输入成了中文全角符号。
出错提示应该有告诉你哪一行出错。检查该行以及上一行的语法及标点符号。

哦,看出来了。你把所有的void都拼错成viod了……

百度文库多的是,可以down一些适合你的 (给你发去了)

学习单片机和学习其他的不一样,不是靠做题就能学好的,最重要的是自己动手。

我推荐给你一个视频看看,名字是《十天学会单片机》是哈尔滨工程大学郭天祥讲的。其实我没有看中他讲的好与坏,关键是他都是自己弄一个一个的小程序,实现某些功能,并且他是自己一边想一边给你讲的,也就是说,他并不只是给你的知识,重要的是开阔了你的思路。

c语言你就找本书自己巩固一下知识就行了,然后在看视频教程,在亲手做做实验,我想你应该就学会了。

51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。
单片机学习板可以参考吴鉴鹰单片机开发板

边做边学好。

定时器兼报警记录仪:
该记录仪平时作为时钟使用,具有设定操作培训的时间、定时报警、提前提醒后切断电源功能,还具有自动记录由于接线或操作错误所造成的告警次数。
定时器兼报警记录仪操作方法:
① 开机并按复位键后,六位数码显示器将从零时零分零秒开始计时。
② 设置密码:
a、 按功能键至功能6(在显示器的末位显示6)。
b、 按数位键,待六位数码管的小数点出现闪动时,然后点动此键,选定需要置数的位。
c、 通过来回操作数位键和数字键,将拟定的三位密码数字输入显示器的末三位,且密码的末位数必须是9。
③ 读取密码:
a、 按功能键至功能1(即显示器的末位显示1)。
b、 来回操作数位键和数字键,将设定的密码输入到显示器的末三位,然后按确认键,第一位数码管将回显1,表示密码输入正确。
④ 设置时钟及定时报警时间:
a、 按功能键至功能2(即显示器的末位显示2)。
b、 来回操作数位键和数字键,将当前的时间(时、分、秒)输入显示器的前五位,并在末位输入1,按确认键,显示器的末位将显示C(CLOCK),表明时钟设置完毕;再来回操作数位键和数字键,将拟定的定时时间输入显示器的前五位,并在末位上输入9,按确认键,显示器的末位将显示A(ALARM)表示定时报警设置成功。
⑤ 告警次数清零。
按功能键至功能3(即显示器的末位显示3),然后按确认键,显示器末三位将显示“000”,表明记录的告警次数已被清零。
⑥ 定时时间查询:
按功能键至功能4(即显示器的末位显示4),然后按确认键,显示器将显示当前所设定的定时报警时间。
⑦ 告警次数记录查询:
按功能键至功能5(即显示器的末位显示5)。然后按确认键。在显示器的末三位上将显示出已出现故障告警的次数。
⑧ 时钟显示:
按功能键至功能7(即显示器的末位显示7),然后按确认键,显示器的六位数码管将显示当前的时间(时、分、秒)。
(4)运行提示:
a、 经上述设置后,本定时器便作为时钟使用,此后操作功能键分别至功能1、2、3、6功能时,若再按确认键,将无法读得任何信息:而处于4、5、7功能时,若按功能键,则可查询定时报警时间和记录故障报警的次数及时钟时间。
b、 当时钟走到定时报警时间,蜂鸣器将发出断续的鸣叫声,持续一分钟后自动停止,再延时4分钟,即发出信号,并切断电源。若按复位键并重新启动电源,蜂鸣器将依次再鸣叫一分钟,在延时4分钟后即自动切断电源,同时定时时间将逐次增加5分钟。
c、 当需要修改时钟值、定时值或清除记录的故障次数时,则必须在功能1下重新输入原定的密码后方可进行。
d、 在功能6下可进行密码的修改。
e、 使用过程中,如果按住复位键不松开,仪器将停止工作。
注:a、本定时器兼报警记录仪平时应工作在时钟状态。
b、切断总电源后,仪器将恢复到初始状态。
c、1~6功能都有相应的指示灯指示当前的工作状态。
d、开机未设置,按动复位键将回到初始状态。
e、使用过程中连续按动复位键,仪器将暂停工作。

---------------------------------------------------------------
#include <reg51.h>
#include <absacc.h>
#include <math.h>
#define uchar unsigned char
uchar t1,t2,t3,t4,t5,t6,test1,test2;
uchar flag5=0;//功能选择标志
uchar weixuan=0;//位选
uchar buffer=0;
uchar poi=6;
uchar pass=0;//密码正确
uchar wh;
unsigned int gjcs=0;
unsigned int sec=7200;
unsigned int secc=7500;
unsigned int sect;
sbit xssj=P1^0; //显示数据
sbit xssz=P1^1; //显示时钟
sbit led6=P1^2;
sbit led5=P1^3;
sbit led4=P1^4;
sbit led3=P1^5;
sbit led2=P1^6;
sbit led1=P1^7;

sbit noise=P2^1;
sbit coil=P2^2;
sbit key5=P2^3;//功能键
sbit key4=P2^4;//数位键
sbit key3=P2^5;//数据键
sbit key2=P2^6;//确认键
sbit key1=P2^7;//复位键

uchar h1,h0,m1,m0,s1,s0,t;//时 分 秒
uchar h11=0,h00=2,m11=0,m00=0,s11=0,s00=0;//定时 时 分 秒
uchar h1t,h0t,m1t,m0t,s1t,s0t;//设置时间数据暂存
//uchar code tab[21]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xFF,0x8c,0x88,0x92,0xbf};//共阳极0-F代码 P A S -
//uchar code tabpoint[17]={0x40,0x4f,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e,0x7f};//共阳极0-F加小数点代码
// 0 1 2 3 4 5 6 7 8 9 a b c d e f .
uchar code tab[21]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x73,0x77,0x6d,0x40};//共阴极0-F代码 P A S -
uchar code tabpoint[17]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,0xf7,0xfc,0xb9,0xde,0xd9,0xf1,0x80};//共阴极0-F加小数点代码
uchar data password[3]={1,1,1};//密码数组
uchar data passwordstu[3]={0,0,0};//考生密码
//1ms延时程序
/*void delay1ms(int i)
{
int j,k;
for(j=0;j<i;j++)
{for(k=0;k<j;k++){ ;}}
}*/

void delay1ms(int t)
{
int i,j,k=0;
for(k=0;k<t;k++)
{for(j=0;j<=25;j++)
{for(i=0;i<255;i++){;}}}
}

void disp(uchar d1,uchar d2,uchar d3,uchar d4,uchar d5,uchar d6,uchar pt,uchar test11,uchar test22)
{
uchar xssjhc; //显示数据缓冲
uchar a;
if(pt==0)
{xssjhc=tabpoint[d1];}
else
xssjhc=tab[d1];
for(a=0;a<8;a++)
{
xssz=1;
xssj=xssjhc&0x80;
xssjhc<<=1;
xssz=0;
}
if(pt==1)
{xssjhc=tabpoint[d2];}
else
xssjhc=tab[d2];
for(a=0;a<8;a++)
{
xssz=1;
xssj=xssjhc&0x80;
xssjhc<<=1;
xssz=0;
}
if(pt==2||(test22==1&&test11==1))
{xssjhc=tabpoint[d3];}
else
xssjhc=tab[d3];
for(a=0;a<8;a++)
{
xssz=1;
xssj=xssjhc&0x80;
xssjhc<<=1;
xssz=0;
}
if(pt==3)
{xssjhc=tabpoint[d4];}
else
xssjhc=tab[d4];
for(a=0;a<8;a++)
{
xssz=1;
xssj=xssjhc&0x80;
xssjhc<<=1;
xssz=0;
}
if(pt==4||(test22==1&&test11==1))
{xssjhc=tabpoint[d5];}
else
xssjhc=tab[d5];
for(a=0;a<8;a++)
{
xssz=1;
xssj=xssjhc&0x80;
xssjhc<<=1;
xssz=0;
}
if(pt==5)
{xssjhc=tabpoint[d6];}
else
xssjhc=tab[d6];
for(a=0;a<8;a++)
{
xssz=1;
xssj=xssjhc&0x80;
xssjhc<<=1;
xssz=0;
}
}
void init()
{
TMOD=0x01; //定时器0
IE=0x82;
TH0=0x3c;
TL0=0xAF;
TR0=1;
}
void timer0()interrupt 1 using 1
{
TH0=0x3c;
TL0=0xAF;
if(sect==sec)
{
noise=0;
}
if(key1==0)
{
noise=1;//复位键停止鸣叫
coil=1;
}
if(sect==secc)
{
noise=0;
coil=0;
}
t1=h1;
t2=h0;
t3=m1;
t4=m0;
t5=s1;
t6=s0;
t=t+1;
if(t>=20)
{
t=0;
s0++;
test2=!test2;
sect++;
if(s0>=10)
{
s0=0;
s1++;
if(s1>=6)
{
s1=0;
m0++;
if(m0>=10)
{
m0=0;
m1++;
if(m1>=6)
{
m1=0;
h0++;
if(h1>=2&&h0>=4){h0=0;h1=0;}
if(h0>=10)
{
h0=0;
h1++;
if(h1>=2&&h0>=4){h0=0;h1=0;}
if(h1>=3){h1=0;}
}
}
}
}

}
}
}
void ledlight(uchar ledwei)
{
if(ledwei==1){led6=0;}
if(ledwei==2){led5=0;}
if(ledwei==3){led4=0;}
if(ledwei==4){led3=0;}
if(ledwei==5){led2=0;}
if(ledwei==6){led1=0;}
if(ledwei==7){led1=0;}
}
void ledinit()
{
led6=1;
led5=1;
led4=1;
led3=1;
led2=1;
led1=1;
}
void main()
{
t1=0;
t2=0;
t3=0;
t4=0;
t5=0;
t6=0;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
delay1ms(10);
while(1)
{//while循环
if(key1==0)//开机按复位键
{
delay1ms(3);
if(key1==0)
{
ledinit();
t=0;
s0=0;
m0=0;
h0=0;
s1=0;
m1=0;
h1=0;
t1=h1;
t2=h0;
t3=m1;
t4=m0;
t5=s1;
t6=s0;
poi=6;
init();
while(1)//工作循环
{
ledinit();
poi=6;
test1=1;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
delay1ms(5);
if(key5==0)//进入功能设置
{
delay1ms(3);
if(key5==0)
{
flag5=1;
t1=16;
t2=16;
t3=16;
t4=16;
t5=16;
t6=flag5;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
ledinit();
ledlight(flag5);//发光二极管亮
while(key5==0){;}
wh=1;
while(wh)//进入功能设置循环
{
if(key5==0)//功能选择
{
delay1ms(3);
if(key5==0)
{
flag5++;
if(flag5>=8){flag5=1;}
t1=16;
t2=16;
t3=16;
t4=16;
t5=16;
t6=flag5;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
ledinit();
ledlight(flag5);//发光二极管亮
while(key5==0){;}
}
}
if(flag5!=0)//功能处理
{
if(flag5==1)//输入密码
{
if(key4==0)//数位键
{
delay1ms(3);
if(key4==0)
{
weixuan++;
if(weixuan>=3)
weixuan=0;
t1=16;
t2=16;
t3=16;
t4=passwordstu[2];
t5=passwordstu[1];
t6=passwordstu[0];
poi=weixuan;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
}
while(key4==0){;}
}
if(key3==0)//数字键
{
delay1ms(3);
if(key3==0)
{
buffer=passwordstu[weixuan];
buffer++;
if(buffer>=10)
{buffer=0;}
passwordstu[weixuan]=buffer;
t1=16;
t2=16;
t3=16;
t4=passwordstu[2];
t5=passwordstu[1];
t6=passwordstu[0];
poi=weixuan;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
}
while(key3==0){;}
}
if(key2==0)//确认键
{
delay1ms(3);
if(key2==0)
{
if(passwordstu[2]==password[2]&&passwordstu[1]==password[1]&&passwordstu[0]==password[0])
{
ledinit();
ledlight(flag5);//发光二极管亮
t1=16;
t2=16;
t3=17;
t4=18;
t5=19;
t6=19;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
pass=1;
}
else
{
t1=16;
t2=16;
t3=16;
t4=16;
t5=16;
t6=20;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
pass=0;
noise=0;
delay1ms(20);
noise=1;
}
}
while(key2==0){;}
}
}//输入密码
if(flag5==2)//设置时钟
{
if(pass==1)
{
IE=0x00;
if(key4==0)//数位键
{
delay1ms(3);
if(key4==0)
{
weixuan++;
if(weixuan>=6)
weixuan=0;
t1=h1;
t2=h0;
t3=m1;
t4=m0;
t5=s1;
t6=s0;
poi=weixuan;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
}
while(key4==0){;}
}
if(key3==0)
{
delay1ms(3);
if(key3==0)
{
if(weixuan==0)
{
s0++;
if(s0>=10){s0=0;}
}
if(weixuan==1)
{
s1++;
if(s1>=6){s1=0;}
}
if(weixuan==2)
{
m0++;
if(m0>=10){m0=0;}
}
if(weixuan==3)
{
m1++;
if(m1>=6){m1=0;}
}
if(weixuan==4)
{
h0++;
if(h1>=2&&h0>=4){h0=0;h1=0;}
if(h0>=10){h0=0;}
}
if(weixuan==5)
{
h1++;
if(h1>=2&&h0>=4){h0=0;h1=0;}
if(h1>=3){h1=0;}
}
t1=h1;
t2=h0;
t3=m1;
t4=m0;
t5=s1;
t6=s0;
poi=weixuan;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
}
while(key3==0){;}
}
if(key2==0)//确认键
{
delay1ms(3);
if(key2==0)
{
t1=16;
t2=16;
t3=16;
t4=16;
t5=16;
t6=12;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);

/*t1=16;
t2=16;
t3=16;
t4=16;
t5=16;
t6=10;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);*/
}
while(key2==0){;}
}
}
else
{
t1=16;
t2=16;
t3=16;
t4=16;
t5=16;
t6=20;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
noise=0;
delay1ms(20);
noise=1;
}
}//设置时钟及定时报警时间
if(flag5==3)//告警次数清零
{
if(pass==1)
{
if(key2==0)//确认键
{
delay1ms(3);
if(key2==0)
{
gjcs=0;
t6=0;
t5=0;
t4=0;
t1=16;
t2=16;
t3=16;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
}
while(key2==0){;}
}
}
else
{
t1=16;
t2=16;
t3=16;
t4=16;
t5=16;
t6=20;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
noise=0;
delay1ms(20);
noise=1;
}
}//告警次数清零
if(flag5==4)//定时报警时间查询
{
if(key2==0)//确认键
{
delay1ms(3);
if(key2==0)
{
t1=h11;
t2=h00;
t3=m11;
t4=m00;
t5=s11;
t6=s00;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
}
while(key2==0){;}
}
}//定时报警时间查询
if(flag5==5)//告警次数记录查询
{
if(key2==0)//确认键
{
delay1ms(3);
if(key2==0)
{
t1=16;
t2=16;
t3=16;
t4=gjcs/100;
t5=(gjcs/10)%10;
t6=gjcs%10;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
}
while(key2==0){;}
}
}//告警次数记录查询
if(flag5==6)//设置密码
{
if(pass==1)
{
if(key4==0)//数位键
{
delay1ms(3);
if(key4==0)
{
weixuan++;
if(weixuan>=3)
weixuan=0;
t1=16;
t2=16;
t3=16;
t4=password[2];
t5=password[1];
t6=password[0];
poi=weixuan;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
}
while(key4==0){;}
}
if(key3==0)
{
delay1ms(3);
if(key3==0)
{
buffer=password[weixuan];
buffer++;
if(buffer>=10)
{buffer=0;}
password[weixuan]=buffer;
t1=16;
t2=16;
t3=16;
t4=password[2];
t5=password[1];
t6=password[0];
poi=weixuan;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
}
while(key3==0){;}
}
if(key2==0)
{
delay1ms(3);
if(key2==0)
{
t1=16;
t2=16;
t3=16;
t4=16;
t5=16;
t6=1;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
}
}
}
}//设置密码
if(flag5==7)//设置定时时间
{
if(pass==1)
{
IE=0x00;
if(key4==0)//数位键
{
delay1ms(3);
if(key4==0)
{
weixuan++;
if(weixuan>=6)
weixuan=0;
t1=h11;
t2=h00;
t3=m11;
t4=m00;
t5=s11;
t6=s00;
poi=weixuan;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
}
while(key4==0){;}
}
if(key3==0)
{
delay1ms(3);
if(key3==0)
{
if(weixuan==0)
{
s00++;
if(s00>=10){s00=0;}
}
if(weixuan==1)
{
s11++;
if(s11>=6){s11=0;}
}
if(weixuan==2)
{
m00++;
if(m00>=10){m00=0;}
}
if(weixuan==3)
{
m11++;
if(m11>=6){m11=0;}
}
if(weixuan==4)
{
h00++;
if(h11>=2&&h00>=4){h00=0;h11=0;}
if(h00>=10){h00=0;}
}
if(weixuan==5)
{
h11++;
if(h11>=2&&h00>=4){h00=0;h11=0;}
if(h11>=3){h11=0;}
}
t1=h11;
t2=h00;
t3=m11;
t4=m00;
t5=s11;
t6=s00;
poi=weixuan;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
}
while(key3==0){;}
}
if(key2==0)//确认键
{
delay1ms(3);
if(key2==0)
{
/*t1=16;
t2=16;
t3=16;
t4=16;
t5=16;
t6=12;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);*/

sec=(h11*10+h00)*3600+(m11*10+m00)*60+s11*10+s00;
secc=sec+300;//5分钟后切断电源
sect=0;
t1=16;
t2=16;
t3=16;
t4=16;
t5=16;
t6=10;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
}
while(key2==0){;}
}
}
else
{
t1=16;
t2=16;
t3=16;
t4=16;
t5=16;
t6=20;
poi=6;
test1=0;
test2=0;
disp(t6,t5,t4,t3,t2,t1,poi,test1,test2);
noise=0;
delay1ms(20);
noise=1;
}
}//设置时钟及定时报警时间
}//功能处理
if(key1==0)
{
delay1ms(3);
if(key1==0)
{
while(key1==0){;}
wh=0;//退出功能设置循环
IE=0x82;
}
}
}//进入功能设置循环
}
}//进入功能设置
}//工作循环
}
}
}//while循环
}

这是我做的产品

MCU51单片机是什么意思
答:MCU51单片机指的是一类基于Intel 8051架构的单片机(Microcontroller Unit 8051),也称为8051单片机或51单片机。8051单片机是一种经典的8位微控制器系列,具有广泛的应用领域和丰富的开发工具支持。它最初由Intel公司于1980年推出,后来被许多其他厂商采用和扩展,现在有许多不同型号和品牌的8051单片机可供选择...

51单片机中断有哪些?
答:(1)函数名()interrupt 0 {} //对应外部中断0;(2)函数名()interrupt 1 {} //对应定时器/计数器0中断;(3)函数名()interrupt 2 {} //对应外部中断1;(4)函数名()interrupt 3 {} //对应定时器/计数器1中断;(5)函数名()interrupt 4 {} //对应串口中断;51单片机是对所有兼容...

51单片机的工作原理
答:单片机由运算器、控制器、存储器、输入输出设备构成。单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部...

为什么叫51单片机 61单片机
答:51单片机是指80年代Intel开发的8051单片机内核的统称,就是因为这个“8051”有个51,所以凡是与“8051”内核一样的单片机都统称为51系列单片机。内核,通俗点理解就是一种代码,单片机的指令系统,即硬件制作就按照这些指令去完成,如灌溉一样,要灌溉那些地方,就把通路打开,而这些通路‘水渠和门阀’都是...

什么是51系列单片机
答:51系列单片机指的就是MCS51单片机。MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯...

51系列单片机特点,型号和性能
答:51单片机是对所有兼容Intel 8031指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一...

51单片机的组成
答:51单片机的组成 51单片机是一种常见的微控制器,广泛应用于各个领域。它由许多芯片组成,下面我们将详细介绍51单片机的组成。中央处理器 中央处理器(CPU)是51单片机的核心,它决定着单片机的性能和功能。51单片机采用的CPU型号是8051,该CPU具有8位宽度的数据总线,可以进行8位数据的处理。8051 CPU具有可...

51单片机工作的原理是什么
答:51单片机是一种8位微控制器,它是一种可编程的控制器,可以根据用户的要求完成特定的控制任务。51单片机的工作原理是:1.将程序存储在内部ROM或外部EPROM中,程序中包含控制程序和数据。2.将程序加载到CPU中,CPU根据程序指令进行操作。3.CPU根据程序指令控制I/O口,从而控制外部设备。4.CPU根据程序指令...

51单片机什么意思啊
答:51是单片机的一种,51说的是单片机的内核,例如8051、STC都是51内核的不同系列单片机!当然除了51内核的还有其他的比如:arm,avr、PIC等!while(--time);指的是:time按指令周期递减,直到time递减到0,然后跳出while循环往下运行后面的指令,while(--time);也可用于延时,延时时间为 t=time*机器...

51单片机是什么
答:什么叫单片机?答: 单片机因将其主要组成部分集成在一个芯片上而得名,具体说就是把中央处理器CPU( Central Processing Unit)、随机存储器RAM( Random Access Memory)、只读存储器 ROM( Read Only Memory)、中断系统、定时器/计数器以及 I/O(Input/Output)接口电路等主要微型机部件集成在一块芯片上。...