姓名:吕烜威 学号:20021210973 学院:电子工程学院
嵌牛导读 CPU ,是IT行业的制高点,既是各大IT公司角力的主战场,背后还是各国政府科技竞赛的竞技场,40年江湖,你方唱罢我登场,好不热闹。在进入CPU时代前的史前时代, 是计算机从发明到大发展的计算机时代, 包含机械计算机、电动计算机、电子管计算机、晶体管计算机、集成电路计算机等几个次世代, 这是一个属于IBM的光辉时代, 也标志着人类进入电脑逐步解放人脑的智能时代。
嵌牛鼻子处理器 ARM 计算机
嵌牛提问CPU的发展经历了哪几个阶段
嵌牛正文CPU的起源
CPU ,是IT行业的制高点,既是各大IT公司角力的主战场,背后还是各国政府科技竞赛的竞技场,40年江湖,你方唱罢我登场,好不热闹。
在进入CPU时代前的史前时代, 是计算机从发明到大发展的计算机时代, 包含机械计算机、电动计算机、电子管计算机、晶体管计算机、集成电路计算机等几个次世代, 这是一个属于IBM的光辉时代, 也标志着人类进入电脑逐步解放人脑的智能时代。
位于美国费城的电子数字积分计算机(ENIAC)是世界上第一台通用电子计算机 ,在二战中被用来计算复杂的d道导d发射数据,以及氢d的可行性研究
期间,有老沃森在40年代轻掷百万给一个陌生年轻人研制电动计算机(继电器计算机)Mark 1号的故事,
也有浪子回头小沃森接棒IBM的故事:力挽狂澜、50年代初带领IBM耗资千万研制电子管、磁带等组成的大型机IBM701,
IBM701
在40、50年代那个满地都是计算机公司的时代,统一了行业,奠定了IBM在这个时代的王者地位,正式让IBM从机械制表机行业转型成为一家计算机公司。
随着肖克利发明晶体管,集成电路也在仙童公司发明出来,小沃森又在60年代耗资50亿, 研制集成电路组成的360全系列兼容型大中小系列计算机, 5年内卖出了3万多台,创造了历史(一台卖几百万呀!)。
还有以mini裙得名mini小型计算机的DEC公司,巨型机天才Cray教授创办的三家Cray系巨型机公司,还有华人的骄傲王安电脑等等,一个群星闪耀/充满传说的时代。
王安电脑
在这个CPU的史前时代,计算功能分布在各种机械或者离散电路中,
集成电路最后才诞生,尚没有形成一个高集成度、涵盖所有计算功能的部件,连集成电路之父仙童八杰(肖克利的原话是八个叛徒)里的三位创建的Intel公司(Intel的名字代表集成度),此时折腾的还是DRAM生意。
历史,也是量变到质变慢慢积累的,不过不一定遵循我们的思维逻辑,这时,IBM、DEC、Nova、Cray等计算机巨头都没有提出缩小计算机、提高集成度等类似的概念,CPU的发明也与他们无缘。
也许是利益使然吧,缩小了如何卖得起价钱?!
CPU的起源,是Intel公司一个员工霍夫在给日本合作方设计台式计算器时,提出了把日本人方案里的多个集成电路整合的思想,虽然日本人拒绝了,但是八杰之首、Intel第一任掌门诺伊斯支持了他,于是由中央处理器(CPU)+程序存储器+数据存储器的三片式结构构思了出来,并在1971年诞生了世界上第一片2250支晶体管组成的4004 CPU,只有铅笔尖大小。
随后是8008和卖出几百万片的8080,从此,Intel踏上了x86 CPU开发的辉煌道路。
Intel 8080的成功,揭开了CPU军备竞赛的篇章,标志着CPU时代真正来临。
上世纪70年代中期,在intel的8080成功后,Motorola推出了6800,从intel离开创业的霍夫创建了Zilog,推出了Z80,6800团队的一支也创业推出了6502。这2种CISC架构成为当时的主力,统治了70、80年代的计算领域主战场。随着微处理器的发明,70年代中,大量作坊式车库计算机制造公司遍地开花,掀起了“解放计算机革命”,计算机走入寻常百姓家成为可能。
在众多作坊中率先脱颖而出的,当然是大家都熟知的苹果,75年,乔布斯和沃兹开始设计电脑时,270块的8080着实太贵了,不过他们凑巧在展会上买到了20块一片的6502,于是Apple I和II的CPU就基于6502。
上帝通过苹果,教会了人类很多,这个叫做苹果的电脑公司,也一炮而红,销售额5年内爬到10亿美金,进入TOP500企业,引领众多“车库”电脑公司,兴风作浪,让以大型机等“贵族式”专业计算机为生的IBM 大为光火,决定正式进去微电脑行业。
80年,蓝色巨人找来两个小兄弟,Intel和微软,告诉他们有一个秘密项目“国际象棋”,需要他们参与,两个小兄弟都很激动,全力投入了进来。他们选择了准16位的CPU 8088,这样就比苹果选用的8位CPU 6502快多了。81年,PC(personal computer)成功发布,IBM登高一呼,宣布开放PC标准,公布了硬件设计原理图和BIOS源码,从此,一个行业诞生了,一个时代开始了!Wintel驾着兼容PC的大潮,登上了IT时代的巅峰,驰骋30年。
乔布斯虽然开启了微电脑时代,但引导大潮的却是IBM,得益的竟是Wintel。
造化弄人,上帝的玩笑。
IBM PC一推出,就大行其道,血洗行业,让众多从车库起家的微电脑公司破产,形成了行业整合效应。
为与IBM PC竞争,85年,Macintosh被设计出来,采用了Motorola的32位 CPU,图形界面,多媒体功能,一经发布,轰动全美,大卖特卖,扭转了苹果的败局。不过,也许就像它错误的名字预示的一样,“雨衣”已经不是“苹果”了,乔布斯被赶出了苹果!
32位的68000让Intel和IBM PC感受到了压力,Intel成立了新的团队进行攻坚,85年,386推出,但是此时,IBM竟然拒绝了386!
原因当然不是IBM表面上说的“我们有大量286 PC/AT机的客户订单”,IBM培育出的PC市场越来越大,这么大的肥肉为何不自己吃?!为何不自己做处理器?于是PowerPC即将诞生,不过还需要再等5年。
但是,演进的大潮并没有按照某一个公司的规划发展,IBM也不例外。Compag率先推出了386 PC,
2个月后,台湾宏基也推出了386 PC。而IBM直到87年才推出386 PC。虽然不到一年时间,但足以让历史改变。
康柏从此发力,于94年超越IBM,登上PC王者宝座。
在进入RISC话题前,简单回顾一下工作站(workstation)的历史。
70年代末开始的微电脑大潮,带动CPU快速发展,80年代中32位的68000性能已经匹敌小型机minicomputer,在专业计算机和PC之间的市场区隔,很快就被有识之士盯上了。
早期的工作站设计遵循3M原则(mega bytes、mega flops、mega pixels),以及快速的网络接口、磁盘接口等,用在网络和图形领域。
著名的SUN和SGI,就是专注于这个领域起家的,另外前面提到的DEC,50年代末靠小型机起家,从IBM大型机市场分流了一大块蛋糕,成为第二大计算机公司:
DEC创始人奥尔森:发明全球首台 小型机, 挑战IBM大型机
DEC 80年代初面临工作站市场对小型机的冲击,特别是当伯克利RISC和斯坦福MIPS项目开始后。
RISC风靡的时代开始了。
在集成电路发展初期,硬件资源有限,人们渴着劲优化程序,让指令占用尽可能少的存储器,程序员天天跟汇编语言厮混,这可以帮我们更好的理解CISC架构的特点:变长指令以节省空间,尽可能多的功能指令以辅助程序员容易使用。
随着微处理器和半导体工艺的发展,存储器容量不再是苛刻要素,另外,高级语言的普遍使用,带来编译器技术的发展,IBM的Cocke发现,编译器用不到大多数复杂的寻址方式,复杂的硬件实现的指令,也很难由编译器使用,而且有研究发现,基于68000的UNIX OS编译后,只用到了30%的指令,很大一部分用来实现各种千奇百怪指令的电路都浪费了。另外,系统的频率也由于复杂指令实现电路拖慢了。
RISC研究浪潮在80年代初各高校风起云涌,伯克利的RISC和斯坦福的MIPS是代表。还有现在大行其道的ARM,也是在那个时候步伯克利RISC后尘,在英国剑桥系的Acorn公司开始萌芽。
让我们继续回顾计算机行业,80年代的工作站风行,Apollo一度大幅领先,从81~87年,占领网络工作站头把交椅,然而斯坦福系的SUN和SGI开始发力了。Apollo、SUN、SGI等的工作站开始用的CPU是68000。不过斯坦福系的这两个公司技术嗅觉敏锐,很快就切到了RISC。
SUN是斯坦福的三个毕业生82年创建的(Stanford University Network),一上来就瞄准高端工作站市场,并成功切入,不过随着RISC大潮的兴起,SUN果断的于87年启动SPARC的开发,SPARC继承了伯克利RISC的技术,89年推向市场时,卓尔不群的打败了市场上所有的竞争对手。
SUN的几位创始人
几乎在同时,SGI也从68k切换到MIPS作为其工作站的CPU,并且还觉得不过瘾,于92年收购了MIPS公司。
MIPS创始人、斯坦福老校长Hennessy
MIPS公司是82年由斯坦福教授轩尼诗创建,作为交早商用的RISC CPU,盛行于80年代后期和90年代,windows都出过MIPS的版本。 86年推出第一颗R2000,并与87年在SGI 图形工作站应用。
SUN和SGI的加入,使工作站市场越来越红火,DEC的现金牛VAX小型机受到强烈冲击,终于熬不住了,内部争争吵吵后,出了很多应对方案,其中的两个是采用MIPS开发工作站、开发自己的工作站和处理器。
MIPS在DEC的工作站上得到短暂使用,很快,DEC自己的Alpha21064与92年开发完成,一上来就是64位的,性能出众,其设计参考了很多MIPS的技术。DEC的工作站、以及小型机还有后来的超级计算机都切到自己的Alpha处理器。DEC还做了一件事,就是联合ARM,基于ARM7和Alpha的技术,开发了StrongARM。
前面提到的Acorn,英国的苹果,于70年代末建立,也瞄着苹果公司掀起的微电脑市场,在英国赢得了广泛的应用,他们的CPU也跟随苹果,选用6502。80年代初,他们也进入工作站领域,选用NS的32016,此CPU的高性能让Acorn垂涎不已,准备开发自己的微处理器,他们在考察了伯克利RISC项目后,于83年启动了Acorn RISC Machine项目,这就是ARM的起源。85年由VLSI生产了第一片ARM1。
苹果这时准备做一款那个时代的IPAD:Newton牛顿,找来找去,最后发现Acorn的处理器比较合适(功耗、成本、性能、时钟随时可以完全停止等),于是联合继续开发ARM,并且决定形成一个独立的公司,90年,ARM公司正式独立,VLSI作为半导体代工者,首先获得了license授权,后面的岁月里,陆续授权给了TI、三星、高通等。
于是,ARM虽不断滋生繁衍,成燎原之势。
(历史充满了诡异,美国的苹果回过头与英国的苹果合作,一起做出了日后移动时代的CPU架构统治者:ARM。)
IBM的PC机,于80年代中期,成为行业事实标准,几乎统一了微电脑行业,而且差点把苹果和Acorn干掉,不过IBM自己由于开放标准,反而被“山寨”厂家康柏、DELL等逼上了绝路,份额大幅下降,从绝对垄断的百分之七八十,降低到一半以下。
IBM是RISC大潮最早的引领者,但在应用中落伍了,直到90才推出了POWER,用在RISC system/6000上,POWER1是多芯片组成的,所以又启动了单芯片的POWER项目,此时,PC行业的红火培育了Intel,IBM自己也垂涎这块蛋糕,于是他联合苹果,准备把这个单芯片的POWER大量推广,苹果又拉上了Motorola,作为second source。AIM联盟形成,推出的第一款芯片是PowerPC601。PC是performance computing的意思,但市场就是针对PC。微软也加入进来,推出了PowerPC版本的WindowsNT。甚至SUN也推出了一个PowerPC版本的Solaris。
不过,PowerPC除了苹果坚持使用,并未形成气候,因为没有多少软件移植到PowerPC,软件生态圈的贫乏让PowerPC永远停留在了封闭系统里。
(苹果在PowerPC上吃的亏太多了,以至于,老乔巩固了PC帝国后在移动产品上自己做CPU了,当然多亏了当年投资的ARM,否则没有架构可用了;IBM、Motorola,这两个巨无霸,在CPU道路上坚持奋战,直到现在。motorola半导体部门现在叫做Freescale飞思卡尔)
至此,所有的主流CPU架构,都粉墨登场了。在IT行业跌宕起伏、波澜壮阔的发展中,各种CPU也随着各个明星公司的兴衰,演绎出一卷CPU众架构的兴衰史……
Proteus仿真原理图:
程序如下:
#include <reg51h>
#define uchar unsigned char
#define uint unsigned int
uchar data buf[4];
uchar data sec_dx=20;//东西数默认
uchar data sec_nb=30;//南北默认值
uchar data set_timedx=20;
uchar data set_timenb=30;
int n;
uchar data b;//定时器中断次数
sbit k1=P1^6;//定义5组开关
sbit k2=P1^7;
sbit k3=P2^7;
sbit k4=P3^0;
sbit k5=P3^1;
sbit Yellow_nb=P2^5; //南北黄灯标志
sbit Yellow_dx=P2^2; //东西黄灯标志
sbit Green_nb=P2^4;
sbit Green_dx=P2^1;
sbit Buzz=P3^7;
bit Buzzer_Indicate;
bit time=0;//灯状态循环标志
bit set=1;//调时方向切换键标志
uchar code table[11]={ //共阴极字型码
0x3f, //--0
0x06, //--1
0x5b, //--2
0x4f, //--3
0x66, //--4
0x6d, //--5
0x7d, //--6
0x07, //--7
0x7f, //--8
0x6f, //--9
0x00 //--NULL
};
//函数的声明部分
void delay(int ms);//延时子程序
void key();//按键扫描子程序
void key_to1();//键处理子程序
void key_to2();
void key_to3();
void display();//显示子程序
void logo(); //开机LOGO
void Buzzer();
//主程序
void main()
{
TMOD=0X01;
TH0=0XD8;
TL0=0XF0;
EA=1;
ET0=1;
TR0=1;
EX0=1;
EX1=1;
logo();
P2=0Xc3;// 开始默认状态,东西绿灯,南北黄灯
sec_nb=sec_dx+5;
while(1)
{
key(); //调用按键扫描程序
display(); //调用显示程序
Buzzer();
}
}
//函数的定义部分
void key() //按键扫描子程序
{
if(k1!=1)
{
delay(10);
if(k1!=1)
{
while(k1!=1)
{
key_to1();
for(n=0;n<40;n++)
{ display();}
}
}
}
if(k2!=1)
{
delay(10);
if(k2!=1)
{
while(k2!=1)
{
key_to2();
for(n=0;n<40;n++)
{ display();}
}
}
}
if(k3!=1)
{
TR0=1; //启动定时器
Buzzer_Indicate=0;
sec_nb=set_timenb; //从中断回复,仍显示设置过的数值
sec_dx=set_timedx;
if(time==0)
{ P2=0X99;sec_nb=sec_dx+5; }
else { P2=0xC3;sec_dx=sec_nb+5; }
}
if(k4!=1)
{
delay(5);
if(k4!=1)
{
while(k4!=1);
set=!set;
}
}
if(k5!=1)
{
delay(5);
if(k5!=1)
{
while(k5!=1)
key_to3();
}
}
}
void display() //显示子程序
{
buf[1]=sec_dx/10; //第1位 东西秒十位
buf[2]=sec_dx%10; //第2位 东西秒个位
buf[3]=sec_nb/10; //第3位 南北秒十位
buf[0]=sec_nb%10; //第4位 南北秒个位
P1=0xff; // 初始灯为灭的
P0=0x00;
P1=0xfe; //片选LCD1
P0=table[buf[1]];
delay(1);
P1=0xff;
P0=0x00;
P1=0xfd; //片选LCD2
P0=table[buf[2]];
delay(1);
P1=0xff;
P0=0x00;
P1=0Xfb; //片选LCD3
P0=table[buf[3]];
delay(1);
P1=0xff;
P0=0x00;
P1=0Xf7;
P0=table[buf[0]]; //片选LCD4
delay(1);
}
void time0(void) interrupt 1 using 1 //定时中断子程序
{
b++;
if(b==19) // 定时器中断次数
{ b=0;
sec_dx--;
sec_nb--;
if(sec_nb<=5&&time==0) //东西黄灯闪
{ Green_dx=0;Yellow_dx=!Yellow_dx;}
if(sec_dx<=5&&time==1) //南北黄灯闪
{ Green_nb=0;Yellow_nb=!Yellow_nb;}
if(sec_dx==0&&sec_nb==5)
sec_dx=5;
if(sec_nb==0&&sec_dx==5)
sec_nb=5;
if(time==0&&sec_nb==0)
{ P2=0x99;time=!time;sec_nb=set_timenb;sec_dx=set_timenb+5;}
if(time==1&&sec_dx==0)
{P2=0Xc3;time=!time;sec_dx=set_timedx;sec_nb=set_timedx+5;}
}
}
void key_to1() //键盘处理子程序之+
{
TR0=0; //关定时器
if(set==0)
set_timenb++; //南北加1S
else
set_timedx++; //东西加1S
if(set_timenb==100)
set_timenb=1;
if( set_timedx==100)
set_timedx=1; //加到100置1
sec_nb=set_timenb ; //设置的数值赋给东西南北
sec_dx=set_timedx;
}
void key_to2() //键盘处理子程序之-
{
TR0=0; //关定时器
if(set==0)
set_timenb--; //南北减1S
else
set_timedx--; //东西减1S
if(set_timenb==0)
set_timenb=99;
if( set_timedx==0 )
set_timedx=99; //减到1重置99
sec_nb=set_timenb ; //设置的数值赋给东西南北
sec_dx=set_timedx;
}
void key_to3() //键盘处理之紧急车通行
{
TR0=0;
P2=0Xc9;
sec_dx=00;
sec_nb=00;
Buzzer_Indicate=1;
}
void int0(void) interrupt 0 using 1 //只允许东西通行
{
TR0=0;
P2=0Xc3;
Buzzer_Indicate=0;
sec_dx=00;
sec_nb=00;
}
void int1(void) interrupt 2 using 1 //只允许南北通行
{
TR0=0;
P2=0X99;
Buzzer_Indicate=0;
sec_nb=00;
sec_dx=00;
}
void logo()//开机的Logo "- - - -"
{ for(n=0;n<50;n++)
{
P0=0x40;
P1=0xfe;
delay(1);
P1=0xfd;
delay(1);
P1=0Xfb;
delay(1);
P1=0Xf7;
delay(1);
P1 = 0xff;
}
}
void Buzzer()
{
if(Buzzer_Indicate==1)
Buzz=!Buzz;
else Buzz=0;
}
void delay(int ms) //延时子程序
{
uint j,k;
for(j=0;j<ms;j++)
for(k=0;k<124;k++);
}
是,在建筑施工临时供电中,如果前部分是TN-C方式供电,而施工规范规定施工现场必须采用TN-S方式供电系统,则可以在系统后部分现场总配电箱分出PE线。
对电源线路及电动机等实行保护,当它们发生严重的过载或者短路及欠压等故障时能自动切断电路,其功能相当于熔断器式开关与过欠热继电器等的组合。
扩展资料:
塑壳断路器能够自动切断电流在电流超过跳脱设定后。塑壳指的是用塑料绝缘体来作为装置的外壳,用来隔离导体之间以及接地金属部分。塑壳断路器通常含有热磁跳脱单元,而大型号的塑壳断路器会配备固态跳脱传感器。
输配电系统中极其重要的电器设备,根据运行维护管理规定变压器必须定期进行检查,以便及时了解和掌握变压器的运行情况,及时采取有效措施,力争把故障消除在萌芽状态之中,从而保障变压器的安全运行。
参考资料来源:百度百科--配电系统
参考资料来源:百度百科--低压配电系统
trip circuit
例句:
Each circuit breaker trip circuit will be equipped with a trip circuit
在每只断路器跳闸电路上安装一只跳闸电路监控继电器。
一、trip的用法
1、读音 /trɪp/
2、释义
n (尤指短程往返的)旅行;(赛跑等)赛程;(吸毒时经历的)幻觉;绊倒;错误;令人兴奋的经历;自我放纵的态度(或行动);(机器、电路的)开关;(安全装置的)脱扣;轻捷的脚步;让人开心的奇人,奇妙有趣的经历
vi 绊倒,跌倒;轻快地走(或跑、跳舞);(非正式)(服用毒品后)产生幻觉;(部分电路)自动断开;作短途旅行
vt 绊倒;(使)跌倒;触发(开关);起(锚);竖起(帆桁)
3、例句
Any other thoughts about the trip
关于旅行的任何其他的想法?
二、circuit的用法
1、读音 /'sɝkɪt/
2、释义
n [电子] 电路,回路;巡回;一圈;环道
vi 环行
vt 绕回…环行
3、例句
I have implemented this circuit as per the schematics below
我已经实现按以下的这个电路的原理图。
扩展资料
另一种说法:power cuts
例句:
It deployed equipment that automatically reports power cuts
公司安装了能够自动报告电路跳闸事故的设备。
一、power的用法
1、读音 /'paʊɚ/
2、释义
n 力量,能力;电力,功率,性能;政权,势力;[数] 幂
vt 激励;供以动力;使…有力量
vi 快速前进
adj 借影响有权势人物以 *** 纵权力的
3、例句
We all have the power of action
我们每个人都有行动的力量。
二、cut的用法
1、读音 /kʌt/
2、释义
v 割破;(用刀等)切下,割成;剪短;释放;剪裁;削减;删节;剪切;停止做;断绝(关系);剪辑;切换画面;旷(课);伤害;切牌;相交;劈出(通道);录制(音响)
n 切,割;伤口;开口;削减;理发;(服装等的)式样;(钱的)份额;删节;割下的肉;伤害的话(或行为);(场景)切换;(比赛)半程;切球;乐曲;剪辑;河道
adj 缩减的;割下的;雕过的
3、例句
I like the cut of those jeans
我喜欢这件牛仔裤的剪裁。
我前几天刚在网上看到的,不知道对你有没有用》
1. 闪烁灯
1. 实验任务
如图411所示:在P10端口上接一个发光二极管L1,使L1在不停地一亮一灭,一亮一灭的时间间隔为02秒。
2. 电路原理图
图411
3. 系统板上硬件连线
把“单片机系统”区域中的P10端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上。
4. 程序设计内容
(1). 延时程序的设计方法
作为单片机的指令的执行的时间是很短,数量大微秒级,因此,我们要求的闪烁时间间隔为02秒,相对于微秒来说,相差太大,所以我们在执行某一指令时,插入延时程序,来达到我们的要求,但这样的延时程序是如何设计呢?下面具体介绍其原理:
如图411所示的石英晶体为12MHz,因此,1个机器周期为1微秒
机器周期 微秒
MOV R6,#20 2个机器周期 2
D1: MOV R7,#248 2个机器周期 2 2+2×248=498 20×
DJNZ R7,$ 2个机器周期 2×248 498
DJNZ R6,D1 2个机器周期 2×20=40 10002
因此,上面的延时程序时间为10002ms。
由以上可知,当R6=10、R7=248时,延时5ms,R6=20、R7=248时,延时10ms,以此为基本的计时单位。如本实验要求02秒=200ms,10ms×R5=200ms,则R5=20,延时子程序如下:
DELAY: MOV R5,#20D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RET
(2). 输出控制
如图1所示,当P10端口输出高电平,即P10=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P10端口输出低电平,即P10=0时,发光二极管L1亮;我们可以使用SETB P10指令使P10端口输出高电平,使用CLR P10指令使P10端口输出低电平。
5. 程序框图
如图412所示
图412
6. 汇编源程序ORG 0START: CLR P10LCALL DELAYSETB P10LCALL DELAYLJMP STARTDELAY: MOV R5,#20 ;延时子程序,延时02秒D1: MOV R6,#20D2: MOV R7,#248DJNZ R7,$DJNZ R6,D2DJNZ R5,D1RETEND7. C语言源程序#include <AT89X51H>sbit L1=P1^0;void delay02s(void) //延时02秒子程序{unsigned char i,j,k;for(i=20;i>0;i--)for(j=20;j>0;j--)for(k=248;k>0;k--);}void main(void){while(1){L1=0;delay02s();L1=1;delay02s();}}
2. 模拟开关灯
1. 实验任务
如图421所示,监视开关K1(接在P30端口上),用发光二极管L1(接在单片机P10端口上)显示开关状态,如果开关合上,L1亮,开关打开,L1熄灭。
2. 电路原理图
图421
3. 系统板上硬件连线
(1). 把“单片机系统”区域中的P10端口用导线连接到“八路发光二极管指示模块”区域中的L1端口上;
(2). 把“单片机系统”区域中的P30端口用导线连接到“四路拨动开关”区域中的K1端口上;
4. 程序设计内容
(1). 开关状态的检测过程
单片机对开关状态的检测相对于单片机来说,是从单片机的P30端口输入信号,而输入的信号只有高电平和低电平两种,当拨开开关K1拨上去,即输入高电平,相当开关断开,当拨动开关K1拨下去,即输入低电平,相当开关闭合。单片机可以采用JB BIT,REL或者是JNB BIT,REL指令来完成对开关状态的检测即可。
(2). 输出控制
如图3所示,当P10端口输出高电平,即P10=1时,根据发光二极管的单向导电性可知,这时发光二极管L1熄灭;当P10端口输出低电平,即P10=0时,发光二极管L1亮;我们可以使用SETB P10指令使P10端口输出高电平,使用CLR P10指令使P10端口输出低电平。
5. 程序框图
图422
6. 汇编源程序 ORG 00HSTART: JB P30,LIGCLR P10SJMP STARTLIG: SETB P10SJMP STARTEND
7. C语言源程序#include <AT89X51H>sbit K1=P3^0;sbit L1=P1^0;void main(void){while(1){if(K1==0){L1=0; //灯亮}else{L1=1; //灯灭}}}
3. 多路开关状态指示
1. 实验任务
如图431所示,AT89S51单片机的P10-P13接四个发光二极管L1-L4,P14-P17接了四个开关K1-K4,编程将开关的状态反映到发光二极管上。(开关闭合,对应的灯亮,开关断开,对应的灯灭)。
2. 电路原理图
图431
3. 系统板上硬件连线
(1. 把“单片机系统”区域中的P10-P13用导线连接到“八路发光二极管指示模块”区域中的L1-L4端口上;
(2. 把“单片机系统”区域中的P14-P17用导线连接到“四路拨动开关”区域中的K1-K4端口上;
4. 程序设计内容
(1. 开关状态检测
对于开关状态检测,相对单片机来说,是输入关系,我们可轮流检测每个开关状态,根据每个开关的状态让相应的发光二极管指示,可以采用JB P1X,REL或JNB P1X,REL指令来完成;也可以一次性检测四路开关状态,然后让其指示,可以采用MOV A,P1指令一次把P1端口的状态全部读入,然后取高4位的状态来指示。
(2. 输出控制
根据开关的状态,由发光二极管L1-L4来指示,我们可以用SETB P1X和CLR P1X指令来完成,也可以采用MOV P1,#1111XXXXB方法一次指示。
5. 程序框图
读P1口数据到ACC中
ACC内容右移4次
ACC内容与F0H相或
ACC内容送入P1口
<![endif]-->
图432
6. 方法一(汇编源程序)ORG 00HSTART: MOV A,P1ANL A,#0F0HRR ARR ARR ARR AORl A,#0F0HMOV P1,ASJMP STARTEND7. 方法一(C语言源程序)#include <AT89X51H>unsigned char temp;void main(void){while(1){temp=P1>>4;temp=temp | 0xf0;P1=temp;}}8. 方法二(汇编源程序)ORG 00HSTART: JB P14,NEXT1CLR P10SJMP NEX1NEXT1: SETB P10NEX1: JB P15,NEXT2CLR P11SJMP NEX2NEXT2: SETB P11NEX2: JB P16,NEXT3CLR P12SJMP NEX3NEXT3: SETB P12NEX3: JB P17,NEXT4CLR P13SJMP NEX4NEXT4: SETB P13NEX4: SJMP STARTEND9. 方法二(C语言源程序)#include <AT89X51H>void main(void){while(1){if(P1_4==0){P1_0=0;}else{P1_0=1;}if(P1_5==0){P1_1=0;}else{P1_1=1;}if(P1_6==0){P1_2=0;}else{P1_2=1;}if(P1_7==0){P1_3=0;}else{P1_3=1;}}}
先给你,传不上 太多了
一、Java核心
这是学习Java的基础,掌握程度的深浅甚至直接影响后面的整个学习进程。Java的核心主要包括3个部分:
1、初级的有语法基础、面向对象思想。
学习任何一门语言语法都是必须的,因为Java的接近自然语言,也是一种相对比较容易学的语言。同时面向对象编程更是其核心思想,要理解其实只要记住一句话就行了,那就是:一切皆是对象。
2、中级的IO流、多线程、反射及注解等。
IO流程、多线程等是相对比较高级一点的了,通过学习我们会发现这些都很有用而且很有趣。例如我们可以读取一个Excel文件、将一个文件分离,做一个时钟、使用多个线程发送邮件等等很多有意思的事。另外反射及注解更是后面流行框架SSH等的基础,在使用中你便会慢慢感受到它的无穷魅力。
3、高级一点的就是设计模式和框架之类了。
要学习好一门语言,仅仅会使用还是不够的,我们不仅要深入研究其原理,而且还要找到其一些共性的东西,从而减少反复的劳动,让代码可重用、更可靠且更容易被别人理解。
二、前端Web
现在来说Java最流行的应用还是Web开发。那么作为Web开发,对于前台的知识的学习也是必须的,当然并不是一定要按照前端工程师的标准去要求。但是一些基础的知识也是必须要掌握的,毕竟Web应用是前台和后台的一个交互的过程。像HTML、CSS、JavaScript等都是基础的知识,另外作为开发人员对目前最流行的JavaScript框架jQuery更是必学不可的。
三、数据库
有人说,所有的应用无非就是数据的输入、处理到输出的过程。期间同时可能还会涉及到数据的存储问题。对于结构化的数据,我们常用的还是像Oracle、MySQL和PostgreSQL之类的关系型数据库。同时针对数据库编程还是PL/SQL需要学习。使用Java访问数据库的话还有JDBC。那么对于非结构化的数据以及大数据该如何处理呢?其实这里也已经有了非常成熟的解决方案了,那便是Hadoop。就Hadoop而言他并不是一种思想,更多是一个实现了Mapreduce模式的框架。
四、J2EE
好了,前面这么多准备的工作。下面我们进入正题。作为Java开发,CoreJava是核心,而作为JavaWeb开发,我认为Servlet才是核心。IT培训发现Servlet是服务器端的Java应用程序,但是与普通的Java应用程序不同的是,它是由web服务器来加载启动,即我们常说的Servlet,如Tomcat便是servlet容器。另外谈到J2EE开发,这里有一个重要的模型不得不提一下,很多人其实已经想到了,那便是MVC(模型-视图-控制器)模型。在传统的web开发中,往往是JavaBean充当模型、JSP做视图而Servlet作为控制器。
楼主,不同产品申请不同项目提供的资料不同。\x0d\射频类需要的资料有:\x0d\2样品 Sample (s) PCS 3-4套 (整套含配件,频率间隔大于1M,需要高中低频率发射三台样机和一台普通发射样或定频软件)\x0d\ \x0d\3技术参数(Technical Specification), 包括如下内容:\x0d\AFrequency:要注明频率范围,或详细的频点\x0d\BModulation:工作模式,如:FM, HFSS, DSSS, UNPS, GSM, CDMA等等\x0d\COutput Power 功率\x0d\\x0d\4英文说明书(User Manual) \x0d\\x0d\5.关键元器件清单BOM List (PCB,线材等,需标出UL File No)\x0d\\x0d\6 电路图,原理图 Schematics (要标明元器件参数,要标有天线)\x0d\\x0d\7方框图 Block Diagram (要有天线,并在天线端标出发射频率)\x0d\\x0d\8零件底板图 Part layout (元器件位置图)\x0d\\x0d\9线路描述 Circuit Description 又叫 Operational Description (将电路原理图和方框图以文字的方式描述出来。)\x0d\\x0d\9.PCB丝印图 PCB LAOUT图(印刷布线图)\x0d\\x0d\10.充电器EN60950测试报告。 EN60950 Report for Adaptor\x0d\\x0d\11.最终软硬件版本 Final Hardware Version ,Final Software version\x0d\\x0d\12.蓝牙,WIFI的调制的工程指令 BT,WIFI Injunction for testing (进入工程模式测试指令)\x0d\\x0d\13天线规格书 Antenna Specification (含增益,GSM,WIFI,BT,WCDMA等天线增益)\x0d\\x0d\14锂电池电芯UL证书 UL Cert for Battery (含UL证书,需要提供电芯规格书)\x0d\\x0d\15PCB阻燃等级UL证书 UL Cert for PCB Board (阻燃等级大过或等V-1)\x0d\\x0d\16DOC回签/POA回签 DOC signed/POA signed (报告完成时)\x0d\\x0d\如果是高压的产品需要的资料增加安规关键元件方面的资料就行了!
以上就是关于处理器发展观察(一)——CPU的起源全部的内容,包括:处理器发展观察(一)——CPU的起源、c51单片机c语言交通灯的程序、低压配电系统TN-C-S中是否必须重复接地接线原理图如何等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)