multisim单片机仿真的例子_第1页
multisim单片机仿真的例子_第2页
multisim单片机仿真的例子_第3页
multisim单片机仿真的例子_第4页
multisim单片机仿真的例子_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验四、定时/计数器实验一、实验目的掌握单片机定时/计数器的内部结构和工作方式。掌握单片机定时/计数器的应用。二、实验原理1、定时/计数器的工作方式与控制寄存器MCS-51系列单片机内部包含两个十六位的定时7计数器TO和T1,当被设为定时方式时,实际上对机器周期计数,每个机器周期计数器加1直至溢出。当被设为计数方式时,则对加在T0(P3.4)或T1(P3.5)引脚上的外部脉冲计数。单片机中与定时/计数器相关的特殊功能寄存器(SFR)有定时7计数器控制寄存器(TCON)和定时/计数器模式寄存器(TMOD)。模式寄存器TMOD的字节地址为89H,其各位的定义如下:GATEC/TM1M0GATEGATEC/TM1M0GATEC/TM1M0T1控制TO控制M1MO工作模式O O 模式OO 1 O O 模式OO 1 模式11 O 模式21 1 模式 316位定时/计数方式8位自动重装载方式对TO:分为一个8位的定时/计数器TL0和一个8位的定时器TH0对T1:停止计数C/T=0,设为定时器方式,C/T=1,设为计数器方式。GATE=0,定时7计数器的启动和停止完全由TRi位控制。GATE=1,只有当TRi位置位并且INti引脚为高电平时才启动计数器。控制寄存器TCON的字节地址为88H,其各位的定义如下:TF1TR1TF0TR0IE1IT1IE0IT0——定时/计数器 ——►——外中断控制TRi:定时/计数器启停控制,TRi=1启动定时/计数器(当GATE=0时)。TFi:定时/计数器溢出标志,当定时/计数器溢出时,由硬件置位,CPU响应中断时,自动清零。2、定时初值的计算12当单片机的振荡频率为fOSC,则机器周期为丄,设定时初值为TC,则定时周期为:fOSC12x(2l—T)t= C~fOSCtxfT=2L— OSCC12其中L为计数器的位数,模式0时L=13,模式1时L=16,模式2、模式3时L=8。

三、 实验环境运行Windows系统微机一套。NIMultisim10仿真软件。四、 实验内容1、定时器的应用利用单片机定时/计数器T0的定时功能(工作方式1),使P1.0输出lKz的方波,并用示波器观测输出波形。启动Multimim10仿真软件,在设计窗口单击鼠标右键,在弹出的快捷菜单中选择“PlaceComponent”命令,在“SelectaComponent”对话框中单击“Group”下拉列表框,选择MCUModule,在“Component”列表框中选择8051,单击“OK”按钮,在随后出现的MCU向导中,设置电路设计的存放路径、项目名称、单片机的编程语言(本实验选择汇编语言)以及程序文件名,最后将8051CPU放入设计窗口,设计窗口出现“Circuit1”和“main.asm”两个标签。在设计窗口中双击8051,在弹出的对话框中选择“Value”,在“clockspeed”中把“12”改成“6”。在“SelectaComponent”对话框的“Group”下拉列表框中选择Sources,在“Component”列表框中选择VCC和DGND,将电源VCC和接地GND放入设计窗口。在Instruments工具栏单击“Oscilloscope”图标,将虚拟示波器放入设计窗口,连接单片机和示波器,完成实验原理图如图4-1所示。5VP1B0T2P1B1T2EXP1B2P1B35VP1B0T2P1B1T2EXP1B2P1B3P1B4P1B5MOSIP1B6MISOP1B7SCKRSTP3B0—P3B1—P3B2INT0P3B3INT1P3B4T^P3B5T1—P3B6WRP3B7RDXTAL2XTAL1VCCP0B0AD0P0B1AD1P0B2AD2P0B3AD3P0B4AD4P0B5AD5P0B6AD6P0B7AD7EAVPPALEPROGPSENP2B7A15P2B6A14P2B5A13P2B4A12P2B3A11P2B2A10P2B1A9GNDP2B0A8GND8051图4-1定时实验原理图已知单片机的振荡频率为6MHz。定时初值为:fxt 6x106x0.5x10-3T=216- =65536— =65286=FF06HC1212单击Multimin设计窗口的main标签,在源程序编辑窗口输入单片机实验程序。实验参考程序如下:ORG0000HLJMPMAINORG000BH ;T0中断入口地址CPLP1.0MOVTH0,#0FFH

MOVTL0,#06HRETIORG1000HMAIN:MOVMOVMOVMOVSETBSJMPENDTH0,#0FFHTL0,#06H ;定时初值为FF06HTMOD,#01H;T0方式1定时IE,#82H ;允许T0中断TR0$运行程序,双击设计窗口示波器图标,显示示波器面板如图4-2所示,改变面板上“Timebase”为500uS/Div,观察波形并测量周期。图4-2虚拟示波器面板2、计数器的应用将定时/计数器T0设为工作方式3,其中TH0设为定时方式,使P1.0输出lKz的方波,并用虚拟示波器观察,TL0设为计数方式,使T0引脚作为外中断输入脚,每输入一个脉冲,引发一次中断,使P1.7电平翻转一次,观察LED的闪烁情况。在设计窗口单击鼠标右键,在弹出的快捷菜单中选择“PlaceComponent”命令,在“SelectaComponent”对话框中单击“Group”下拉列表框,选择“Diodes”中的“LED”,双击列表中的发光二极管“LED-red”,将其放到设计窗口,在对话框“Group”中选择“Basic”,并将“SWITCH”中的开关“DIPSW1”放到设计窗口。在Multisim10的最右边虚拟仪器栏中选择信号发生器“FunctionGenerator”放置到设计窗口中,将其按下图4-3连接好。XSC1豐—+U15VLED1J1Key=A123

丈910直12131415161718P1B0T2P1B1T2EXP1B2P1B3P1B4P1B5MOSIP1B6MISOP1B7SCKRSTP3B0RXDP3B1TXDP3B2INT0P3B3INT1P3B4T0P3B5T1P3B6WRP3B7RD-4t-4XTAL2XTAL1■GND 1920VCCP0B0AD0P0B1AD1P0B2AD2P0B3AD3P0B4AD4P0B5AD5P0B6AD6P0B7AD7EAVPPALEPROGPSENP2B7A15P2B6A14P2B5A13P2B4A12P2B3A11P2B2A10P2B1A9P2B0A84038

辺363534333231302928272625242322

TT8051X7GND图4-36x6x106x0.5x10-328—=612TL0中断入口地址THO定时初值为:TC实验参考程序如下:ORGOOOOHLJMPMAINORGOOOBHMOVTLO,#OFFHCPLP1.7RETIORG001BH ;TH0中断入口地址MOVTH0,#06HCPLP1.0RETIORG1000HMAIN:MOVTMOD,#27HMOVMOVMOVSJMPTL0,#0FFHIE,#8AHTCON,#55H$双击设计窗口信号发生器图标,信号发生器面板如图4-4所示,面板上波形选择方波,频率选择1KHz,完成后关闭对话框。运行程序,双击设计窗口示波器图标,显示示波器面板如图4-5所示,改变面板上“Timebase”为500uS/Div,观察波形并测量周期。图表4-4密Oscilloscope-XSCI N xX

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论