《AT89C51单片机简单介绍.ppt》由会员分享,可在线阅读,更多相关《AT89C51单片机简单介绍.ppt(12页珍藏版)》请在优知文库上搜索。
1、AT89C51单片机简单介绍什么是单片机 一台能够工作的计算机要有这样几个部分构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备。在个人计算机上这些部分被分成若干块芯片,安装一个称之为主板的印刷线路板上。 而在单片机中,这些部份,全部被做到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机除了上述部份外,还集成了其它部份如A/D,D/A等。AT89C51 AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4K bytes的可反复擦写的只读程序存储器和128bytes的随机存取数据存储器(RAM),器件采用ATME
2、L公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和flash存储单元。AT89C51引脚图1、32可编程I/O线 2、两个16位定时器/计数器 3、5个中断源 4、片内振荡器和时钟电路P0和P1口 VCC:供电电压。 VSS:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个
3、内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口 P2口口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部
4、上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口P3口口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0
5、(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 复位管脚 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 片内振荡器XTAL1XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2XTAL2:来自反向振荡器的输出。 振荡器特性振荡器特性: : XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输
6、入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 其它的管脚 /EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器,EA端必须保持低电平。如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。 Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。简单的程序LOOP: SETB P10; 让P10灯灭 LCALL DELAY; /长跳转指令 (当遇到RET,则回到此下行程序) CLR P10; /让灯P10亮 LCALL DELAY; AJMP LOOP
7、; /绝对跳转到LOOP DELAY: MOV R7,#250; D1: MOV R6,#250;D2:DJNZ R6,D2; /将R6减1,如果变为0,往下执行,如果不为0,就转到D2 DJNZ R7,D1; /最终DJNZ R6,D2这句话被执行了250*250=62500次 R6,R7是工作寄存器 RET; /子程序返回指令 END;延时程序计算 我们已知,计算机工作时,是一条一条地从ROM中取指令,然后一步一步地执行,我们规定:计算机访问一次存储器的时间,称之为一个机器周期。1个机器周期包括12个时钟周期。 下面我们来计算一下刚才的时间。假设晶振为12M,则时钟周期为1/12微秒,则机器周期为1微秒。DJNZ是双周期指令,所以执行一次要2个微秒。可得:62500*2=125000微秒。即125毫秒。