原创 【博客大赛】我的51单片机之路-1

2012-9-23 17:34 2582 5 12 分类: MCU/ 嵌入式

1、什么是单片机 一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储-内存)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部份被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部份如A/D,D/A等。

单片机是一种控制芯片,一个微型的计算机,而加上晶振,存储器,地址锁存器,逻辑门,七段译码器(显示器),按钮(类似键盘),扩展芯片,接口等那是单片机系统。
   MCS51是指由美国INTEL公司(对了,就是大名鼎鼎的INTEL)生产的一系列单片机的总称,这一系列单片机包括了好些品种,如8031,8051,8751,8032,8052,8752等,其中8051是最早最典型的产品,该系列其它单片机都是在8051的基础上进行功能的增、减、改变而来的,所以人们习惯于用8051来称呼MCS51系列单片机,而8031是前些年在我国最流行的单片机,所以很多场合会看到8031的名称。INTEL公司将MCS51的核心技术授权给了很多其它公司,所以有很多公司在做以8051为核心的单片机,当然,功能或多或少有些改变,以满足不同的需求,其中89C51就是这几年在我国非常流行的单片机,它是由美国ATMEL公司开发生产的。以后我们将用89C51单片机来完成一系列的实验。
  




点击浏览下一页 

单片机的40个引脚大致可分为4类:电源时钟控制I/O引脚
⒈ 电源: 
         ⑴ VCC - 芯片电源,接+5V;
         ⑵ VSS - 接地端;

⒉ 时钟:XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。

⒊ 控制线:控制线共有4根,
  ⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲
      ① ALE功能:用来锁存P0口送出的低8位地址
      ② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。
  ⑵ PSEN:外ROM读选通信号。
  ⑶ RST/VPD:复位/备用电源。
       ① RST(Reset)功能:复位信号输入端。
       ② VPD功能:在Vcc掉电情况下,接备用电源。
  ⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。
       ① EA功能:内外ROM选择端。
       ② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

⒋ I/O线
  80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。  

   拿到一块芯片,想要使用它,首先必须要知道怎样连线,我们用的一块称之为89C51的芯片,下面我们就看一下如何给它连线。

1、 电源:这当然是必不可少的了。单片机使用的是5V电源,其中正极接40管脚,负极(地)接20管脚。 
2、 振蒎电路:单片机是一种时序电路,必须供给脉冲信号才能正常工作,在单片机内部已集成了振荡器,使用晶体振荡器,接18、19脚。只要买来晶体震荡器,电容,连上就能了,按图1接上即可。 
3、 复位管脚:按图1中画法连好,至于复位是何含义及为何需要复要复位,在单片机功能中介绍。 
4、 EA管脚:EA管脚接到正电源端。 至此,一个单片机就接好,通上电,单片机就开始工作了。

  我们的第一个任务是要用单片机点亮一只发光二极管LED,显然,这个LED必须要和单片机的某个管脚相连,不然单片机就没法控制它了,那么和哪个管脚相连呢?单片机上除了刚才用掉的5个管脚,还有35个,我们将这个LED和1脚相连。(见图1,其中R1是限流电阻)

  按照这个图的接法,当1脚是高电平时,LED不亮,只有1脚是低电平时,LED才发亮。因此要1脚我们要能够控制,也就是说,我们要能够让1管脚按要求变为高或低电平。即然我们要控制1脚,就得给它起个名字,总不能就叫它一脚吧?叫它什么名字呢?设计51芯片的INTEL公司已经起好了,就叫它P1.0,这是规定,不能由我们来更改。

点击浏览下一页
   图1

  名字有了,我们又怎样让它变'高'或变'低'呢?叫人做事,说一声就能,这叫发布命令,要计算机做事,也得要向计算机发命令,计算机能听得懂的命令称之为计算机的指令。让一个管脚输出高电平的指令是SETB,让一个管脚输出低电平的指令是CLR。因此,我们要P1.0输出高电平,只要写SETB P1.0,要P1.0输出低电平,只要写 CLR P1.0就能了。

  现在我们已经有办法让计算机去将P10输出高或低电平了,但是我们怎样才能计算机执行这条指令呢?总不能也对计算机也说一声了事吧。要解决这个问题,还得有几步要走。第一,计算机看不懂SETB CLR之类的指令,我们得把指令翻译成计算机能懂的方式,再让计算机去读。计算机能懂什么呢?它只懂一样东西——数字。因此我们得把SETB P1.0变为(D2H,90H ),把CLR P1.0变为 (C2H,90H ),至于为什么是这两个数字,这也是由51芯片的设计者--INTEL规定的,我们不去研究。第二步,在得到这两个数字后,怎样让这两个数字进入单片机的内部呢?这要借助于一个硬件工具"编程器"。如果你还不知道是什么是编程器,我来介绍一下,就是把你在电脑上写出来来的代码用汇编器等编译器生成的一个目标烧写到单片机的eprom里面去的工具,80c51这种类型的单片机编程是一件很麻烦的事情,必要要先装到编程器上编程后才能在设备上使用,而目前最新的AT89s51或者STC89C51单片机能支持在线编程(isp)功能,不用拔出来利用简单的电路就可以实现把代码写入单片机内部,本站有详细的编程器制作教程下载。

 下面我们来实战一下:下图(图2)所示的软件名字叫keil —>点此下载,是用来编写程序代码并生成一个可以写入到单片机芯片的Hex文件(我们人要控制单片机只能用汇编语言或者C语言而单片机不认识怎么办呢?所以keil这个软件就把程序语言转换成了一种特定格式的Hex文件,只要把这个文件下载到单片机芯片单片机就会按我们程序的思路来运行)
点击浏览下一页
图2 (keil编程软件) —>  本例keil工程文件点此下载

点击浏览下一页
       图3(下载软件) —> 点击此处下载

    好了…… ,我们把 SETB P1.0 这条汇编语句用keil软件编译生成Hex文件,然后用图3所示的软件和图1所示的硬件(用串口连接电脑)下载到我们已经做好的电路板上的单片机芯片里去(图省事的话建议直接买个开发板),然后接通电源……什么?灯不亮?这就对了,因为我们写进去的指令就是让P10输出高电平,灯当然不亮,要是亮就错了。所以要将keil编缉区的内容改为CLR P1.0,重新编译生成Hex文件,重新下载,接电,好,灯亮了。因为我们写入的Hex就是让P10输出低电平的指令。这样我们看到,硬件电路的连线没有做任何改变,只要改变写入单片机中的内容,就能改变电路的输出效果

PARTNER CONTENT

文章评论7条评论)

登录后参与讨论

用户377235 2014-8-22 17:56

图片是不是太大了,手机里只能显示一部分,影响阅读

wxg1988 2012-11-13 22:51

继续

用户377235 2012-9-30 12:34

学习中

用户428381 2012-9-28 23:41

学习了

笑脸

用户424277 2012-9-28 11:57

回想起自己当初“**”的情况了

用户593939 2012-9-26 23:23

学习了

用户419091 2012-9-26 10:49

Ok
相关推荐阅读
用户412802 2013-10-11 21:26
【博客大赛】AD9834,高性能信号发生器的选择
  AD9834简介 AD9834是一款75 MHz、低功耗DDS器件,能够产生高性能正弦波和三角波输出。其片内还集成一个比较器,支持产生方波以用于时钟发生。当供电电压为3 V时,其功耗仅...
用户412802 2013-04-22 16:47
想学就学,EDN助你一臂之力!拿板子参加嵌入式主题大赛
  就这几个月入门进阶FPGA,边参加嵌入式主题大赛,边学习FPGA!加入FPGA入门小组一起学!       新手快来,原理有文档文档介绍,网友在完成此次的基础上,可尽情发挥,重在学习领...
用户412802 2013-02-19 10:55
ouryk回来,活动继续
最近一直忙着其他事情,小组等活动暂停了,不过现在回来了,继续完成承诺,给以最大优惠奉献大家,欢迎关注我的小组 我爱单片机...
用户412802 2013-01-12 17:09
2013的我们
2013的我们该怎么生活,技术路线,职业生涯,希望大家一起好好讨论下...
用户412802 2012-12-11 13:11
【告别2012】我们一起破2012还继续,奋斗着,学习着
2012即将结束,拿出手上的资源,让利给大家 单片机200 包邮价格 带液晶屏 http://item.taobao.com/item.htm?spm=a1z10.3.0.76.3bpjHq&...
用户412802 2012-11-30 08:53
【博客大赛】DIY个性时钟与温度计
   学了51,你可以自己diy个性时钟与温度计,让你的东西与众不同,让同学们羡慕去吧 [注:AT89S52使用12M晶振]======================================...
EE直播间
更多
我要评论
7
5
关闭 站长推荐上一条 /3 下一条