1 EM78P447S的主要特点
EM78系列单片机是台湾义隆电子股份有限公司采用CMOS工艺制造的8位高性价比单片机。该系列单片机一般都内置看门狗计数器(WDT)、RAM、ROM、可编程定时/计数器、预分频器以及5层堆栈。该系列器件的绝大部分指令只需两个振荡周期,同时具有内外部中断、低电压检测复位、可编程I/0、内部上拉电阻和集电极开路输出、SLEEP方式等功能。另外,EM78P447S单片机还具有编程简单、速度快、功耗小、成本低等优点,能广泛应用于玩具、家电、工业控制等方面。
EM78P447S的主要性能特点如下:
●工作电压范围:2.5-5.5V;
●允许温度范围:0-70°C;
●工作频率范围:
石英振荡型:5V时的范围为DC-20MHz,
3V时的范围为DC-8MHz;
RC振荡型:5V时的范围为DC-4MHz;
3V时的范围为DC-4MHz;
●一次可编程ROM达4K X 13bit;
●内部RAM为148 X 8bit;
●具有5层堆栈;
●内含一个可以自行规划的看门狗计时器(WDT)和一个8位预分频器;
●具有24个双向三态I/O脚;
●睡眠状态的I/O可做规划;
●有十个具有提升电阻及叫醒CPU的I/O引脚;
●有两个具有R-Option功能的I/O引脚,通过R-Option功能可在两个或两个以上应用程序中放人同一单片机时,用一个输入脚来判断选择哪一个程序。也就是说,R-option功能就是在EM78P447S的某两个I/0脚上设置可选择的下拉电阻,从而通过用户是否外接下拉电阻(一般为510kΩ)来判断该脚的状态,进而判断运行哪一个程序;
●有两个可规划为集电极开路的输出脚;
●可通过一个8位定时/计数器(TCC)来选择信号源和触发源,并可进行8位预分频;
●具有溢出中断功能;
●具有上电复位、低电平检测复位、RESET引脚输入低电平复位、WDT超时溢出复位等功能;
●绝大部分指令只需两个振荡周期;
●具有低电平睡眠模式;
●具有TCC溢出中断、外部INT引脚输入脉冲中断和执行INT指令软件中断功能;
●采用32脚DIP封装。
2 EM78P447S的引脚功能和寄存器
2.1 EM78P447S的引脚排列
图1为EM78P447S的引脚排列。其各引脚的功能如下:
TCC:外部计数输入脚;
OSCO:振荡输出脚;
VDD:正电源输入脚;
OSCI:晶振或RC振荡输入脚;
NC:空脚;
BESET:复位输入端,低电平有效;
VSS:接地脚;
INT:外部中断输入脚,下降沿输入有效;
P50-P57:双向I/O引脚;
P60-P67:双向I/O引脚,可通过软件规划成有内部提升电阻;
P70-P77:双向I/O引脚,其中P74、P75可以通过软件规划成有内部提升电阻;P76、P77通过软件可设定为集电极开路输出脚;P70、P71可当作R-Option的输入脚。
2.2 EM78P447S中的寄存器
EM78P447S内含9个操作用途寄存器。其中间接寻址寄存器R0(IAB)、定时/计数器R1(TCC)、程序计数器R2(PC)、状态寄存器R3(STATUS)、RAM选择寄存器R4(RSR)、I/O口寄存器R5(PORT5)、R6(PORT6)、R7(PORT7)等8个寄存器的地址按顺序分别为00H-07H,而中断状态寄存器R3F(1SR)的地址为3FH。
在EM78P447S的148个通用寄存器(RAM)中,包括有地址为08H-1FH的寄存器和4个地址为20H-3EH的寄存器组(4个页面地址由R4的位6、位7来决定)。
另外,EM78P447S中还有7个特殊功能寄存器。其中包括累加器A、控制寄存器CONT、输入/输出控制寄存器IOC5、IOC6、IOC7(分别控制port5,port6,port7的输入/输出模式)、WDT控制寄存器IOCE和中断屏蔽寄存器IOCF。
2.3 EM78P447S的指令简介
EM78P447S单片机共有45个单字、58条指令。这58条指令包括19条逻辑指令、11条算术运算指令、4条位元指令、4条转移指令、10条控制指令和10条跳跃指令。表1给出了这些指令字按功能的分类。
EM78P447S单片机的指令主要有以下几个特色:
●除改变程序计数器的指令需要两个指令周期外,其余指令均为单指令周期;
●寄存器的每一个位元均可由位元型指令直接进行设定、清除或测试;
●对应于IO引脚的I/O寄存器也可以当作一般寄存器进行存取。也就是说,存取一般寄存器与I/O所使用的指令完全一样。
3 在直流电机遥控系统中的应用
采用EM78P447S为主控器设计的遥控系统可实现对直流电机正转、反转和停止的遥控控制。该遥控控制系统由发射模块、接收输入模块和单片机处理输出模块三部分组成。
3.1发射模块
笔者设计的该遥控控制系统中的发射模块采用3V工作电压,其电路板上有三个乒乓键KO、K1、K2,可分别用来控制电机的正转、反转和停止操作。当需要进行发射时,采用发射专用芯片PT2248及外围放大电路把信号放大,即可进行红外发射。其硬件电路原理图如图2所示。
3.2接收输入模块
本遥控控制系统中的接收模块采用5V工作电压,且在该电路板上有一个接收器,可用以接收发射模块传送过来的信号。利用一个放大电路可将接收到的信号放大并传送到接收专用芯片PT2249A,然后再通过74LS04处理后送给单片机。可用三个发光二极管分别对应于发射模块的三个按键以显示操作。当按下某一个键时,与之对应的发光二极管发光。其硬件电路如图3所示。
3.3单片机处理输出模块
单片机处理输出模块采用5V工作电压,模块上的三个乒乓键K3、K4、K5,分别对应于发射模块上的·KO、K1、K2三个键,可用来控制电机的正转、反转和停止。这三个键可在遥控器出现问题或丢失时代替KO、K1和K2进行操作,因此非常方便实用。
单片机上的P5.0-P5.2引脚分别作为电机正转、反转和停止的信号输入端,P6.0、P6.1引脚分别作为电机正转、反转的信号输出端。要使电机停止操作,只要将无效信号送人P6.0、P6.1即可。单片机的输出信号经74LS04反向并送人ULN2003A进行放大后,即可驱动继电器以使直流电机作相应操作。
另外,还可用两个发光二极管来显示操作。这样,当电机正转或反转时,其中的一个二极管将点亮,而当按下停止按钮时,两个都不亮。其硬件电路如图4所示。
4 系统的软件设计
该设计以EM系列单片机配套的开发工具EMC为编程工具,由主程序不断循环监测乒乓键的状态。当某个按键被按下松开后,其对应的电机被启动,然后系统再返回检测按键的状态,以确定是否保持该运行状态或转入其它状态。
应当注意:当机械开关按下或放开的瞬间,按键会因机械弹性的缘故在接点上产生弹动。这个快速跳动CPU会完全检测到,因而会出现使用者只按了一次开关,而被CPU认为是按下很多次的错误情况。为了避免这种误判现象,设计时可用延时来处理这种弹跳问题。当软件在检测到开关被按下后,先延时一段时间再检测一次,以避开弹跳的时间,这个弹跳的产生通常在开关被按下后开始的20ms-50ms之间发生,因此只要避开这段时间,而不要读输入脚的信号即可。其软件流程如图5所示。
参考文献
1.邓锦城.EM78447入门与实作
2.吴建生.EM78154/x56/x57系列8位单片机原理及应用.福州新源电子技术研究所,1998,3