基于单片机的煤车称重系统-软件设计 下载本文

触发器或者低级优先触发器置1,以便封死相同等级的中断请求,然后由硬件系统调用把当前程序计数器PC的内容压入到堆槽保护。并且把相应的中断处理程序入口地址装入程序计数器PC,使程序转移到这个中断优先级处理程序入口处。MSC-51单片机的中断处理程序入口是固定的,见下表: 序号 1 2 3 4 5 中断源 外部事件中断0 入口地址 0003H 定时/计数器T0溢出中断 000BH 外部事件1 0013H 定时/计数器T1溢出中断 001BH 串行口接收和发送中断 0023H 中断处理程序是专门为外部设备或其他内部中断源处理而设计的程序段,其结尾必须是中断返回指令RETI。RETI是中断处理结束的标识,它告诉了我们在这个中断的处理过程已经结束了,然后从堆槽中取出断点地址送给程序计数器PC,使程序返回到断点处继续向下执行。

MCS-51单片机CPU的中断响应过程如图描述。

中断处理 保护现场 开始

图4.9中断流程图

RETI 恢复现场

4.5 智能煤车称重系统的定时器/计数器

定时器和计数器是在电气控制设计中经常碰到的问题,在控制系统中常常需要实时时钟,以实现定时或延时的控制,需要计数器实现对外部事件的计数。它们是计算机系统必不可少的组成部分,当然也是这次毕业设计——智能煤车称重必不可少的部分。在计算机中,通常计数器和定时器被设计成一个部件——计数器,当计数脉冲信号一定时,作为定时器定时的时间为计数的次数与计数脉冲信号的周期的乘积。作为计数器时,记录计数信号的状态变化次数。

MSC-51单片机内部有2个可编程的16位定时/计数器,它们是单片机十分重要的部件,既可以作为定时器,又可以作为外部的计数器,还可以作为串口的波特率发生器

4.5.1 智能煤车称重系统的定时器/计数器的工作方式及控制

定时器/计数器工作方式寄存器是用于设置定时/计数器的工作方式的,它的高4位用于定时器/计数器T1,低4位用于定时器/计数器T0。而TMOD寄存器的地址为89H,各位的定义如图所示。

图表4.5 TMOD

D7 GATE D6 C/T D5 M1 D4 M0 D3 GATE D2 C/T D1 M1 D0 M0 由于TMOD=0x11为00010001对上图可知我们采应该用M1,M0计数/定时器。M1 ,M0的工作方式选择位及其说明如下图所示: M1 0 0 1 1 M0 0 1 0 1 工作方式 方式0 方式1 方式2 方式3 13位定时器/计数器 16位定时器/计数器 8位常熟自动装入的定时器/计数器 定时器/计数器T0割分为2个8位的定时器/计数器,定时器/计数器T1设置为这种方式停止工作。

说明 因M1M0设置为11,采用定时器 /计数器的工作方式为方式3.在方式3的工,定时器/计数器被拆分两个独立的8位计数器TL0和TH0。其中TL0既可以作为计数器使用又可以作为定时器使用,它使使用了定时器/计数器T0所有的控制及标志位:C/T,GATE,TF0,TR0以及外部控制信号输入引脚INT0,作为计数器使用时,外部事件的计数输入信号由T0输入。另一个8位定时器/计数器TH0只能作为简单的定时器使用,TR1为1时,TH0启动计数,计数溢出时把TF1置1.在这种情况下,MSC-51单片机有3个8位的定时器/计数器,定时器/计数器T1可以作为波特率发生器,用来产生串行口通道所需的波特率;或者是用于那些不需要溢出的场合。

4.5.1 智能煤车系统定时器/计数器的初始化

定时器/计数器的初始化包括设置它的工作方式,定时器 /计数器模式,计算计数初始值,启动定时器/计数器,设置中断控制位等。

本次设计是采用了中断方式实现定时和计数,其具体的步骤如下: (1) 构造控制码并写入特殊功能寄存器TMOD

(2) 计算定时器 /计数器的计数初始值,根据方式3把初始值送入

THO,TL0和TH1,TL1中

(3) 开放CPU中断,允许定时器 /计数器溢出中断CPU的工作:对IE编

程。

(4) 启动定时/计数器

采用了中断中断方式实现定时合计的初始化的程序如下: TMOD=0x11;选择方式3 TH0=0xee;制定初始值 TL0=0x00; TH1=0x4c; TL1=0x00; IE=0x8a; TR0=1;开始计数 TR1=1;

EA=1;开全局中断,允许所有中断 EX0=1; IT0=1;

五.系统的软件设计的开发与调试

每当我们完成系统的硬件设计和软件开发时很多人都认为这次设计就已经

完成了,其实这仅仅是第一步。因为做设计目的是为做出一个成熟的产品,成熟的产品就意味不仅仅能在考入程序实现其功能,并且还能在不同环境下保证它的稳定性。这时这种产品才是能在实际的生活中运用产品。这样看来系统的调试就显得非常的重要。而在这基础上系统软件的应用就显得非常的重要。

5.1 keil开发软件

本次关于煤车称重软件调试我们采用的是keil软件。Keil是我在上C语言课时学习并运用到得一种软件。Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。在实际运用中能极大的方便我们的程序调试及其开发。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案。通过一个集成开发环境将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。本次设计就准备应用keil开发环境进行编程其调试,并用protues仿真软进行件真。