关于实时在线仿真的几个概念
仿真:用一个队用户来说具有“透明性”和“可控性”的CPU(仿真器提供的CPU)代替用户目标系统的CPU。它对用户系统的控制过程与实际CPU完全一致,只是用户可通过开发系统控制仿真cpu的运行,并可控制程序运行的结果。
在线:当仿真CPU运行和控制的硬件环境就是用户样机的硬件环境时,称为在线仿真。
实时:仿真CPU运行的每一瞬时状态都可被开发系统保护记录下来,称为实时。
仿真方式:
本次实验采用系统机+试验仪器
用户设计产品,应该采用系统机+仿真器+用户板的方式。
lab2000实验仪是带有监控电路(属于简易的仿真器)的单片机扩展系统,可以方便的完成各种基本8031实验,实验仪上扩展的实验电路包括:
LED 6位数码管显示
4 * 4键盘电路
发光二极管电平显示电路
逻辑电平输出电路
单脉冲电路、连续脉冲发生电路
继电器输出电路
A/D转换电路、D/A转换电路
存储器电路和逻辑门电路等多个单元
仿真调试的基本步骤:
(1)进入wave调试环境
(2)设置仿真器
(3)建立新项目、编辑新文件
(4)编译
(5)执行并观察结果
定时器计数器
(1)定时/计数器的基本概念
两个16位定时/计数器
存放初值的SFR
T0: TH0、TL0
T1: TH1、TL1
其他相关的SFR:
TMOD(工作方式控制寄存器)
TCON(控制寄存器)
定时功能时,每个机器周期定时器加1
计数功能时,在外部相应输入脚(T0和T1)产生下降沿,计数器加1.
(2)定时/计数器的编程方法
(3)定时/计数器的编程举例
定时计数器的结构框图
![](https://i-blog.csdnimg.cn/blog_migrate/737e1a1b73017ae9a68d3ee44efc9733.png)
中间是内部总线,通过内部总线连接了6个SFR。TH1和TL1构成了T1,存放的是T1定时计数器的初值。TH0和TL0构成了T0,存放的是T0定时计数器的初值。T1外连到了P3.5管脚上,对P3.5来的脉冲进行计数,T0是对P3.4来的脉冲进行计数。如果T1和T0是工作在定时器的工作状态下,就不理会T0和T1管脚的状态,而直接对内部总线的机器周期进行计数。
TCON和TMOD是定时计数器的控制寄存器,来控制T1和T0的运行。可以反映T1和T0的工作状态。
CPU:给T1和T0写初值。给TCON和TMOD下命令字,告诉它们如何工作。然后CPU开始查询它的标志位,是不是溢出,如果有溢出信号证明定时计数器工作到达了一定的时间。
定时器的控制字
工作方式控制寄存器TMOD(89H)
GATE C/T M1 M0 | GATE C/T M1 M0
注意:TMOD不能位寻址,只能是以一个字节八位整体写进去,不能某一位操作。
低4位是控制T0的工作,高4位是控制T1的工作。
控制寄存器TCON(88H)
--TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0
可进行位寻址操作。其中低4位是跟中段有关的,在定时计数器中没有使用。定慧寺计数器中只使用了高4位,TF1和TR1管理定时计数器T1, TF0和TR0管理定时计数器T0.所以对于定时计时器的管理一共有12个控制位,管理每一个定时计数器只需要6个控制位。
复位后两个寄存器的状态均为00H。
TMOD:工作方式控制寄存器
![](https://i-blog.csdnimg.cn/blog_migrate/4752ce846eef6be9391cb64c5dd09d02.png)
GATE:门控位(D7控制T1,D3控制T0)
GATE=1,T0、T1是否工作受外部引脚输入电平的控制,INT0引脚控制T0运行,INT1引脚控制T1运行。可用于测量在INT0或INT1引脚出现的正脉冲的宽度。(INT0和INT1分别是51单片机外部的两个引脚p3.2和p3.3)门控位的主要作用就是测量脉冲宽度。
GATE=0,定时/计数器的运行不受外部引脚INT0或INT1的控制。
C/T位:计数器模式和定时器模式的选择位
C/T = 0,为定时器模式。内部计数器对晶振频率12分频后的脉冲计数(该脉冲的周期等于机器周期),每个周期计数值加