㈠ 单片机该如何去学习
说说单片机,一般我们现在用的比较多的的MCS-51的单片机,它的资料比较多,用的人也很多,市场也很大。就我个人的体会怎么样才能更快的学会单片机这门课。单片机这门课是一项非常重视动手实践的科目,不能总是看书,但是学习它首先必须得看书,因为从书中你需要大概了解一下,单片机的各个功能寄存器,而说明白点,我们使用单片机就是用软件去控制单片机的各个功能寄存器,再说明白点,就是控制单片机那些管脚的电平什么时候输出高,什么时候输出低。由这些高低电平的变化来控制你的系统板,实现我们需要的各个功能。至于看书,只需大概了解单片机各管脚都是干什么的?能实现什么样的功能?第一次,第二次你可能看不明白,但这不要紧,因为还缺少实际的感观认识。所以我总是说,学单片机看书看两三天的就够了,看小说你一天能看五六本,看单片机你两三天看两三遍就够了,可以不用仔细的看。推荐一本书,就这一本就足够,书名是《新编MCS-51单片机应用设计》,是哈尔滨工业大学出版社出的的,作者是张毅刚。大概了解一下书上的内容,然后实践,这是非常关键的,如果说学单片机你不实践那是不可能学会的,关于实践有两种方法你可以选择,一种方法:你自己花钱买一块单片机的学习板,不要求功能太全的,对于初学者来说你买功能非常多的那种板子,上面有很多东西你这辈子都用不着,我建议有流水灯、数码管、独立键盘、矩阵键盘、AD或DA(原理一样)、液晶、蜂鸣器,这就差不多了。如果上面我提到的这些,你能熟练应用,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计电路,不断的积累经验。只要过了第一关,后面的路就好走多了,万事开头难,大家可能都听过。方法二:你身边如果有单片机方面的高手,向他求助,让他帮你搭个简单的最小系统板。对于高手来说,做个单片机的最小系统板只需要一分钟的时间,而对于初学者可就难多了,因为只有对硬件了解了,才能熟练运用。而如果你身边没有这样的高手,又找不到可以帮助你的人,那我劝你最好是自己买上一块,毕竟自己有一块要方便的多,以后做单片机类的小实验时都能用得上,还省事。
有了单片机学习板之后你就要多练习,最好是自己有台电脑,一天少看电影,少打游戏,把学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件,然后从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现单片机是多么迷人的东西啊,太好玩了,这不是在学习知识,而是在玩,当你编写的程序按你的意愿实现时你比做什么事都开心,你会上瘾的,真的。做电子类的人真的会上瘾。然后让数码管亮起来,这两项会了后,你已经不能自拔了,你已经开始考虑你这辈子要走哪一行了。就是要这样练习,在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,或是问别人,当得到解答后你会记住一辈子的,知识必须用于现实生活中,解决实际问题,这样才能发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?是不是为了期末考试而忙碌呢?考完得了90分,哈哈哈好高兴啊,下学期开学回来忘的一干二净,是不是?你学到什么了?但是我告诉你单片机一旦学会,永远不会忘了。另外我再说说用汇编和C语言编程的问题。很多同学大一二就开设了C语言的课,我也上过,我知道那时天天就是几乘几,几加几啊,求个阶乘啊。学完了有什么用?让你用C语言编单片机的程序你是不是就傻了?书上的东西我们必须要会运用。单片机编程用C语言或汇编语言都可以,但是我建议用C语言比较好,如果原来有C语言的基础那学起来会更好,如果没有,也可以边学单片机边学C语言,C语言也挺简单,只是一门工具而已,我劝你最好学会,将来肯定用得着,要不你以后也得学,你一点汇编都不会根本无所谓,但你一点C语言都不会那你将来会吃苦头。汇编写程序代码效率高,但相对难度较大,而且很罗嗦,尤其是遇到算法方面的问题时,根本是麻烦的不得了,现在单片机的主频在不断的提高,我们完全不需要那么高效率的代码,因为有高频率的时钟,单片机的ROM也在不断的提高,足够装得下你用C语言写的任何代码,C语言的资料又多又好找,将来可移植性非常好,只需要变一个IO口写个温度传感器的程序在哪里都能用,所以我劝大家用C语言。
总结上面,只要你有信心,做事能坚持到底,有不成功不放弃的强烈意志,那学个单片机来说就是件非常容易的事。
步骤:1.找本书大概了解一下单片机结构,大概了解就行。不用都看懂,又不让你出书的。郭天祥的《新概念51单片机教程》很好。
2.找学习板练习编写程序,学单片机就是练编程序,遇到不会的再问人或查书。也用过天祥的吧。 网上收下都有。
3.自己网上找些小电路类的资料练习设计外围电路。焊好后自己调试,熟悉过程。多看下别人的程序,建立自己的程序风格。
4.自己完全设计具有个人风格的电路, 试着去做一些小东西 如电子秤 数字钟
这样你已是个高手了。
㈡ 本人对单片机感兴趣,但没有基础,不知道从何学起。
学习主要是兴趣。喜欢单片机就去学单片机。
1.我个人建议,初步学习、单片机从C语言学起,汇编我觉得不适合初学,毕竟大学都开设了C语言课,比较熟悉点。
2.两个软件你要会用,第一个是KEIL编程软件,要用这个来编译程序产生HEX文件,具体怎么操作需要找些资料学习,相信你一天之类就会弄熟练。
如果你买了开发板就充分利用开发板学习,没有买的话初步就用PROTEUS仿真软件学习,怎么操作这个软件同样需要找相关资料,也很容易的。
3.起初编写些比较简单的程序,主要是发光二极管方面的程序,再慢慢延伸到刘水登等。写程序之前你可以在网上找些这方面的程序先参考下看懂再自己仿照着写这些程序,写程序开始是需要多练习的。
4.如果自己感觉学起来还是不顺手就在网上找些单片机方面的视频边看边学,这样可能会让你学得更有精神。
5.每写一个程序都要仿真一下或者在板子上运行一下看看效果,慢慢的对着程序调试,这样多次调试,相信你的单片机水平会很快上升的。
6.如果自己感觉学得差不多了就要找个比较小的项目尝试着做下。
7.学习单片机是个复杂的过程,经常会遇到很多困难,这很正常,遇到困难了静下心来认真想下慢慢调试,总会弄出来的,当你调试出来的时候你会感觉单片机真的是个好东西
㈢ 学期末了老师让写一篇单片机学习心得,哪位大神可以帮帮我
单片机是一门应用性和综合性很强的学科,它综合了电子技术中的模拟电路和数字电路方面的知识,特别是数字电路,因为数字电路在里面的应用很多。学习单片机最好先从汇编语言入手,虽然汇编语言是低级语言,编程效率低,但它比C语言占用内存小,执行速度快等优点,在刚接触单片机时更容易学习。由于单片机涉及的知识很多,所以我们只能循序渐进的学习,
逐步的积累,没有什么捷径可循。刚开始学习的时候,对单片机没有什么认识,不知道什么是单片机,更不知道它有什么作用。通过学习才大体知道了单片机的一些知识。
由中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口、定时器/计数器以及串行通信接口等集成在一块芯片上,构成了一个单片微型计算机,简称为单片机。
它的应用范围很广,在工业自动化中应用有数据采集、测控技术。在智能仪器仪表中应用
有数字示波器、数字信号源、数字万用表、感应电流表,自动取款机等。在消费类电子产品中应用有洗衣机、电冰箱、空调机、电视机、微波炉、手机、IC卡、汽车电子设备等。在通讯方面应用有调制解调器、程控交换技术、手机、小灵通等。在武器装备方面应用有飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。学习单片机要投入大量的时间,如果只想速成,几乎是不可能的。由于单片机涉及的知识面很广,不可能在朝夕间就学会,只能一点点的积累。不积跬步,无以至千里。只有当你一步步去学习、去积累之后,你的单片机水平才会
提高。
学习过程中还要注重理解,要逐渐养成自己的编程思路,在编程过程中还要注意细节问题,
如果因为粗心大意将程序写错,将会无形间给自己带来更大的工作量,随着学习的深入,我们编写的程序将越来越长,如果出现很多错误,在改错时将会很麻烦,出错越多你改的时间将会越长,就会无形间给自己带来更多麻烦 。
单片机(micro control unit)是一种集CPU、RAM、ROM、I/O、中断、定时/计数等功能为一体的完整的计算机,只需外加主频振荡器和电源,灌入应用程序就可以实现一定的功能。单片机的的应用特点是“面向测控”。因此,它必须有强力的信息处理、检测、控制的功能。学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编指令系统或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。
一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中 ,连连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各 器件之间的工作必须相互协调?所以就需要的连线就很多了,如果仍如同模拟电路一样 ,在各微处理器和各器件间单独连线线,则线的数量将多得惊人,所以在微处理机中引 入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线 上,即相当于各个器件并联起来,但仅这样还不行,如果有两?器件同时送出数据,一 个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是是不允许的,所以 要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(可以有 多个器件同时接收)。器件的数据线也就被称为数据总线,器件所有的控制线被称 控制 总线。
在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配 地址,才能 用,分配地址当?也是以电信号的形?给出的,由于存储单元比较多,所以 ,用于地址分的线也较多,这些线被称为地址总线。
二、数据、地址、指令:之所以将这三者放在一起,是因为这三者的本质都是一样的─数字,或者说都是?串‘0’和‘1’组成的序列。换言之,地址、指令也都是数据 。指令由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的 一一对应关,不可以由 单片机的开发者更改。
三、P0口、P2口和P3的第二功能用法
初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解,认为第二功能和原功能之间
要有个切换的过程,或者说要有一条指令,事实各端口的第二功能完全是自动,不需要指令来转换。如P3.6、P3.7分别是WR、RD信号,当微片理机外接RAM或有外部I/O口 时,它们挥作第二功能,不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令,就会有相应的信号从P3. 或P3.7送出,不需要事先用指令说明。事实上‘不能作为通用I/O口使用’也并不是‘不能而是(使用者)‘不会’将其作为通用I/O口使用。你完全可以在指令中按排一条S ETB P3.7
的指令,并且当单片机执行到这条指令时,也会使P3.7变为高电平,但使用者不会这么做,
因为这通常这会导致系统当溃(即死机)。
四、程序的执行过程
单片机在通电复位后8051内的程序计数器(PC)中的值为‘0000,所以程序总是从‘0000’单元开始执行,也就是说:在系统的ROM中一定要存在‘0000’个单元,并且在‘0000’单元中存放的一定是一条指令。
五、堆栈 堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的一份,特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’,并且堆栈有特的数据传输指令,即‘PUSH’和甈OP,有一个特殊的专为其服务的单元,即堆栈指针SP
每当执一次PUSH指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP
就(在原来值基础上)动减1。由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP值,就可以把堆栈设置在规定的内存单元中,如在程序开始时?用一条MOV SP,#5FH指令,就时把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这么条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元
开始往后8H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的浑乱
六
:中断当单片机应用于测控系统时,实时性就显得特别重要了。而中断技术就是处理这种实时性要求高的场合。单片机的特点是一段程序反复执行,程序中每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能是需要合理控制的,在使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等。
中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,
监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情。
这就是中断功能的强大之处。
七:汇编语言与C语言
汇编指令有自己的一套繁琐的指令系统,不容易熟练掌握,编写程序不得不注意硬件细节。相对于C语言,汇编语言也有不可忽略的优势,就是在某些特殊场合需要高效的,占用存储空间小的地方。但随着技术的发展硬件的限制越来越小,C语言比较好理解,通用性和可移植性都很不错。也不用记专门的指令集合来,所以我还是比较倾向于用C编写程序的
接触单片机已经有一段时间了,我感觉自己动手学习编写程序,调试然后在开发板上做学习的很快,看到自己看到的结果通过自己亲手做出来的感觉很有成功感。
有时候单片机的学习很单调,有些知识学起来很抽象,不容易理解,只能慢慢适应,一边学习理论知识,一边编写程序,将程序刷入单片机进行调试,通过这种方式才能更快速的学习单片机。同时也会从学习中体会成功的喜悦。
㈣ 选修课选单片机怎么样
单片机这个课还是很难的,尤其是学好了更难,当今社会电子技术人才太多了,如果将来你想在这个方面发展,非得下苦功。
不过,单片机学习起来需要一个学习板,光看书等于没学,很有意思,需要细心的编程。
祝你好运
㈤ 对课程的建议和意见怎么写
对课程的建议和意见可以如实填写,填写对课程不满意的地方和需要改进的地方。
1、部分老师上课只对着课件读,与学生的互动很少,或者说没有。如,嵌入式系统课程,微波技术课程。
建议:采取多样形式和学生互动(提问,分组讨论等),这样能督促学生积极学习,相信效果比较好。
2、部分老师认为很多知识我们都已经学过,故而略去不讲,殊不知,我们急需老师给我们提点,带我们会回忆。
建议:老师上课时尽量花点时间,带着我们复习以前学过的知识。
3、当前学生学习兴趣低,很多同学没有把心思放到学习上来,而是花在了自认为锻炼自己的活动中去。
建议:营造考级考证的氛围(比如召开专题讲座,老师上课多指明其重要性等),这样可以提高班风学风,影响周围同学共同进步。
4、做实验不认真,不积极锻炼实验动手能力,对实验只了解怎么做,却不知为什么这样做。
建议:上实验课时,老师应该多阐明实验原理,并且,结合课本,举出实例,以利于同学消化吸收。
5、课程设置不合理,我们很多前期课程未开,就开始学习要求更高的专业课。如:嵌入式系统课程,先前的单片机类课程没学过;JAVAME先前基本的JAVA知识为零,这样,直接导致了很多同学上课听不懂,进而不听课。
6、实验设备问题,我们通信工程专业实验室里面的最重要的仪器之一,示波器质量就很差,很多时候,不是我们同学调不出来,而是,实验设备问题导致调不出来,实验效果可想而知。
7、课程设计问题,课程设计本来能够很好地锻炼我们自己,真正把书本上学到的东西应用到实际中去,可是,由于学生基础知识掌握不扎实,带课程设计的老师提供的帮助又很少,直接导致最后同学们从网上下载现成文章完成任务。
㈥ 电气工程及其自动化专业,选课是选微机原理好还是选单片机好
微机原理是工科基础课,单片机是现实中可以用到的。
微机原理大多基于8086/88,这是第三代微机是16位的。现在的计算机早就是第六代了32位,肯定会出64位的。但是现在的微机很多构想和最基础的东西都是8086/88,这门课最好学一学。单片机大多是80C51,现在搞一些简单的控制用的很多。
如果精力充足,想多学点东西建议,选微机原理,课余自学单片机。否则,直接选单片机也很好。推荐第一种。
PS:微机原理难一点
㈦ 学习单片机会心得
首先,学习单片机要有一定的基础:电子技术方面要有数字电路和模拟电路等方面的理论基础,特别是数字电路;编程语言要求汇编语言或C语言。要想成为单片机高手,建议初学者首先学习汇编语言,学的差不多的时候,转入C语言学习。尽管汇编语言属于低级语言,编程效率低,但是较C语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。汇编语言在单片机教材里面都会涉及,不需要单独购买教材和学习。C语言是一门学问,有很多专业书籍来讲解,并且对我们今后的编程生涯有绝对的好处,因此要深入学习,千万不要自以为看了某某的视频教程就以为掌握了C语言,那只是C语言的一部分。在这里给大家推荐一本单片机C语言程序设计参考书,马忠梅等着,北京航空航天大学出版社出版的《单片机的C语言应用程序设计》,要求C语言基础。如果没学过C语言,建议学习清华大学谭浩强编写的C语言程序设计,这本书写的不错,通俗易懂。
其次,是单片机教材选择。单片机是一门非常重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有一定地了解和感官认识,它的是怎样工作的,能干些什么?刚开始时,也许你看不明白,但这并不要紧,因为你还缺乏实践经验。现在单片机应用广泛,因此各个厂家分别推出了自己的单片机,按内部结构体系派系分:51系列、PIC系列、AVR系列、摩托罗拉等等……我们没必要每样都学!因为他们的编程方法和调试过程以及内部指令结构有一定的相似,只要学精通一款就OK了!尤其是用C语言编程,就几乎不用分什么派系,但是我们要选择一款有代表性的知识范围广,并且入门容易,书籍多。一般来说,MCS-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。
㈧ 大学选课要在单片机和DSP还有嵌入式系统选其一,有没有大神可以大致讲讲这三者的区别和优缺点
我以前大学学过dsp和单片机。
单片机就是一个小系统,可以自己编程通过外围电路,传感器实现一些小功能,比如测温,测速,遥控器等杂七杂八的东西,可玩性很高。
dsp我学的不好,对代数变换要求高,什么傅里叶变换啥的,属于模拟-数字信号方面的知识,学起来有点头疼,应用也很多,所有的音频设备里面都有个dsp芯片处理这些信号的,数字电信号转换为模拟电流信号驱动扬声器。
嵌入式现在应用最广泛,能想到的用电设备基本都有涉及,处理器arm比较多,个人理解和单片机类似,只不过是属于更高级的应用,能实现更多更复杂的功能控制。
个人推荐可以学下单片机,里面涉及到汇编、c这些计算机底层硬件语言,还会学到包括寄存器、内存、io等硬件接口,而且这些知识对于以后搞嵌入式都是很重要的。