自学MCS-51单片机心得体会
无论是作为一名业余的电子爱好者还是一名电子行业的相关从业人员,掌握单片机技术无疑可以使您如虎添翼,为您的电子小制作或者开发设计电子产品时打开方便的大门! 而且现在学习单片机技术的热潮正在不断升温,时下多家电子类的报刊杂志如:《电子制作》《无线电》《电子报》《电子世界》都开设了详细的单片机学习专栏,对于想学习单片机的朋友来说帮助很大,可以说现在的单片机学习环境是最好的,经过一段时间的努力,采用单片机来开发设计电子产品已经不再是专业电子工程师的“专利”!作为一个普通的电子爱好者完全可以通过一番努力后熟练掌握!国外的电子爱好者采用单片机来设计小制作非常普及,一些智能机器人、智能自动装置内部都离不开单片机的身影~~~
现今单片机学习环境真的是太好了,有网络,有书籍,有报刊杂志,还有视频教程,元件的采购方面也非常充足,相关的器材又多有便宜,相比而言,本人当初的学习条件就只可以“寒碜”二字来形容了:
站长的单片机技术是通过看书、动手自学学会的。 又因为站长的专业不是电子专业,所以单片机对于我来说是完全陌生的——最初我对单片机的概念都不清楚,还弄了一年多时间的单板机(i8085)——直到后来在图书城“蹲点”(当时上网还是件奢侈的事情,何况我也没电脑),才总算明白什么是单片机。 当时(7年前,我还上高中的时候),可以供选择的单片机种类并不如现今这么多,因此通常说起单片机就是特指MCS-51,因此我也就学了它。不过,正是因为用它的人多,所以能够获得的资料也多,元件也比较好购,因此我的自学之路才得以顺利走下去。 当时那个穷啊,不敢买新零件,只能在废旧家电上拆,参数不匹配也将就着用,而且还多亏了商铺老板看我可怜而以6折的价给了我一片i8051和一片2864,要知道当时这两个东东加起来有七十多块啊,够我三个月的零花钱了(都高中了,三个月才这么点零花钱!)。 元件基本上差不多了,没有电脑写程序怎么办呢,好在我买的那本书上提供了指令的机器码,所以我就先用笔在纸上把汇编源程序写出来,然后根据书上的指令表把源程序手工翻译成机器码,就是10001111这样的代码,写在源程序旁边。这就是我的“编辑环境”和“编译器”! 程序也有了,可是怎样把它弄到存储器里去呢,买编程器是不现实的,一来没有电脑,二来,当时一只编程器上千元的价格也只能让我啧啧摇头。
那怎么办呢……想来想去,找来找去,最后我利用以前做小实验的那几块面包板,拼在一块合适大小的木板上,然后把存储器按照要求插好,用插线连好电源和地,用电阻做出高低电平,然后通上电,再根据地址和数据的状态,用镊子把那些连线一根一根插到高或低电平,核对之后再把WR引线接一下地,这样就可以写入一个字节,写下面的字节的时候就重复以上这些步骤就行了。若是程序要改动一点,那个工作量就“非常庞大”了。
这就是我的“编程器”! 我写的第一个MCS-51单片机程序——点亮一只LED,以及后来的流水灯程序等,就是在这样的条件下来完成的。 现在,一个最廉价的仿真器也才人民币几十元,一块功能多些的单片机实验板也才上百元,简直就是学习者的天堂了。 网络也给爱好者提供了很多很好的资料,例如平凡的单片机网站。平凡的单片机网站上有非常详细的51单片机基础知识教程,写得非常生动朴实,对初学者来说帮助极大,其它还有不少网站也提供这些内容,还有专供爱好者讨论交流的论坛。 学习单片机技术有一定的难度,不花费一番努力是很难学会的,但是只要不断努力就一定能成功,学习单片机永远记住一句话:实践是检验真理的唯一方法。多动手做,哪怕是从点亮一只指示灯开始,也要动手去做,否则就会永远停留在书本上。 从51系列开始学单片机是个不错的选择:
1书多、资料多
2掌握51技术的人多,碰到问题能请教的老师也就多了
351系列的实验芯片AT89C51价格低廉而且很容易买到,AT89C51芯片而且可以反复擦写1000次以上,对于初学者来说真是太合适了,就算以后考虑工业运用,也可以先学透51后再学其他类型的单片机,毕竟技术是相通的。
4相关的器材很廉价,具有绝大多数功能的下载型仿真器才几十元,最简单的专用编程器也才几十元,如果有能力自己做编程器就更便宜。 学习单片机的第一步是看书,单片机是一个知识密集的东东,不看书是绝对不行的,北航出版社(北京航空航天大学出版社)出版了大量单片机方面的好书,可以直接登录他们的网站进行邮购。本人认为第一本书应该是8051单片机的基础原理书。我看的第一本书是咬牙买的兵器工业出版社的《8051/8098单片机原理几接口设计》,这本书不是别人向我推荐的,也不是教材,但它比较系统地介绍了51芯片的基础知识,我正是通过这本书入门的,可以很系统地了解51单片机。对比我后来买的其它51方面的书籍,我还是推荐这本。虽然这些书籍一开始不一定能懂,不过确实很有用,很有嚼头,可以先大致看一遍,不消化的可以以后在试验实践中反复研究。 学习单片机的第二步是购买工具,单片机芯片必须借助编程器才能写入程序,本人用的编程器是一种性能较好的TOP2003通用编程器,通用编程器的特点是专为开发单片机和烧写各类存储器而设计的通用机型,它的编程可靠性高,支持的器件品种很多,不过这些商品化的设备价格偏高,不太适合初学者,或者说有一定程度上的浪费。 本人向初学者推荐一类廉价的编程器,注意,我说的是“一类”,而不是一种特定型号的。
这种编程器一般具有以下特点:
1没有外壳,而是以裸露的线路板直接销售
2通常支持常用的单片机和一些其它的芯片,例如存储器等
3通常不是USB接口,一般采用串行或并行接口连接电脑
4价格一般在一两百元左右
本站暂时不打算做这样的编程器,但若朋友们有需要,本人也可以考虑做一些提供给大家。
不过从长远的方面考虑,购置一台通用编程器还是有必要的,需要了解的朋友可以搜索一下“单片机编程器”。 学习单片机的第三步是反复编程实践,一个好的实验平台非常重要,实验平台的类型有许多,那些专业的产品动辄几千元,不是普通爱好者能承受的,也完全没有必要使用那样的产品。象编程器一样,有廉价实验板作为替代,有的产品比那些专业器材更好,例如本站推出的MCS-51 Study Board V30和V50板,就是非常贴近实际使用的设计,如果给它们配上适当的软件,是完全可以直接作为工业控制板而安装在机械设备中使用的。 仿真器对单片机初学者来说既是那么耳熟,同时又有些陌生,这主要是因为市场上传统的仿真器价格都在千元以上,对经济不是非常宽裕的人来说是不小的开支。同时仿真器是用来提高调试程序效率的,也不是非需不可的,所以站长在自学单片机的时候没有用过仿真器,碰到程序出错的时候,只好苦思冥想,或者在程序中插入一些驱动端口的指令,然后再接上一些发光二极管做简单指示,一般调试一个程序,反复烧写几十次芯片是很经常的。 具备了必要的工具以后就可以开始学习单片机了,对单片机进行编程可以采用汇编语言或者C语言,汇编语言的特点是代码紧凑,对初学者的电脑水平要求低、上手快,但是程序编写工作量大,站长网站的程序范例就是采用汇编语言编写的,这里说的C语言是专用于51单片机的C语言,它的特点是编写效率高,但是对使用者的电脑水平要求高,最好是已经会C语言了,站长网站上也有单片机C语言教程,是磁动力工作室网站明浩站长编写的,站长不会C语言,所以是从汇编语言开始学编程的。我认为初学单片机的人最好懂一些汇编语言,汇编语言可以直接控制单片机的资源,比如具体的单片机引脚、内存地址,掌握这些也是很有必要的,学会汇编语言可以打下比较好的基础,很多参考书也是这么说的,如果你是专业单片机开发人员,那么C语言效率高,更适合你。 自学汇编语言,首先要学会看懂别人的汇编语言程序,可以将汇编语言的指令翻译成自己容易理解的功能描述性文字,详细注释在程序后面,这样便于自己以后引用或者别人容易看懂。站长看到别人写的一些汇编程序的注释都非常少,这非常不利于初学者学习和互相交流,所以只要是站长写的程序都做了非常详细的注释。 学习汇编语言可以参考相关的书,汇编语言有100多条指令,但是常用的指令也就二三十条,可以先记住常用的汇编指令,如果一时记不住可以打印在纸上慢慢熟悉,然后对别人的汇编程序再加以试验验证,最后还可以在自己理解的基础上对汇编程序的相关参数修改再反复试验。 最后告诉朋友们一个秘密:学习单片机没有捷径!
51单片机初学者学习步骤:
1第一步:基础理论知识学习。
单片机编程用C语言或汇编语言都可以,但是我建议用C语言比较好,模块化管理编程方便,移植性强,适合编写大程序。如果是用C语言编程对单片机进行编程,需要掌握的知识就那么3个条件判断语句、3个循环语句、3个跳转语句和1个开关语句。别小看这10个语句,用他们组合形成的逻辑要多复杂有多复杂。
学习时要一条语句一条语句的学,学一条活用一条,全部学过用过这些关键语句后,相信你的C基础建立了。你会感觉到单片机不再难学了,而且越学越起劲,在这一过程中我们最好找一本单片机相关的参考书来学习,比如王云51单片机C语言教程,结合书带的云龙51教学视频一起学习更好理解。
2第二步:单片机编程。
有一套完整的学习开发工具学习单片机是需要成本的。必须有一台电脑、一块单片机开发板、一本单片机教材(带教学视频的)。电脑是用来编写和编译
早了,起码要学了数电和模电以后,尤其是数电
单片机学习方法:
网上单片机资料很多:
>
以下程序仿真成功,你试试看。
#include
<reg52h>
#define
uchar
unsigned
char
#define
TL_0SET
(256
-
25)
sbit
P1_0=P1^0;
sbit
P1_1=P1^1;
sbit
P1_2=P1^2;
sbit
P1_3=P1^3;
sbit
P1_6=P1^6;
sbit
P1_7=P1^7;
bdata
uchar
x=0;
sbit
p16=x^0;
sbit
p17=x^1;
sbit
flag=x^2;
uchar
i,
j;
void
e0int()
interrupt
0
//用外部中断0作控制开关,控制四选一数据选择器的输出
{
x++;
if(x
==
4)
x
=
0;
P1_7
=
p16;
P1_6
=
p17;
}
void
time0()
interrupt
1
{
//T0定时25us,T0的中断服务程序
TL0
=
TL_0SET
+
8;//加8,是对程序做一个误差补偿,因为从进入定时中断,到执行中断里的第一句程序,是有时间间隔的,在此做一个误差补偿
i++;
P1
=
i;
P1_7
=
p16;
P1_6
=
p17;
}
void
main()
{
TR0
=
0;
TMOD
=
0x02;
TL0
=
TL_0SET;
TR0
=
1;
//T0定时器开始工作
ET0
=
1;
EX0
=
1;//外部中断0允许
IT0
=
1;//外部中断0由下降沿触发
EA
=
1;
P1_0
=
0;
P1_1
=
0;
P1_2
=
0;
P1_3
=
0;
flag
=
0;
while(1)
{;}
}
如果你是电子信息工程专业的学生,那么单片机会在大二或大三开始学习89C51,这项技术你要学的好,你需要提前一学期开始自学这门课,等到老师开始上课,你就会落后很多,且老师讲的,根本是云里雾里,下面是我自己学习时的一些经验。
1相信此时你对C程序与电路图都有了解下,PROTEL99SE你也已经使用多次,这里提下,如果以后你搞硬件,画PCB板的话,这个你还是需要好好学习,网上也有很多相关资料,也有其他一些画PCB的,但不妨从这款软件开始学起。学51单片机,首先你安装两款软件,其中用来画图的是proteus仿真软件,一般的元器件,里面大都有,你去百度文库里,下一张proteus元器件名称,找到元器件,你就可以组成电路。
2proteus是制图软件,此时你还需要一款编写程序的软件,Keil C51软件,在这个平台上,你需要的就是编写51程序,主要就是在mainC里面编写,具体的 *** 作我这里先不说了。写完后然后倒入到电路图中单片机内,然后仿真,就会有结果显示
3介绍完大致两款软件,这里在带一下学习教材。学习一款软件,最有效的方法就是看视频学习,几代学长们的推荐《郭天祥的十天学会单片机视频教程》,当时我也是学习的这款,讲的非常详细,让不懂的人也可以渐渐明白怎么 *** 作,这便是强烈推荐,还是就是你看了这些视频,同时也需要去网上找一些小题目来练练手,等到你自己能完整编出一个程序,实现了某一个功能,你很会有成就感的。
4再是推荐下学单片机的一些电子网站,在网站里,你会看前辈们很多实例,还有一些讲解,你也会受到很大启发,如电子发烧友、21IC中国电子网等,后续你明白之后,就可以自己多找找这类网站。
5最后说下,学习这门客,最重要的是实际动手能力,你可以去买开发板,把上面的功能全实现,也可以自己搭建电路,多多练习,你会发现你会懂得更多!
51作为学习入门,确实是最最基础的了,不过至少它可以让一个新手明白控制是怎么回事,反馈是怎么回事,程序是怎么下载进去运行,又是怎么控制到io输入输出的,如何去访问寄存器,掌握一套在嵌入式领悟最最基本的开发方法和学习思路。这部分如果有兴趣,建议学习时间不要超过两个月。
1c语言,及部分汇编代码
2用一个月时间看完做完郭天祥的十天学会51单片机
3买一块开发板
4学习能够看懂看会原理图
5掌握搜集资料,datasheet查找阅读英文手册的能力
6自己动手动手动手做一个简单的功能
最后,我其实不建议51入门,可以直接stm32,虽然他还是单片机。不过十年前我当初也是51入门的,乐此不疲。至于忽悠你什么协议,内核,我觉得让一个大一嵌入式新手学这些,无疑没有基础就想建高楼,所以踏踏实实从基础开始,大学就是注重基础,学习能力!
怎么样才能够写好51单片机程序?首先要对单片机及编程语言要 熟悉、精通,不断学习 提高自己的逻辑思维能力,多看一些仿真实例 学习人家的编程技巧,也可以先 用人家的仿真实例加以改编 来达到自己 预期的效果,能力是不断积累,如果能够持之以恒就会那么自己的能力也会进步的。
以上就是关于学习51单片机怎样才能熟练掌握使用编程全部的内容,包括:学习51单片机怎样才能熟练掌握使用编程、51单片机初学者该怎么学、求51单片机c语言教程 pdf等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)