单片机菜鸟成长日记2让你的单片机跑起来

吻花者 2012-02-04 12:21:42
单片机菜鸟成长日记2
————让你的单片机跑起来

一、单片机简介
在学习单片机之前呢,要先熟悉下单片机的基本的引脚的构成。看下图吧!


图一
这是一个51单片机的引脚(以后用任何型号的单片机或者集成电路,这都是一个必须要看的图片),先认识下吧:
1、电源管脚:
Vcc(40),Vss(20)
Vcc:电源端,为5V,允许电源有偏差;
GND(VSS):地。
注:为了防止电源脉冲对单片机的影响,一般在VCC和GND之间接上一个1uF的电容。
2、时钟电路管脚:
XTAL1(18),XTAL2(19)外接晶振引脚(有的单片机采用的是内部时钟,这儿就不需要外接了,还有的需要的是外部的时钟信号也是接这儿的)。
3、控制信号脚:
RST/VPD(9),复位引脚,高电平有效(并不是所有的单片机都是高电平有效的,有的是低电平有效的,在使用不同的单片机要注意)。
ALE/PROG(30),地址锁存信号端,频率为晶体振荡器的1/6正脉冲信号。当CPU访问片外扩展存储器时,该信号作为锁存低8位地址的控制信号/当片内有EPROM时,该管脚提供编程写入时的编程脉冲信号输入端(初学者基本不用)。
PSEN(29),程序存储器允许输出信号端。在访问片外程序存储器时,CPU控制该端输出负脉冲作为外部存储器的选通信号,允许CPU读出EPROM中被选中单元中的指令码。该管脚一般连程序存储器的选通信号端(OE)(初学者基本不用)。
Vpp/EA(31)外部程序存储器地址允许输入端/固化编程电压输入端。程序存储器允许输出信号端。当EA接高时,前4KB或8KB程序在单片机内,当EA接地时,所有程序均在外存储器(初学者用不到外部的,直接接高电平就行)。
4、I/O管脚
P0,P1,P2,P3
这4个是基本的I/O口,这4个I/O口具有不完全相同的功能,很多书都在这儿详细的介绍了,但太详细太深对于初学者来说很难理解,这儿我就先不说了,等用到哪儿再说吧!
到了这儿单片机的基本引脚就认识的差不多了,其实不用看太多,下面就介绍51单片机的最小系统图,你先认认就可以了,先熟悉下吗?至于内部的东西我的建议是先不要看太多了,记不住,容易迷糊啊!你知道内于有个程序存储器和数据存储器就可以了,至于大小和地方以后再说吧,你现在的任务是先叫单片机跑起来!!
二、单片机的最小系统篇:
任何单片机 都有他的最小系统,我最近在网络论坛上经常发现有人问,谁告诉我XX单片机的最小系统啊,可能是他刚学习这个单片机,不是很熟悉,理解,可是现在任何的单片机都有他的基本的资料(也许是英文的),可是你即使看不懂全部的资料,我上面说的图一的那些图片和上面的引脚你应该是能看懂的啊(不懂的找百度大神,要是再不懂大神也会生气的)。
好了废话少说,我就已51单片机介绍下如何寻找(设计)单片机的最小系统吧:
1、 电源和地:
功能:给单片机提供工作的电源。
这些一般在引脚中标识为VCC、VDD、VSS、GND等。只要你看见这些符号你就要都连接起来,前两个是电源(一般都是5V,具体可以看资料上面VCC后面的数字就可以了,也有的是3.3V的)、后两个一般都是地。
2、 复位电路:
功能:在单片机通电的瞬间,给单片机复位,让单片机从头再来。
这些在引脚的表示为RESET(可能有多个字母或者简写的,例如图一为:RST),这个一般都有标识的,很好认的,这些怎么接呢,一般你看资料后面都有具体的接法,要是找不到,最好找找资料看是高电平复位还是低电平复位,这个很重要啊,不要接错了啊。

高电平复位 低电平复位
图二
顺带说下原理(左图为例):
先不管按键,看上电复位的情况:通电瞬间电容可以当短路(别问我为什么)所以RST脚为高电平。随着时间的飞逝(电容充电),稳定后VCC的电压实际上是加在电容上的。电容下极板也就是RST脚最终为0V。这样RST持续一段时间高电平后最终稳定在低电平,高电平持续时间由RC时间常数决定。这就是上电高电平复位(低电平复位正好相反)。
有时,只使用一个电解电容的复位电路可靠性不高,所以图中给出两种较好的复位电路。其中,按钮开关S1可对单片机实现手动复位,当按下S1时,RST端获得复位信号(高电平)而使单片机复位,此时无论单片机在进行什么操作都得乖乖的从头开始执行程序。
再顺便说下,大电容旁边那个小电容一般是稳定电源电压滤波用的(可以不用的)。
3:晶振电路:
功能:给单片机提供一个工作的时钟的标准(要不你知道他的一个指令是多少时间呢)。
晶振的引脚一般标识为XTAL.。
现在随着技术的发展,单片机已经不再是单纯的外部震荡了,很多单片机都采用了内外皆可的震荡方式了。
外部震荡还是和以前的一样,可以采用晶体振荡器、RC震荡电路(很多资料上面都介绍,但是用的很少,成本低,但是可靠性和准确性略差)等;
内部震荡呢就毕竟简单了,在配置中选择内部震荡方式后,再选择一个合适的震荡频率就可以了。好处的省钱、省引脚。不用外面再焊接晶振,而且原来接晶振的2个引脚可以空出来做IO用;缺点是准确性和抗干扰性稍差点。
这儿呢是学习的51系列的单片机,我就重点说说外部震荡电路的晶体振荡器电路吧。

图三
这就是晶振电路,其实就已一个晶振,然后并联2个电容倒地。
晶振是给单片机提供工作信号脉冲的.这个脉冲就是单片机的工作速度。比如 12M晶振,单片机工作速度就是每秒 12M,和电脑的 CPU概念一样。当然,单片机的工作频率是有范围的,不能太大.一般 24M就不上去了,不然不稳定。电容大小没有固定值,一般的晶振的负载电容为15p或12.5p ,假如再考虑元件引脚的等效输进电容,则两个22p的电容构成晶振的振荡电路就是比较好的选择.
到此为止,这就是单片机的最小系统了。要是你采用ISP下载的话,就还要设计一个ISP下载电路了,那个我一会再说,要不没有的话,你就可以安装这个电路来进行焊接,调试了。
三、ISP下载电路
1、ISP下载电路图
首先说说编程器,它是做什么用的呢?程序编辑好后,并且通过编译生产的HEX格式的二进制烧写文件,就要用编程器把它烧写到单片机里面。这些在不具有ISP的单片机时,是开发的必须,现在的单片机一般都具有ISP功能了,而且编程器本身很贵的,好的上千,便宜的也要上百元,是个不小的投资,因此会让很多单片机爱好者望而却步。另外编程器使用起来比较麻烦(尤其是调试程序的时候),每一次编程都要把芯片从实验板上拔下来,烧写好了再插回去,很容易弄坏插座和单片机的引脚,造成一些不必要的麻烦。但是编程器作为批量行的生产还是有用的。因此,作为一个初学者来说,购买一个昂贵的编程器就不必要了,选择一个具有ISP功能的单片机,自己制作一个简易的ISP下载线就显得很有必要了。其实一般的51ISP下载线的制作还是找百度大神,很多的,在这儿我就简单介绍一下吧。
51单片机的ISP并口下载电路为:

图四
从上面的电路图中可以看到,单片机的下载电路其实就是一个串行通信电路,这样就可以实现一个电路既用来下载程序也可以用来做串行口通信的实验,一举两得。图中的COM1一个并口插座,用其来连接一个到PC机并行口输出端下载程序的。而你看上图的右边就知道了,一般的具有ISP功能的其引脚都标有:MOSI、MISO、SCK、RST四个引脚,只要在引脚上面有这四个功能,基本就是具有ISP功能了。
好了安装这个图焊接起来,通电后就可以进行ISP的下载了,把你写的程序下载到单片机里面了,采用什么软件下载?再推荐一个吧!!
2、 ISP下载软件
聂志强老师的Easy 51Pro v2.0宇宙版

ISP-30A版

这两个软件都是ISP下载的软件,去找百度大神吧,都是免费的。
四、让你的单片机跑起来
最小系统制作完了,ISP下载线也制作完了,下载软件也找到了,编程软件呢?我推荐Keil系列,这个自己去找大神吧!!
都安装好了,是不是可以学习单片机了呢?
No! No! No!
还是先叫你的单片机跑起来吧,顺便熟悉下你上面的这些制作,也不一定都成功啊?
先用单片机控制一支发光二极管闪烁吧,可在最简系统的基础上向单片机的I/O口(比如P1.4口)添加一个发光二极管D1和限流电阻R1。

图五

录入一个简单的程序吧。
ORG 0000H
AJMP MAIN
MAIN: SETB P1.4
ACALL DEY
CLR P1.4
ACALL DEY
AJMP MAIN
DEY: MOV R2,#200
DEY1: MOV R3,#255
DEY2: NOP
DJNZ R3,DEY2
DJNZ R2,DEY1
RET
END
然后就是调试程序的基本步骤,录入、编译、输出HEX文件、下载、调试、修改、再编译,一直到调试成功,如果你看到你的线路板上的LED一闪一闪的,恭喜你,成功了,你的单片机正常运行了,你可以大展宏图了!!
最后,我之所以强调一定要你的单片机先跑起来,最主要的原因是当你的程序写了很多以后,再去调试,结果不是你想要的,这时候你是怀疑你的硬件、软件、还是下载线呢?不知道,不如在最简单的时候,把你的硬件和下载线先搞定了,你再开始你的程序的编写和调试之旅,这样你在调试的时候会有的放矢的去寻找你程序的错误,毕竟没有哪个人,设计、编写程序后,一次性的调试成功,我反正是没有见过,那只是在传说中的存在啊!!
...全文
918 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
吻花者 2013-11-12
  • 打赏
  • 举报
回复
谢谢大家的支持,都忘记了,一晃眼一年了,重新整理下,过几天发出来!!!
幽默_人生 2013-09-30
  • 打赏
  • 举报
回复
最近正在学单片~ 最基本入手
vc8fans 2013-09-29
  • 打赏
  • 举报
回复
还弄汇编,用C容易理解些
icfree 2013-09-28
  • 打赏
  • 举报
回复
谢谢楼主了学习了。
终结者之梦 2013-09-02
  • 打赏
  • 举报
回复
好吧,谢谢楼主了
肩膀有伤 2013-01-16
  • 打赏
  • 举报
回复
嵌入式小侠 2012-10-01
  • 打赏
  • 举报
回复
不错,楼主挺细心啊,学习了。
qq792368480 2012-10-01
  • 打赏
  • 举报
回复
楼主真好,讲得言简意赅,重在实践
善良超锅锅 2012-09-30
  • 打赏
  • 举报
回复
可惜没图片,别人回过的帖子,你要不能再编辑了。
楼主另发一篇帖子吧!把这边的文字贴上去,加上图片就OK。
[Quote=引用 1 楼 的回复:]

写这个玩意这不容易啊,就是图片没有发上去,不知道怎么发,谁知道的告诉下啊!!
[/Quote]
winfeng_xfu 2012-02-07
  • 打赏
  • 举报
回复
没有图片~~
Binzo 2012-02-05
  • 打赏
  • 举报
回复
先传到你空间的照片中,再添加url地址。
回复内容栏有个添加图片的button。
吻花者 2012-02-04
  • 打赏
  • 举报
回复
写这个玩意这不容易啊,就是图片没有发上去,不知道怎么发,谁知道的告诉下啊!!

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧