资源描述
第4章 单片机系统的设计第4章 单片机系统的设计4.1 引言 用V/F变换器作A/D转换时,通常由一些硬件电路如振荡器、二分频器、计数器和门电路组成,而由计数器计得的计数值即A/D转换结果再通过接口电路送入微计算机进行处理,较为复杂和不便,或者采用F/BCD变换电路将V/F变换器输出的频率信号变为BCD码再通过接口电路送入微计算机,也较为复杂,而且还要对BCD码进行变换。这些方法成本都较高。本设计介绍一种以单片机直接与V/F变换器接口进行A/D转换的方法,不须额外的硬件电路,完全利用单片机内部的硬件资源,简单方便,成本最低,大大地提高了V/F变换器作为A/D转换电路的可行性。当前,单片机特别是Intel公司的MCS-51系列单片机已在智能仪器仪表和过程控制等方面得到广泛应用,大有取代Z80之势,因此A/D转换电路与单片机的接口方法也是人们所关注的。下面将主要介绍MCS-51系列的单片机8031为主控器件的硬件电路。4.2 主控器Intel 8031简介图4-1 8031引脚图Fig.4-1 8031 cite-feet figure根据应用系统功能要求,考虑低成本、小体积等因素,本设计采用Intel 8031单片微计算机。Intel 8031是MCS-51系列单片机目前使用最多的一种基本产品,在它的内部包括一个8位的CPU,128个字节的RAM,21个特殊功能寄存器(SFR),4个8位并行I/O口,1个全双工的串行口,2个16位的定时器、计数器。但Intel 8031片内无程序存储器,因此,必须外扩EOPROM芯片存放用户程序。Intel 8031的引脚配置如图4-1所示,40条引脚按功能来分,可分为三部分。4.2.1 Intel 8031的引脚4.2.1.1 电源及时钟引脚 包括电源引脚VCC、VSS,时钟引脚XTAL1、XTAL2。电源引脚接入单片机的工作电源。VCC(40脚):接5 V电源;VSS(20脚):接地。时钟引脚外接晶体时与片内的反相放大器构成一个振荡器,它提供单片机的是时钟控制信号。时钟引脚也可外接晶体振荡器。XTAL1(19脚):接外部晶体的一个引脚。在单片机内部,它是一个反相放大器的输入端。当采用外接晶体振荡器时,此引脚外接地。XTAL2(18脚):接外部晶体的另一端在单片机内部接至反相放大器的输出端。若采用外部振荡器时,该引脚接收振荡器的信号,即把此信号直接接到内部时钟发生器的输入端。4.2.1.2 控制引脚 包括RESET(即RST)、ALE、,此类引脚提供控制信号,有些引脚具有复杂功能。(1)RST/VPD(9脚) 当振荡器运行时,在此引脚加上两个机器周期的高电平将使单片机复位(RST)。复位后应使此引脚电平为0.5 V的低电平,以保证单片机正常工作。掉电期间,此引脚可接上备用电源(VPD),以保值内部RAM中的数据不流失。当VCC下降到低于规定值,而VPD在其规定的电压范围内(50.5V)时,VPD就向内部RAM提供备用电源。(2)ALE/(30脚) 当单片机访问外部存储器时,ALE(地址锁促允许)输出脉冲的下降沿用于锁存16位地址的低8位。即使不访问外部存储器,ALE端有周期性正脉冲输出,其频率为振荡器频率的1/6。但是,每当访问外部数据存储器时,在两个机器周期中ALE只出现一次,即丢失一个ALE脉冲。ALE端可以驱动8个TTL负载。对于片内具有EPROM型的单片机8751,在EPROM编程期间,此引脚用于输入编程脉冲。(3)(29脚) 此输出为单片内访问外部程序存储器的读选通信号。在从外部程序存储器取指令(或常数)期间,每个机器周期信号将不出现。同样可以驱动8个TTL负载.(4) /VPP(31脚) 当端保持高电平时,单片机访问内部程序存储器,但在PC(程序计数器)值超过OFFFH时,将自动转向执行外部程序存储器内的程序。当端保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。对8031来说,因其无内部程序存储器,所以该脚必须接地,这样只能选择外部程序存储器。4.2.1.3 输入/输出引脚 输入/输出(I/O)口引脚包括P0口、P1口、P2口和P3口。(1)P0口(P0.0P0.7) 双向8位三态I/O口,此口为地址总线低8位及数据总线分时复用口,可带8个LS TTL负载。(2)P1口(P1.0P1.7) 8位准双向I/O口(作为输入时,口锁存器置1),可带4个LS TTL负载。(3)P2口(P2.0P2.7) 8位准双向I/O口,与地址总线高8位复用,可驱动4个LS TTL负载。(4)P3口(P3.0P3.7) 8位准双向I/O口,为双功能复用口,可带4个LS TTL负载。4.2.2 Intel 8031的内部结构单片机8031内部总体结构如图4-2所示。按功能划分,它由8个部分组成,即微处理器(CPU)、程序存储器(ROM/EPROM)、特殊功能寄存器(SFR)、I/O口、(P0口、P1口、P2口、P3口)、串行口、定时器/计数器及中断系统,它们是通过片内单一总线连接起来的。由于本设计选用的单片机为8031,所以它的片内无程序存储器。考虑到本设计的需要下面仅对8031的时钟和复位电路、存储器的扩展作详细的介绍。图4-2 8031单片机内部总体结构Fig.4-2 Collectivity structure of SCM 80314.2.3 Intel 8031的时钟和复位电路(1)8031的时钟可以由内部方式或外部方式产生。内部方式的时钟电路如图4-3(a)所示,利用8031内部的振荡电路,并在XTAL1和XTAL2两引脚间外接晶体以及电容CX1和CX2可以在20100 pF之间选择,电容的大小对振荡频率有微小影响,可起频率微调作用。外部方式的时钟电路如图4-3(b)所示,XTAL1接地,XTAL2接外部振荡器。外部振荡器的振荡信号应为低于12 MHz的方波信号。为保证XTAL1的电平为TTL逻辑,故外接一个4.710 k的上拉电阻。(a) (b) 图4-3 8031时钟电路 Fig.4-3 Clock circuit of SCM 8031(a)内部方式时钟电路;(b)外部方式时钟电路 (a) Inside mode clock circuit;(b) Exterior mode clock circuit (2)8031的复位方式通常有上电自动复位和按钮复位两种,上电复位电路原理如图4-4(a)所示,而图4-4(b)为兼有上电复位和按钮复位的复位电路。图4-4 复位电路Fig.4-4 Replacement circuit上电复位的工作原理是:通电瞬间,RC电路充电,RST端出现正脉冲,只要RST端保持10 ms以上的高电平,就能使单片机有效复位。当振荡频率选用6 MHz时,C取22 F,R取1 K。在需要人工复位大的情况下,按动按钮,RST端出现高电平,便能可靠的实现复位。此时RS取200 ,RK取1 K。在实际的应用系统中,若有外部扩展的I/O接口电路也需要初始复位,如果它们的复位端与8031的复位端相连,复位电路中的R、C参数要受到影响,此时需要重新调整R、C参数以保证可靠的复位。如果8031的复位与外部I/O口的复位不要求同步,外围I/O接口的复位端可以不和8031的复位端相连,外围I/O接口电路可采用独立的上电复位电路。4.3 Intel 8031存储器的扩展8031单片机的程序存储器空间,数据存储器空间是相互独立的。8031内部无程序存储器,外部程序存储空间最大可扩展至64 KB。外部数据存储器(简称外部RAM)的地址空间最大也可扩至64 KB。由于8031的数据存储器和I/O地址空间是统一编址的,在64 KB的外部RAM空间内,可划出一定的区间作为外部扩展接口的地址空间。程序存储器的扩展:由于选用的单片机Intel 8031片内无程序存储器,所以必须接在单片机Intel 8031的外部扩展一片程序存储器作为程序的存储单元。在本设计中,选用EPROM作为单片机Intel 8031的外部扩展程序存储器。EPROM是可擦除、可编程只读存储器,由独立的编程器进行编程(烧程序)。EPROM可重新改写程序,但通常要把EPROM芯片从系统中折下来,放到紫外线下照射才能擦除,然后才能重写。常用的EPROM程序存储器的芯片有:2716( 2 K8)、2732(4 K8)、2764(8 K8)、27128(16 K8)、27256(32 K8)、27512(64 K8)。图4-5和表4-1给出了2716芯片的端子图和常见的EPROM芯片的主要技术指标。图4-5 芯片2716的引脚图Fig.4-5 Cite-feet of 2713 CMOS chip表4-1 常见的EPROM芯片的主要技术指标Table4-1 Mostly technique guideline of familiar chip EPROM型号271627322764271282725627512容量(字节)2K4K8K16K32K64K端子数242428282828读出时间/ns350450200200200200170最大工作电流/mA10010075100100125最大维持电流/mA353535404040EPROM的读出时间按型号而定,一般在100-300 ns间,表中列出的为典型值。图4-5中涉及的端子符号的意义如下:(1)A0Ai 地址输入线,=1011;(2)Q0Q7 三态数据总线,读或编程校验时为数据输出线,编程时为数据输入线。维持或编程禁止时呈高阻态。(3) 选片信号输入线,“0”(即TTL低电平)有效。(4)PGM 编程脉冲输入线。(5) 读选通信号输入线,“0”有效。(6)VPP 编程电源输入线,VPP值因芯片型号和制造厂商而异。(7)VCC 电源输入线,VCC一般为+5 V。(8)GND 线路地。程序存储器的扩展时,除必须有EPROM芯片,还必须有锁存器芯片。常见的锁存器芯片有三态缓冲输出的入口锁存器74LS373和带清除端的入口锁存器74LS373及74LS373的功能表4-2。表4-2 74LS373的功能表Table4-2 Function table of 74LS373G功能01直通(i=i)00保持(i保持不便)1输出高阻图4-6 锁存器74LS373的引脚图Fig.4-6 Cite-feet 74LS373 flip-latch如图4-6所示为74LS373的外部引脚结构。当为低电平时,芯片处于导通状态。G称为数据输入线,当为低电平时,如果G输入端为高电平,锁存器输出端(Q1Q8)和输入端(D1D8)状态相同;如果G端从高电平返回到低电平(下降沿),输入端(D1D8)的数据锁入Q1Q8的8位锁存器中。74LS373的锁存控制端G可直接与单片机的锁存控制信号端ALE相连,在ALE下降沿进行地址锁存。本设计选用2 KB EPROM 2716作为单片机Intel 8031的外部扩展程序存储器,它与单片机的连接图,如图4-7所示。图4-7 EPROM 2716与单片机8031的连接图 Fig.4-7 Connecting figure of EPROM2716 and SCM 8031数据存储器的扩展:单片机8031的片内包含有128个字节的RAM,CPU对内部RAM有丰富的操作指令。在实际应用中,仅靠片内RAM往往不够,必须扩展外部数据存储器。常用的数据存储器有静态RAM(SRAM)和动态RAM(DRAM)两类。DRAM一般用于存储容量较大的系统中,在使用DRAM时,需解决两个特殊问题:一是因为DRAM芯片容量较大,而芯片引脚有限,地址空间内译电路往往采用矩阵结构,而且行地址线和列地址线共用一组地址引脚,分别通过行址选通和列址选通信号按照时序分时选通故要增加相应的控制逻辑;二是靠寄生电容存储电荷表示信息,而电容都有泄露电流,所以必须定期按原来存储的信息不断给其充电(称为刷新),因而还必须增加一个刷新控制逻辑。DRAM芯片具有容量大、功率低、价格便宜等优点,但它也有一个致命的弱点,即DRAM极易受干扰,它对外界环境、工艺结构、控制逻辑和电源质量等的要求都很高。因此,在应用中应避免使用DRAM,在本系统的设计中,采用的是静态数据存储器SRAM。数据存储器与程序存储器的地址完全重叠,两者的地址总线和数据总线可完全并联使用。但数据存储器只能使用、控制线而不使用线来完成数据读/写操作。单片机系统中常用的SMAR芯片的型号典型的有6116( 2 K8)、6264(8 K8)、62128(16 K8)、62256(32 K8)。它们都是单一5 V电源供电,双列直插封装,6116为24脚,6264、62128、62256为28脚。与DRAM相比,SRAM无需考虑保持数据而设置的刷新电路,故扩展电路较简单,但由于SRAM是通过有源电路来保持存储器中的数据,因此功耗较大,价格也较高。图4-8所示为SRAM芯片6116的引脚配置,这些引脚功能描述如下:(1) A0Ai 地址输入线,=10;(2)Q0Q7 双向三态数据总线。(3) 选片信号输入线,低电平有效。(4) 写选通信号输入线,低电平有效。(5) 读选通信号输入线,低电平有效。(6) 片选信号输入线,低电平有效。(7)VCC 工作电源+5 V。(8)GND 线路地。图4-8 SRAM芯片6116的引脚图Fig.4-8 Cite-feet of SRAM chip 6116本设计选用2 KB RAM 6116作为单片机8031的外部扩展数据存储器 ,它与单片机的连接图,如图4-9所示。图4-9 SRAM 6116与单片机的连接图Fig.4-9 Connecting figure of SRAM 6116 and SCM 80314.4 Intel 8031与V/F转换器AD654的接口电路4.4.1 硬件电路连接V/F转换器AD654与Intel 8031的硬件接口电路非常简单,只要把V/F变换器输出的频率信号直接送到单片机8031的定时器1的计数输入端T1即可。其设计思想为从传感器来的mV级电压信号经过放大器放大到010 V的电压后加到单片机8031定时器1的计数输入端T1上。在单片机内部由定时器0作计数定时,由定时器1作输入脉冲计数。因为定时器0在工作方式1时为16位定时器,所以最大的定时时间为:max=2161/(/12)=21612/ (4-1)其中为单片机晶体振荡器的振荡频率,如12 MHz,则max=21612/12106=65.636 mV。 (4-2)如要求的定时时间超过这一数值,定时器产生的溢出中断,可用单片机内部RAM的存储单元作软件计数,则可延长定时时间。单片机8031的定时器1作计数器用时,可计数的外部脉冲最高频率为单片机晶体振荡频率的1/24,即:max=/24=12MHz/24=500 kHz, (4-3)等于AD654的最高允许工作频率。故单片机8031的内部定时器T0和T1满足对定时和计数的要求。4.4.2 控制程序选定定时器/计数器T0为定时状态,方式为1,时间10 ms,T1置计数状态,方式为1,时钟频率为6 MHz。计数时间常数:机器周期=12/晶振频率=12/6106=2 s,设置初始为X(216-X)210-6=1010-3 (4-4)X=60536 转换成16进制为0EB78H即:TH0=0EB,TL0=78HV/F转换程序编制:定时器T0置中断方式,每中断10次采样一次,V/F转换主程序框图如图4-10所示。图4-10 V/F转换主程序框图Fig.4-10 Program figure of V/F conversion程序清单如下:ORG 0000HREST:AJMP MAIN ORG 000BH AJMP IT0MAIN:MOV TMOD,#51H MOV SP, #60H MOV R0, #0AH MOV TL1, #00H MOV TH1, #00H MOV TH0, #0EBH MOV TL0, #78H SETB TR0 SETB ET0 SETB EA SETB TR1HERE:AJMP HEREIT0: MOV TH0, #0EBH MOV TL0, #78H DJNZ R0, LOOP CLR TR1 MOV R0, LOOP MOV 20H, TL1 MOV 21H, TH1 MOV TL1, #00H MOV TH1, #00H SETB TR1LOOP:RET14.5 Intel 8031与键盘/显示器接口电路图4-11 键盘/显示器与8279的接口Fig.4-11 Interfacing of fingerboard and chip 8279图4-11为单片机8031与8位LED显示器、48键盘和芯片8729的接口电路。图中键盘的行线接8729的RL0RL3,8729选用编码方式,SL0SL2经74LS138(1)译码输出接键盘的列线,SL0SL2又由74LS138(2)译码输出经驱动后,接到8位LED显示器的公共阴极。输出线OUTB03、OUTA03作为8位段选码数据输出口。BD控制74LS138(2)的译码,当位切换时,BD输出低电平,使74LS138(2)输出全为高电平。当键盘上出现有效的闭合键时,键输入数据自动地进入8279地FIFO RAM,并向8031请求中断,8031响应中断读取FIFO RAM中的输入键值。若要更新显示器输出,仅需改变8279中显示缓冲RAM中的内容。在图4-11中,8279的命令状态口地址为7FFEH,数据口地址为7FFEH,显示器的输出子程序流程图,如图4-12所示。图4-12 显示子程序流程Fig.4-12 Showing subprogram flowing figure显示子程序清单如下:DIR:MOV DPTR, #7FFFH ;输出写显示RAM命令 MOV A, #90H MOVX DPTR, A MOV R0, #70H MOV R7, #08H MOV DPTR, #7FFEHDL0: MOV A, R0 ADD A, #06H MOVC A, A+PC ;转换为段选码 MOVX DPTR, A ;写入显示RAM INC R0 DJNZ R7, DL0 RETADSEG:DB 3FH,06H,5BH,4FH,66H,6DH ; DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H,73H,3EH DB 31H,6EH,1CH,23H,40H,03H DB 18H,38H,00H4.5.1 芯片8279简介8279是Intel公司生产的可编程键盘/显示器接口芯片。利用8279可实现对键盘/显示器的自动扫描,并能识别键盘上闭合键的键号。不仅可以大大节省CPU对键盘/显示器的操作时间,从而减轻CPU的负担;而且显示稳定、编程简单、不会出现误动作。另外8279可以直接和单片机8031接口。由于这些优点,8279芯片日益被广泛采用。图4-13 8279的内部结构框图Fig.4-13 Interior frame of chip 8279图4-13为8279的内部结构图。8279主要由下列部件组成,各部件的功能如下。(1)I/0控制和数据缓冲 双向的三态数据缓冲器将内部总线和外部总线DB07相连,用于传送CPU和8279之间的数据、命令和状态信息。为片选信号,当其为低电平时,CPU才选中8279进行读/写。A0用于区分信息的特性。当A0为1时,CPU写入8279的信息为命令,CPU从8279读出的信息为8279的状态。当A0为0时,I/O信息都为数据。、是读/写选通信号。(2)控制逻辑 控制与定时寄存器用于存储键盘及显示器的工作方式,锁存操作命令,通过译码产生相应的控制信号,使8279的各个部件完成一定的控制功能。定时控制含有一些计数器,其中有一个可编程的5位计数器,对外部输入时钟信号进行分频,产生100 kHz的内部定时信号。外部输入时钟信号的周期不小于500 ns。(3)扫描计数器 扫描计数器由两种输出方式:一种为外部译码方式(也称编码方式),计数器以二进制方式计数,4位计数状态从扫描线SL0SL3输出,经外部译码器译码出16位扫描线;另一种为内部译码方式(也称译码方式),即扫描计数器的低二位经内部译码器后从SL0SL3输出。(4)键输入控制 这个部件完成对键盘的自动扫描,锁存RL0RL7的键入信息,搜索闭合键,去除键的抖动,并将键输入数据写入内部先进现出(FIFO)的存储器RAM。(5)FIFO RAM和显示缓冲RAM 8279具有8个字节的先进先出的键入缓冲RAM单元,并提供16个字节的显示缓冲RAM。CPU将段选码写入显示缓冲RAM后,8279自动对显示器扫描,将其内部显示缓冲RAM中的数据在显示器显示出来。(6)有关控制线 IRQ位中断请求输出线,高电平有效。当FIFO RAM缓冲器中存有键盘上闭合键的编码时,IRQ线升高,向CPU请求中断;当CPU将该缓冲器中的键输入数据全部读出时,IRQ下降为低电平。SHIFT、CNTL/STB为控制键输入线,由内部拉高电阻拉成高电平,也可由外部控制按键拉成低电平。RL0RL7为反馈输入线,作为键输入线,由内部拉高电阻拉成高电平,也可由键盘上按键拉成低电平。SL0SL3为扫描输出线,用于对键盘/显示器扫描。OUTB03、OUTA03为显示段选码数据输出线,可分别作为两个半字节输出,也可作为8位段选码数据输出口,此时OUTB0为最低位,OUTA3为最高位。为消隐输出线,低电平有效。当显示器切换时或使用消隐命令时,将显示消隐。RESET为复位输入线,高电平有效。当RESET输入端出现高电平时,8279被初始复位。4.6 “看门狗”技术当程序飞到一个临时构成的死循环中或PC指针落到在全地址区时,冗余指令和软件陷阱对此无能为力,这时系统将完全瘫痪。如果操作者在场,就可以按下人工复位按钮,强制系统复位。但操作者不能一直监视着系统,即使监视系统,也往往是在引起不良后果之后才进行人工复位。看门狗能使CPU从死循环和弹飞状态中进入正常的程序流程。本系统采用可编程的具有看门狗功能的X25024。4.6.1 芯片X25045简介X25045是一种可编程看门狗监控EEPROM。它把三种常用的功能:看门狗定时器、电压监控和EEPROM组合在单个封装之内。这种组合降低了系统成本并减小了电路板的面积。看门狗定时器对微控制器提供了独立的保护系统。当系统故障时,在选定的超时时间后,X25045的VCC检测电路,可以保护系统免受低电压的影响。当VCC降到最小VCC转换点以下时,系统复位。复位一直到VCC返回规定值且稳定为止。X25045的存储器是CMOS的4 K位EEPROM。X25045的引脚排列见图4-14。图4-14 X25045的引脚图 Fig.4-14 Cite-feet figure of chip X25045引脚说明如下:SO-串行输出;SI-串行输入;SCK-串行时钟输入;WP-写保护输入;VSS-地;VCC-电源电压;RESET-复位输出;CS-片选输入端。图4-15 X25045与8031的接口电路Fig.4-15 Interfacing circuit of chip X25045 and 80314.7 小结在本章的设计中,我们采用MCS-51系列单片机8031为核心,构成了一个单片机应用系统。在此系统中,我们采取单片机直接与V/F变换器相连接来完成本设计的A/D转换功能。49
展开阅读全文