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