首页 单片机自学篇

单片机自学篇

举报
开通vip

单片机自学篇今晚又是写程序,睡不着,写点东西吧,也算是自己的一个总结 . 首先是两个字 "喜欢"! ! 一个东西 光有 10 分钟的热度是不够的.从事单片机工作,就意味着你以后是和枯燥的 程序,调试,乱码, 未知的软硬件错误,熬夜,脸上的豆豆……联系在一起. (有点夸张, 哈哈! ) 如果你选择了这种生活, 并且确定你有一种精神能指引你一路走到底, 至于是什么精神, 只有你自己知道. 是满屏幕的 0101,还是一串串胡乱的 ABCD,还是成功后的成就感,还 是天生俱来的对电子类东西的痴迷, 还是喜欢别人在外面花天酒地……却喜欢...

单片机自学篇
今晚又是写程序,睡不着,写点东西吧,也算是自己的一个总结 . 首先是两个字 "喜欢"! ! 一个东西 光有 10 分钟的热度是不够的.从事单片机工作,就意味着你以后是和枯燥的 程序,调试,乱码, 未知的软硬件错误,熬夜,脸上的豆豆……联系在一起. (有点夸张, 哈哈! ) 如果你选择了这种生活, 并且确定你有一种精神能指引你一路走到底, 至于是什么精神, 只有你自己知道. 是满屏幕的 0101,还是一串串胡乱的 ABCD,还是成功后的成就感,还 是天生俱来的对电子类东西的痴迷, 还是喜欢别人在外面花天酒地……却喜欢独坐电脑面前, 攻克技术的颠峰.不需要理由,世界上就有这样一种人.那么确定了上面的之后,让我们开 始吧!单片机也叫做单板机,单片微型计算机.麻雀虽小,五脏俱全,那么如果你学过计算 机组成原理,我相信你应该能更好的理解单片机的内部结构.如果没有学过,也不要紧,那 就拿小麻雀开刀,再一层层自下而上的学习. 刚开始学单片机的时候,看到厚厚的一本书,不要一咬牙要一下子把书全部看完.看得 仔仔细细明明白白. 先看看目录,无非就是介绍单片机的历史,然后它内部的组成原理, 然后是指令,然后就是接口.先说历史,知道 51 单片机是现在资料最丰富,最适合上手拿 来开刀的就是了.不要觉得书上的知识老.这都 N 多年前的了,现在是不是都不一样了. 兼容这个词的意思是:比如你用 ATC51 写的程序,拿到 ATS51,52 STC 都能用,只是后续 的片子在一些地方更加完善,功能更强大. 比如:在书上老掉牙的 2051 上的 MOV A,#00H 用到其他 51 系列上也是一样的.你看 它的片子的介绍上,写了一句"完全兼容 51 系列单片机" 那么 OK .别管那么多,只管用 就是了.我发觉我废话多了,这不知道写到那去了. .抽跟烟,继续.. . 上面的意思是说:面前是一坐山很高,然后我就一咬牙,慢慢爬吧,我不信我爬不上去 了,或许爬到一半就退缩了,退而再攻之. 我拿个测量仪来,噢,原来这山总共 7000 米,半山腰有个亭子,到那是 3500 米,刚开 始那 1000 米坡度很小 2000 米的时候有个茅房(^_^) 6000 米的时候有个美女正在洗澡, 山顶有个和尚庙.行,心中有了底,上! ! 刚开始的时候初学一定要用汇编,可能大家也看到了,关于 C 和汇编的讨论,各有各的 说法,我个人觉得初学者,完全没有必要去追求什么飘逸的风格,就用笨拙的汇编.虽然它 像一头大苯熊一样,但是,当你能和大笨熊亲切的交流,屈驾自如的时候,再去和漂亮的兔 子 MM 鸳鸯戏水,会更加的得心应手. 汇编刚开始你会觉得很烦,就是在那 MOV 过去 MOV 过来.JB,JC, JNB ,JNC , DJNZ 很难记,不像 C 一个 IF 一个 DO WHILE 就搞定的事.但是,用汇编你能更加了解 一条指令在 CPU 内存的执行过程, 能更加亲切的和 P0 , , , 的每一个口线交流, P1 P2 P3 不需要 C 的屏蔽底层,而是直接的就和底层亲密接触.这里有人要说我什么什么的了, 还 是那句话:个人意见,仅供参考.在写延时程序的时候,DJNZ 是双周期指令,比如 12M 的晶振, 那么, 一条指令是 1US, 那么你要精确的知道自己这段延时程序能延时多少 US 或 者多少 MS ,那么你对 51 单片机内部的指令,周期,对以后写有严格时序操作的程序就更 加得心应手.比如,看到一个片子的 PDF 数据总线要拉低多少 MS ,地址总线要拉高多少 US ,等待周期要等待多少 US/MS ,那么,不要怀疑,自己写指令搞定它,成功以后你会 发现你从最底层的了解了一个片子是怎么传送数据, 怎么通信. 这样的经历对你以后再接触 其他 子的时候是莫大的帮助.像关于书上的内容,指令不用记得那么死,或者说完全不需 要记.需要的时候,马上查,在查的过程中会更加加深你的印象(说点丢人的话 JC JB JNB JB 这些 指令我到现在都从来不记,我又不应付考试,我书随时就在旁边 用的时候去翻就 是了. ) 这也就提到了练习,程序和指令不要只看不用,实践是检验真理的唯一 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 .实践出真 知,这都是老话了,不过用在单片机的学习上是太贴切了,单片机本来就是实践性很强的. 像我在学校的时候,每次实验课 都认真的做,抓住每次上机的机会.板子很贵,自己买不 现实,而上机的时候能接触到的每一次都很宝贵.LED 流水灯,十字口交通灯这些程序很 基础.在一次一次的小程序成功的过程中,你会更加喜欢上单片机,并且坚定继续为之不离 不弃的决心. 熟能生巧,我还记得我刚开始的时候,经常是把指令写错,把跳转的标号写错.经常用 系统的关键字,变量未定一存储空间就用等等等等. 但是一次又一次错误下来,得到的是 . 程序的正确性的大大的提高.在这里我 建议 关于小区增设电动车充电建议给教师的建议PDF智慧城市建议书pdf给教师的36条建议下载税则修订调整建议表下载 刚开始先多读别人的程序,而且是完整的,备注 多的, 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 规范的.从最开始就养成良好的编程风格,而不是随意的乱添乱加 胡乱的复制 粘贴. 看懂别人程序里的每一句代码的意思,为什么要加这条,这条指令的作用是什么?如果 不清楚,马上翻书去查,在查的过程中,更加加深对这条指 或者这段子程序的用法的深刻 的记忆.下次自己用的时候才能像自己一样的拿来得心应手,这也是为什么要选择 51 系列 的单片机. 因为它的示例代码网上铺天盖地, 而且高手也不会吝啬的把初学要用的代码共享, 得到这些代码的途径是很方便的.得到的有用的信息也是最多的,像 1302 ,1602 , DS18B20 ,LED ,串口 ,DA /AD ,常用的接口与 51 的驱动程序,这些五六电子网都有 很多, 汇编版本的 ,C 版本的都有.不要觉得都是几年前的东西,都是人转来转去,老 掉牙的东西,先都拿来消化掉,再为自己所用. 大家也许也发现了,在百度里找一些程序的时候看到一版的汇编代码,但是没有一点注 释,2 个字:痛苦! 所以,为了方便大家,也为了以后你能方便别人,刚开始写程序就要 习惯,给程序写备注,为了别人能看懂 像一个大的工程,都是团队合作.你几千的代码而 且没有备注,别人几千的代码也没备注,那好吧,先花个 1 天的时间把程序看懂了,再干其 他的吧. 程序中像子程序名,入口参数,出口参数,内存的分配,关键语句的单条备注, 标号的顶格,代码的缩进 等等 .良好的编程风格绝对会让你在以后的工作和学 习过程中事半功倍. ;------------------------;****子程序 ;------------------------next: mov a,th0 ;//读取计数值 TH0 swap a ;//高 4 位与低 4 位对换 mov r1,a ;//保存到 R1 anl tl0,#0f0h ;//取 TL0 高 4 位,低 4 位忽略不计 写了一些小程序之后,就可以做些完整的小实验,也可以参照别人的程序来 写.比如写一个接口芯片的驱动,不再是点亮一个灯,又点另外一个灯. 这种的完整的验证型的实验非常重要,不要希望上课的时候老师给你的程序 能让你突飞猛进,只有自己不断的做实验,写程序,才能让自己学得更快. 像买到的板子,都有完整的代码,这对于学习是很好的资料,因为它能所见 即所得,不再是书上的纸上谈兵,那么程序是正确的,看懂了以后自己可有试着 改里面的某个地方.你能找到它的核心的那几条或一段代码,那么说明你对这段 程序的理解已经更上一层楼了 .初学者买板子很重要,而板子上的示例代码和 技术支持更重要.通过这个板子你能接触到一个平台供你学习,那么这个板子就 是值的.如果板子买来了就闭门造车,那么,板子再好也不是件好事.功能特别 强大的板子,没有必要去买,当你用到板子上的什么激光,摄像头的时候,我想 你也已经不会再用那块板子开发东西了,基本的液晶,数码管(是个很强大的东 西 像我不喜欢什么软件仿真 在有问题的地方 设置个断点 程序执行到这一步 把值读出来 显示到 LED 上 简单方便 )常用的 51 的接口有就够了,说到自己 做实验板,买来的板子都有完整的电路图,对于电子基本共不扎实的朋友,买来 后看懂原理图,再慢慢 自己做板子好一点. 买了同一种板子的能有个交流区是最好的,各个问题和程序拿出来大家交流, 能起到很大的作用,也会少走很多弯路,目前这个正在筹划当中.我会尽快和站 长联系,开个专区供大家交流和学习用.上面提到了基本功,这才记起..(不 好意思^_^) 像搞单片机,分几种:上层的和底层的,上下通吃的.不过刚开始 的 都不是很复杂,我建议大家上下通吃.还是那句话,有不懂的马上查资料. 电容,三级管,二级管,放大,整流,稳压,滤波,上拉 /限流电阻,还有 Prot el 99 SE 自己画电路图等等这些基本功,随着学习的深入,都要一点一点的累 积起来,不懂不要紧,问题是不能让一个问题一直捆饶着你,要有一种精神:不 搞懂它 ,我就不罢休的精神.那么我相信任何困难都不会成为阻止你成功的绊 脚石. 又说到哪来了?夜深了,瞌睡来了** 单片机,要天天碰.调程序就到板子上结合着硬件环境调试,像 DA/AD 我 刚开始学的时候那一章的内容根本都没看, 直到后来要做个东西, 需要 AD 转换, 去翻了下 TLC1543D 的 PDF,然后看了下它的时序,去网上找了下示例代码, 然后写的程序.像书上的 ADC0809,DAC0832 我是在用了其他转换片子后, 回过头去看的时候发现这片子缺陷确实太多, 然后再去看它的程序和使用方法很 简单.这里的意思并不是说书上的 ADC0809,DAC0832 不重要,而是说大家 学一个东西的时候,如果能结合板子学的话或者说能马上用到,那么是最好,成 效也是最快的. 实践的力量确实是不能小窥的, 而现在普遍的大学生的高分低能, 学软件工程的, 让用 VB 写个小程序都不会写. 单片机 90 多分的写个 LED 都不 会, 连单片机具体什么样子都没见过, 找工作的时候一大堆的奖, 一大堆的废话. 拿出自己做的作品,随意的和招聘的人聊各个单片机的优缺点,正确的说出每种 常用的片子的用途, 用法, 证明自己的实际的动手能力. 找工作是难, 但是分人. 我相信,在大学实验室里呆 2 年的人和在大学里谈 2 年恋爱的人,打 2 年网游, 看 2 年小说,聊 2 年 QQ ,打 2 年 CS 的人的结果绝对是不一样的,乱七八糟的 写了.很多……大家能看完不甚感激.如果有什么地方不对的,还请大家多多指 正,我也是个学习者,深切的感到刚学单片机的时候的困惑.希望写下的东西, 对大家能有目前单片机的应用可以说是相当的广泛, 已经渗透到我们生活中的各 个领域.从高端导弹的导航装置,飞机上各种仪 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 的控制,自动控制领域的机器 人, 以及自动化过程的实时和数据处理, 到我们日常生活的各种智能 IC 卡系统, 安全保障系统,录象机,摄象机,手机,电视,全自动洗衣机,以及可控玩具, 电子宠物,等等,都是单片机"惹的祸".而且,目前我国的单片机教育已经向高 中教育发展,可见在不久的将来,单片机对于工科学生而言就会象电路基础原理 一样成为基础课. 在工作中和在校的同学的交流中,听到的最多的是"单片机太难了".其实不 是单片机难学, 而是不知道怎么入门. 请大家记住一句话"单片机不是学出来的, 而是玩出来的".下面结合自己自学单片机的体会,和大家一起来"玩"单片机. 准备好了吗?我现在开始教大家如何学习单片机. 第一步: 第一步:先读通一本教材 唉!?太没创意了吧,还要看书?不错,第一步还是要通读一遍教材,这样 我们才能站在巨人的肩膀上.读了一遍什么感觉,一个字晕.这很正常,不然你 就看不到这篇文章.很多人在晕了之后就泄气了,或者换教材,接着晕,直至晕 倒.不过,现在告诉大家我们要向酒鬼学习,晕了不要紧,嘴上一直说"没醉", 至少还可以多喝半斤.所以信心很重要. 第二:晕着脑袋实践 第二: 第一步我们已经晕了,其实,我们是在似醉非醉,似醒非醒的最高境界.趁 着这么好的感觉(这种感觉是多少武林高手梦寐以求的),赶快练上几路拳脚. 首先要选好兵器.现在学校实验室都有单片机实验箱,把握好实验的时间, 或者和老师搞好关系,有时间就玩两把.不过最好还是有自己的独家装备,一开 始装备不要太华丽, 能用就行. 软件建议用 Keil c51, 硬件要有 pc 机和开发板, 开发板要求有流水灯,数码管,独立按键,矩阵键盘,ad 转换,液晶屏,蜂鸣 器,这就差不多了.软件网上有的是,下一个,还是免费的.pc 机没有可以先 用下同学的.开发板大概几百元,这比请朋友吃饭便宜多了.在想想将来我们要 靠他来闯荡江湖, 这又算得了什么呢?五六电子网 www.56dz.com 这里就有一些 公认的性价比很高的开发板,可以去邮购一个.我当初就是从五六电子开始起步 的. 好!兵器选好了,那就练把!提醒大家一句,降龙十八掌也是从扎马步练起 的.即便我们比郭靖聪明,也要先练马步,想想黄蓉就知道了.现在就从最基本 的流水灯开始,试着先控制一个发光管,慢慢的变换花样,做出自己的个性来. 是不是特有成就感,是不是不吃饭都不知道饿.现在已经有点着迷了吧(个别人 除外). 第三: 第三:带着问题解决问题 在实践中我们有很多现象解释不了,怎么办?是自己慢慢领悟呢,还是向高 手请教?建议先自己领悟,实在不行再向高手请教,这是记忆最深刻,效果最好 的办法. 但不要领悟的时间太长, 否则会削减我们刚建立起来的信心; 事事都问, 记忆就不深刻,成不了自己的东西,就像练武,只学到了招式,没学到内功.如 果这一步能过关,哈哈,相信你已经被单片机迷住了. 第四步:自我修养, 第四步:自我修养,不断提高 达到这一步,不论是技术水平,学习方法,还是心理素质都达到一定的境界 了,已经入门了.俗话说师傅领进门,修行在个人.到了这一步,下来就要看个 人的努力和悟性怎样了, 能否创造出自己的"黯然销魂掌", 那要看个人的修为了. 少许的帮助.写得不好,请大家见晾了. 学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或 C 语言中学会各种功能的初始化设置,以及实现各种功能的程序编制. 第一步: 第一步:数字 I/O 的使用 使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字 I/O 功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功 能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄 存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能.每使 用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程 的特点,千万不要怕麻烦,所有的单片机都是这样. 第二步: 第二步:定时器的使用 学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大 的,在工业,家用电气设备的控制中有很多应用,例如,可以用单片机实现一个 具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮 3 分钟后自动灭, 当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过 2s,则灯灭.数字 集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编 程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来最简单,成本 最低. 定时器的使用是非常重要的,逻辑加时间控制是单片机使用的基础. 第三步: 第三步:中断 单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的 执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会 耽误很多快速发生的事情,例如,按钮按下时的下降沿.要使单片机在程序正常 运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是 在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完 成后,在返回执行正常的程序.中断功能使用中的困难是需要精确地知道什么时 候不允许中断发生(屏蔽中断),什么时候允许中断发生(开中断),需要设置 哪些寄存器才能使某 种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等 等 . 中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视 着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然 也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅 里的功能. 以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身. 第四步: 第四步:与 PC 机进行 RS232 通信 单片机都有 USART 接口,特别是 MSP430 系列中很多型号,都具有两个 US ART 接口.USART 接口不能直接与 PC 机的 RS232 接口连接,它们之间的逻辑 电平不同,需要使用一个 MAX3232 芯片进行电平转换. USART 接口的使用是非常重要的,通过该接口,可以使单片机与 PC 机之间交 换信息,虽然 RS232 通信并不先进,但是对于接口的学习是非常重要的.正确 使用 USART 接口,需要学习通信协议,PC 机的 RS232 接口编程等等知识.试 想,单片机实验板上的数据显示在 PC 机监视器上,而 PC 机的键盘信号可以在 单片机实验板上得到显示,将是多么有意思的事情啊! 第五步: 第五步:学会 A/D 转换 MAP430 单片机带有多通道 12 位 A/D 转换器,通过这些 A/D 转换器可以使 单片机操作模拟量, 显示和检测电压, 电流等信号. 学习时注意模拟地与数字地, 参考电压,采样时间,转换速率,转换误差等概念. 使用 A/D 转换功能的简单的例子是设计一个电压表. 第六步: 第六步:学会 PCI,I2C 接口和液晶显示器接口 , 这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面 非常重要. 第七步:学会比较,捕捉, 第七步:学会比较,捕捉,PWM 功能 这些功能可以使单片机能够控制电机,检测转速信号,实现电机调速器等控 制起功能. 如果以上七步都学会, 就可以设计一般的应用系统, 相当于学会十招降龙十八掌, 可以出手攻击了. 第八步: 接口, 接口, 第八步:学习 USB 接口,TCP/IP 接口,各种工业总线的硬件与软件设计 学习 USB 接口,TCP/IP 接口,各种工业总线的硬件与软件设计是非常重要 的,因为这是当前经常有单片机爱好者问我们,如何学习单片机?学习单片机的 步骤是什么? 我们初略总结了一下,单片机学习的过程基本上可分四个阶段: 第一阶段 是先浏览教科书里的硬件部分,大至了解单片机的硬件结构. RAM, 地址, I/O 口等, 以及看一些厂家的 MCU 资料 (Data Sheet) , 如 ROM, 来加强 MCU 所提供各项资源的印象. 第二阶段 就是了解二进位数字,十六进位数和软件方面的内容.尽管有 很多高级语言可用于单片机的编程,但我觉得初学还是以汇编语言为好,更有利 于和硬件结合,掌握硬件结构.知道汇编语言,机器语言, 指令, 程序等概念 后,就从 MOV 指令开始,学习汇编语言和编程,在此如51的 MCU 汇编语言 系统有111条指令,简单又好理解它们怎 样和硬件联系,更有助于一般学习 单片机的指令整合与运用.因此其方法可先了 解几条基本的 MOV 指令和它的 机器语言,大致建立起单片机的硬件和软件概念, 来知道单片机的硬件是由指 令控制指挥的. 第三阶段 第三阶段 按照编程环境的使用手册,熟悉使用编程环境.现在的编程环境 一般都和电脑相连,只要具备基本电脑知识的人都可很快掌握操作步骤. 第四阶段 是依靠实验板, 学习掌握单片机的汇编语言指令系统和简单编程. 同时和前面所学硬件知识结合组装,起到主学软件,巩固硬件的双重作用. 开始 时可用别人编的简单程式在实验板上进行验证,分析,主要是熟悉该学习 方法, 在应用方面主要针对单片机 I/O 各项介面的使用,如 A/D,D/A,PWM 输出的应用,LCD 与 VFD 的控制,以及如何规范各项串列输出入口的通讯协定 等,对其所控制的各项元器件须先分析驱动能力,如电流电压问题等. 汇编语言熟悉后, 建议尽快学习 C 语言的编程, 毕竟 C 语言有功能丰富的库 函数,运算速度快,编译效率高, 有良好的可移植性,而且可以直接实现对系 统硬件的控制.C 语言是一种结构化 程序设计语言,它支持当前程序设计中广 泛采用的由顶向下结构化程序设计技 术.此外,C 语言程序具有完善的模块程 序结构, 从而为软件开发中采用模块化 程序设计方法提供了有力的保障. 因此, 使用 C 语言进行程序设计已成为软件 开发的一个主流. C 语言来编写目标系 用 统软件, 会大大缩短开发周期, 且明显地 增加软件的可读性, 便于改进和扩充, 从而研制出规模更大,性能更完备的系统. 产品开发的发展方向.
本文档为【单片机自学篇】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_851543
暂无简介~
格式:doc
大小:47KB
软件:Word
页数:5
分类:金融/投资/证券
上传时间:2010-08-06
浏览量:49