单片机定时器中断-秒表设计.pdf
文本预览下载声明
一、实验目的
练习单片机汇编语言编程,学习按键和定时器的设计。
二、实验设备
LY5A-L2A单片机开发板1套
PC机1台
三、设计内容
1.按键的设计
2.设计一程序实现按1键启动或按2键停止数码管做精确的秒计数。(要求精度达到
0.1S)
3.在proteus中仿真设计
四、设计原理及步骤
总体思路:
用AT89C51设计一个3位LED数码显示 “秒表”,显示时间为00~9990毫秒,每 10毫
秒自动加一。当按 “开始”按键,开始计数,数码管显示从00开始每秒自动加一;按 “暂
停”按键,系统暂停计数,数码管显示当时的计数;按 “复位”按键,系统清零,数码管
显示00。
利用AT89S52单片机的定时器,使其能精确计时。利用中断系统使其实现启动、暂停以
及复位清零的功能,P0 口输出段码数据,P1.0~P1.2连上译码器作为位选,P1.7和P1.6接
口的两个按钮分别实现启动暂停和复位功能。
计时器采用T0 中断实现,定时溢出中断周期为10ms,当溢出中断后向CPU发出溢出中
断请求,每发出100次中断请求就对 1s位 (即最后一位)加一,以此类推,直到9.99s为
止。
五、设计程序
1
开始
选择定时器
定时器赋初值
转到显示程序
设置中断
变量一加一
按键一启动
设置变量二
按键二停止
(百位)
选择定时器、调用
Y
中断
是否为10
N
设置变量一
(十位、个位) 显示程序
N
是否为100
Y
实验源程序:
ORG 0000H
LJMP MAIN
ORG 000BH
2
LJMP TIMER
ORG 0200H
MAIN: MOV TMOD,#01H ;选择定时器一
MOV TH0,#0D8H ;定时器赋初值
MOV TL0,#0F0H
MOV IE,#82H
CLR TR0
CLR A
MOV 37H,A
MOV 38H,A
J1: JB P3.7,J2 ;一键启动,否转到J2
CLR A
MOV 37H,A
MOV 38H,A
SETB TR0
SJMP J3 ;转到J3
J2: JB P3.6,J3
显示全部