查看: 4465  |  回复: 4
51单片机开发板
gandong
2
主题
2
回复
发表于2018-05-09 11:27:29 | 显示全部楼层
1# 电梯直达

1、不要抱怨

没有指导老师,没有氛围,没有项目,没有目标

 

2、不要退缩

在工作中和在校的同学的交流中,听到的最多的是单片机太难了,老师把我讲蒙了。之前觉得这门课很实用,很不错,要学好,我现在看见书就犯恶心,搞这么复杂的东西做什么。仔细想想手机、电脑、智能电视,又觉得高科技真给力。其实不是单片机难学,而是不知道怎么入门。单片机不是学出来的,而是玩出来的。单片机是最听你话的,你想让他做什么,他就做什么,只要他能做。

 

3 、提前做点准备

我们的课程是从硬件产品开发的角度出发的,不仅仅是教你如何通过C语言考试,教你如何通过模电。开发板是必要的,学单片机要有C基础、模电数电基础,微机原理与接口,单片机原理组成、汇编指令,数据结构算法。到这里有同学会说讨厌模电、讨厌数电、讨厌数据结构、讨厌微机原理、讨厌谭浩强。作为工作十几年的我想说,我想再学学模电、再学学数电、再学学数据结构、再学学微机原理、再学学C语言。我要带着大家,把所有知识联系起来。

 

4、跟我学,带你走

可以大致看看课程大纲,从简单学起,动手改改我们的例程,烧录单片机,看效果,看现象。先学I/O口,控制一个等的亮灭,然后再做流水灯,按一个按键灯亮灭。再学学定时器,控制灯的闪烁,也可以做秒表数字钟。再搞串口、AD\DASPI,这就算是入门了。埋头看理论,不动手,结果可能就是书都没看完,踢球去了,不知不觉中放弃了。


 

 

第一步:读书

唉!?又来了,恶心,还要看书,对着书发慌?不错,第一步还是要通读一遍教材,这样我们才能站在巨人的肩膀上。读了一遍什么感觉,一个字晕。书没读完,吃饭去了,吃完饭一高兴,不知不觉放弃了。书别扔,我们把教材当做字典用,网上的信息不是百分之百可靠,书里的可信度高一些。我们还是准备一本书。

 

第二步:动手实践

欲善其事,必先利其器。我们的开发板USB直接供电,USB下载,烧写供电只用一根线,板载资源非常丰富,适合初学者。你有pc 机和开发板,加上我的独门秘籍,十几年功力的传输,让你事半功倍。参加培训可以获得开发板。面对面、手把手,比你自己摸索快得多。想想将来我们要靠他来闯荡江湖,给自己投点资又算得了什么呢?

 

第三步:给自己找个伴,找个师傅

找个伴不孤独,孤军奋战没意思,有时编程序仅仅是落下一个分隔符,自己检查一天也没看出来,也许别人一眼就看出来了。帮别人分析问题也会使你快速提高。行走江湖,没一身好功夫可不行。如何才能有一身好功夫呢?除了练习者专一,勤奋以外,还必须有一位愿意倾心教授的好师傅。能不能遇到好师傅那就只有看一个人的造化了。郭靖在出道前,除了傻就没什么别的本事了,遇到帮主洪七公的时候学个一招半式,这一招半式可就是名震江湖的《降龙十八掌》吗。

 

第四步: 带着问题解决问题
在实践中我们有很多现象解释不了,怎么办?是自己慢慢领悟呢,还是向高手请教?建议先自己领悟,实在不行再向高手请教,这是记忆最深刻,效果最好的办法。但不要领悟的时间太长,否则会削减我们刚建立起来的信心;事事都问,记忆就不深刻,成不了自己的东西,就像练武,只学到了招式,没学到内功,也不知怎么打人。如果能独立调通几个程序,相信你已经被单片机迷住了。

 

第五步:不断提高
达到这一步,不论是技术水平,学习方法,还是心理素质都达到一定的境界了,已经入门了。俗话说师傅领进门,修行在个人。到了这一步,下来就要看个人的努力和悟性怎样了。这个时候应该多看看其他单片机,多拆解其他成熟产品,长长见识,深厚的功底,加上高人的点播,会让你的功力指数上升,很快达到巅峰。比如学完51、在学32位的STM32,再学学CPLD/FPGA等。


 

 

1、 万事开头难、 要勇敢迈出第一步

开始的时候, 不要老是给自己找借口,说有人找我吃饭,作业太多,睡眠不足、没有实验板之类的。遇到困难要一件件攻克,没时间挤时间。从简单的开始,知道写程序是怎么一回事,无论写大程序还是小程序,要做的工序不会差多少,建个工程,配置项目,然后建程序文件,加入项目中,再写代码、编译、生成 HEX,刷进单片机中、运行。先熟悉这一套工序。单片机是注重理论和实践的,光看书不动手,是学不会的。不要远远观望,要完全投入进去。把你十年的零花钱教学费吧,相信你的投入没有错。自学能学会吗,我肯定的说能学会,就像买彩票,你天天买,总有一天能中大奖,而其他同学通过培训知道了中奖号码。

2知识点用到才学, 不用的暂时丢一边

厚厚的一本书,看着人头疼,学了后面的,忘了前面,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序,这不是强迫症吗。比如你写流水灯,完全就没必要看通信口的知识,专心把流水灯学好就是了,这是把整本书化整为零,一小点一小点的啃。把教材当做字典,想不通、过不去了,到书里找找答案,也可以给我打电话。

3、 程序不要光看不写, 一定要自己写一次,从建立工程开始。

最开始的时候,可以看例程,看看每一句是干什么用的,运行后有什么后果,看明白了之后,写上自己的注释,一点一点积累。记住这些步骤、套路,熟能生巧,当你自己能熟练的写出来的时候,说明你会了。

4、 必须学会调试程序的方法

不少人写程序,把代码写好了,然后一运行,不是自己想要的结果,跑到论坛上发个帖子,把程序一贴,问:为什么我的程序不能正常运行?然后就等别人来给自己分析。这样不好,应该自己学会通过现象发现问题,然后解决问题。我们调试过程中可以在KEIL 里下断点,查看寄存器内容等,当你发现你写的程序运行结果和你想象中不一样的时候,你可以单步,也可以下断点,然后跟踪,查看各相关寄存器内容,找出影响结果的地方,改正过来。这些都是调试程序的手段,还可以使用万用表、示波器去检查信号。这一个过程非常重要,通过程序的排错,你可以学到的知识是书上得不到的,会使你功力大增。

5、 规划程序

我们用单片机来控制周边器件,让他替你控制器件按你的要求去运作。要写程序,就得有个思路。要先规划整体架构,那部分代码是初始化,那部分放在主循环,哪些放在中断,曾经遇到过,主循环里用了很多延时delay(),最后产品的工作速度很慢,分析是单片机大部分时间在做 i++

 


 

第一个实验 点亮Led 仅仅让大家感受一下嵌入式C语言的魅力

开发工具 keil

下载软件 stc-isp

 对一个单片机新手,遇到的第一个问题往往是如何使用单片机点亮LED,这就好比学习编程语言第一个程序的HelloWorld

说明: C:\Documents and Settings\Administrator\Application Data\Tencent\Users\3223066290\QQ\WinTemp\RichOle\3J0O3SH5YXE512B7VVRM{I0.png

LED是发光二极管,它是一种二极管,二极管单向导通,导通时会有一个导通电压,不同颜色的发光二极管导通电压不同,普通的发光二极管正偏压降红色为1.6V,黄色为1.4V左右,绿色1.7左右,蓝白为2.5V左右 。工作电流510mA左右。电阻的作用是限流,(5V-1.7/1k=3.3ma.

P0口输出高电平,二极管无法导通,不亮,P0口输出低电平,二极管导通,电流3.3ma

 

单片机P0口的结构,双向并行I/O口应该能理解吧,双向就是即能输入数据,能输出数据。而漏极开路是针对输出而言的,对输入没有什么影响。什么是漏极开路呢?用一个三极管来比喻吧,见下图1,可以输出高电平和低电平,相当于单片机的P1P2P3口的输出端,而图2就相当于漏极开路输出,这样的电路当三极管导通时就输出低电平,而当三极管截止时,输出端就相当于断开了,因没有那个电阻了,就叫开路输出,因此,这样的电路是不能输出高电平的。

说明: C:\Documents and Settings\Administrator\Application Data\Tencent\Users\3223066290\QQ\WinTemp\RichOle\D}V$NTLSM2JJ7WH3Q1J{2)9.png          说明: C:\Documents and Settings\Administrator\Application Data\Tencent\Users\3223066290\QQ\WinTemp\RichOle\I4Z@{%}7CK)Z%`O84_7RYX4.png

P0=0xff 图中管子是截止的,相当于LED阴极悬空,不发光

P0=0x00 图中管子是打开的,相当于LED阴极接地,发光

就是这么简单,P0=0xfe,相当于P0=11111110,这时候P0.0=0,灯L0.7

一定要牢记51P0口,无法输出高电平,一般要加上拉电阻,最大灌电流12mA


 

二、漏极开路输出

  1、漏极开路输出原理

  和集电极开路一样,顾名思义,开漏电路就是指从MOSFET的漏极输出的电路。典型的用法是在漏极外部的电路添加上拉电阻到电源如图所示。完整的开漏电路应由开漏器件和开漏上拉电阻组成。这里的上拉电阻R的阻值决定了逻辑电平转换的上升/下降沿的速度。阻值越大,速度越低,功耗越小。因此在选择上拉电阻时要兼顾功耗和速度。标准的开漏脚一般只有输出的能力。添加其它的判断电路,才能具备双向输入、输出的能力。

  说明: C:\Documents and Settings\Administrator\Application Data\Tencent\Users\3223066290\QQ\WinTemp\RichOle\$3)9%D(QCQ0J9O}YCZZ841Z.png

 

  很多单片机等器件的I/O就是漏极开路形式,或者可以配置成漏极开路输出形式,如51单片机的P0口就为漏极开路输出。在实际应用中可以将多个开漏输出的引脚连接到一条线上,这样就形成线与逻辑关系。注意这个公共点必须接一个上拉电阻。当这些引脚的任一路变为逻辑0后,开漏线上的逻辑就为0了。在I2C等接口总线中就用此法判断总线占用状态。

  同集电极开路一样,利用外部电路的驱动能力,减少IC内部的驱动。当IC内部MOSFET导通时,驱动电流是从外部的VCC流经上拉电阻,再经MOSFETGNDIC内部仅需很下的栅极驱动电流,因此漏极开路也常用于驱动电路中。

  


 

2、特点

1)利用外部电路的驱动能力,减少ic内部的驱动。 或驱动比芯片电源电压高的负载。

2)可以将多个开漏输出的pin,连接到一条线上。通过一只上拉电阻,在不增加任何器件的情况下,形成与逻辑关系。这也是i2csmbus等总线判断总线占用状态的原理。如果作为图腾输出必须接上拉电阻。接容性负载时,下降沿是芯片内的晶体管,是有源驱动,速度较快;上升延是无源的外接电阻,速度慢。如果要求速度高电阻选择要小,功耗会大。所以负载电阻的选择要兼顾功耗和速度。

  3)可以利用改变上拉电源的电压,改变传输电平。例如加上上拉电阻就可以提供ttl/cmos电平输出等。

  4)开漏pin不连接外部的上拉电阻,则只能输出低电平。一般来说,开漏是用来连接不同电平的器件,匹配电平用的。

  5)正常的cmos输出级是上、下两个管子,把上面的管子去掉就是open-drain了。这种输出的主要目的有两个:电平转换和线与。

  6)由于漏级开路,所以后级电路必须接一上拉电阻,上拉电阻的电源电压就可以决定输出电平。这样你就可以进行任意电平的转换了。

  7)线与功能主要用于有多个电路对同一信号进行拉低操作的场合,如果本电路不想拉低,就输出高电平,因为open-drain上面的管子被拿掉,高电平是靠外接的上拉电阻实现的。(而正常的cmos输出级,如果出现一个输出为高另外一个为低时,等于电源短路。)

  8open-drain提供了灵活的输出方式,但是也有其弱点,就是带来上升沿的延时。因为上升沿是通过外接上拉无源电阻对负载充电,所以当电阻选择小时延时就小,但功耗大;反之延时大功耗小。所以如果对延时有要求,则建议用下降沿输出。
战战TS
0
主题
1
回复
发表于2018-07-06 17:56:56   |  显示全部楼层
5#
不错,坐等更新啊楼主  谢谢

主题

回复
  • 温馨提示: 标题不合格、重复发帖、发布广告贴,将会被删除帖子或禁止发言。 详情请参考: 社区发帖规则
  • 您当前输入了 0 个文字。还可以输入 8000 个文字。 已添加复制上传图片功能,该功能目前仅支持chrome和火狐

禁言/删除

X
请选择禁言时长:
是否清除头像:
禁言/删除备注:
昵 称:
 
温馨提示:昵称只能设置一次,设置后无法修改。
只支持中文、英文和数字。

举报

X
请选择举报类型:
请输入详细内容:

顶部