嵌入式点亮led灯实验总结(嵌入式实验按键控制LED灯)
嵌入式灯优缺点
一、优点
1.高节能:节能能源无污染即为环保。直流驱动,超低功耗(单管0.03-0.06瓦)电光功率转换接近100%,相同照明效果比传统光源节能80%以上。
2.寿命长:LED光源有人称它为长寿灯,意为永不熄灭的灯。固体冷光源,环氧树脂封装,灯体内也没有松动的部分,不存在灯丝发光易烧、热沉积、光衰等缺点,使用寿命可达6万到10万小时,比传统光源寿命长10倍以上。
3.多变幻:LED光源用红、绿、篮三基色原理,在计算机技术控制下使三种颜色具有256级灰度并任意混合,即可产生256×256×256=16777216种颜色,形成不同光色的组合变化多端,实现丰富多彩的动态变化效果及各种图像、也可以选择多种颜色代替普通的钨丝灯泡、亮度更高。
4.利环保:环保效益更佳,光谱中没有紫外线和红外线,既没有热量,也没有辐射,眩光小,而且废弃物可回收,没有污染不含汞元素,冷光源,可以安全触摸,属于典型的绿色照明光源。
5.高新尖:与传统光源单调的发光效果相比,LED光源是低压微电子产品,成功融合了计算机技术、网络通信技术、图像处理技术、嵌入式控制技术等,所以亦是数字信息化产品,是半导体光电器件“高新尖”技术,具有在线编程,无限升级,灵活多变的特点。
二、缺点
led灯具尽管有着很多优点、但是依然处在一个十分被动的局面、过高的价格制约了它的广泛性、致使很难走进平常百姓家中、其次灯具散热也是目前存在的一个重大问题、所以要让led灯具普及起来降低成本和解决灯具发热大是目前较为关键的问题。
热传导性和散热差
业界惯用的MCPCB散热铝质基板,是由底部铝块与上层铜箔组,中间填导热胶(Adhesive)所组成。如何更好的解决散热问题,这还是一个值得研究的问题。
为了更好的解决散热的问题,开发出了全铝灯体的玉米灯。采用铝材为灯体,加上铝基板。可以很好的解决散热问题,从而增加灯具寿命。
嵌入式题目2 带开关LED走马灯: 1、程序启动时,实验箱上的八个指示灯循环亮灭,灯亮和灯灭的时间均为1S。
这个还需要你自己做,只能给出你一思路
1、设计一个电路,输出8位数据,每一位表示灯的状态。1,亮,0灭
2、按下键时,布尔值取反,判断是1时,第一个灯亮,然后开始计时,1S后关1灯,亮2灯,依次
做,至到再按下键,布尔值取反,判断0时,灯全灭。
第交1S后循环移动一位,输出,当灭灯时全输出0,
嵌入式中控制LED灯的实验
需要设置你LED亮灭的频率。。不然速度太快看不见
另外,ARM默认寄存器是不用的不开
所以最好把全部开了,不然可能不能实现你的功能
当然,你是懂那些不用开的可以不开
嵌入式实验如何让4个led全亮
#include LPC213X.H
void delay(unsigned int x){
int i;
for(i=0;ix;i++){}
}
int main(){
int i;
PINSEL0=0;//选择gpio
IODIR0=0x0f;//设置输出功能
while(1){
IO0SET=0x0f;
}
}
return 0;
}
怎样学习嵌入式
嵌入式从2002年之后就成为很热门的职业,这其中以ARM的商用分不开。Samsung,Philiphs,Atmel这些公司纷纷推出性价比非常高的arm核的cpu(soc),而且这些soc非常适合作为手机,数码相机, mp3,mp4(还包括汽车电子,医疗电子等行业)的cpu。因此,很多做此类产品的公司对熟悉ARM架构cpu的人才需求很大,再加之大学课程与社会需求脱节,造成人才紧缺。
Arm,除了网路处理器不能抗衡之外,其他领域都有用武之地,它不但会像51单片机一样经久不衰而且会更加辉煌,所以在电子产品整个领域,arm将是工程师必须掌握的技术。
怎样的人适合学习嵌入式
学习嵌入式需要有一定的基础,这些基础大概包括下面两点:
学过c语言,汇编;
对微控制器有一定了解。
一般理工类(计算机,自动化,电子类专业)的学生大三学比较合适。因为到了大三,一般学过了c语言及汇编,虽然大部分学生没有独立写过一个程序,但至少上过这门课,自己也看过相关知识点;而且上过8051等微控制器原理的课程,也看过类似的教课书。
具备以上基础的人,也不是谁都可以学。因为嵌入式学习门槛比较高,难度比较大,不但要有一定的毅力,而且要触类旁通,如果太死板也很难学会。
概括的说学习嵌入式还必备下列性格:
热爱研发!
切忌浮躁!
执着,顽强,自信!
举一反三!
热爱研发,不仅仅是“喜欢搞技术”;我永远记得我第一次在EM78P156EL(仪隆8位单片机)上点亮第一个LED灯的感觉,可以用“欣喜若狂”来形容。这就是一种热爱。被问题困扰时的着急,无助,绞尽脑汁,到最后通过自己的努力问题得到解决的无比自豪和快感,这一过程是很多人热爱研发的原动力。
切忌浮躁,最近网络总结出了中国人所患的一种通病”丧失了慢能力”!此话不假!改革开发以来,中国翻天覆地的变化,物质的发达,网络的普及,文化的西化,贫富差距的加大造成了我们静不下心来读书,写作,学习。
有一网友博文:《从通用诉奇瑞间谍案反思技术发展之殇》
我一直在思考着为什么我国的产业结构调整一直推行得较为缓慢?为什么大多数毕业生从事制造业的5年计划就是转向管理层?为什么我国较为成功的企业不多...
此文从工程师浮躁的心理阐述了中国工程师和企业的知识技术积累不够,不能产生有价值的发明及有核心技术的企业。因嵌入式开发一时成为了热门职业,工资高,好找工作,很多人决定投入这一行业,可是嵌入式开发需要软硬件知识。
单从软件工程师来说:
需要c语言(要精),汇编语言(要懂),c++(如果是上次应用程序需要精);还有各种通信协议(最基本的有串口通信,I2C,SPI;复杂一点的有tcp/ip,bluetooth等待);还有更重要的中断原理,dma原理,定时器等等!还要看得懂原理图,要根据原理图和datasheet就能把代码写出来,这些都是一个搞嵌入式必须掌握的技术!如果是linux驱动要掌握的知识远不如这些!
所以学习嵌入式要“慢慢来”切忌“浮躁”!
执着、顽强、自信,在产品开发过程中,当你做的比较深的时候,你出现的问题已经太依赖你现在的环境,如果要找人来帮你,你还要花很长时间给他解释你问题产生的原因,他也要花时间从头跟进去,一般是找不到这种人来帮你的。像这种问题在网上也找不到类似的答案,图书馆也查不到有价值的资料。此时,只能靠自己了。虽然没人能帮你,但是你还是要想办法请教人,通过跟别人的讨论或许能给你启发;虽然在网上找不到类似的答案,但你还是需要到网上去找相关信息;虽然图书馆也查不到有价值的资料,但你有时还是需要跑跑图书馆;结合,别人的指导,网络的信息,图书馆的知识,自己的分析,以前的经验,各种实验的排除,如果能坚持做到这些是没有解决不了的问题的。
但是很多人做不到这些;他除了网上找答案,论坛发贴问别人一筹莫展,坚持不了几天就把问题搁置了,如果参加工作,只会让老板认为你能力不够,下次也不会委以重任;如果是学习,你将不能深入进去,做不到精通。
在你嵌入式职业生涯中,如果第一个棘手的问题凭你的不懈努力解决了,那么,接下来的问题都会得到解决,因为第一次解决问题不但让你学会了如何分析问题,解决问题,更重要的是增强了你的自信。其实,我们做研发工作不是搞发明,所有的问题都难不到哪里去!我有个同事,这位同事是我招募进公司的应届毕业生,嵌入式是中的问题对一个应届毕业生来说确实比较难,比如说通过IO脚来模拟I2C总线读写EEPROM。我记得这位同事说过一句话,他说“别人能发明,至少我能会用!”。
我从这句话中感受到了他的自信,事实确是如此,我们仅仅是应用,不是发明,我们都应该有能力去把这些原理性的东西搞懂,这位同事在后续的工作中,一直是出类拔萃,工资也越来越高!
举一反三,或者说模仿。在驱动开发中这种能力尤其重要,比如在Rtems,Linux这种OS中,支持各种BSP,但不一定支持你所用的BSP。现在学习嵌入式比较流行的开发板是s3c2410,如果OS是用rtems那么你找不到现成的BSP,但幸运的是rtems支持2400,我们就可以很容易的模仿它做一个2410的BSP,如果你的网卡是cs8900,那么你很不幸,2400中没有cs8900的网卡驱动,怎么办,如果够心细,你会发现edp7312的BSP中有cs8900的驱动,那么你就可以搬过来,虽然有很多改动的地方,但是比重新写一个符合rtems的驱动要来得容易的多。 若想用arm开发板可以考虑下qs-pte9,我自己用过很不错
在嵌入式学习,中断实验LED1,LED2,LED3循环点亮五秒,我用的是mdelay(500
#inlcude reg51.h
sbit LED1 = P1^0; // LED 高电平亮
sbit LED2 = P1^1;
sbit LED3 = P1^2;
sbit KEY1 = P2^0;//按键低电平有效
sbit KEY2 = P2^1;
sbit KEY3 = P2^2;
sbit KEY4 = P2^3;
char KEY1_T,KEY2_T,KEY3_T,KEY4_T;
void main()
{
while(1)
{
if ( (KEY1 == 0)(KEY1_T == 0) ){LED1 = 1;LED2 = 1;LED3 = 1;KEY1_T = 1;} //总控开
else if ( (KEY1 == 0)(KEY1_T == 1) ){LED1 = 0;LED2 = 0;LED3 = 0;KEY1_T = 0;} //总控关
if ( (KEY2 == 0)(KEY2_T == 0) ){LED1 = 1;KEY2_T = 1;} //LED1 开
else if ( (KEY2 == 0)(KEY2_T == 1) ){LED1 = 0;KEY2_T = 0;} //LED1 关
if ( (KEY3 == 0)(KEY3_T == 0) ){LED2 = 1;KEY3_T = 1;} //LED2 开
else if ( (KEY3 == 0)(KEY3_T == 1) ){LED2 = 0;KEY3_T = 0;} //LED2关
if ( (KEY4 == 0)(KEY4_T == 0) ){LED3 = 1;KEY4_T = 1;} //LED3 开
else if ( (KEY4 == 0)(KEY4_T == 1) ){LED3 = 0;KEY4_T = 0;} //LED3关
}
}
自己在弄一下按键!