1、51单片机心得体会 首先总体上谈一谈看法: 1、我从不说51是根底,如果我这么说,也请把这句话理解为微机原理是根底。 2、对51单片机的操作本质上就是对存放器的操作,对其他单片机也是如此。 库只是一个接口,方便使用者使用而已。 3、汇编语言在工作中很少用到,了解就好。 4、51的P0口很特别。 5、C语言就是C语言,51单片机就是51单片机,算法就是算法,外围电路就是外围电路,传感器就是传感器,通信器件就是通信器件,电路图就是电路图,PCB图就是PCB图,仿真就是仿真。 当你以后再也不使用51了,C语言的知识还在,算法的知识还在,搭建单片机的最小系统的技能还在,传感器和通信器件的使用方法还在,
2、还会画电路图和PCB图,当然也会仿真。 6、51单片机是这个: 而不是这个: 7、当程序调试不如人意的时候,静下心来好好查资料,51单片机最大的好处就是网上资料非常多,你遇到的问题别人肯定也遇到过。 作为学习者,问人可能更方便点,但一直这样是培养不出解决问题的能力的。 接下来上点干货: 首先要放清51的定位,跟我一起再念一遍:51只是个工具51只是个工具51只是个工具。 当然51还有一个地位就是大学生单片机启蒙教程。 换句话说:单片机只是个工具单片机只是个工具单片机只是个工具。 然后什么是根底:模电数电微机原理,然后熟练翻阅数据手册,可以试着做一些模块或者最小系统练练手,C语言其实也可以算工具
3、吧,就单片机来说,作为必要条件也算作根底吧。 再然后是要尽早搞明白自己的专业方向或者自己准备开展的方向,然后不同方向又有不同的专业根底,你学测控,就需要各种传感器、控制原理、理论、算法/买测量模块用不叫测控啊喂;你学信号处理,就需要信号与系统、数字信号处理根底,然后慢慢接触DSP、FPGA/信号处理真的不是result=(AD+0.5)/4096*3.3啊喂;你想做嵌入式开发,就慢慢研究ARM的架构,跑一些实时系统甚至高端ARM跑Linux开发驱动或应用;你要是想做通信,每天晚上拜一拜香农好了,这茬貌似挺苦的,什么通信原理编码论电磁场blablabla 总之51/单片机可以实现很多事情,但这不
4、是一定说51重要,而是你如何利用51。 哦对了,当你使用更高级的芯片的时候,很多底层的东西慢慢可以忽略了,甚至很多芯片厂商都会提供库给你,你可以安心的专注于自己的算法而不是如何去控制单片机。 当然你最好还是要有一个芯片怎么通过存放器及各种逻辑电路工作的概念。 还有说一下你大学课余生活的选择、首先那种机器人实验室或者学生领导的实验室,适合打比赛刷奖状、长期下来你的模数电技能能有很大的锻炼,甚至你可以收货一些专利,而且学生之间气氛也还不错。 另外一种就是找个导师跟着学习、帮助、做工程,尽管最开始可能感觉导师分配给你的任务怎么都和单片机无关啊好无聊,但是你能在某个领域收获不一样的技术。 当然前提是你
5、要喜欢导师的研究方向了,一般院网站都有或者去知网看这个老师发表的论文。 谈谈我的经历吧。 1、一个没有C根底的的我,从师兄老师那打听到学51从郭天祥的视频开始,所以我就下载了全套来看。 刚开始看真是头都晕了,点亮一个LED灯还可以,到了第二课的延时函数就吃不消了,可以说我耐力差吧,没有坚持,可以说我没恒心吧,不是真正想学东西的人,当时的我没有把它放心上,只是看了4课而已,其实对里面的程序不太理解的,于是就停下来不学了。 到了大二下学期,我发现要学点技术,所以重抄旧业,学期单片机,然后再重第1课开始看起,结果发现以前不明白的东西现在豁然开朗。 我写这经历是想说,如果当时我坚持下去,不懂的地方看多
6、几遍,不懂再看再看,就不会浪费大半年的时间了。 有些知识理论靠时间的积累,第一遍看不懂,第二遍看不懂,第三遍可能就懂一点了,刚开始上手一件事是会遇到类似的情况的。 2、当我学了1个月后,学校里有个比赛,团队需要一个人搞硬件,于是我自己提出搞硬件,为什么?因为在学单片机的过程中发现,自己只会跑程序,连原理图都不怎么会看,单片机的接线我都是看开发板提供的资料来接的,很狗血吧。 于是我就开始接触Altium Designer了,这是我这学期学的第二个软件。 是看视频入门的,刚开始看的是郭天祥的视频,结果发现看不下去啊,太长太累了,看完一集好痛苦啊,于是我搜搜,结果发现一个很好的教学视频,用的也是比拟
7、新的版本,叫边学边玩Altium Designer 四人行工作室开的。 我真的提感谢作者这种开源的精神的,对我们初学者帮助很大。 跟着他的视频学习1个月,会画出51最小系统,根本布线,不过我觉得还是不够(当然不够啦,你才学了一个月) 3、在学Altium Designer的过程中涉及到电路分析,也就是我们现在学的电子电路根底,于是爱折腾的我开始捣鼓起Multisim 12.0,这是一款电路模拟仿真的软件。 跟着老师学挺慢的,但是教材又高深了一点,比方说分析放大电路,稳压电源,教材上的东西大多列出公式,对于零根底学习的朋友是挺苦逼的,而且老师也是赶鸭子式,讲考试内容。 这里建议大家买一本书电子设
8、计零根底第二版,这本书是我在图书馆偶然发现的,但从此就迷恋上了他。 刚开始他不会介绍一大堆公式,以一个例子开始教学,一步一步教你认识元器件(这里对学PCB是有帮助的),然后从电路图的一步分开始分析,接着分析怎么系统,书本结合Multisim 仿真,教你一步一步使用里面的控件。 写到这里自己下: 对于1:学单片机最重要的是 1.先认识单片机,了解单片机的主要组成和各个管脚的定义及功;推荐书单片机原理及其接口技术胡汉才(很熟悉吧。 呵呵这就是我们大学的单片机教材啊!经典中的经典啊!根底中的根底啊!人家几十年的教材没有变是有道理的,原理这种东西不会变到哪里去的。 不用专门去看,当作了解,对你理解编程
9、是很有帮助的。) 2.了解一些单片机汇编知识,方便后续调试;这本书单片机原理及其接口技术里面就是讲汇编的,一举两得。 3.掌握单片机中断机制; 4.掌握单片机定时和计数器;(3和4是对单片机内部存放器的控制,要熟练掌握。 那些外部拓展功能大多都基于这些内部控制) 5.掌握单片机的串口通信。 以上是对想从事单片机学习的人必须掌握的根本内容。 对于2、3:2、3可以在一起讲,这是硬件局部的。 Altium Designer主要学原理图库设计,PCB库设计,布线。 没入门的朋友看下视频,不要求什么都会画,起码要会用人家的库,把人家的库移植过己用,这样可以快速上手这个软件。 到后来再慢慢完善自己不熟悉
10、的地方,这在里一直头疼我的就是封装的问题,当时我连封装是什么都不懂,自己看视频查了资料,才慢慢有点认识。 什么是单片机 学习使用单片机就是理解单片机硬件构造,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。 有人觉得要先学汇编。 不过我个人觉得,学习51单片机,还是从C语言入手,一来方便,二来容易上手,仁者见仁,智者见智吧。 关于学习51单片机的书籍,市场上有很多,大家可以择优选取。 那么,如何用程序控制单片机的呢? 点击放大图片 我开始学单片机的时候也曾有过这样的困惑啊,ok,下面帮大家一下思路。 怎么在Keil里写程序?keil怎么安装破解? 用过
11、VC6.0的同学都知道,VC6.0是一个编译环境。 什么是编译环境?简单地说,就是你写代码的地方。 那么,同理,单片机的编译环境就是Keil(除了Keil以外,还有IAR啊等等,不过我推荐大家用KEIL吧) Keil有很多版本,最新版本是Keil4,所以我毫不犹豫地选择了Keil4。 大家都知道,像这种软件,一般都不是的。 But! 我们的毛爷爷说了,人有多大胆,地有多大产 国内从事于破解工作的牛人还是不少的,所以,安装和破解keil是很轻松的 破解方法 1.安装 Keil For 51 执行 setup.exe 2. l 开打 KEIL4 软件(WIN7要以管理员身份运行) 执行菜单命令 f
12、ile License Management l 翻开机 3.目标 Target 选择 C51。 4.拷贝 CID 框里的内容到机的 CID 里。 5.点击机里的 GENERATE 生成代码。 6.然后拷贝码到 keil 里的 New License ID Code 中点击 ADD LIC 即可。 点击放大图片 苦逼的写完了,怎么生成HEX文件? 在keil中编写完程序后,要将程序通过烧录器烧写到单片机中,这时就需要在keil中产生一个hex格式的文件,只有通过这种格式,烧录器才能将程序烧写到单片机中。 hex文件格式是Intel公司提出的按地址排列的数据信息,数据宽度为字节,所有数据使用16
13、进制数字表示, 常用来保存单片机或其他处理器的目标程序代码。 它保存物理程序存储区中的目标代码映象。 一般的编程器都支持这种格式。 如何才能产生这种格式的文件呢? 在keil中对其进展如下设置,便能产生hex文件: 1.点击菜单“Option for Tagret .” 2.选择“Output”页 3.钩选“Create HEX File” 4.重编译 如果程序无误,在Project的当前目录即会产生HEX文件 什么是串口?51和串口和电脑又是什么关系? 串口是51单片机与PC机之间的连接桥梁, 如果 PC 机有 串口 用 RS232转换TTL 与单片机 RXD TXD 连接,由此对应PL23
14、03模块 如果 PC 机没有 串口 用 USB转换TTL 与单片机 RXD TXD 连接,由此对应CH340模块 这两种方式都可以进展下载 STC-ISP是神马,它怎么就可以下载?什么是冷启动? STC-ISP 是一款单片机下载编程烧录软件,是针对STC系列单片机而设计的,可下载STC89系列、12C2052系列和12C5410等系列的STC单片机,使用简便,现已被广泛使用。 详细可以问问度娘 。 冷启动就是:开发板先断电,在运行下载软件,之后出现“仍在连接中, 请给 MCU 上电.”后,在给开发板通电,这样子才能下载进去,否那么STC-ISP显示: 连接失败,请尝试以下操作: 1.在单片机停
15、电状态下,点下载按钮,再给单片机上电 2.停顿下载,重新选择 RS-232 串口, 接好电缆 3.可能需要先将 P1.0/P1.1 短接到地 4.可能外部时钟未接 5.因 PLCC、FP 转换座引线过长而引起时钟不振荡,请调整参数 6.可能要升级电脑端的 STC ISP.exe 软件 7.假设仍然不成功,可能 MCU/单片机内无 ISP 系统引导码,或需退上升级,或 MCU 已损坏 8.假设使用 USB 转 RS-232 串口线下载,可能会遇到不兼容的问题,可以让我们帮助购置兼容的 USB 转 RS-232串口线仍在连接中, 请给 MCU 上电. 点击放大图片 单片机需要掌握一些什么内容? 第
16、一步:数字I/O的使用 使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多存放器对引脚进展初始化处理,才能使引脚具备有数字输入和输出输出功能。 每使用单片机的一个功能,就要对控制该功能的存放器进展设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。 IO口的使用,最简单的就是点亮流水灯啦Come on!为了让没有单片机的同学也能顺利学习,我们可以用仿真软件来做,有视频喔,学习更简单,麻麻再也不用担忧了,哈哈。 第二步:定时器
17、和按键的使用 学会定时器的使用,就可以用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,那么灯灭。 数字集成电路可以实现时序电路,可编程逻辑器件(PLD)可以实现时序电路,可编程控制器(PLC)也可以实现时序电路,但是只有单片机实现起来最简单,本钱最低。 定时器的使用是非常重要的,逻辑加时间控制是单片机使用的根底。 按键,就不用说了吧,应用很广泛的,不多说,参见帖子,注意,按键扫描程序是用if还是while
18、喔最近在某论坛发现了一种新型按键识别思路(利用AD),也可以看看 第三步:中断 单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,那么该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。 要使单片机在程序正常运行过程中,对快速动作做出反响,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。 中断功能使用中的困难是需要准确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些存放器才能使某 种中断起
19、作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等 。 中断学会后,就可以编制更复杂构造的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也可以监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。 以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身。 第四步:与PC机进展RS232通信 单片机都有USART接口,特别是MSP430系列中很多型号,都具有两个USART接口。 USART接口不能直接与PC机的RS232接口连接,它们之间的逻辑电平不同,需要使用一个MAX3232芯片进展电平转换
20、。 USART接口的使用是非常重要的,通过该接口,可以使单片机与PC机之间交换信息,虽然RS232通信并不先进,但是对于接口的学习是非常重要的。 正确使用USART接口,需要学习通信协议,PC机的RS232接口编程等等知识。 试想,单片机实验板上的数据显示在PC机监视器上,而PC机的键盘信号可以在单片机实验板上得到显示,将是多么有意思的事情啊! 第五步:学会A/D与D/A STC12C5A60S2单片机带有多通道10位A/D转换器,通过这些A/D转换器可以使单片机操作模拟量,显示和检测电压、电流等信号。 学习时注意模拟地与数字地、参考电压、采样时间,转换速率,转换误差等概念。 使用A/D转换功
21、能的简单的例子是设计一个电压表。 DA的芯片承建的有,DAC8032, DAC8032 第六步:学会PCI、I2C接口和液晶显示器接口 这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面非常重要。 那我们来看一下如何实现LCD1602的显示吧 第七步:学会比拟、捕捉、PWM功能 这些功能可以使单片机能够控制电机,检测转速信号,实现电机调速器 等控制起功能。 如果以上七步都学会,就可以设计一般的应用系统,相当于学会十招降龙十八掌,可以出手攻击了。 第八步:学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计 学习USB接口、TCP/IP接口、各种工业总线(CAN总线 、
22、SPI总线 )的硬件与软件设计是非常重要的,因为这是当前产品开发的开展方向。 到此为止,相当于学会15招降龙十八掌,但还不到打遍天下无敌手的境界。 即使如此,也算是单片机大虾了。 第九步:学习无线传输的硬件与软件设计 PT2262/PT2272 是台湾普城公司生产的一种CMOS 工艺制造的低功耗低价位通用编解码电路,PT2262/PT2272 最多可有12 位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441 地址码,PT2262 最多可有6 位(D0-D5)数据端管脚,设定的地址码和数据码从17 脚串行输出,可用于无线遥控发射电路。 编码芯片PT2262
23、发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272 接收到信号后,其地址码经过两次比拟核对后,VT 脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。 当发射机没有按键按下时,PT2262 不接通电源,其17 脚为低电平,所以315MHz 的高频发射电路不工作,当有按键按下时,PT2262 得电工作,其第17 脚输出经调制的串行数据信号,当17 脚为高电平期间315MHz 的高频发射电路起振并发射等幅高频信号,当17 脚为低平期间315MHz 的高频发射电路停顿振荡,所以高频发射电路完全受控于PT2262 的17 脚输出的数字信号,从而对高频电路完成幅度键控(ASK 调制)相当于调为100%的调幅。