本文着手从集成电路角度去认识单片机,主要介绍了单片机的引脚图及引脚功能,以及单片机简易编程。
首先,先看下80C51单片机的功能结构框图。
80C51单片机属于MCS-51系列单片机,采用40引脚双列直插式DIP(Dual In Line Package),内有128个RAM单元及4K的ROM。
80C51单片机的功能结构框图
下面介绍一下单片机的引脚图及引脚功能(如下图所示),引脚的具体功能将在之后详细介绍。
单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。
1. 电源:
⑴ VCC -芯片电源,接+5V;
⑵ VSS - 接地端;
2. 时钟:
XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。
3. 控制线:
控制线共有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。
4. 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输出高或低电平了,但是我们怎样才能计算机执行这条指令呢?总不能也对计算机也说一声了事吧。要解决这个问题,还得有几步要走。
第一,计算机看不懂SETBCLR之类的指令,我们得把指令翻译成计算机能懂的方式,再让计算机去读。计算机能懂什么呢?它只懂一样东西--数字。因此我们得把SETB P1.0变为(D2H,90H ),把CLR P1.0变为(C2H,90H ),至于为什么是这两个数字,这也是由51芯片的设计者--INTEL规定的,我们不去研究。
第二步,在得到这两个数字后,怎样让这两个数字进入单片机的内部呢?这要借助于一个硬件工具“编程器”.如果你还不知道是什么是编程器,我来介绍一下,就是把你在电脑上写出来来的代码用汇编器等编译器生成的一个目标烧写到单片机的eprom里面去的工具,80c51这种类型的单片机编程是一件很麻烦的事情,必要要先装到编程器上编程后才能在设备上使用,而目前最新的AT89s51或者STC89C51单片机能支持在线编程(isp)功能,不用拔出来利用简单的电路就可以实现把代码写入单片机内部。
我们将编程器与电脑连好,运行编程器的软件,然后在编缉区内写入(D2H,90H)见图2,写入……好,拿下片子,把片子插入做好的电路板,接通电源……什么?灯不亮?这就对了,因为我们写进去的指令就是让P10输出高电平,灯当然不亮,要是亮就错了。现在我们再拨下这块芯片,重新放回到编程器上,将编缉区的内容改为(C2H,90H),也就是CLR P1.0,写片,拿下片子,把片子插进电路板,接电,好,灯亮了。因为我们写入的()就是让P10输出低电平的指令。这样我们看到,硬件电路的连线没有做任何改变,只要改变写入单片机中的内容,就能改变电路的输出效果。
上一篇:基于AT89C52的家用电话控制和报警系统的设计
下一篇:80c51引脚图管脚图及各引脚功能介绍
推荐阅读最新更新时间:2024-11-09 20:51
推荐帖子
- 【pyboardCN V2】使用I2C接口驱动I2C外设DS3231
- pyboard上面有I2C类库可以供我们调用,根据邵版主的原话,I2C类库所挂载的I2C接口是STM32F405RG的硬件I2C接口,非GPIO模拟的I2C接口。硬件连线,DS3231连接pyboard的I2C2接口,即PB10和PB11:micropython使用类库操作接口有两种方式,第一种是新建对象来操作,对对象进行操作就是对硬件接口进行操作:i2c=I2C(2)i2c=I2C(2,I2C.MASTER)#新建一个I2C类的对象i2c
- donatello1996 MicroPython开源版块
- 一个不错的avr代码生成软件
- 运用:avr初始化代码生成T0:CTC:一般用来生成占空比百分之五十的方波,如果是从OC0输出,则选择“匹配时OC0取反”,下面勾选FOC0,同时可选OCIE0(比较匹配中断使能),如果不从OC0输出,选择“不与OC0连接”,后面只选择OCIE0,通过中断来控制。TOIE0在这个模式下没有用,因为这个模式计数器从0开始计数一直到OCNT0然后重新计数,不会到达0XFF,所以没有溢出中断。相位修正PWM:由于是双向满程计数,所以晶振和分频都确定了,总的周期也就确定了,通过选择“匹配时引脚
- w2008114110 Microchip MCU
- 基于msp430f149矩阵键盘
- #ifndef__KEY_H__#define__KEY_H__#include\"delay.h\"ucharkeys_scan(){delay(10);ucharkeyno=16;P1DIR=0Xf0;//高四位输出,低四位输入P1OUT=0xef;switch(P1IN&0x0f){case0x0e:keyno=4;break;
- tcvsdonnnie 微控制器 MCU
- 合泰HOLTEK代理之HT46R47应用篇
- 本帖最后由jameswangsynnex于2015-3-319:57编辑HT46R47高性能8位OTP单片机·63条精简指令集·13个双向I/O口·7层堆栈中断功能·1个8位带溢出可编程预分频定时/计数器·支持PFD(可编程分频器)输出·看门狗(WDT)电路·低
- qwertyuiop11111 移动便携
- 求瑞萨单片机中文资料
- 一系列的求瑞萨单片机中文资料您好!我们公司是瑞萨的代理商,如有什么问题可与我联系.StevenAn(安先生)SalesEngineer**********************************************************************上海友菱电子有限公司北京办事处ShanghaiKoryoElectronicsCo.,Ltd.(BeiJingOffice)北京海淀区上地六街17号康得大厦6208BRm.6208B,Kang
- htxiaofeng 单片机
- MPU姿态传感器INT、MOSI、MISO、SCK、NCS这五个脚的作用是?波形对不对
- MPU姿态传感器INT、MOSI、MISO、SCK、NCS这五个脚的作用是?波形对不对MPU姿态传感器INT、MOSI、MISO、SCK、NCS这五个脚的作用是?波形对不对怎么看相似是带货买示波器的 。。。无语了哎SPI通信接口,具体还是得看集训期说明,应该可以配置一些中断 这是SPI总线,INT中断口,MOSI数据口(主发从收),MiSO数据口(从发主收),SCK时钟,NCS硬件使能端(可以不用,用软件+IO口代替)
- QWE4562009 测试/测量