实验十一 定时器输出PWM实验
一、实验目的
1.了解脉宽调制(PWM)的原理 2.学习用PWM输出模拟量 3.熟悉51系列单片机的延时程序 二、实验说明
PWM是单片机上常用的模拟量输出方法,通过外接的转换电路,可以将脉冲的占空比变成电压。程序中通过调整占空比来调节输出模拟电压。占空比是制脉冲中高电平与低电平的宽度比。 三、实验内容及步骤
P1.0输出PWM信号,输出信号送数字电压表显示。本实验需要用到单片机最小应用系统(F1区)。
1.选用单片机最小应用系统模块,用导线将P1.0电压输出接电压表“+”端,电压表“-”端接地。
2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“TH11_PWM.ASM”源程序,进行编译,直到编译无误。
4.全速运行程序,观察电压表显示值,并做记录,程序默认是占空比5:5的PWM。修改源程序LOOP程序段两次,给累加器A的赋值,改为①“MOV A,#1” ②“MOV A,#9”,重新编译后运行,记录电压表显示值,这是占空比1:9的PWM。同样,用户可做占空比9:1的PWM,并做记录。比较三种PWM信号转换电压的大小,与理论值相比较。
5.也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二) 四、流程图及源程序(见光盘中的程序文件夹)
1.流程图
五、思考题
1.分析PWM转换电路的原理。
2.改变延时子程序R0的值,观察转换电压如何改变。
25
开始 输出低电平 低电平延时 输出高电平 高电平延时 实验十二 计数器实验
一、实验目的
1.学习8051内部定时/计数器使用方法 2.学习计数器各种工作方式的用法 二、实验说明
1.8051内部有两个16位的定时/计数器T0和T1,16位是指定时/计数器内的计数器是16位的,由2个8位计数器组成。本实验用的是T0,它的2个8位计数器是TH0和TL0,TH0是高8位,TL0是低八位。所谓加法计数器,指其计数的方法是对计数脉冲每次加1。在其它单片机和可编程计数器芯片中,有的计数器是减法计数器,如8155的14位计数器,8253的16计数器,即先设置计数器的初值,然后对计数器脉冲每次减1,减到0,计数器溢出。而8051内部的计数器是加法计数器,需先设置计数器的初值,本实验设置计数器初值为0,然后对计数脉冲每次加1,加到计数器满后溢出。
2.本实验中内部计数器起计数器的作用。外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。这就决定了输入波形的频率不能超过机器周期频率。 三、实验内容及步骤
本实验需要用到单片机最小应用系统模块(F1区)、单次脉冲源(A6区)和十六位逻辑电平显示模块(I4区)。
P3.4接外部脉冲输入,P0口接十六位逻辑电平显示模块的,脉冲个数以二进制形式显示出来。
1.使用单片机最小应用系统模块,用扁平数据线连接P0口JD4F与十六位逻辑电平显示模块JD2I,P3.4端口接单次脉冲电路的输出端。
2.安装好仿真器,用串行数据通信线连接计算机与仿真器,把仿真头插到模块的单片机插座中,打开模块电源,插上仿真器电源插头(USB线)。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“TH12_计数器.ASM”源程序,编译无误后全速运行程序,连续按动单次脉冲的按键,十六位逻辑电平显示按键次数。
4.也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二) 四、流程图及源程序(见光盘中的程序文件夹)
1.流程图 26
开始 设置工作方式 开始计数 计数,输出计数值 五、思考题
1.由功能、计数启动条件、重复启动条件等诸方面比较80C51的各种方式。 2.80C51单片机的最高计数频率为多少? 六、实验电路图
C3A33pFXTAL1A12MHzC2A33pFINR1F1KR2F100RESETVCCU1FP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7123456789P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.71011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1VSS89C51VCCP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0EAALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0VCC4039P0.738P0.637P0.536P0.435P0.334P0.233P0.132P0.03130292827262524232221EA510*8ALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0VCCRP1D1223344556677889910KC3F10uFLED0LED1LED2LED3LED4LED5LED6LED7VCC27
实验十三 看门狗实验
一、实验目的
1.掌握“看门狗”(MAX 813L)复位控制的硬件接口技术 2.掌握“看门狗”(MAX 813L)复位控制驱动程序的设计方法
二、实验说明
为了控制系统不受外界干扰而出现死机现象,可采用MAX813L复位监控芯片,该芯片具备复位及监视跟踪两大功能。
主要功能:
2精密电源电压、监控4.65V2200ms复位脉冲宽度2V1=1V时保证复位RESET有效。 2TTL/CMOS兼容的防抖动人工复位输入2独立的监视跟踪定时器1.6S溢出时间。 2电源故障或欠电压报警的电压监控 2加电,掉电有电压降低时输出复位信号。 2低电平有效的人工复位输入 。 各引脚的功能和意义如图:
(1)MR:人工复位输入、当输入降至0.8V时产生复位脉冲,低电平有效的输入可用开关短路 到地或TTL/CMOS逻辑驱动,不用时浮空。
(2)VCC:+5V输入。 (3)GND:地。
(4)PFI:电源故障比较器输入,高PFI低于1.25V时PFO输出低电平吸收电流;否则PFO输出保持高电平,如果不用将PFI接地或VCC 。
(5)PFO:电源故障比较器输出,高PFI低于1.25V时,输出低电平且吸收电流;否则PFO输出 保持高电平。
(6)WDI:监视跟踪定时器输入,WDI保持高或低电平时间长达1.6S,WDI输出低电平,WDI浮空或接高阻三态门将禁止监控跟踪定时器功能,只要发生复位,内部监视跟踪定时的清零。
(7)RESET:复位输出(低电平有效)。
(8)WDO:监视跟踪定时器输出,当内部监视跟踪定时器完成1.6S计数后,本脚输出低电平,直到下一次监视跟踪定时器清零, 才再变为高电平,在低电源或VCC低于复位门限电压时,WDO就保持低电平,只要VCC上升到复位门跟电压以上后 WDO就变为高电平而没有滞后。 三、实验内容及步骤
利用MAX 813L实现单片机上电自动复位,手动复位,“看门狗”自动检测。对于上电复位和手动复位在电源打开,或者按实验装置的复位按钮就可以实现。本实验需要用到单片机最小应用系统CPU模块(F1区)、看门狗接口模块(E5区)。
28
1234MRVCCGNDPFIWDORSTWDRPF087651.单片机最小应用系统的P1.0接看门狗的WDI,看门狗的RESET接十六位逻辑电平显示的L0,PF0、WD0悬空。可观察到LED延时1.6s闪烁。
2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。
3.打开Keil uVision2仿真软件,首先建立本实验的项目文件,接着添加“TH13_看门狗.ASM”源程序,进行编译,直到编译无误。
4.编译无误后,运行程序。改变延时程序然后观察LED的变化,要求在1.6s以内,P1.0的信号要变化一次,否则单片机会自动复位。
5.也可以把源程序编译成可执行文件,把可执行文件用ISP烧录器烧录到89S52/89S51芯片中运行。(ISP烧录器的使用查看附录二) 四、源程序(见光盘中的程序文件夹) 五、思考题
试在任何具体的应用程序中插入”看门狗”的应用。 六、原理图
C3A33pFXTAL1A12MHzC2A33pF390KR1F1K1MVCCU5E1234MRVCCGNDPFIMAX813VCCR2F100WDORSTWDRPFO87RST65PFOLED1D1E4148510VCCWDOU1FP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7123456789RXDTXDP3.2P3.3P3.4P3.5P3.6P3.71011121314151617181920P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7RSTP3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RDXTAL2XTAL1VSS89C51VCCP0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0EAALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0VCC4039P0.738P0.637P0.536P0.435P0.334P0.233P0.132P0.03130292827262524232221EAALEPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0RESET
VCCRESETC3F10uF29