单片机复习学习方法

学习单片机的快速方法
> 学习单片机的快速方法
学习单片机的快速方法
现在的大学生总是说毕业难找工作,其实是自己无能。你去面试,人家问你会什么?精通什么?你在大学要是没学到东西,那你什么也讲不出。不要怪人家不聘你,你想想人家公司需要什么样的人?现在的公司需要都喜欢一来就能上岗的人才,而不是去花一大堆钱去培训半懂不懂的所谓毕业生。举个例子,你去XX山寨手机厂应聘,人家问你手机的原理是什么?如果你的回答是:一部手机包括无线收发模块,此模块又是由调制解调、射频放大、滤波器XX构成,还有液晶显示模块、按键模块、电源模块、嵌入式系统XX,你要是连现在流行的手机芯片都说得出来,你说人家不聘你聘谁?先介绍下单片机。把单片机说成是电子信息类专业最重要的一门课程一点也不为过,你在街上看到的广告彩灯、烟花表演、红绿灯、自动开关门这些都可以用单片机实现。有了单片机,你就可以写程序进单片机,控制单片机管脚输出的高低电平,从而你可以控制其他模块。这就实现了自动控制。我需要怎样的控制,我就写怎样的程序就可以了。接下来介绍单片机的学习流程。有的人学了两年才学会。有的人一个月就学的很不错了。告诉大家我学51单片机只用了两个星期。普通的应用差不多都会了,可以自己设计一个国旗升降系统、温度自动控制系统之类的电路和程序。当然想要这么短的时间内精通是不可能的。学习单片机是有捷径可走的。首先你得知道你要学习什么样的单片机,我建议从80C51核心学起,80C51是MCS-51系列中的一个典型品种;其它厂商以8051为基核开发出的CMOS工艺单片机产品统称为80C51系列。当前常用的80C51系列单片机主要产品有:Intel的80C31、80C51、87C51,80C32、80C52、87C52 ATMEL的89C51、89C52、89C2051 Philips、Dallas、华邦、STCSiemens等公司的产品。之所以要从80C51学起,是因为目前很多公司都是用51核心的单片机。而且51的资料很多,懂的人也比较多。其实你学好了一种单片机,再学习其他的单片机会很轻松。我就从C51说起,首先得准备一本单片机教材,只要是C51核心的都可以。打开书看单片机的管脚各有什么功能,内部都有什么东西,用来干嘛。这本书你当成小说来看个一天就可以了。不要求你全部看懂。知道都有些什么东西就行。因为从我的学习过程来看,光看理论等于没学。单片机必须是理论加实践,而且要大量实践,在实践的过程中寻找理论。这才是最快捷的学习方法。这好比你学习汉语,你不可能什么字都会写,遇到不懂的,查查字典就可以了。然后我们谈实践,花100来块钱买块单片机学习板,有做板经验的也可以自己做一块,原理图网上多得是。不要买太贵的单片机板,其实学习阶段很多功能你用不上,等你学得差不多了那些不常用的模块你自己可以做出来。对于初学者来说我建议有流水灯、数码管、独立键盘、矩阵键盘、AD或DA、液晶、蜂鸣器,这就差不多了。一般买单片机学习板都配有视频教学光盘(没有的别买)和一些资料。比如应用软件什么的。建议在网上购买,价钱比较便宜。有了学习板之后你必须有台电脑(这年头没电脑的大学生太少)。然后你少看点电影,少玩点游戏。按照学习板光盘上的教程进行学习。先学习怎样连接学习板和电脑,怎样下载程序到单片机里面。怎样使用开发软件,比如KEIL。建议大家用C言语编程,汇编语言有时间可以学习一下。毕竟C语言一目了然,移植性较好。虽然汇编效率高,但是难懂。况且现在单片机集成度越来越高,不必要那么高效率的代码。你想想,花那么多钱去养那些优化代码的程序员还不如买一套新的硬件。我现在也是用C语言编程的。汇编几乎不用。知道怎么使用开发软件之后,你就可以按照学习板的教程进行编程练习。练习要分模块进行,比如流水灯模块,你要知道流水灯是怎么和单片机连接的(一般学习板都配有电路图)。然后你要能编写不同的程序去控制LED的亮灭,花样就随你遍了。有时间的话可以去网上下载些流水灯的源程序看看。看看人家有什么新花样。这样你就能随意控制LED的亮灭了。你可以把这些LED摆成爱心的标志,做一个爱心流水灯送给XX同学。这时你已经会做流水灯电路板了。其他的模块也一样,这个过程大概需要20天,有基础的会快些。当你把买来的学习板学完之后,你已经会单片机的应用了,这时你再回过头来看单片机教材,你会发现这时你可以完全看懂了,而且可以看得非常快,越看越入迷。当你把这本书看完之后,恭喜你已经掌握51核心单片机了。以后你可以做一些项目,开发自己的产品,制作自己想做的电路。这整个过程大概一个月时间。在学习了51单片机后,你可以学习其他单片机和嵌入式处理器,比如AVR、STC、PIC、善于处理音频的凌阳单片机、ARM、FPGA等等。
分享给小伙伴们:
我来说两句……
微信公众号二
微信公众号一《手把手教你学51单片机-C语言》之一 如何学习单片机
10:22:51编辑:什么鱼 关键字:&&
第1章&如何学习单片机
& & & &在错误的道路上日夜兼程,最终也无法成功,方法和思路绝对是第一重要的。一些学技术的同学,往往看到这类章节会直接跳过去,因为大多数类似章节都是废话连篇。但是,今天在这里我可以很负责任的告诉你,本章节讲到的学习单片机的方法,都是我们学习单片机的无数经验和教训总结出来的瑰宝。因为我们披荆斩棘,开辟了道路,所以可以告诉你路在何方;也因为我们摸过烧红的铁块,烫了手,所以也可以告诉你教训和代价是什么。希望各位都能站在我们的肩膀上,看得更远!
1.1&学什么单片机
& & & 单片机的型号那么多,如何选取一款合适的进行学习?如果身边有比较现成的学习单片机的条件,有什么条件就学习什么型号。比如,你所在的公司刚好用到某个型号单片机,那么就方便多了。开发板不用购买,直接用公司现成的板子,指导老师到处是,公司的工程师,只要你耐心虚心的不耻上问,相信他们都愿意帮你解答问题。或者你跟着学习的导师,正在使用某个型号的单片机开发产品,那么同样的道理,你也会有得天独厚的优势,直接跟着学就行了。单片机型号虽然众多,看起来纷繁复杂,其实它们的基本原理、基本用法都是相通的,只要熟练掌握其中一种,其它的都可以触类旁通,快速上手了。
& & & 如果你这些条件都没有,那就跟着我学吧,我建议你学习。为什么呢?虽然现在单片机种类和型号非常多,每个型号都有一定的市场份额,但是哪个型号也没有早期51单片机那般风光和火爆,虽然现在地位不是那么高了,但是因为51单片机积累的资料非常多,大家学起来就会拥有众多的参考资料,所以上手肯定比其他型号的要快一些。如果你学习稍微偏门的单片机,可能一个简单的软件问题就要折腾你好长时间,不仅仅浪费了你的学习时间,更重要的是打击了学习单片机的信心。
& & & 那么是不是每种单片机我们都要学一遍呢?答案当然是否定的。大家跟着我来学习51单片机,必须得跟着学会举一反三和融会贯通的能力。单片机型号那么多,挨个学下来估计头发白了也学不完,所以大家跟着我学51单片机,不能仅仅当做51来学习,更重要的是要当做&单片机&来学,要通过我们的这个教程,把所有的单片机的内部资源都搞清楚弄明白,每个内部模块的用法理解透彻,这样当你遇到一个从没有用过的单片机,也就知道如何下手去使用它进行开发了。
1.2&如何学习单片机
& & & 前边提到过,单片机是一门实用技术,我们学习它已经不是为了应付考试了,我给大家总结了单片机的学习方法是:一个要领,四个步骤。
& & &&学习单片机的要领就是:在实践中成长,In&Doing&We&Learn!
& & & 学射箭,你得去拉弓,整天只摆造型肯定不行;学游泳,你得下水扑腾,整天在岸上做模仿活动不行;学开车,你得坐车上去开,坐沙发上肯定学不会。同样的道理,学单片机,整天盯着单片机书看肯定不行,你也必须得亲自动手去练。
& & & 没有不下水就学会游泳成为游泳健将的,没有不到车上练就能成为赛车手的,这点大家都清楚,可为什么那么多人学单片机的时候,总是只抱着一本书看呢。第一,我们小学中学甚至大学的学习模式都是如此,学什么东西主要都是靠看书,应付书面考试;第二,很多人想实践却不太清楚该怎么去实践。
遇到问题查下书比直接看书的效果要好过百倍。不是不让大家看书,而是看了一点以后,要马上去实践验证,然后再回头结合实践的结果,理解书上的内容。从这个地方,大家要得出一个结论来,就是在学实际技术的过程中,和应付考试不同,书上的内容不需要你去硬性记忆,书是用来查的,不是用来背的。
& & &&下面,就是我总结的跟着我学习单片机的四个步骤。
& & & 第一步:鹦鹉学舌。
& & & 刚出生的孩子叫&爸爸&&妈妈&的时候,他甚至不知道&爸爸&&妈妈&是什么意思,更不会理解这些声音是什么意思,但是我们带着孩子见到他爸爸就让他喊&爸爸&,见到妈妈就让他喊&妈妈&,见到爷爷就喊&爷爷&&&慢慢的你会发现,次数多了,孩子就知道谁是爸爸,谁是妈妈,谁是爷爷,谁是奶奶了。
& & & 大家刚开始接触单片机的时候,也属于单片机行业的新生儿。单片机的样子,单片机外围的各种器件,单片机内部的各种结构,单片机使用的编程方法,初学者可能都没有见过,脑子里全无概念。没关系,有些概念和方法你不理解也没有关系,甚至不需要你去理解,你只需要跟着我去鹦鹉学舌式的学习,第一遍学习某一节课的内容时,对于程序,大家就可以完全跟着抄下来,甚至抄两三遍,过一段你会发现,好多东西你也认识了,好多概念你也慢慢的理解清楚了,你也能大概看懂别人的小程序了,切忌觉得自己看会了,而简单复制粘贴。
& & &&第二步:照葫芦画瓢。
& & & 很多同学学习的时候喜欢看,看我做的视频,看我写的程序,甚至看别人的程序,都能看懂,觉得自己就会了,等到自己写程序的时候,感觉就是老鼠啃天,不知道从哪里下手了,这是初学者很容易犯的&眼高手低&的毛病,所以第二步的内容就非常重要了。
& & & 我的要求是,每一位同学,在学完了当前课的内容,把第一步顺利完成以后,然后关掉视频教程,关掉源代码,自己通过看电路图和查找非源代码的其他任何资料,把当节课我写的程序代码重新默写出来,边写边多少理解那么一点点,不是纯粹的背诵,应该说是背诵加理解的结合体。甚至学过几节课以后,可以回头把前边曾经这样实现过的课程,再按照这种方法做一遍。千万不要认为这一步没必要,这一步是你能否真正学会单片机的一个关键,在学完本教程之前,每一课内容都要这样做,如果每一个程序你都能够完美的完成,那么可以说,当节课的内容,百分之七八十你已经掌握了。
& & &&第三步:他山之石,可以攻玉。
& & & 单片机技术的最大特点就是可以通过修改程序来实现不同的功能,因此举一反三的能力就必不可少了。每一节课的例程后边,我一般都会布置几个作业,大家尽量去独立完成这个作业。在完成这个作业的过程中,都可以参考我的程序思路,在这个基础上通过动脑思考去构建你自己的程序框架,最终将程序完成。
& & & 在我们工程师实际产品研发的时候,很多种情况下也是如此。比如一个产品,我们如果从零起步的话,可能会走很多弯路,遭遇很多前人已曾遭遇过的挫折,所以我们通常的做法是寻找购买几款同类产品,然后先研究他们的各自优缺点,学习他们的长处,然后在同类产品基础上再来设计我们自己的产品,这就是&他山之石,可以攻玉&。
& & &&初学者在学习的时候,往往遇到的问题很多,你应该想到,你遇到的问题,可能前辈们早就遇到过了,所以遇到问题后,不要慌张,首先利用谷歌或者百度这些搜索引擎在网上搜一下,要做什么新东西,先去网上找相关资料了解一下,不管是编程还是硬件设计,多多参考别人的东西,只要把别人的东西分析明白了,自己用起来了,也就成为自己的知识了。
& & &&第四步:理论实践结合,温故知新。
& & & 当大家把所有的课程都按照前边三步完成后,这个时候不妨再把书打开,再看看书,经过了自己的实战经历,再看书的时候,对很多知识点会有一种恍然大悟的感觉。甚至视频教程、书籍都可以反复看几遍,可能有的知识点当时学习的时候不明白,过了一段时间,回过头来再学习的时候,一下就明白了。
1.3&单片机学习的准备工作
& & &&第一:足够的信心、恒心和耐心。
& & & 有同学问过我,单片机这门技术难不难。我觉得这个问题得从两个方面去分析。
& & & 首先,我们从战略上藐视它。那么多同学跟着老师学一段时间就可以做出来小车,超声波测距,甚至做出来机器人,似乎很拽的样子。那他们又不是三头六臂,我们也没有什么做不了的道理。实际上要说技术,其实就是一层窗户纸,表面看不透彻,感觉特别神秘,实际只要你稍微一努力就可以捅破它,夸张点说,单片机在逻辑上的关系,只有小学的水平,简单的很。正所谓会者不难,难者不会,大家不懂这个东西,看起来感觉很神秘。所以大家只要认真踏实坚持学下去,肯定能学好这么技术。
& & &&其次呢,我们从战术上要重视它。你说单片机这东西,如果十天八天就学会了,那么这个技术还能值钱吗?我可以这样去表达,如果一个技术很简单就被学会,那么很多人都会的这个技术,肯定也没什么前途和钱途。那究竟多久能学会呢?我给大家制定的学习方案,根据每个人的基础不同,平均每天要拿出2个小时以上的学习时间,大概一到三个月可以入门。入门的概念是给你一个单片机开发任务,你起码知道要努力的方向和解决问题的大概方法了。技术这东西,关键是坚持做下去,有恒心和耐心,如果长时间不用的话,肯定还会生疏。所以要想成为单片机高手,起码需要一年左右的单片机开发的历练才行。成为单片机高手的概念就是你自己可以从头根据自己的想法,去设计一个电路,根据需要的功能编写代码,做一个产品出来。
& &&& 第二:教材和教程。
& & & 要学习单片机这门技术,良好的教材和教程必不可少。单片机方面,大家可以直接学习我们这本《手把手教你学单片机&&51单片机C语言开发》,我们还精心制作了配套的《手把手教你学单片机》的视频教程。本着开源、共享的理念,我们的视频教程都是免费开放的,大家可以到我们的网站www.kingst.org找到下载链接。另外,因为我们做单片机开发使用的是C语言,所以最好能再有一本纯C语言的教材,学到一些C语言的细节问题的时候,可以方便大家查阅,或者你也可以直接把相关问题通过谷歌和百度搜索一下,绝大部分情况下它们都会给你满意的答案的。
& & & &第三:电脑一台、单片机开发板一块。
& & & 电脑,是学习单片机必不可少的工具,因为编写程序,查阅资料都得用到,但是有句题外话说一下,不要把电脑当成游戏机或者影碟机,偶尔玩玩游戏看看电影是可以的,劳逸结合,但是不可沉溺其中,否则还不如没有电脑。
& & & 单片机开发板,这也是必须的。如果你还在上学,学校实验室一般会有开发板,可以考虑跟老师借一个,或者使用师兄师姐们用完的,这样可以省点钱。当然,如果身边有高手,比如辅导老师,会单片机的师兄,在他们的指导下做一个也可以,身边有人指导的话,不懂的问题还可以问他们。如果这些条件都不具备,那么可以购买一个,先学习别人的板子设计思路,给自己以后设计电路板打下基础。在这里就顺便推荐一下我们的KST-51开发板,我不敢说我们的设计是最好的,但是我可以很负责任的说,我们的板子是出自经验丰富的一线工程师之手,其中的设计都是根据实际项目开发的思路进行的,包括整体规划、电路设计、器件布局等等,可以为你今后的项目开发提供一个优质的参考。另外一方面,因为我们的教程是基于我们的开发板做的,所以大家配套来用的话可以节省时间,提高学习效率。
& & &&当然,即使不购买我们的开发板,你想学单片机,也还是要有一块开发板的,不能总是用软件仿真,软件仿真是学不会单片机的。经常有同学过来问我,老师我用软件模拟的好用,做了硬件不好用是什么原因。在这里我提一下,如果你上课用这个软件仿真,糊弄老师应付考试是可以的,但是实际开发和仿真软件却差别很大,如果真心想学好单片机这门技术,那我只能告诉你,拿起烙铁焊电路,动手写程序,远离仿真软件,靠软件仿真永远学不到真正的技术。
1.4&单片机开发软件环境搭建
& & & 单片机开发,首要的两个软件一个是编程软件,一个是下载软件。编程软件我们用Keil&&uVision4的51版本,也叫做Keil&C51,不做过多介绍,先直接讲如何安装。
& & & 1、首先准备Keil&uVision4安装源文件,双击安装文件,弹出安装的欢迎界面,如图1-1所示。
图1-1&&Keil安装欢迎界面
& & & 2、点击&Next&按钮,弹出&License&Agreement&对话框,如图1-2所示。这里显示的是安装许可协议,需要在&I&agree&to&all&the&terms&of&the&preceding&License&Agreement&打勾。
图1-2&&&License&Agreement&对话框
& & & 3、点击&Next&按钮,弹出&Folder&Selection&对话框,如图1-3所示。这里可以设置安装路径,默认安装路径在&C:Keil&文件夹下。点击&Browse...&按钮,可以修改安装路径,这里建议大家用默认的安装路径,如果你要修改,也必须使用英文路径,不要使用包含有中文字符的路径。
图1-3&&&Folder&Selection&对话框
& & & 4、点击&Next&按钮,弹出&Customer&Information&对话框,如图1-4所示。大家输入用户名、公司名称以及E-mail地址即可。
图1-4&&用户信息
& & & 5、单击&Next&,就会自动安装软件,如图1-5所示
图1-5&&安装过程
& & & 6、安装完成后,弹出来安装完成对话框,如图1-6所示,并且出现几个选项,大家刚开始把这几个选项的对号全部去掉就可以了,先不用关注有什么作用。
图1-6&&安装完成
& & & 7、最后,点击&Finish&,Keil编程软件开发环境就这么装好了。
1.5&Keil基本概况介绍
& & & 首先,我们用Keil先打开一个现成的工程,来认识一下Keil软件,如图1-7所示。
图1-7&&工程文件
& & & 从图1-7我们可以很轻松的分辨出菜单栏、工具栏、工程管理区、程序代码区和信息输出窗口。这个是Keil4的英文版,网上有一些汉化版本的,但不建议使用。即使你的英语不好,使用英文版本的软件也一点问题没有,刚开始大家先跟着我去使用,一共没几个单词,不需要你去翻译,用几次你就记住怎么用了。因为以后做实际开发的时候,大多数软件都是英文版的,如果现在学习的时候一直用中文软件,将来一旦换了其它的英文软件就会慌了,所以从现在开始,我们就慢慢的来熟悉英文软件,将来再用到其他英文软件的时候,就可以做到触类旁通、驾轻就熟了。
& & & Keil软件菜单栏和工具栏的具体细化功能,都可以很方便的从网上查到,不需要记忆,随用随查即可。在这里我们只介绍一点,关于Keil软件里边的字体大小和颜色设置。在菜单Edit-->Configuration-->Colors&&Fonts里边,可以进行字体类型、颜色、大小的设置,如图1-8所示。
图1-8&&字体设置(一)
& & & 因为我们用的是C语言编程,所以我们在Window栏中选择8051:Editor&C&Files,然后在右侧Element栏目里可以选择要修改的内容,一般我们平时用到的,只是其中几项而已,比如:Text&&普通文本、Text&Selection&&选中的文本、Number&&数字、/*Comment*/&&多行注释、//Comment&&单行注释、Keyword&&C语言关键字、String&&字符串,Keil本身都是有默认设置的,可以直接使用默认设置,但如果你觉得不合你的口味,那就在这里更改一下,改完后直接点OK看效果就可以了。
图1-9&&字体设置(二)
1.6&答读者问
& & & 很多同学经常问我一些问题,有一些很有现实或普遍意义,于是我把有代表性的直接写出来给大家参考,让大家了解这门技术,了解我们这个行业。
& & & 1、单片机学完了能做什么?
& & &&单片机的应用非常广泛,电子、电气、自动化、通信等领域都有大量应用,至于能做什么,得看你将来做什么工作。如同电脑一样,电脑可以用来编程、PS图片、看电影、打游戏等等,你用电脑做什么是不一定的。但是掌握好这门技术,起码可以让你学会一种工具,为将来从事电子、电气、通信、自动化等领域的工作做好准备。
& & & 2、学单片机的捷径是什么?
& & &&做技术必须得脚踏实地,没有任何捷径可走!如果非要说有的话,那我只能告诉你,拳不离手曲不离口,就是最好的捷径。我学习单片机的时候,每天早上8点半进入老师实验室,晚上9点半离开实验室,曾经创下连续3个月没有休息日的记录,如果你也能这样学的话,那很快就可以学好这门技术了。
& & & 3、学习单片机应该学习什么语言,有没有必要再学习汇编
& & & 相比较来说,汇编语言比较接近单片机的底层,使用汇编语言有助于理解单片机内部结构。简单的程序,用汇编语言,程序效率也可能比较高,但是当程序容量达到几千上万行以后(这时也仅能算个不太小的项目,还远没到大项目的级别),汇编语言在组织结构、修改维护等方面就会成为你的噩梦了,此时C语言就有不可替代的优势了。所以实际开发过程中,目前至少90%以上的工程师都在用C语言做单片机开发,只有在很低端的应用中或者是特殊要求的场合,才会用汇编语言开发,所以我建议大家还是用C语言开发比较好一些。
& & &&如果现在正好上学学到了汇编语言,我建议认真学一下,学好了肯定有益无害。但是现在如果说想直接快速学会单片机技术,那我就不建议去看汇编语言了,直接学C语言就可以了,那些单片机底层的结构什么的,也可以在日后的开发过程中慢慢理解。
& & & 4、学会单片机后能找什么样的工作
& & &&单片机是一个工具,和电脑有点类似但不完全一样,我们学会电脑,可以用来编程、可以用来画图、可以用来PS照片、可以用来看电影等等。学会单片机,可以用来做通信技术、做自动控制技术等等,但是单片机本身来说仅仅是一个工具,你在用单片机的时候,慢慢接触多了,会有一个应用方向,你不仅仅要会单片机,也得对这个应用方向熟悉,比如我个人从事过扩频通信技术的算法研究,那么我就要对扩频通信熟悉,然后把这个技术用单片机实现出来,也得会用单片机。当然大家也不用担心,找工作的时候公司对这个方向问题要求也不会很高,但多懂点的话,肯定也会提高自己的竞争力。
& & & 5、学完了这个工资待遇如何
& & &&对于技术来说,技术水平高低直接决定你的工资薪酬。技术如果学的不好,那工作都找不到,更谈不上工资待遇了,而技术做的好的话,那工资就自然会很高。我们并不清高,我们坦言自己需要足以安身立命的薪资报酬,但是我希望的是,一旦你决定从事技术,就不要把过多的精力关注在能挣多少钱上,而应该放在如何提高自身的技术水平上,只要技术水平高,比很多人都厉害,钱自然就找上门了。有一部印度的励志电影叫做《三傻大闹宝莱坞》,我推荐做技术的都可以看看,里边有一句经典台词非常适合我们技术人员:追求卓越,成功就会在不经意间追上你!
关键字:&&
来源: eefocus
引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
关注eeworld公众号快捷获取更多信息
关注eeworld服务号享受更多官方福利
/*&名称:51单片机实现LED流水灯(数组方式和位运算方式)说明:今天又重新开始系统的学习51了,LED就算个开端吧。&要注意两点:&1、sfr和sbit是C语言扩展出来的关键字。其中sfr用于对特殊功能寄存器进行声明,sbit用于对某些特殊功能寄存器的某位进行声明。这里和宏定义很相似,但是不能用宏定义进行替换,对于前者是因为51单片机的寄存器存在于内部空间0x80-0xFF,这空间属于直接寻址,51特殊功能寄存只能直接寻址,不能间接寻址。如果用宏定义的话,在翻译成汇编时就会认为是通过总线访问对应的外部地址了。对于后者,sbit是定义一个标志位,也叫位变量。而类似于#define key1 P3
/*&名称:51单片机之按键实验&说明:键盘是计算机最基础、最重要的输入设备之一。对于键盘来说,其工作任务大体可以分为以下三项:&(1)、按键识别。即判断有无按键按下。&(2)、求键值。判断哪个键被按下。&(3)、执行相应的操作。&在这里,实验所用到的键盘为独立键盘和矩阵键盘。对于独立键盘,它的每个按键需要占用一个IO口。一般来说,按键一端接地,另一端接IO口。当按键按下时,线路被导通,IO口被拉低,即状态为‘0’。所以在使用是我们一般把对应IO口置成高电平,然后不断检测此IO口是否被拉低,从而判断按键是否按下。&对于矩阵键盘来说,它用较少的IO口完成较多个按键
/*&名称:51单片机之数码管显示实验&说明:对于数码管来说,其本质上可以理解为按照一定规则组合的多个二极管。其使用只需按照特定规则显示对应的二极管即可。要稍微注意一点的就是多个数码管的显示分为静态显示和动态显示。静态显示就是每个二极管显示的内容是一样的,通过片选信号来决定是哪个二极管该显示。动态数码管,即利用人眼的视觉停留效果,快速扫描,快速显示每个数码管的内容,使得每个数码管看起来好像是一起显示的一样。&本实验编写了几个数码管显示的简单程序。在此不做赘述了。*/#include &reg52.h&#define uchar unsigned char//共阳极段码(a在高位,dp在低位
最近的一个项目中测试系统的高低温实验,结果意外的发现经过高低温实验后(80℃到-20摄氏度)单片机有些已经死机了,所以不得不着手研究一下这个问题,在网上查阅资料后,基本上可以归结于以下几个问题:1. 意外中断。是否打开了某个中断,但是没有响应和清除中端标志,导致程序一直进入中断,造成死机假象&2. 中断变量处理不妥。若定义某些会在中断中修改的全局变量,这时要注意两个问题:首先为了防止编译器优化中断变量,要在这些变量定义时前加volatile,其次在主循环中读取中断变量前应该首先关闭全局中断,防止读到一半被中断给修改了,读完之后再打开全局中断;否则出现造成数据乱套。&&3. 地址溢出,常见错误为指针操作
51单片机的外部中断有两种模式:电平触发模式和跳变沿触发模式第一,选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求中断。第二,选择边沿触发方式时,单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平,即置位中断标志,请求中断。&区别:电平触发模式时,中断标志寄存器不锁存电平中断请求信号。单片机把每个周期的S5P2采样外部中断口的电平逻辑直接赋值到中断标志寄存器。标志寄存器对于请求信号来说是透明的。这样当中断请求被阻塞而没有得到及时响应时,将被丢失。换言之,就是要使电平触发的中断被CPU响应并执行,必须保证外部中断源口线的低电平维持到中断被执行
最近看了一下80C51单片机的中断部分的实验,做一些笔记,方便以后学习查找。&首先说一下什么是中断吧,中断是指CPU在执行当前程序的过程中,由于某种随机出现的外设(外部设备)请求或CPU内部的异常事件,使CPU暂停正在执行的程序而转去执行相应的服务处理程序;当服务处理程序运行完毕之后,CPU再返回到暂停处继续执行原来的程序。那什么是中断嵌套呢?简单点说就是低优先级的中断可以被高优先级的中断源所中断,等高优先级中断服务程序结束后,再返回去执行被中断的的低优先级的中断服务程序。举个简单的栗子吧(之前写过但不知道怎么删了,,又让我重新编辑):比如我们就是一个CPU,我们当前在洗衣服(当前程序),突然电话铃声响了(中断来了
热门资源推荐
最新单片机文章
最新视频课程
何立民专栏
北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。
相关热搜器件

我要回帖

更多关于 怎样学习单片机编程 的文章

 

随机推荐