表 3-2 X5045指令集
指令名 WREN WRDI RDSR WRSR READ WRITE 指令格式 0000 0110 0000 0100 0000 0101 0000 0001 0000 A8011 0000 A8010 操作 设置写使能锁存器允许写 复位写使能锁存器禁止写 读状态寄存器 写状态寄存器 从所选地址开始的存贮器中读出数据 把数据写入所选地址开始的存贮器中 3.3 74LS374芯片和74LS145芯片介绍
1、74LS374锁存驱动芯片引脚说明:
D0~D7 数据输入端;
OE 三态允许控制端(低电平有效); CP 时钟输入端; O0~O7 输出端。
74LS374的输出端O0~O7可直接与总线相连。当三态允许控制端 OE 为低电平时,O0~O7为正常逻辑状态,可用来驱动负载或总线。当 OE 为高电平时,O0~O7呈高阻态,即不驱动总线,也不为总线的负载,但锁存器内部的逻辑操作不受影响。当时钟端 CP 脉冲上升沿的作用下,端口O随数据端口D而变。由于CP端施密特触发器的输入滞后作用,使交流和直流噪声抗扰度被改善为400mV。74LS374的引脚图如3-2所示。
图3-2 74LS374的引脚图
2、74LS145芯片的特点
74LS145是4-10位译码器/驱动器,通过接受BCD码,转译成适当的输出可以来驱动10位显像管。所以可以说是译码器,又是驱动器。它具有的特点有:
1)低功耗,典型的为35mW; 2)工作电流可达80mA;
3)具有完全解码输入逻辑的功能;
17
4)所有输出无关于无效的BCD输入条件。
图3-3 74LS145的引脚图
3.4 主控电路硬件设计
单片机输出的开关信号多为TTL(CMOS)电平,这种信号一般不能直接驱动外部设备开启或关闭。故采用74LS07芯片来将低压直流电平信号放大,再来驱动外部设备。同时,测控动作通常适于强电系统联系在一起,如本系统中的测试大功率的电动机、接触器等,这些在开关过程中会产生很强的电磁干扰信号,如不加以隔离,可能会使保护器的保护作用失效,或是造成误动作,从而影响正常的生产。因此,在此控制端接口电路设计处理中,一要放大,二要隔离。放大功能的实现很容易,采用74LS07芯片即可。
控制器件采用继电器,继电器本身有一定的隔离作用,但是为了使系统更好的免受外部的信号干扰,在此还是采用了光电隔离器进行隔离。电路如下图3-4所示。
当开关量输出为高电平是时,经放大驱动器74LS07是发光二极管发光,从而使光敏三极管导通,进而使三极管导通,因而使继电器J的线圈通电,继电器触点断开,从而使电动机电源断开,是电动机停止运行,从而达到保护刀具的作用。
图3-4 主控部分电路图
18
4 系统软件设计
程序设计是一件复杂的工作,为了把复杂的工作条理化,就要有相应的步骤和方法。其步骤可概括为以下三点:
[1] 分析系统控制要求,确定算法:对复杂的问题进行具体的分析,找出合理的计
算是方法及适当的数据结构,从而确定编写程序的步骤。这是能否编制出高质量程序的关键。
[2] 根据算法画流程图:画程序框图可以把算法和解题步骤逐步具体化,以减少出
错的可能性。
[3] 写程序:根据程序框图所表示的算法和步骤,选用适当的指令排列起来,构成
一个有机的整体,即程序。
程序数据的一种理想方法是结构化程序设计方法。结构化程序设计是对利用到的控制结构类程序做适当的限制,特别是限制转向语句(或指令)的使用,从而控制了程序的复杂性,力求程序的上、下文顺序与执行流程保持一致性,使程序易读易理解,减少逻辑错误和易于修改、调试。根据系统的控制任务,本系统的软件设计主要由主程序、初始化程序、显示子程序、数据采集子程序和延时程序等组成。 4.1 程序的总体设计
为了能够实现上述功能,经过认真的分析和整理,以及对整体功能进行细化、分配,把系统的程序划分为以下几个主要模块:
1、初始化模块: 通过该模块来对堆栈、定时器、计数器、中断和特殊功能寄存器
进行赋值,有关寄存器的清零,以及计数器/定时器的初值存放等。
2、按键操作模块: 该模块能够在系统一上电后就开始对键盘进行扫描,一旦在相
应时刻检测到有键按下,就会相应转去执行处理程序,处理完毕后能够返回主程序。
3、A/D转换模块:MAX187的A/D转换子程序。 4、显示模块 :该模块应能够把显示码进行准确显示。
5、显示码转换模块:用来实现系统内的二进制AD值转化为BCD码,BCD码再转换
成分离BCD码,分离BCD码最后转换成数码管显示码,以便送出显示,它是显示处理程序的先遣队。
除了上述功能以外,该系统还具有看门狗功能以及工作状态显示功能等。 4.2 系统主程序实现
该系统的主程序有初始化(相关寄存器清零,设置显示初值,看门狗初始化等)、A/D转换,标度变换,显示处理键盘扫描,键盘处理等程序,其流程图如图4-1所示。
19
图4-1 主程序流程图
因为仪表在进行显示时,外界的物理量经过A/D转换变为数字量再经过标度变换、显示处理,显示出来,因此显示程序应该写在中断里面,这里系统设定的是每隔1毫秒中断一次,即每隔一毫秒送一次显示。 4.3 子程序设计
本设计的系统子程序主要包括电子狗设计、A/D转换启动程序设计、键盘程序设计、显示程序设计、以及中断程序设计等。 4.3.1 系统看门狗介绍
X5045芯片是集上电复位、电压监控、看门狗定时以及EEPROM数据存储四种功能一起的多用途芯片。
1、读时序
(1) 把CS拉低以选择芯片; (2) 发送8位的读(READ)指令; (3) 送8位的字节地址;
(4) 将所选定地址的存储器中的数据移到期S0线上。
继续提供时钟脉冲可连续读出接下的地址空间中的数据。每移出一个字节数据后,字节地址自动增到下一个较高地址、达到最高地址时,地址计数器翻转至00H,无限循环下去直到把CS置为高电平,可以终止操作。读时序图如图4-2所示。
20
图4-2 读数据时序图
2、写时序
在写时序之前,必须先发出WREN 指令使“写使能”锁存器置位。具体置位“写使能”锁存器操作为:
(1) CS先被拉到低电平; (2) 由时钟同步送入WREN 指令; (3) 将CS变为高电平。 写数据到E2PROM 操作为: (1) 拉低CS并保持在低电平; (2) 发送写指令(WRITE);
(3) 写数据可以连续写多达4个字节的数据。 3、X5045看门狗与单片机接口读、写程序如下:
EPST: CLR
EA ;X25045初始化
CALL RDSR JB ACC.0,EPST ANL A,#3CH CJNE SETB RET
EW: CALL WREN ;上电复位功能实现
CLR CS MOV
A,#1
CALL WRZ
21
A,#20H,EW EA
CLR WP