免费预览已结束,剩余51页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
陕西理工学院毕业论文(设计)引言SPI(Serial Peripheral Interface串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息7。外围设备包括 FLASHRAM、网络控制器、LCD显示驱动器、AD转换器和MCU等。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入从机输出数据线MISO、主机输出从机输入数据线MOSI和低电平有效的从机选择线SS (有的SPI接口芯片带有中断信号线INT或INT、有的SPI接口芯片没有主机输出从机输入数据线MOSI)。由于SPI系统总线一共只需34位数据线和控制线即可实现与具有SPI总线接口功能的各种IO器件进行接口,而扩展并行总线则需要8根数据线、816位地址线、23位控制线,因此,采用SPI总线接口可以简化电路设计,节省很多常规电路中的接口器件和IO口线,提高设计的可靠性。由此可见,在MCS51系列等不具有SPI接口的单片机组成的智能仪器和工业测控系统中,当传输速度要求不是太高时,使用SPI总线可以增加应用系统接口器件的种类,提高应用系统的性能。实时时钟是微机测控系统中的一个重要组成部分。美国Dallas公司推出的串行接口实时时钟芯片DS1302提供备用电源输入引脚,使器件能用非可重新充电电池任务用电源。该芯片以其体积小、功耗低、使用简单、接口容易、与单片机连线少为主要特点,同时具有较高的精度,能很好满足微机测控系统的要求7 1 方案选择随着单片机以及周边器件的发展,元件与芯片之间短距离通信的物理线路过多成为应用系统设计的一个很大的问题。为此,芯片设计者的措施是既致力于开发新的串行总线协议,又在不同部件之间陆续制定一些新的通信标准。在次情况下SPI串行总线协议被推出。 由于SPI串行总线连线较少,线结构简单,所以被广泛应用在消费电子类产品,通信产品,仪器仪表及工程控制系统中。这个优势使很多半导体公司开发支持该总线协议的各种功能芯片。基于SPI的时钟芯片应用程序设计,这个题目是关于单片机的一个软件和硬件相结合的一个题目。支持SPI总线的时钟芯片很多,此次设计拟采用美国DALLAS公司生产的实时时钟芯片DS1302和ATM公司的51系列单片机作为核心部件来实现实时时钟的实现,通过LED或者LCD显示出来。外加4个独立式按键来进行时间调整。图1.1为我的设计框图:单片机时钟芯片独立式按键LCD 图1.1 系统设计原理图2 按键部分设计2.1 独立式按键的硬件结构独立式按键电路在Proteus软件下仿真后如图2.1所示。图2.1按键电路2.2 按键部分的流程图消抖动开始扫描键盘,判断是否有键按下检测0号键是否按下?检测1号键是否按下?检测2号键是否按下?检测3号键是否按下?停止时间,开光标光标右移光标位的数值加”1”去光标,写时间返回YNYYYYNNNN图2.2按键部分流程图2.3按键子程序2.3.1消除键抖动按键的合断都存在一个抖动的暂态过程,这种抖动的暂态过程大约经过510ms的时间,人的肉眼是察觉不到的,但对高速的CPU是有反应的,可能产生误处理,为了保证键动作一次仅作一次处理,必须采取措施以消除抖动3。消除抖动的方法有两种:硬件消抖和软件消抖。本设计中采用软件消抖,调用延时,执行一段大于10ms的延时子程序躲过暂态抖动过程,再读取稳定的键状态。因此我们采用了一段12ms的延时子程序。12ms延时子程序如下所示。DELAY: ;延时子程序 MOV R6,#18HDEL0: MOV R7,#0FFHDEL1:DJNZ R7,DEL1 DJNZR6,DEL0 RET ;延时子程序结束,返回到调用处的下一句2.3.2 按键的检测单片机通过接口与外部设备进行通信,单片机遇外部设备交换信息一般采用两种方式,即查询或中断方式。由于中断方式具有CPU效率高,因此较为常用。但是,当CPU响应某一中断源的请求而进行处理时,若有优先级更高的中断源发出中断请求,则CPU要能中断正在进行的中断服务程序,保留这个程序的断点和现场,响应高级中断。在高级中断处理完以后,在继续执行被中断的中断服务程序。这个过程称为中断的嵌套。当有多个中断产生时,就要对这些中断进行管理,中断管理程序应具有实现中断机返回,实现优先级排队,实现中断嵌套。相比之下,查询方式有其简单易用的特点,具有实时性,且不用设置各种状态字,避免了中断的多级嵌套,及多中断的内部及外部扩展,使程序得到了优化。因此我们选用查询方式2。2.4 独立式按键的软件结构在此次按键设计中,采用查询方式判断是否有键按下。当判断出是哪个键按下之后,就执行这个按键的功能程序。在本次的设计中,我们采用独立式按键。独立式按键是指直接用一根I/O口线构成单个按键电路。每个独立式按键占有一根I/O口线,每根I/O口线上的按键的工作状态不会影响其他I/O口线的工作状态。设置四个按键,分别接单片机的P2.0、P2.1、P2.2、和P2.3口。按键一(接P2.0口),用来实现停止时间和开光标。按键二(接P2.1口),它的功能用来实现光标右移;按键三(接P2.2口)的功能是光标位的数值加”1”;按键四(接P2.3口)的功能是去光标同时调用写DS1302程序,将刚才所设置的时间写进时钟芯片。值的注意的一点是,消除抖动和判断按键是否释放都是非常有必要的。在本设计中,采用软件消除抖动,调用12ms延时子程序。此部分程序设计也有不足之处:时十位不能大于;时各位不能大于;分十位不能大于,这些在程序里面都没有加判断,所以当调整时间的时候我们应该人为的使这几位不超过他们的范围。键盘子程序如下所示:KEY: PUSH PSW CLR RS0 CLR RS1 LCALL KS ;调用判断有无键按下子程序 JNZ K11 POP PSW ;有键按下时,转消抖延时 RET ;无键按下返回K11:LCALL DELAY ; 调用12ms子程序 LCALL KS ;查有无键按下,若有则真有键按下 JB ACC.0,K0 ;检测0号键是否按下,停止,开光标 JB ACC.1,K1 ;光标移位 JB ACC.2,K2 ;加一键 JB ACC.3,K3 ;确认键,关光标 LJMP MAIN1 K0: LCALL KS JNZ K0 LCALL DELAY LCALL KS JNZ K0 SETB F0 MOV COM,#80H LCALL PR1 MOV COM,#0EH LCALL PR1 MOV R0,#80H AJMP MAIN1K1: LCALL KS JNZ K1 LCALL DELAY LCALL KS JNZ K1 MOV COM,#14H;开光标 LCALL PR1 INC R0 CJNE R0,#90H ,KY1 MOV R0,#0C0H MOV COM,R0 LCALL PR1 KY1: CJNE R0,#0D0H,MAIN2 MOV R0, #80H MOV COM, #80H LCALL PR1 LJMP MAIN1K3: LCALL KS JNZ K3 LCALL DELAY LCALL KS JNZ K3 CLR F0 MOV COM,#0CH LCALL PR1 ACALL WT1302 LJMP MAIN1K2: LCALL KS JNZ K2 LCALL DELAY LCALL KS JNZ K2 MOV COM,R0 LCALL PR1 LCALL PR3 ;调用读液晶子程序 MOV A,DAT CJNE A,#39H,K20 ;判断是否到 MOV A,#30H LJMP K21K20: INC AK21: ANL A,#0FH MOV B,R0 ANL B,#0FH ORL B,#40H MOV R1,B ANL A,#0FH MOV R1,A MOV COM,R0 LCALL PR1 ADD A,#30H MOV DAT,A LCALL PR2 MOV COM,#10H LCALL PR1 LJMP MAIN1KS: MOV A,#0FFH ; 判断是否有键按下子程序 MOV P2,A MOV A,P2 XRL A,#0FFH RETDELAY: MOV R6,#18H ;延时子程序DEL0: MOV R4,#0FFHDEL1: DJNZ R4,DEL1 DJNZ R6,DEL0 RET3显示器部分设计显示部分是此次设计比较重要的一个部分。此次设计选择用LCD显示。LCD种类很多,液晶显示模块是一种将液晶显示器件、连接件、集成电路、PCB线路板、背光源、结构件装配在一起的组件,英文名称叫“LCD Module”,简称“LCM”,中文一般称为“液晶显示模块”。本次设计拟采用LCM1602B作为显示器件。下面我就介绍一下LCM1602B的功能特点以及其常用指令。3.1 LCM1602B的功能特点及常用指令6 LCM1602B显示内容5*7点字符点阵式,16*2行,点大小0.55*0.50,字符间距0.7;LED背光或EL背光;工作电压:5V;工作温度:-20C70C,储存温度:-30C80C;芯片封装:COB。LCM1602B的指令表如表3.1所示表3.1 LCM1602B的指令表指令RSR/WD7D6D5D4D3D2D1D0清显示000001光标返回00001*置输入模式0001I/DS显示开/关控制001DCB光标或字符移位01S/CR/L*置功能1DLNF*置字符发生存贮器地址字符发生存贮器地址(AGG)置数据存贮器地址显示数据存贮器地址(ADD)读忙标志或地址BF计数器地址(AC) 写数到CGRAM或DDRAM要写的数从CGRAM或DDRAM读数读出的数据它的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置;指令2:光标复位,光标返回到地址00H;指令3:光标和显示模式设置 I/D:光标移动方向,高电平右移,低电平左移 S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效;指令4:显示开关控制。 D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示 C:控制光标的开与关,高电平表示有光标,低电平表示无光标 B:控制光标是否闪烁,高电平闪烁,低电平不闪烁;指令5:光标或显示移位 S/C:高电平时移动显示的文字,低电平时移动光标;指令6:功能设置命令 DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示 F:低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符指令7:字符发生器RAM地址设置;指令8:DDRAM地址设置;指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙;指令10:写数据;指令11:读数据。LCM1602B的引脚功能如表3.2所示。表3.2 LCM1602B引脚功能管脚符号管脚描述1VSS地2VDD逻辑电压3VO对比度调节4RS指令、数据寄存器选择5R/W读写选择信号6E使能信号714DB0DB7数据线0715A背光正极16K背光负极液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,表3.3是LCM-1602B的内部显示地址。表3.3 LCM-1602B的内部显示地址12345678910111213141516000102030405060708090A0B0C0D0E0F第一行404142434445464748494A4B4C4D4E4F第二行比如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。3.2液晶显示模块与单片机的连接方式6本次设计采用间接控制方式,此方式将液晶显示模块LCM挂接在AT89C51的总线上,通过对数据总线的读写实现对LCD的控制。间接控制方式可分为4位总线和8位总线两种方式,4位数据传输时需传输两遍,相对比较麻烦,本设计采用间接连接方式,在此重点讨论8位总线方式。其电路图如图3.1所示。图3.1LCD1602与单片机的间接连接电路如图所示,LCD的8位数据总线与AT89C51的P1口相连,三个控制端口RS、R/W和E分别接AT89C51的P3.0、P3.1、P3.3管脚,根据程序设计的不同也可选用P3口的其它管脚。A是LCD的对比度调节端,接正电源时对比度最弱,接地时对比度最高,本电路使用10K的电位器来调整对比度,也可直接串接一个电阻到地。单片机要写入指令时RS为低电平;单片机要写入数据时RS为高电平;R/W为高电平时读取数据,R/W为低电平时写入数据。3.3 显示部分的软件设计 从时钟芯片里面读出来的数据是压缩BCD码,显示的时候应将压缩BCD码转换为非压缩的BCD码,然后送到LCD对应的单元显示出来。LCM:MOVCOM,#38H;初始化液晶程序LCALLPR1MOVCOM,#0CHLCALLPR1 RET XIANSHI: PUSH PSW CLR RS0 SETB RS1 LCALL LCM MOV R2,#10H MOV COM,#80H LCALL PR1 MOV 48H,#02H MOV 49H,#00H MOV R1,#40HLOOP1: MOV A,R1 ADD A,#30H MOV DAT,A LCALL PR2 INC R1 DJNZ R2,LOOP1 MOV R2,#10H MOV COM,#0C0H LCALL PR1 MOV DPTR,#TABLOOP2: CLR A MOVC A,A+DPTR MOV DAT,A LCALL PR2 INC DPTR DJNZ R2,LOOP2 POP PSW TAB:DB-BEIJING TIME- RET 注意,液晶识别的是ASCII码,而的ASCII码和它本身相差,我们可以给它加上H后直接送到液晶显示PR1:PUSHACC;液晶的写指令程序CLRRSRSETBRWPR11:MOVP1,#0FFHSETBEMOVA,P1CLREJBACC.7,PR11CLRRWMOVP1,COMSETBENOPNOPNOPCLRENOPNOPNOPPOPACCRETPR2: PUSHACC;液晶的写数据程序CLRRSRSETBRWPR21: MOVP1,#0FFH SETBE MOVA,P1 CLRE JBACC.7,PR21 SETBRSR CLRRW MOVP1,DAT SETBE NOP NOP NOP CLRE NOP NOP NOP POPACC RETPR3: PUSHACCCLRRSRSETBRWPR31:;读液晶程序MOVP1,#0FFH ;P1 口置位,准备读 SETBEMOVA,P1 ;读BF和AC60的值CLREJBACC.7,PR31 ;判断BF是否为一?是转SETBRSRSETBRW MOV P1,#0FFH ;读出数据 SETB E NOP NOP NOP NOP MOV DAT,P1 NOPNOPNOPCLRENOPNOPNOPPOPACCRET DEL10MS: ;延时程序 MOV R5,#10H TX1: MOV R4,#19H DJNZ R4,$ DJNZ R5,TX1 RET DEL200MS: MOV R3,#14H TX2: ACALL DEL10MS DJNZ R3,TX2 RET 4 DS1302电路及程序设计4.1时钟芯片的选择SPI(Serial Peripheral Interface串行外设接口)总线系统是一种同步串行外设接口,它可以使MCU与各种外围设备以串行方式进行通信以交换信息。SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用4条线:串行时钟线(SCK)、主机输入从机输出数据线MISO、主机输出从机输入数据线MOSI和低电平有效的从机选择线SS。由于SPI系统总线一共只需34位数据线和控制线即可实现与具有SPI总线接口功能的各种IO器件进行接口,而扩展并行总线则需要8根数据线、816位地址线、23位控制线,因此,采用SPI总线接口可以简化电路设计,节省很多常规电路中的接口器件和IO口线,提高设计的可靠性8。本次设计选用AT89C51单片机作为MCU以及支持SPI总线的DS1302时钟芯片。因为AT89C51单片机和DS1302时钟芯片并不是大家所熟悉的一种元件,所以下面我就对DS1302做一下简单的介绍。4.1.1时钟芯片的工作原理7 DS1302 是 DALLAS 公司推出的涓流充电时钟芯片。内含有一个实时时钟/日历和 31 字节静态RAM。通过简单的串行接口与单片机进行通信,实时时钟/日历电路提供秒,分,时,日,日期,月,年的信息。 每月的天 数和闰年的天数可自动调整;时钟操作可通过 AM/PM 指示决定采用 24 或 12 小时格式。 DS1302 与单片机之间能简单地采用同步串行的方式进行通信;仅需用到三个口线:1,;RES 复位;2,I/O 数据线 :3 ,SCLK串行时钟。DS1302经过一个简单的串行借口与单片机通信。实时时钟/日历提供秒、分、时、日、周、月和年等信息,对于小于31天的月,月末的日期自动进行调整,包括闰年校正的功能。时钟的运行可以采用24小时或带AM(上午)/PM(下午)的12小时格式,工作电压宽达2.55.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。(1) 引脚功能表及内部结构图DS1302的引脚及内部结构和功能如图4.1所示。 图4.1 DS1302的引脚以及内部结构(2) DS1302的控制字节说明DS1302的控制字如图1.2所示。图4.2 DS1302的控制字 控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入到DS1302中位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。(3) 复位通过把 输入驱动置高电平来启动所有的数据传送。 输入有两种功能:首先, 接通控制逻辑,允许地址命令序列送入移位寄存器;其次, 提供了终止单字节或多字节数据的传送手段。当 为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置 为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前, 必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。(4) 数据输入输出在控制指令字输入后的下一个SCLK时钟的上升沿时数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位至高位7,数据读写时序见图4.。图4.3数据读写时序 (5) DS1302的寄存器DS1302共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。其日历、时间寄存器及其控制字见表1.1。表4.1 DS1302寄存器此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类,一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为COHFDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。4.1.2 单片机的发展历史1如果将8位单片机的推出作为起点,那么单片机的发展历史大致可以分为以下几个阶段:第一阶段(19761978):单片机的探索阶段。以Intel公司的MCS-48为代表。MCS-48的推出是在工控领域的探索,参与这一探索的公司还有Motorola、Zilog等。都取得了满意的效果。这就是SCM的诞生年代,“单片机”一词即由此而来。第二阶段(19781982):单片机的完善阶段。Intel公司在MCS-48基础上推出了完善的、典型的单片机系列MCS-51。它在以下几个方面奠定了典型的通用总线型单片机体系结构。(1).完善的外部总线。MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。(2).CPU外围功能单元的集中管理模式。(3).体现工控特性的地址空间及位操作方式。(4).指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。第三阶段(19821990):8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。Intel公司推出的MCS-96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。第四阶段(1990):微控制器的全面发展阶段。随着单片机在各个领域全面、深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。4.1.3 单片机的发展趋势2目前,单片机正朝着高性能和多品种方向发展,今后单片机的发展趋势将是进一步向着CMOS化、低功耗化、低电压化、低噪声与高可靠性、大容量化、高性能化、小容量、低价格化、外围电路内装化和串行扩展技术。随着半导体集成工艺的不断发展,单片机的集成度将更高、体积将更小和功能将更强。单片机主要有如下特点:(1).有优异的性能价格比。(2).集成度高、体积小、有很高的可靠性。单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。(3).制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。单片机的逻辑控制功能及运行速度均高于同一档次的微机。(4).低功耗、低电压,便于生产便携式产品。(5).外部总线增加了I2C(Inter-Integrated Circuit)及SPI(Serial Peripheral Interface)等串行总线方式,进一步缩小了体积,简化了结构。(6).单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。4.1.4 单片机的应用2由于单片机具有显著的优点,它已成为科技领域的有力工具,人类生活的得力助手。它的应用遍及各个领域,主要表现在以下几个方面:(1).单片机在智能仪表中的应用(2).单片机在机电一体化中的应用(3).单片机在实时控制中的应用(4).单片机在分布式多机系统中的应用(5).单片机在人类生活中的应用单片机已成为计算机发展和应用的一个重要方面,另一方面,单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。从前必须由模拟电路或数字电路实现的大部分功能,现在已能通过单片机来实现了。这种用软件代替硬件的控制技术也称为微控制技术,是对传统控制技术的一次革命。A:由单片机组成控制器的结构和特点: 单片微型计算机是微型计算机发展中的一个重要分支,是把构成一台微型计算机的主要部件如中央处理器(CPU)、存储器(RAM/ROM)和各种功能I/O接口集成在一块芯片上的单芯片微型计算机(Single Chip Micro Computer),简称单片机.由于它的结构与指令功能都是按工业控制要求设计的,且近年来单片机着力扩展了各种控制功能如A/D、PWM等,因此我们更多时候称其为一个单片形态的微控制器(Single Chip Micro Controller),或直接称其为微控制器(Micro Controller)。B:用单片机组成的微机控制系统具有以下特点:(1) 受集成度限制,片内存储器容量较小,一般片内ROM小于48K字节,片内RAM小于256字节;但可在外部进行扩展,如MCS51系列单片机的片外可擦可编程只读存储器(EPROM)、静态随机存储器(SRAM)可分别扩展至64K字节。(2) 可靠性高。单片机芯片本身是按工业控制环境要求设计的,其抗工业噪声的能力优于一般通用CPU;程序指令及其常数、表格固化在ROM中不易破坏;常用信号通道均在一个芯片内,故可靠性高。(3) 易扩展。片内具有计算机正常运行所必须的部件,芯片外部有许多供扩展用的总线及并行、串行输入/输出端口,很容易构成各种规模的微机控制系统。(4) 控制功能强。为了满足工业控制要求,单片机的指令系统中有极丰富的条件分支转移指令、I/O口的逻辑操作以及位处理功能。一般来说,单片机的逻辑控制功能及运行速度均高于同一档次的微处理器。(5) 一般的单片机内无监控程序或系统管理软件,软件开发工作量大。但近年来已开始出现了片内固化有BASIC解释程序及FROTH操作系统的单片机,使单片机系统的开发提高了一个新水平。此外,单片机成本低、集成度高、控制功能多,可灵活地组装成各种智能控制装置,并能有针对性设计成专用系统,解决从简单到复杂的各种需要,实现最佳的性价比。特别是单片机与传统机械产品相结合,使原有机械产品的结构简化、控制智能化。如数控机床就是典型实例。近年来,单片机发展极快,其产量占微机产量的70%以上。目前,至少有50个系列400余种机型,性能和结构各不相同,INTEL、MOTOROLA、ZILCG等公司都有系列单片微型计算机。国内普及的几乎都是INTEL公司的产品。4.1.5 AT89C51介绍3AT89C51是美国ATMEL公司生产的低电压,高性能的CMOS8位单片机片内4Kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存储器(RAM),器件采用ATMEL公司的高密度、非易失存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。AT89C51单片机可为你提供许多高性价的应用场合,可灵活的应用于各种控制领域。内部结构图如图4.4所示。图4.4 AT89C51内部结构单片机AT89C51主要性能参数:与MCS-51产品指令系统的全兼容; 4k字节可重擦写Flash闪速存储器;1000次可擦写周期;全静态操作:0Hz-24MHz;三级加密程序存储器;1288字节内部RAM ;32个可编程I/O口线;2个16位定时/计数器;6个中断源;可编程串行UART通道;低功耗空闲和掉电模式 ;1.AT89C51功能特性描述:AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件的可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,窜行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但震荡器停止工作并禁止所有部件工作直到下一个硬件复位。(1) AT89C51引脚功能说明:图4.5 AT89C51芯片Vcc:电源电压GND:地P0口:PO口是一组8位漏极开路行双向I/O口,也既地址/数据总线复用口。可作为输出口使用时,每位可吸收电流的方式驱动8个TTL逻辑电路,对端口写“1”可作为高阻抗输入输入端用。在访问外部数据存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。在Flash编程时,PO口接收指令字节,而在程序校验时,输出指令字节,校验时,要求接上拉电阻。P1口:P1口是一个内部上拉电阻的8位双向I/O口,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输出口。作输入口时,因为内部存在上拉电阻,某个引脚被外部信号拉低时输出一个电流(I)。Flash编程和程序校验期间,P1口接收8位地址。P2口:P2口是一个带有内部上拉电阻的8位双向I/O口,P2的输入缓冲极可以驱动(输入或输出电流)4个TTL逻辑门电路。对端口“1”,通过内部的上拉电阻把端口拉到高电平,此时和作为输出口,作输出口时,因为存在内部上拉电阻,某个引脚被外部信号拉低时会输出一个电流。在访问外部存储器或1位地址的外部数据存储器(例如执行MOVXDPTR指令)时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器(如执行MOVXRI指令)时,P2口线的内容(也既特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。Flash编程或校验时,P2亦接收高地址和其他控制信号。P3口:P3口是一组带有内部上拉电阻的8位双向I/O口,P1的输入缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输出端口。作输出端口时,被外部拉低的P3口将用上拉电阻输出电流。P3口除可作为一般的I/O口线外,更重要的用途是它的第二功能,如表4.2所示:表4.2 AT89C51端口P3口还接收一些用于Flas 闪速存储器编程和程序校验的控制信号。ALE/当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节,即使不访问外部字节,ALE仍时钟震荡频率的1/6输出固定的正脉冲信号,因此它可对外输出时钟脉冲或用于定时目的。要注意的是:每次访问外部存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还要输入编程脉冲()。如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令可激活。此外,此引脚会被微弱拉高,单片机执行外部程序时,应该置ALE无效。:程序存入允许()输出的是外部程序存储器的读选通信号,当AT89C51由外部程序取指令(或数据)时,每个机器周期两次有效,既输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的信号不出现。EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为0000H-FFFFH),EA端必须保持低电平(接地)。要注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V的编程电压Vpp。XTAL1:震荡器反向放大器及内部时钟的输入端。XAAL2:震荡器反向放大器的输出端。时钟震荡器:AT89C51中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英或陶瓷震荡器一起构成自激震荡器震荡电路4.6如图。外接石英晶体(或陶瓷震荡器)及电容C1、C2接在放大器的震荡回路中构成并联震荡电路。对外接电容C1、C2虽然没有非常严格的要求,但电容的大小会轻微影响震荡频率的高低、震荡工作的稳定性、起震的难易程序及温度稳定性,如果使用石英晶体,推荐使用30pF10pF,而如果使用陶瓷谐振器建议选择40pF10pF。用户还可以采用外部时钟,采用外部时钟如图4.7所示。在这种情况下,外部时钟脉冲接到XTAL1端,既内部时钟发生器的输入端,XTAL2悬空。 图4.6 内部震荡电路 图4.7 外部震荡电路由于外部时钟信号是通过一个2分频的触发器后作为内部时钟信号的所以外部时钟的占空比没有特殊要求,但最小高电平持续的时间和最大低电平持续的时间应符合产品技术条件的要求。Flash闪速存储器的编程:AT89C51单片机内部有4K字节的Flash PEROM,这个Flash存储存储阵列出厂时已处于擦除状态(既所有存储单元的内容均为FFH),用户随时可对其进行编程。程序接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式,适用与用户在线编程系统。而高电平模式可与通用EPROM编程程序兼容。编程方法:编程前需设置好地址、数据及控制信号,编程单元的地址就、加在P1口和P2口的P2.0P2.3(11位地址范围为0000H0FFFH),数据从P0口输入,引脚P2.6、P2.7和P3.6、P3.7的电平设置见表。PSEN为低电平,RST保持高电平,EA/Vp 引脚是编程电源的输入端,按要求加上编程电压,ALE/PROG引脚输入编程脉冲(负脉冲)编程时可采用420MHz的时钟震荡器AT89C51的编程方法如下:1.0 在地址线上加上要编程单元的地址信号。1.在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026辽宁鞍山市铁东区教育局面向毕业生校园招聘13人(第二批)考试笔试备考题库及答案解析
- 2025昆明市寻甸县总工会城镇公益性岗位招聘工作人员(1人)笔试考试备考试题及答案解析
- 2025江西南昌大学校内外招聘16人21期笔试考试参考题库及答案解析
- 2025年合肥安徽潜晟城市运营管理有限公司公开招聘工作人员考试笔试备考试题及答案解析
- 2025浙江宁波市农业农村局下属事业单位招聘编外工作人员1人考试笔试备考题库及答案解析
- 2025年安庆宿松县中医院公开招聘劳务派遣工作人员3人考试笔试备考试题及答案解析
- 2026山东威海市青少年宫招聘事业单位人员2人笔试考试参考题库及答案解析
- 2025年福建莆田市第一医院劳动服务有限公司招聘工勤4人笔试考试备考题库及答案解析
- 2025福建华南女子职业学院冬季人才招聘12人考试笔试参考题库及答案解析
- 电动轮自卸车机械装配工安全意识强化能力考核试卷含答案
- 2025贵州省人才培训中心有限公司招聘2人笔试考试参考试题及答案解析
- 2025下半年广东珠海市纪委监委招聘所属事业单位工作人员12人笔试考试参考试题及答案解析
- 2025四川雅安汉源县财政局汉源县属国有企业招聘工作人员20人备考题库附答案详解(培优b卷)
- 2026年焊工(手工电弧焊操作)考试题及答案
- 2025年登高证练习题及答案
- 汽车轮胎维护课件
- 2025临床医学检验《临床实验室质量管理》高级职称试题及答案
- 2025贵州省专业技术人员继续教育公需科目考试题库(2025公需课课程)
- 简明停车场租赁协议
- 统编版六年级道德与法治上册《期末测试卷》测试题教学课件PPT小学公开课
- 热拌沥青混合料路面施工机械配置计算(含表格)
评论
0/150
提交评论