multisim单片机仿真的例子

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验四、定时/计数器实验

一、实验目的

掌握单片机定时/计数器的内部结构和工作方式。 掌握单片机定时/计数器的应用。

二、实验原理

1、定时/计数器的工作方式与控制寄存器

MCS-51系列单片机内部包含两个十六位的定时/计数器T0和T1,当被设为定时方式时,实际上对机器周期计数,每个机器周期计数器加1直至溢出。当被设为计数方式时,则对加在T0(P3.4)或T1(P3.5)引脚上的外部脉冲计数。

单片机中与定时/计数器相关的特殊功能寄存器(SFR )有定时/计数器控制寄存器(TCON )和定时/计数器模式寄存器(TMOD )。

模式寄存器TMOD 的字节地址为89H ,其各位的定义如下:

M1 M0 工作模式 0 0 模式0 13位定时/计数方式 0 1 模式1 16位定时/计数方式 1 0 模式2 8位自动重装载方式

1

1

模式3

对T0:分为一个8位的定时/计数器TL0和一个8位的定时器TH0 对T1:停止计数

C/T =0,设为定时器方式,C/T =1,设为计数器方式。

GATE=0,定时/计数器的启动和停止完全由TRi 位控制。GATE=1,只有当TRi 位置位并且INT i 引脚为高电平时才启动计数器。

控制寄存器TCON 的字节地址为88H ,其各位的定义如下:

TRi :定时/计数器启停控制,TRi=1启动定时/计数器(当GATE=0时)。

TFi :定时/计数器溢出标志,当定时/计数器溢出时,由硬件置位,CPU 响应中断时,自动清零。 2、定时初值的计算

当单片机的振荡频率为f OSC ,则机器周期为

OSC

f 12,设定时初值为T C ,则定时周期为:

OSC

C L

f )

T 2

(12t -⨯=

12

f t 2

T OSC

L

C ⨯-

=

其中L 为计数器的位数,模式0时L=13,模式1时L=16,模式2、模式3时L=8。

三、实验环境

运行Windows 系统微机一套。 NI Multisim 10仿真软件。

四、实验内容

1、定时器的应用

利用单片机定时/计数器T0的定时功能(工作方式1),使P1.0输出1Kz 的方波,并用示波器观测输出波形。

启动Multimim 10仿真软件,在设计窗口单击鼠标右键,在弹出的快捷菜单中选择“Place Component ”命令,在“Select a Component ”对话框中单击“Group ”下拉列表框,选择MCU Module ,在“Component ”列表框中选择8051,单击“OK ”按钮,在随后出现的MCU 向导中,设置电路设计的存放路径、项目名称、单片机的编程语言(本实验选择汇编语言)以及程序文件名,最后将8051 CPU 放入设计窗口,设计窗口出现“Circuit1”和“main.asm ”两个标签。在设计窗口中双击8051,在弹出的对话框中选择“Value ”,在“clock speed ”中把“12”改成“6”。

在“Select a Component ”对话框的“Group ”下拉列表框中选择Sources ,在“Component ”列表框中选择VCC 和DGND ,将电源VCC 和接地GND 放入设计窗口。在Instruments 工具栏单击“Oscilloscope ”图标,将虚拟示波器放入设计窗口,连接单片机和示波器,完成实验原理图如图4-1所示。

图 4-1 定时实验原理图

已知单片机的振荡频率为6MHz 。定时初值为:

H 06FF 6528612

105.010

66553612

t f 2

T 3

6

OSC 16

C ==⨯⨯⨯-

=⨯-

=-

单击Multimin 设计窗口的main 标签,在源程序编辑窗口输入单片机实验程序。实验参考程序如下:

ORG 0000H LJMP MAIN ORG 000BH ;T0中断入口地址

CPL P1.0

MOV TH0,#0FFH

MOV TL0,#06H

RETI

ORG 1000H

MAIN: MOV TH0,#0FFH

MOV TL0,#06H ;定时初值为FF06H

MOV TMOD,#01H ;T0方式1定时

MOV IE,#82H ;允许T0中断

SETB TR0

SJMP $

END

运行程序,双击设计窗口示波器图标,显示示波器面板如图4-2所示,改变面板上“Timebase”为500uS/Div,观察波形并测量周期。

图 4-2 虚拟示波器面板

2、计数器的应用

将定时/计数器T0设为工作方式3,其中TH0设为定时方式,使P1.0输出1Kz的方波,并用虚拟示波器观察,TL0设为计数方式,使T0引脚作为外中断输入脚,每输入一个脉冲,引发一次中断,使P1.7电平翻转一次,观察LED的闪烁情况。

在设计窗口单击鼠标右键,在弹出的快捷菜单中选择“Place Component”命令,在“Select a Component”对话框中单击“Group”下拉列表框,选择“Diodes”中的“LED”,双击列表中的发光二极管“LED-red”,将其放到设计窗口,在对话框“Group”中选择“Basic”,并将“SWITCH”中的开关“DIPSW1”放到设计窗口。在Multisim10的最右边虚拟仪器栏中选择信号发生器“Function Generator”放置到设计窗口中,将其按下图4-3连接好。

相关文档
最新文档