单片机计数器输入输出原理实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机原理实验报告实验三:计数器输入输出实验
学院: 物理与机电工程学院
专业: 电子科学与技术
班级: 2013 级 2 班
学号:
姓名:
指导老师:
实验三计数器输入输出实验
目的:
学习单片机用定时器/计数器来输入输出。
内容:
编程计数,计满溢出将二极管点亮或熄灭。
设备:
EL-EMCU-I试验箱、EXP-89S51/52/53 CPU板。
编程:
首先要把相关的引脚设置在输入状态,然后写一个计数程序,选用计数器T0、工作方式2、计数4次,溢出将P0口接的发光二极管取反点亮,观察二极管状态和计数次数是否一致。
步骤:
1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
2、连线:用导线将试验箱上的的IO1连接到L1输出端上,T0连接到计数器的P+上面,连接好仿真器。
3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹IO_INPUT下的工程文件IO_INPUT.Uv2编译程序,上电,在程序注释处设置断点,进入调试状态,打开窗口Peripherals-->IO-Port-->P0,改变P+状态记录次数,运行程序到断点处,观察窗口的数值与开关的对应关系。
4、整理器材,离开实验室。
ORG 0000H
AJMP MAIN
ORG 000BH //开T0中断
SJMP L1
ORG 0030H
MAIN:
MOV P0,#00H
MOV A,P0
MOV TMOD,#06H //T0计数,方式2 MOV TH0,#0FDH
MOV TL0,#0FDH //计数3次
SETB EA //开中断
SETB ET0 //允许T0溢出
SETB TR0 //
SJMP $
L1:
CLR ET0
CPL A
MOV P0,A
SETB ET0
RETI
程序分析:
从上面的程序可以看出我们需要用导线将试验箱上的IO1连接到
L1发光二极管上,连接好仿真器。
再通过T0计数的值来对P0口所
接的对应的发光二极管的状态。
结论:
通过上面这段程序,我们实现了用外部中断T0来计数,以此控
制P0口所接的发光二极管的亮灭。
通过MOV P0,#00H MOV A,P0这组指令可以看出我们给发光二
极管的初始值是低电平,二极管会点亮,因为我们的跳线接在P+上
面,所以来一个低电平二极管会点亮。
通过MOV TMOD,#06H MOV TH0,#0FDH MOV TL0,#0FDH CPL A MOV P0,A
这组程序可以知道选用T0工作在方式2计数3次就会将P0.0取反一
次。
因为选用的是工作方式2,所以在定时器工作中不需要再给T0
赋初值。