基于Proteus的单片机中断电路的设计与仿真

2017-07-25 13:00朱鹏远
实验技术与管理 2017年7期
关键词:服务程序触发器寄存器

王 超, 朱鹏远

(昌吉学院 物理系, 新疆 昌吉 831100)

基于Proteus的单片机中断电路的设计与仿真

王 超, 朱鹏远

(昌吉学院 物理系, 新疆 昌吉 831100)

针对单片机中断程序执行中异常状态多、偶发性和隐蔽性比较突出等问题,设计了由AT89C51单片机、外部中断电路、串行口中断电路和中断指示电路组成的基于Proteus的单片机中断电路。在Proteus仿真平台下完成硬件电路的搭建,对Keil C与Proteus软件进行联合调试,借助Proteus提供的虚拟仪器、激励源和仿真图表等仿真工具对电路运行情况进行实时观测和精确分析。该单片机中断电路可分析多中断源共同作用下的动态执行过程,可将抽象的中断过程直观化,有助于分析调试过程中存在的问题。

单片机; 中断电路; 电路仿真; Proteus

1 单片机的中断源

查询优先级是指单片机上电复位后,不对IP寄存器进行设置(上电复位后为00H)的优先级,这种优先级顺序无法更改,与是否发生中断服务程序的嵌套没有关系。物理优先级则需要通过IP寄存器进行设置,若某位为“1”,则相应的中断源为高优先级;若为“0”,则为低优先级,可实现中断嵌套。此外,由中断源发出的中断请求信号会使相应的中断请求标志位置“1”,CPU响应中断后,必须清除中断请求“1”标志,否则就会再次进入中断,引发死循环[7-9]。

对51系列单片机来说,在定时器T0/T1和外部中断边沿触发方式下,硬件可自动清除中断请求标志位,串行口中断需用软件清除;而外部中断电平触发方式下则需要软硬件结合才能清除中断请求标志位。

2 单片机的中断电路设计

为了全面分析51单片机的中断过程,把51系列单片机5个中断源分成3类,即外部中断(不同触发方式)、定时器中断和串行口中断,分别设计相应的硬件电路(见图1),以实现多中断源作用下的中断申请、中断嵌套和中断请求信号的处理等过程。

图1中,AT89C51为51系列单片机。外部中断0电路主要实现电平触发方式下中断信号的撤除功能,由按键K1的通断作为中断请求源,使用D触发器74LS74作为撤除中断请求信号的硬件,并用发光二极管D1的亮/灭指示中断的发生。

图1 中断电路设计图

外部中断1电路主要实现模拟实际按键通断产生边沿触发的中断过程,由按键SW1、RS触发器74LS279和分段线性激励源组成。分段线性激励源用来模拟产生按键通断瞬间的前、后沿抖动,RS触发器用于消除抖动,并用发光二极管D2亮/灭指示中断的发生。

串行口中断电路主要实现扩展输出口功能,由按键K、CD4094组成,CD4094为串入-并出的移位寄存器,将串行数据并行输出,并用发光二极管D3的亮/灭指示中断的发生。

定时器中断属于内部中断,采用定时方式,用发光二极管D4的亮/灭指示中断发生。

在1923年南华足球队访问澳洲时,当地报纸曾评论说:“这17名球员所组成的球队,不只是有使者的责任,而是代表世界上最古老的中国与地球上最新领土的澳洲之间,建立起来的深厚的友谊和加深彼此之间的了解。[16]”所以无论是20世纪70年代发生的中美乒乓外交,还是20世纪末发生在美国与古巴之间的棒球交往,都说明了现代社会条件下体育在改善国家关系和推动国际进步方面有着独特的优势和巨大影响力,因此应注意发挥和加强体育在对外关系上的作用。某种意义上说,我们主动进行的体育对外交往活动,就是在用特殊的肢体语言向世界宣讲中国故事。

3 程序设计

根据图1要实现的功能,分别编写主程序和各中断服务程序。

主程序首先要完成初始化操作,包括中断允许控制寄存器IE、中断优先级控制寄存器IP、定时/计数控制寄存器TCON、串行口控制寄存器SCON、定时/计数器控制寄存器TMOD以及D触发器74LS74。D触发器初始化要依据真值表设置,即S=0,R=1,S=0,以保证D触发器初始输出为高电平。之后进入while循环,判断是否有按键K闭合,决定是进入串行口发送数据或是其他中断,如图2和图3所示。

图2 主程序流程图

图3 中断服务程序流程图

4 中断运行过程

4.1 外部中断0运行分析

单片机P1.0、P1.1分别连接74LS74的R端和S端,D端接地,Q端连接单片机外部中断0,同时开放T0中断和外部中断1,分析外部中断0为低电平触发方式时中断请求信号的撤除过程。在Keil C软件下编写源程序,使用链接文件vdmagdi.exe以及进行必要的软件设置后,可实现Keil 软件和Proteus的动态联合调试。程序执行后,Proteus原理图中将显示变化的情况[10-12]。

仿真运行后,可借助Proteus中的虚拟示波器观察中断撤除过程,如图4所示:单片机从主程序进入定时器T0中断程序,T0每隔0.5 s中断一次,循环进行;当按键K1通断后,产生外部中断0请求信号,CPU响应后暂停定时器T0中断服务程序进入外部中断0服务程序,使P1.0置位、D触发器74LS74输出为“1”并及时撤除中断请求标志;当外部中断0服务程序执行完后返回T0中断程序继续执行,即实现了中断嵌套功能。暂停仿真后,右键单击单片机/8051CPU可方便查看单片机内部寄存器及存储单元中数据的变化情况。

如图5所示,TC0N=0x3C=00111100B,即TF0=1代表定时器T0中断请求、IE1=1代表有外部中断1请求、IE0=0代表有外部中断0请求已经撤除、IT0=0为低电平触发、IT1=1为边沿触发;IP=0x01=00000001B,即PX0=1代表外部中断0为高优先级,其余为低优先级的设置情况。

图4 中断申请撤除运行时序图

图5 CPU寄存器窗口

4.2 外部中断1运行分析

单片机外部中断1与74LS279的输出端相连,分析在定时器T0中断、外部中断1共同作用下,模拟实际按键SW通断产生边沿触发方式的中断过程。实际的机械式按键由于机械弹性作用的影响,通常会伴随有一定时间的触点机械抖动,之后触点才能稳定下来,借助Proteus中的分段线性激励源,可模拟实际按键的前沿抖动和后沿抖动曲线,如图6所示。分段线性激励源放置图1中SW上,当SW通断时引入模拟抖动,借助RS触发器74LS279消除按键抖动的影响。

图6 按键抖动示意图

暂停仿真后观察到的寄存器状态为TCON=0x34=00110100B(见图7),即定时器T0有中断请求,IE1=0说明系统硬件已经自动把中断请求标志清0、IT1=1代表下降沿触发方式;IP=0x04=00000100B,即外部中断1设置为EX1=1代表高优先级,其余位为“0”代表低优先级。

图7 CPU寄存器窗口

继续仿真运行,使用虚拟示波器观察时序,如图8所示。按键SW的抖动通过硬件电路产生一个负脉冲,代表一次按键,实现了抖动的消除。因外部中断1优先级高于定时器T0,当按键通断后即可中断定时器T0进入外部中断1程序,从而实现中断二级嵌套。在外部中断1执行期间暂停定时器T0中断程序,一旦执行完立刻返回定时器T0中断程序继续执行。

图8 按键消抖中断嵌套时序图

4.3 串口中断运行分析

单片机RXD端与CD4094的D端相连,用于传输数据,TXD端与CD4094的CLK端相连作为同步时钟输出,分析在定时器T0中断、串行口中断共同作用下的中断过程。通过串行移位寄存器CD4094扩展输出口,串行口工作在方式0下的波特率固定为fosc/12,发送数据时低位在前、高位在后、长度为8位数据。CD4094的输出端Q0—Q7接8个发光二极管用于观察传输结果。

加载由Keil C软件编译的源程序所生成的HEX文件至单片机中,使用Proteus中的观察窗口(Watch Window)观察数据[13-15]。该观察窗口可按照名称和地址两种方式添加自己所需要的观测量,可以显示地址、类型、当前值和前一值等信息。仿真运行后,单击暂定仿真按钮,得到观察窗口如图9所示。图中SBUF为发送缓冲器,前一发送值为0x00,当前发送值为0x55;TCON前一值为0x34,当前值为0x14。这说明前一时刻定时器T0产生中断请求,此时中断请求标志已经由硬件自动清除。由SCON为0x02可知,TI=1表示已进入串口中断服务程序。

图9 观察窗口

另外,使用仿真图表可以对传输数据进行定性分析。在图1所示的电路图中,分别在RXD、TXD、CD4094的输出端口U4(D0)—U4(D7)处放置电压探针,运行仿真图表后生成各个端口电压变化波形图如图10所示。图中,TXD为同步时钟脉冲,RXD为传输的数据(01010101B),在方式0下,fosc=12 MHz,波特率为fosc/12,即1 Mbit/s,传送一位所需要的时间为1 μs。移动标尺,可测量一位数据的传输时间为1.000 001 μs,与理论分析一致。

图10 传输数据波形

5 结语

联合Keil C软件和Proteus软件对单片机中断电路进行设计、仿真和分析,使用Proteus提供的仿真工具(探针、虚拟仪器、激励源和仿真图表)可将单片机抽象的中断过程直观化,能实时观察到单片机与外设接口之间的信号变化,有助于发现中断过程中偶发性和隐蔽性等问题,提高分析问题和解决问题的能力。

References)

[1] 宋杰,丁志远.基于Proteus的X86中断仿真异常问题探究和对策[J].实验室研究与探索,2015,34(8):81-84.

[2] 代晓倩,尤志坚.单片机软件中断测试技术研究[J].电脑知识与技术,2015(11):195-196.

[3] 李丽.基于Proteus和8086的交通灯控制电路仿真设计[J].太原师范学院学报(自然科学版),2016(3):48-51.

[4] 朱志伟,刘湘云.Proteus中被忽视的设置引起的误会与拔正[J].单片机与嵌入式系统应用,2011,11(6):69-70,73.

[5] 曾宇,宋永端,王弼堃.基于Proteus和Keil软件的温室环境监测系统开发[J].农业工程学报,2012(14):177-183.

[6] 胡景华,童淑敏,毕玉革,等.基于Proteus的温室温度自动控制系统的设计与仿真[J].中国农机化,2012(5):133-136.

[7] 马宏坤.51系列单片机的中断扩展[J].工业控制计算机,2015(12):139-141,157.

[8] 李有光,闻新,南英.本科生AVR单片机实验教学探索与研究[J].实验室研究与探索,2015,34(9):216-218,276.

[9] 姚雪梅,陈永前.Proteus和Keil模拟交通灯的实践教学[J].实验室研究与探索,2016,35(11):107-109,136.

[10] 王超,杨莲红.Proteus仿真软件在单片机实践教学中的应用[J].现代电子技术,2014(14):84-87.

[11] 董增文,徐健宁,刘国平.面向研究性学习的单片机虚拟实验室研究与开发[J].实验技术与管理,2013,30(3):86-88.

[12] 王超,宋莉莉.Proteus仿真图表在单片机时序分析中的应用[J].实验室研究与探索,2014,33(9):93-97.

[13] 邓力.使用Proteus仿真图表对单片机指令时序仿真[J].科技通报,2013(5):130-133.

[14] 吴建平,吴姝瑶,刘超.Proteus仿真在虚拟示波器设计中的应用[J].中国测试,2013(3):79-83.

[15] 孙杰,张学军,刘云,等.基于单片机的温度控制系统设计及仿真[J].农机化研究,2015(4):219-222.

Design and simulation of SCM interrupt circuit based on Proteus

Wang Chao, Zhu Pengyuan

(Department of Physics,Changji University,Changji 831100,China)

Aiming at the problems that the abnormal state,contingency and concealment in the interrupt program execution of SCM (single-chip microcomputer) are prominent,an interrupt circuit is designed,which is composed of the AT89C51 SCM,external interrupt circuit,serial port interrupt circuit and interrupt indication circuit and based on Proteus. The construction of the hardware circuit is completed at the Proteus simulation platform. Then the joint debugging of Keil C and Proteus software are carried out. With the aid of the simulation tools such as virtual instrument,excitation source and simulation charts provided by Proteus,the operation of the circuit is observed and analyzed in real time. The SCM interrupt circuit can be used to analyze the dynamic execution process under the combined action of multiple interrupt sources and visualize the abstract interrupt process. It can also help to analyze the problems existing in the debugging process.

SCM (single-chip microcomputer); interrupt circuit; circuit simulation; Proteus

10.16791/j.cnki.sjg.2017.07.035

2017-01-22

新疆维吾尔自治区高等学校科学研究计划项目(XJEDU2014S070);教育部“本科教学工程”地方高校专业综合改革试点项目(ZG0550)

王超(1979—),男,新疆昌吉,硕士,讲师,主要研究方向为智能控制及仿真教学.

TP332;TP391.9

A

1002-4956(2017)07-0136-05

猜你喜欢
服务程序触发器寄存器
STM32和51单片机寄存器映射原理异同分析
SylixOS系统的中断嵌套机制研究与实现
基于C#的进程守护程序的设计
Lite寄存器模型的设计与实现
UDP穿透NAT技术实现数据唤醒车联网T-Box设备的方案
使用触发器,强化安全性
水利工程施工监理服务程序及质量控制
对触发器逻辑功能转换的分析
触发器逻辑功能转换的两种方法
高速数模转换器AD9779/AD9788的应用