文档库 最新最全的文档下载
当前位置:文档库 › 可编程计数器定时器8254

可编程计数器定时器8254

可编程计数器定时器8254
可编程计数器定时器8254

课程名称汇编语言与微机原理

实验名称8254 定时/计数器应用实验

实验目的、要求

1. 掌握8254 的工作方式及应用编程。

2. 掌握8254 典型应用电路的接法。

实验原理

编写程序,将8254 的计数器0 设置为方式3,计数值为十进制数4,用单次脉冲KK1+作为CLK0 时钟,OUT0 连接INTR,每当KK1+按动5 次后产生中断请求,在屏幕上显示字符"5"。

主要设备、器材

PC机一台,TD-PIT实验装置一套

实验步骤及原始数据记录

(1)实验接线如图4-6-3 所示。

(2)运行Tdpit 集成操作软件,根据实验内容,编写实验程序,编译、链接。

(3)运行程序,按动KK1+产生单次脉冲,观察实验现象。

(4)改变计数值,验证8254 的计数功能。

89

INTR_IVADD EQU 01C8H

INTR_OCW1 EQU 0A1H

INTR_OCW2 EQU 0A0H

INTR_IM EQU 0FBH

IOY0 EQU 3000H

MY8254_COUNT0 EQU IOY0+00H*4 MY8254_COUNT1 EQU IOY0+01H*4 MY8254_COUNT2 EQU IOY0+02H*4 MY8254_MODE EQU IOY0+03H*4 STACK1 SEGMENT STACK

DW 256 DUP(?)

STACK1 ENDS

DATA SEGMENT

CS_BAK DW ?

IP_BAK DW ?

IM_BAK DB ?

STR1 DB 'COUNT: $'

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

CLI

MOV AX,0000H

MOV ES,AX

MOV DI,INTR_IVADD

MOV AX,ES:[DI]

MOV IP_BAK,AX

MOV AX,OFFSET MYISR

MOV ES:[DI],AX

ADD DI,2

MOV AX,ES:[DI]

MOV CS_BAK,AX

MOV AX,SEG MYISR

MOV ES:[DI],AX

MOV DX,INTR_OCW1

IN AL,DX

MOV IM_BAK,AL

AND AL,INTR_IM

OUT DX,AL

STI

MOV DX,OFFSET STR1

MOV AH,9

INT 21H

MOV DX,MY8254_MODE

MOV AL,10H

OUT DX,AL

MOV DX,MY8254_COUNT0

MOV AL,4

OUT DX,AL

WAIT1: MOV AH,1

INT 16H

JZ WAIT1

QUIT: CLI

MOV AX,0000H

MOV ES,AX

MOV DI,INTR_IVADD

MOV AX,IP_BAK

MOV ES:[DI],AX

ADD DI,2

MOV AX,CS_BAK

MOV ES:[DI],AX

MOV DX,INTR_OCW1

MOV AL,IM_BAK

OUT DX,AL

STI

MOV AX,4C00H

INT 21H

MYISR PROC NEAR

PUSH AX

MOV AL,35H

MOV AH,0EH

INT 10H

MOV AL,20H

INT 10H

MOV DX,MY8254_COUNT0

MOV AL,4

OUT DX,AL

OVER: MOV DX,INTR_OCW2

MOV AL,20H

OUT DX,AL

MOV AL,20H

OUT 20H,AL

POP AX

IRET

MYISR ENDP

CODE ENDS

END START

实验结果

1.程序运行之后,KK1+按动5 次后产生中断请求,在屏幕上显示字符"5"。

8254定时计数器应用实验报告

XX 大学实验报告 课程名称: 实验项目名称:8254定时/计数器应用实验学院:信息工程学院 专业:通信工程 指导教师: 报告人:学号:班级: 实验时间: 实验报告提交时间:

教务处制

单元的内容外,还可以读出状态寄存器的内容。 (6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为: n=fCLKi÷fOUTi、其中fCLKi 是输入时钟脉冲的频率,fOUTi 是输出波形的频率。 图(1)是8254 的内部结构框图和引脚图,它是由与CPU 的接口、内部控制电路和三个计数器组成。8254 的工作方式如下述:(1)方式0:计数到0 结束输出正跃变信号方式。 (2)方式1:硬件可重触发单稳方式。 (3)方式2:频率发生器方式。 (4)方式3:方波发生器。 (5)方式4:软件触发选通方式。 (6)方式5:硬件触发选通方式。 图(1)8254的内部借口和引脚8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如表

1所示。 表1 8254的方式控制字 表2 8254 读出控制字格式 表3 8254 状态字格式 8254 实验单元电路图如下图所示:

五、实验步骤及相应操作结果 1. 计数应用实验 编写程序,将8254 的计数器0 设置为方式3,计数值为十进制数4,用单次脉冲KK1+ 作为CLK0 时钟,OUT0 连接MIR7,每当KK1+按动5 次后产生中断请求,在屏幕上显示字符“M”。 实验步骤: (1)实验接线如图2所示。 (2)编写实验程序,经编译、链接无误后装入系统。 (3)运行程序,按动KK1+产生单次脉冲,观察实验现象。(4)改变计数值,验证8254 的计数功能。

用定时器计数器设计一个简单的秒表

目录 摘要................................................................ I 1 Proteus简介 (1) 2 主要相关硬件介绍 (2) 2.1 AT89C52简介 (2) 2.2 四位数码管 (4) 2.3 74LS139芯片介绍 (5) 3 设计原理 (5) 4 电路设计 (6) 4.1 电路框图设计 (6) 4.2 电路模块介绍 (7) 4.2.1 控制电路 (7) 4.2.2 译码电路 (7) 4.2.3 数码管显示电路 (7) 4.3 仿真电路图 (8) 5 设计代码 (8) 6 仿真图 (12) 7 仿真结果分析 (14) 8 实物图 (14) 9 心得体会 (15) 参考文献 (16)

摘要 现在单片机的运用越来越宽泛,大到导弹的导航装置、飞机上各种仪表的控制、计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理,小到广泛使用的各种智能IC卡、各种计时和计数器等等。本次课设我们要设计一个能显示计时状态和结果的秒表,它是基于定时器/计数器设计一个简单的秒表。 本次设计的数字电子秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及外部中断电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现四位LED显示,显示时间为0~99.99秒,计时精度为0.01秒,能正确地进行计时,并显示计时状态和结果。其中软件系统采用汇编或者C语言编写程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在keil中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。 关键词:秒表,AT89C51,proteus,C语言

实验六 8254定时计数器

电工电子实验中心 实验报告 课程名称:计算机硬件技术基础实验名称:8254定时/计数器 姓名:学号: 评定成绩:审阅教师: 实验时间:2017.06.06 南京航空航天大学

一、实验目的要求 1) 掌握 8254 定时/计数器的名种工作方式及编程方法。 二、实验任务 按照图 3-2-1 的要求连线,分别对 8254 芯片的 3 个定时/计数器编程,并选择合适的工作方式和初值,以达到如下的效果: 1) 定时/计数器 0,计数脉冲频率为 18.432KHz,OUT0 分两路输出, 一路外接 2 位 LED,使其以亮 0.5 秒灭 0.5 秒循环闪亮,另一路作为计数器 1 的计数脉冲 CLK1。 2) 定时/计数器 1,OUT1 的输出外接 2 位 LED,使其以亮 3 秒灭 1 秒循环闪亮。 3) 定时/计数器 2 的计数脉冲来自单次脉冲单元,按压开关产生的脉 冲作为计数器 2 的计数脉冲。OUT2 外接 2 位 LED,当按压开关到 17 次时LED 长亮,并将按压开关的剩余次 数将在屏幕上显示。 三、实验电路图 图3-2-1 8254定时/计数器电原理图

四、实验代码 IOY0 EQU 3000H TIMER0 EQU IOY0+00H*4 ;8254计数器0端口地址 TIMER1 EQU IOY0+01H*4 ;8254计数器1端口地址 TIMER2 EQU IOY0+02H*4 ;8254计数器2端口地址 TCTL EQU IOY0+03H*4 ;8254控制寄存器端口地址 STACK1 SEGMENT STACK DW 256 DUP(?) STACK1 ENDS DATA SEGMENT MES0 DB ‘Pressed: $’ MES1 DB ‘Press any key to exit !’,0DH,0AH,’$’NUM DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV DX, OFFSET MES1 MOV AH, 9 INT 21H MOV DX, TCTL MOV AL, 00110110B ; 计数器0初始化,方式3 OUT DX, AL MOV DX, TIMER0 MOV AL, 00H OUT DX, AL ;计数器0初值=4800H MOV AL, 48H OUT DX, AL MOV DX, TCTL MOV AL, 01010101B ; 计数器1初始化,方式2 OUT DX, AL MOV DX, TIMER1 MOV AL, 04H ; 计数器1初值=04H OUT DX, AL MOV DX, TCTL MOV AL, 10010001B ; 计数器2初始化,方式0 OUT DX, AL MOV DX, TIMER2 MOV AL, 0FH ;计数器0初值=0FH

定时器计数器

定时器/计数器 MCS-51单片机内部有两个16位可编程的定时器/计数器,即定时器T0(由TH0和TL0组成)和定时器T1(由TH1和TL1组成),它们既可用作定时器定时,又可用作计数器记录外部脉冲个数,其工作方式、定时时间、启动、停止等均用指令设定。 定时器/计数器的结构 1.定时器/计数器的工作原理 定时器/计数器T0和T1的工作方式通过八位寄存器TMOD设定,T0和T1 的启动、停止由八位寄存器TCON控制。工作前需先装入初值,利用传送指令将初值装入加1计数器TH0和TL0或TH1和TL1,高位数装入TH0或TH1,低位数装入TL0或TL1。当发出启动命令后,加1计数器开始加1计数,加到满值(各位全1)后,再加1就会产生溢出,系统将初值寄存器清0。如果需要继续计数或定时,则需要重新赋计数初值。 2.定时器的方式寄存器TMOD 特殊功能寄存器TMOD为定时器的方式控制寄存器。TMOD是用来设定定时器的工作方式,其格式如下: 各位功能如下: (1)GATE控制定时器的两种启动方式 当GATE=0时,只要TR0或TR1置1,定时器启动。 当GATE=1时,除TR0或TR1置1外,还必须等待外部脉冲输入端(P3.3)或(P3.2)高电平到,定时器才能启动。若外部输入低电平则定时器关闭,这样可实现由外部控制定时器的启动、停止,故该位被称为门控位。定时器1类同。 (2)定时/计数方式选择位 当该位为0时,T0或T1为定时方式;当该位为1时,T0或T1为计数方式。(3)方式选择位M1、M0 M1、M0两位可组合成4种状态,控制4种工作方式。每种方式的功能如表5-1。 表5-1 M1、M0控制的工作方式 M1 M0 工作方式说明 0 0 0 1 1 0 1 1 0 1 2 3 13位计数器 16位计数器 可再装入8位计数器

定时计数器设计.

设计数字钟,内有4组可设置的定时开/关,控制一路开关量输出。定时开关的设置分为单次操作(2011年6月25日8:00开2011年6月26日18:00关),周期操作(如周三8:00 开,周四16:00关)。数码管显示时间(单位秒)与设置值(单位分钟),用发光二极管表示周期与单次操作。 任务安排: (1)设计任务及要求分析 (2)方案比较及认证说明 (3)系统原理阐述,写出设计方案结构图。 (4)软件设计课题需要说明:软件思想,流程图,源程序及程序注释 (5)调试记录及结果分析、 (6)总结 (7)参考资料5篇以上 (8)附录:程序清单 时间安排: 6月24日:安排设计任务;收集资料;方案选择 6月25日:程序设计 6月26——27日:实验室内调试程序并演示 6月28日:撰写报告 7月1日:交能力拓展训练报告

摘要 单片机在电子产品中的应用越来越广泛,特别是51系列的单片机,由于其使用方便、价格低廉等优势,在市场上占有很大的份额。AT89C51就是51系列中的一个比较成熟的型号,它完全兼容51单片机的指令。 本文详细介绍了基于AT89C51单片机的数字电子钟的设计,本电子钟可以实现日期、时间的显示和调整,带有整点提示和一个闹钟,并且可以显示当前气温。 本设计包括硬件设计和软件设计两部分。主要硬件有:三端稳压器LM7805、AT89C51单片机、字符型液晶显示模块HY1602A和若干按键等。软件大致思路为:使用12MHz的晶振,单片机内部的定时器0工作在方式1,每计数50000个机器周期(即50ms)产生一次中断,中断20次就是一秒,这样就可以实现精确计时的目的,不断扫描按键,如果有按键按下,则对按键做出相应的响应。 关键字:单片机;电子钟; LCD1602;

8254定时计数器

深圳大学实验报告课程名称:微机原理 实验项目名称:8254定时计数器实验 学院:信息工程学院 专业:电子 指导教师:张力 报告人:林泽杭学号:2009130340班级:电子4 实验时间:2011.5.30 实验报告提交时间:2011.6.15 教务处制

一·实验目的与要求: 1. 掌握8254的工作方式及应用编程。 2. 掌握8254典型应用电路的接法。 二·方法、步骤: 1. 计数应用实验 编写程序,将8254的计数器0设置为方式0,计数值为十进制数4,用单次脉冲KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏幕上显示字符“M ”。 (1)实验接线如图1所示。 (2)编写实验程序,经编译、链接无误后装入系统。 (3)运行程序,按动KK1+产生单次脉冲,观察实验现象。 (4)改变计数值,验证8254的计数功能。 D0 D7 ... W R RD CS XD0 XD7 ... IOW #IOR#IOY3 系统总线 8254单元 A0A1 XA1XA2 单次脉冲单元 MIR7 GAT E 0 CL K0 OUT 0 VCC KK1+ 4.7K 图1 8254计数应用实验接线图 2. 定时应用实验 编写程序,将8254的计数器0设置为方式3,用信号源1MHz 作为CLK0时钟,OUT0为波形输出1ms 方波。 (1)接线图如图2所示。 (2)根据实验内容,编写实验程序,经编译、链接无误后装入系统。 (3)运行实验程序,用示波器测试OUT0输出,验证程序功能。 D0 D7 ... W R RD CS XD0 XD7 ... IOW #IOR#IOY3 系统总线 8254单元 A0A1 XA1XA2 系统总线 GAT E 0 CL K0 OUT 0 VCC CL K 波形输出示波器测量 4.7K 图2 8254定时应用实验接线图

定时器计数器(TC)简介以及例子说明

定时器/计数器(T/C)简介 一、定时器/计数器有关的特殊功能寄存器 1. 计数数寄存器TH和TL 计数器寄存器是16位的,计数寄存器由TH高8位和TL低8 位构成。在特殊功能寄存器(SFR)中,对应T/C0为TH0和TL0,对应T/C1为TH1和TL1。定时器/计数器的初始值通过TH1/TH0和TL1/TL0设置。 2. 定时器/计数器控制寄存器TCON TR0,TR1:T/C0,1启动控制位。 1——启动计数0——停止计数 TCON复位后清“0”,T/C需受到软件控制才能启动计数,当计数寄存器计满时,产生向高位的进位TF,即溢出中断请求标志。 3. T/C的方式控制寄存器TMOD T/C1 T/C0 C/T :计数器或定时器选择位。 1——为计数器0——为定时器 GATE:门控信号 1——T/C的启动受到双重控制,即要求TR0/TR1和INT0/INT1

同时为高。 M1和M0:工作方式选择位。(四种工作方式) 4.定时器/计数器2(T/C2)控制寄存器 TF2:T/C2益出标志——必须由软件清除 EXF2:T/C2外部标志。当EXEN2=1,且T2EX引脚上出现负跳变而引起捕获或重装载时置位,EXF2要靠软件来清除。 RCLK:接收时钟标志1——用定时器2 溢出脉冲作为串行口的接收时钟0——用定时器1的溢出脉冲做接收时钟。 TCLK:发送时钟标志。 1——用定时器2 溢出脉冲作为串行口的发送时钟 0——用定时器1的溢出脉冲作发送时钟 EXEN2:T/C2外部允许标志。1——若定时器2未用作串行口

的波特率发生器,T2EX端的负跳变引起T/C2的捕获或重装载。 0——T2EX端的外部信号不起作用。 TR2:T/C2运行控制位 1——T/C2启动0——T/C2停止 C/T2:计数器或定时器选择位 1——计数器0——定时器 CP/RL:捕获/重载标志。 1——若EXEN2=1,且T2EX端的信号负跳变时,发生捕获操作。 0——若定时器2溢出,或在EXEN2=1条件下T2EX端信号负跳变,都会造成自动重装载操作。 二、定时器/计数器的工作方式 1.方式0 当TMOD中M1M0=00,T/C工作在方式0。 方式0为13位的T/C,由TH提供高8位,TL提供低5位的计数值,满计数值213,但启动前可以预置计数初值。 当C/T=0时,T/C为定时器,振荡源12分频的信号作为计数脉冲;当C/T=1时,T/C为计数器,对外部脉冲输入端T0或T1输入的脉冲计数。计数脉冲能否加到计数器上,受到启动信号控制。当GATE=0时,只要TR=1,则T/C启动。当GATE=1时,启动信号 =TR×INT,此时T/C启动受到双重控制。 T/C启动后立即加1计数,当13位计数满时,TH向高位进位,此进位将中断溢出标志TF置1,产生中断请求,表示定时时间到或

8254定时与计数器实验

XX学院 实验报告 实验名称 姓名 学号 班级 教师 日期

一、实验容与要求 1.1 实验容 本次实验分为如下2个子实验: (1)计数应用实验:编写程序,应用8254的计数功能,使用单次脉冲模拟计数,使每当按 下‘KK1+’5次后,产生一次计数中断,并在屏幕上显示一个字符‘M’; (2)定时应用实验:编写程序,应用8254的定时功能,产生一个1s的方波,并用本装置的 示波器功能来观察。 1.2 实验要求 本次实验中2个子实验的实验要求如下: (1)计数应用实验:将8254的计数器0设置为方式3,计数值为十进制数4,用单次脉冲 KK1+作为CLK0时钟,OUT0连接MIR7,每当KK1+按动5次后产生中断请求,在屏 幕上显示字符“M”; (2)定时应用实验:将8254的计数器0和计数器1都设置为方式3,用信号源1MHz作为 CLK0时钟,OUT0为波形输出1ms方波,再通过CLK1输入,OUT1输出1s方波。 二、实验原理与硬件连线 2.1 实验原理 8254是Intel公司生产的可编程间隔定时器。是8253的改进型,比8253具有更优良的性能。8254具有以下基本功能: (1)有三个地理的16位计数器。 (2)每个计数器可按二进制或十进制(BCD)计数。 (3)每个计数器可编程工作于6种不同的工作方式。

(4)8254每个计数器允许的最高计数频率为10MHz(8253为2MHz)。 (5)8254有读回命令(8253,没有),除了可以读出当前计数单元的容外,还可以读出状态寄 存器的容 (6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为: n=f CLKi÷f OUTi,其中f CLKi是输入时钟脉冲的频率,f OUTi是输出波形的频率。 图2-1是8254的部结构框图和引脚图,它是由与CPU的接口,部控制电路和三个计数器组成。8254的工作方式如下述: (1)方式0:计数到0结束输出正跃变信号方式。 (2)方式1:硬件可重触发单稳方式。 (3)方式2:频率发生器方式。 (4)方式3:方波发生器。 (5)方式4:软件触发选通方式。 (6)方式5:硬件触发选通方式 D:[7: RD A0 A1 CS CLK0 GATE0 OUT0 CLK1 GATE1 OUT1 CLK2 GATE2 OUT2图2-1 8254部结构图

定时器计数器答案

定时器/计数器 6·1 80C51单片机内部有几个定时器/计数器?它们就是由哪些专用寄存器组成? 答:80C51单片机内部设有两个16位的可编程定时器/计数器,简称为定时器0(T0)与定时器l(Tl)。在定时器/计数器中的两个16位的计数器就是由两个8位专用寄存器TH0、TL0, THl、TLl组成。 6·2 80C51单片机的定时器/计数器有哪几种工作方式?各有什么特点? 答:80C51单片机的定时器/计数器有4种工作方式。下面介绍4种工作方式的特点。 方式0就是一个13位的定时器/计数器。当TL0的低5位溢出时向TH0进位,而TH0溢 出时向中断标志TF0进位(称硬件置位TF0),并申请中断。定时器0计数溢出与否,可通过查询TF0就是否置位或产生定时器0中断。 在方式1中,定时器/计数器的结构与操作几乎与方式0完全相同,惟一的差别就是:定时器就是以全16位二进制数参与操作。 方式2就是能重置初值的8位定时器/计数器。其具有自动恢复初值(初值自动再装人)功; 能,非常适合用做较精确的定时脉冲信号发生器。 方式3 只适用于定时器T0。定时器T0在方式3T被拆成两个独立的8位计数器TL0: 与TH0。其中TL0用原T0的控制位、引脚与中断源,即:C/T、GATE、TR0、TF0与T0 (P3、4)引脚、INTO(P3、2)引脚。除了仅用8位寄存器TL0外,其功能与操作与方式0、方式1 完全相同,可定时亦可计数。此时TH0只可用做简单的内部定时功能。它占用原定时器Tl 的控制位TRl与TFl,同时占用Tl的中断源,其启动与关闭仅受TRl置1与清0控制。

6·3 定时器/计数器用做定时方式时,其定时时间与哪些因素有关?作计数时,对外界计数频率有何限制? 答: 定时器/计数器用做定时方式时,其定时时间与时钟周期、计数器的长度(如8位、13位、16位等)、定时初值等因素有关。作计数时,外部事件的最高计数频率为振荡频率(即时钟周期)的1/24。 6·4 当定时器T0用做方式3时,由于TR1位已被T0占用,如何控制定时器T1的开启与关闭? 答:定时器T0用做方式3时,由于TRl位己被T0占用,此时通过控制位C/T切换其定时器 或计数器工作方式。当设置好工作方式时,定时器1自动开始运行;若要停止操作,只需送入一个设置定时器1为方式3的方式字。 6.5 己知80C51单片机系统时钟频率为6 MHz,请利用定时器T0与Pl。2输出矩形脉冲, 其波形如下: 答:设置T0为方式2定时,定时50us,初值X 为: X=28-(6×106×50×10-8 )÷12= 231D= E7H TH0= TL0=E7H ,TMOD= 2H 源程序如下: MOV TMOD,#02H ;设置T0为方式2定时 MOV TH0,#E7H ;赋初值 MOV TL0,#E7H

定时器与计数器

四川工程职业技术学院 单片机应用技术课程电子教案 Copyright ? https://www.wendangku.net/doc/534532250.html, 第 讲 15 定时器/计数器基础

本讲主要内容: 15-1.实现定时的方法 15-2.定时器/计数器的结构和工作原理15-3.定时器/计数器的控制 15-4.定时器/计数器的工作方式 15-5.定时器/计数器应用

15-1.实现定时的方法 软件定时 ? 软件延时不占用硬件资源,但占用了CPU时间,降低了CPU的利用 率。例如延时程序。 采用时基电路定时 ?例如采用555电路,外接必要的元器件(电阻和电容),即可构成硬 件定时电路。但在硬件连接好以后,定时值与定时范围不能由软件 进行控制和修改,即不可编程,且定时时间容易漂移。 可编程定时器定时 ?最方便的办法是利用单片机内部的定时器/计数器。结合了软件定时 精确和硬件定时电路独立的特点。 定时器/计数器 如何使用呢?

定时器/计数器的结构 定时器/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。TMOD 是定时器/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。 G A T E C /T M 1 M 0 G A T E C /T M 1 M 0 TH1TL1TH0TL0 T1方式T0方式 T1引脚 T0引脚 机器周期脉冲 内部总线 TMOD TCON 外部中断相关位 T F 1 T R 1 T F 0 T R 0 T1计数器 T0计数器 控制单元

定时器/计数器的工作原理 ?计数器输入的计数脉冲源 系统的时钟振荡器输出脉冲经12分频后产生; T0或T1引脚输入的外部脉冲源。 ?计数过程 每来一个脉冲计数器加1,当加到计数器为全1(即FFFFH)时,再输入一个脉冲就使计数器回零,且计数器的溢出使TCON中TF0或TF1置1,向CPU发出中断 请求(定时器/计数器中断允许时)。如果定时器/计数器工作于定时模式,则表 示定时时间已到;如果工作于计数模式,则表示计数值已满。

实验报告五 定时器计数器实验

信息工程学院实验报告 课程名称:微机原理与接口技术Array 实验项目名称:定时器/计数器实验实验时间: 班级:姓名:学号: 一、实验目的 1. 掌握8254 的工作方式及应用编程。 2. 掌握8254 典型应用电路的接法。 二、实验设备 PC 机一台、TD-PITD+实验系统一套。 三、实验原理 8254 是Intel 公司生产的可编程间隔定时器。是8253 的改进型,比8253 具有更优良的性能。8254 具有以下基本功能: (1)有 3 个独立的16 位计数器。 (2)每个计数器可按二进制或十进制(BCD)计数。 (3)每个计数器可编程工作于 6 种不同工作方式。 (4)8254 每个计数器允许的最高计数频率为10MHz(8253 为2MHz)。 (5)8254 有读回命令(8253 没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。 (6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为: n=f CLKi ÷f OUTi、其中f CLKi 是输入时钟脉冲的频率,f OUTi 是输出波形的频率。 图5-1 是8254 的内部结构框图和引脚图,它是由与CPU 的接口、内部控制电路和三个计数器组成。8254 的工作方式如下述: (1)方式0:计数到0 结束输出正跃变信号方式。 (2)方式1:硬件可重触发单稳方式。 (3)方式2:频率发生器方式。 (4)方式3:方波发生器。 (5)方式4:软件触发选通方式。 (6)方式5:硬件触发选通方式。

图5-1 8254 的内部接口和引脚 8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。这两个控制字共用一个地址,由标识位来区分。控制字格式如表5-1~5-3 所示。 表5-1 8254 的方式控制字格式 表5-2 8254 读出控制字格式 表5-3 8254 状态字格式 8254 实验单元电路图如下图所示:

定时器计数器

图1-2 将T1计数的结果送P0口显示 (3)控制LED 灯左循环亮 用A T89C51单片机控制一组LED 灯左循环亮,采用50ms 延时子程序调用达到1S 延时,使用P0口输出控制发光二极管灯。电路图如图1-2所示,晶振采用12MHZ 。要求如下: ①用发光二极管灯左循环亮为输出值; ②利用单片机的定时器完成此项目; ③每1S 左循环一次。 图1-3 控制LED 灯左循环亮 三、实验程序 1. 用定时器T0查询方式控制P3口8位LED 闪烁 (1)分析: 用定时器0、方式1, 则TMOD =××××0001B 由于T 机器=12T 时钟=12 1/fosc=1us ,而方式1的最大定时时间为65.536ms ,所以可选择:50ms 。定时器初始值为: TH0=(65536-50000)/256;//定时器T0的高8位赋初值 TL0=(65536-50000)%256;//定时器T0的低8位赋初值 (2)程序设计 先建立文件夹“SY 1-1”,然后建立“SY2-1”工程项目,最后建立源程序文件“SY 1-1.c”,输入如下源程序: #include // 包含51单片机寄存器定义的头文件 void main(void) { TMOD=0x01; //使用定时器T0的方式1 TH0=(65536-50000)/256; /*定时器T0的高8位赋初值*/ TL0= (65536-50000)%256; /*定时器T0的低8位赋初值*/ TR0=1; //启动定时器T0 组长 学号 专业 班级 实验项目 实验1 定时器/计数器 课程名称 单片机原理 课程代码 试验时间 实验地点 成绩 教师签字: 一、实验目的 (1)了解80C51定时器/计数器的结构; (2)掌握定时器/计数器方式寄存器TMOD 设置; (3)掌握定时器/计数器控制寄存器TCON 设置; (4)掌握定时器/计数器的初始化步骤; (5)掌握定时或计数初值的计算; (6)掌握80C51定时器/计数器编程方法。 二、实验内容 (1)用定时器T0查询方式控制P3口8位LED 闪烁 使用T0工作于方式1,采用查询方式控制P3口8位LED 的闪烁周期为100ms ,即亮50ms ,熄灭50ms ,电路图如图1-1所示,设单片机晶振频率为12MHz 。 图1-1 用定时器T0查询方式控制P3口8位LED 闪烁 (2)将T1计数的结果送P0口显示 用AT89C51单片机控制LED 灯左循环亮,采用50ms 延时子程序调用达到1S 延时,使用P0口输出控制发光二极管灯。电路图如图1-2所示,设单片机晶振频率为12MHz 。

实验6_8254定时器计数器应用实验

实验六8253/4定时器/计数器应用实验 实验目的 (1) 掌握8254的工作方式及应用编程(参考教材) (2) 掌握8254的典型应用电路的接法 (3) 学习8254在PC系统中的典型应用方法 实验设备 PC机一台,TD-PIT-B实验装置一套。 实验内容及说明 1)计数应用实验。2)定时应用实验。3)电子发声实验 注意:在断电情况,连接好实验线路,检查无误后,通电进行实验。实验完毕,先断电,再拆线,并将导线整理好。 1. 计数应用实验: 编写程序,将8254的计数器0设置为方式3,计数值为十进制5,用微动开关KK1-作为CLK0时钟,OUT0连接IRQ,每当KK1-按动5次后产生中断请求,在屏幕上显示字符“M”。8254计数应用参考连接线图如图6-1。 总线接口 +5V KK1-- IRQ 图6-1 8254计数应用实验参考接线图 ;; 计数应用实验 ;;filename : ;; ----PCI卡分配的第3个I/O空间MY8254_COUNT0 EQU 0E440H MY8254_COUNT1 EQU 0E441H MY8254_COUNT2 EQU 0E442H MY8254_MODE EQU 0E443H ;;--PCI卡分配的第1个I/O空间INTCSR_BYTE0 EQU 0DC38H INTCSR_BYTE1 EQU 0DC39H

INTCSR_BYTE2 EQU 0DC3AH INTCSR_BYTE3 EQU 0DC3BH IMB4_BYTE3 EQU 0DC1FH DATA SEGMENT CSBAK DW IPBAK DW MKBAK DB DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: CLI MOV AX,DATA MOV DS,AX MOV DX,INTCSR_BYTE0 ;; 设置pci卡 MOV AL,00H OUT DX,AL MOV DX,INTCSR_BYTE1 MOV AL,1FH OUT DX,AL MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL MOV DX,INTCSR_BYTE3 MOV AL,00H OUT DX,AL MOV AX,0000H MOV ES,AX ;---------------------------------------------------MOV DI, 01C4H ; irq 9 , INT 71h, 01c4= 71h*4 ;--------------------------------------------------- MOV AX,ES:[DI] MOV IPBAK,AX ;IP MOV AX,OFFSET MYINT CLD STOSW MOV AX,ES:[DI] ;CS MOV CSBAK,AX MOV AX,SEG MYINT

计数器与定时器概念

计数器与定时器概念 一、计数概念的引入 从选票的统计谈起:画“正”。这就是计数,生活中计数的例子处处可见。例:录音机上的计数器、家里面用的电度表、汽车上的里程表等等,再举一个工业生产中的例子,线缆行业在电线生产出来之后要计米,也就是测量长度,怎么测法呢?用尺量?不现实,太长不说,要一边做一边量呢,怎么办呢?行业中有很巧妙的方法,用一个周长是1米的轮子,将电缆绕在上面一周,由线带轮转,这样轮转一周不就是线长1米嘛,所以只要记下轮转了多少圈,就可以知道走过的线有多长了。 二、计数器的容量 从一个生活中的例子看起:一个水盆在水龙头下,水龙没关紧,水一滴滴地滴入盆中。水滴不断落下,盆的容量是有限的,过一段时间之后,水就会逐渐变满。录音机上的计数器最多只计到999….那么单片机中的计数器有多大的容量呢?8031单片机中有两个计数器,分别称之为T0和T1,这两个计数器分别是由两个8位的RAM单元组成的,即每个计数器都是16位的计数器,最大的计数量是65536。 三、定时 8031中的计数器除了可以作为计数之用外,还可以用作时钟,时钟的用途当然很大,如打铃器,电视机定时关机,空调定时开关等等,那么计数器是如何作为定时器来用的呢? 一个闹钟,我将它定时在1个小时后闹响,换言之,也可以说是秒针走了(3600)次,所以时间就转化为秒针走的次数的,也就是计数的次数了,可见,计数的次数和时间之间的确十分相关。那么它们的关系是什么呢?那就是秒针每一次走动的时间正好是1秒。

图1 结论:只要计数脉冲的间隔相等,则计数值就代表了时间的流逝。 由此,单片机中的定时器和计数器是一个东西,只不过计数器是记录的外界发生的事情,而定时器则是由单片机提供一个非常稳定的计数源。 那么提供组定时器的是计数源是什么呢?看图1,原来就是由单片机的晶振经过12分频后获得的一个脉冲源。晶振的频率当然很准,所以这个计数脉冲的时间间隔也很准。问题:一个12M的晶振,它提供给计数器的脉冲时间间隔是多少呢?当然这很容易,就是12M/12等于1M,也就是1个微秒。 结论:计数脉冲的间隔与晶振有关,12M的晶振,计数脉冲的间隔是1微秒。 四、溢出 让我们再来看水滴的例子,当水不断落下,盆中的水不断变满,最终有一滴水使得盆中的水满了。这时如果再有一滴水落下,就会发生什么现象?水会漫出来,用个术语来讲就是“溢出”。 水溢出是流到地上,而计数器溢出后将使得TF0变为“1”。至于TF0是什么我们稍后再谈。一旦TF0由0变成1,就是产生了变化,产生了变化就会引发事件,就象定时的时间一到,闹钟就会响一样。至于会引发什么事件,我们下次课再介绍,现在我们来研究另一个问题:要有多少个计数脉冲才会使TF0由0变为1。 五、任意定时及计数的方法 刚才已研究过,计数器的容量是16位,也就是最大的计数值到65536,因此计数计到65536就会产生溢出。这个没有问题,问题是我们现实生活中,经常会有

8254 定时

8254 定时/ 计数器应用实验 学院:计算机学院 专业:网络工程 年级:2012级 班级:120615 姓名:梁国栋 学号:120615109

1 实验目的 1. 掌握8254 的工作方式及应用编程。 2. 掌握8254 典型应用电路的接法。 2 实验设备 PC 机一台,TD-PITE 实验装臵一套。 3 实验内容 1. 计数应用实验。编写程序,应用8254 的计数功能,使用单次脉冲模拟计数,使每当按 动‘KK1+’5 次后,产生一次计数中断,并在屏幕上显示一个字符‘M’。2. 定时应用实验。编写程序,应用8254 的定时功能,产生一个1s 的方波。 4 实验原理 8254 是Intel 公司生产的可编程间隔定时器。是8253 的改进型,比8253 具有更优良的 性能。8254 具有以下基本功能: (1)有3 个独立的16 位计数器。 (2)每个计数器可按二进制或十进制(BCD)计数。 (3)每个计数器可编程工作于 6 种不同工作方式。 (4)8254 每个计数器允许的最高计数频率为10MHz(8253 为2MHz)。(5)8254 有读回命令(8253 没有),除了可以读出当前计数单元的内容外,还可以读 出状态寄存器的内容。 (6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。计数初值公式为:n=f CLKi ÷f OUTi、其中f CLKi 是输入时钟脉冲的频率,f OUTi 是输出波形的频率。 图 4.27 是8254 的内部结构框图和引脚图,它是由与CPU 的接口、内部控制电路和三个 计数器组成。8254 的工作方式如下述: (1)方式0:计数到0 结束输出正跃变信号方式。 (2)方式1:硬件可重触发单稳方式。 (3)方式2:频率发生器方式。 (4)方式3:方波发生器。 (5)方式4:软件触发选通方式。 (6)方式5:硬件触发选通方式。

实验2 定时器/计数器接口扩展设计

实验2 定时器/计数器接口扩展设计 一、实验目的 1、学习8088/86与8253的连接方法。 2、学习8088/86对8253的控制方法。 3、学习8253多级串联实现大时间常数的定时方法。 二、实验原理 利用8088/86外接8253可编程定时器/计数器,可以实现对外部事件进行计数。设置断点读回计数器的值。用8253对标准脉冲信号进行计数,就可以实现定时功能。 三、实验仪器 LAB 6000实验系统,PC 机 四、实验内容 计数器: 本实验中计数器按方式0工作。即十六位二进制计数器。当计数设置好后,计数器就开始计数。如果要读入计数器的值,要先锁存计数值,才能读到计数值。本实验所设计数值为5,也就是外部5个脉冲,计数器值加1。同时OUT 脚输出一个高电平。实验时,可以将OUT0接到LED 上,观察计数器是否工作。 根据以下程序流程图编写完整的实验程序并调试。 参考程序: CONTROL equ 08003h COUNT0 equ 08000h COUNT1 equ 08001h COUNT2 equ 08002h code segment assume cs:code

start proc near mov al, 30h ; 通道0,方式0 mov dx, CONTROL out dx, al mov al, 5 ; 计数器初始值。 mov dx, COUNT0 out dx, al ; 低八位 mov al, 0 out dx, al ; 高八位 Again: mov al, 00000000B ; 锁存计数器值 mov dx, CONTROL out dx, al mov dx, COUNT0 in al, dx ; 读入计数值低八位 mov bl, al in al, dx ; 读入计数值高八位 mov ah, al mov al, bl jmp Again start endp code ends end start 1、定时器: 工作方式0,计数值减完后输出一个脉冲宽度的高电平。而本实验在计数值减完后,管脚状态产生变化(从高到低或从低到高)。直到下一次计数值减完。这样输出的波形为方波。 由于定时常数过大,就要用多级串联方式。本实验采用两级计数器。定时常数分别为100和10000。将计数器的输出接到计数器0输入。计数器0的输出接到LED0。用板上的1MHz做为标准信号,将8253可编程计数器/定时器的时间常数设在1000000次,就可以在定时器的管脚上输出1秒钟高/1秒钟低的脉冲信号。因为8253每个计数器只有十六位,要用两个计数器才能实现一百万次的计数,实现每一秒钟输出状态发生一次反转。 根据以下程序流程图编写完整的实验程序并调试。 参考程序: CONTROL equ 0c003h COUNT0 equ 0c000h COUNT1 equ 0c001h COUNT2 equ 0c002h code segment assume cs:code start proc near mov al, 36h; 00110110B ; 计数器0,16位,方式3,二进制

基本接口技术实验—8254定时计数器应用实验

8254定时/计数器应用实验 1、实验目的 a)掌握8254的工作方式及应用编程; b)掌握8254的典型应用电路接法; c)学习8254在PC系统中的典型应用方法。 2、实验设备 PC机一台,TD-PIT/TD-PIT-B实验装置一套。 3、关于8254定时应用程序的说明 a)在PC/XT机中8254端口的偏移地址为40H~43H。由于8254是减法计数,因此计数的最大初始值为0,而不是FFFFH或9999; b)编程包括两部分:写计数器的控制字和设置计数初值;初始化步骤:写入方式控制字-写入计数值低8位-写入计数值高8位。 c)计数脉冲可以是有规律的,也可以是随机信号。计数初值公式为:n=fCLKi/fOUTi。fCLKi是输入时钟脉冲的频率,fOUTi是输出波型的频率。 d)本实验使用的是PCI板卡申请的第三个I/O空间BASE2,和前面的偏移地址相加即可。 e)运行Tddebug软件,选择Edit菜单,根据实验内容的描述编写实验程序。 f)使用Compile菜单中的bulidall完成汇编和链接。 g)使用Rmrun菜单中的Run运行程序,观察运行结果,或使用Rmrun菜单中的Debug调试程序,观察调试过程中指令执行后各寄存器及数据区的内容。 4、实验内容 a)电子发声实验。编写程序让PC机和实验装置上的扬声器唱歌。PC机中8254的时钟信号为1.19318MHz,采用计数器2的方式3,实验装置采用信号源1MHZ 作为扬声器发声基准时钟,计数器0工作方式设置为3。 程序: assume cs:code,ds:data,ss:stack stack segment dw 512 dup (0) stack ends data segment dw 256,288,320,341,384,426,480,512,0 data ends code segment start: next1: mov cx,08h mov ax,data mov ds,ax mov si,0 next: call sound add si,2 mov ax,[si] loop next jmp next1 in al,61h and al,0fch out 61h,al sound:push cx push si push ax mov al,10110110b out 43h,al

单片机定时器计数器实验报告

单片机定时器计数器实验报告 篇一:单片机计数器实验报告 计数器实验报告 ㈠实验目的 1. 学习单片机内部定时/计数器的使用和编程方法; 2. 进一步掌握中断处理程序的编程方法。 ㈡实验器材 1. 2. 3. 4. 5. G6W仿真器一台 MCS—51实验板一台 PC机一台电源一台信号发生器一台 ㈢实验内容及要求 8051内部定时计数器,按计数器模式和方式1工作,对 P3.4(T0)引脚进行计数,使用8051的T1作定时器,50ms 中断一次,看T0内每50ms来了多少脉冲,将计数值送显(通过LED发光二极管8421码来表示),1秒后再次测试。 ㈣实验说明 1. 本实验中内部计数器其计数器的作用,外部事件计数器脉冲由P3.4引入 定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变,这就要求被采样电平至少维持一个完整的机器周期,以保证电

平在变化之前即被采样,同时这就决定了输入波形的频率不能超过机器周期频率。 2. 计数脉冲由信号发生器输入(从T0端接入)。 3. 计数值通过发光二极管显示,要求:显示两位,十位用L4~L1的8421 码表示,个位用L8~L5的8421码表示 4. 将脉搏检查模块接入电路中,对脉搏进行计数,计算出每分钟脉搏跳动 次数并显示 ㈤实验框图(见下页) 程序源代码 ORG 00000H LJMP MAIN ORG 001BH AJMP MAIN1 MAIN: MOV SP,#60H MOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOV TH1,#3CHMOV TL0,#00H ;T0的中断入口地址 ;设置T1做定时器,T0做计数器,都于方式1工作 ;装入中断次数 ;装入计数值低8位 ;装入计数值高8位 MOV TH0,#00H SETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0 SETB ET1 ;允许T1中断 SETB EA ;允许CPU中断 SJMP $;

计数器定时器设计与应用

实验9 —计数器定时器设计与应用姓名:学号:专业: 课程名称:逻辑与计算机设计基础实验同组学生姓名: 实验时间:实验地点:指导老师: 一、实验目的和要求 实验目的: 1、掌握二进制计数器/定时器的工作原理与设计方法 2、掌握用计数器进行分频的概念和方法 实验任务: 设计一个数字钟,使用60进制和24(12)进制计数器,实现24小时内时间的实时显示。60进制计数器用10进制与6进制计数器的组合来实现;24(12)进制可用类似方法实现。 采用4个计数器分别实现分钟的个位、分钟的十位、小时 的个位、小时的十位计数。 数字钟的初值通过初始化语句来实现,用数码管前两位显示小时的十位和个位,后两位显示分钟的十位和个位。 把时钟加到多功能计算器中。 二、实验内容和原理 计数器是复杂数字系统和计算机硬件系统中的一个基本部件,是计数、分频、定时、同步和时基等电路的核心,在 计算机、网络、通信等设备中经常使用到。 本实验以计数器为例,采用行为级描述的方法设计时序电路,实现各种常用的计数器和定时器。 1、60进制的实现: ? 60进制计数器用10进制与6进制计数器的组合来实现

2、24进制的实现: ? 24进制计数器用4进制与6进制计数器的组合来实现 3、生成分钟: 分钟的生成以秒脉冲为时钟信号,将10进制和6进制组合成60进制,并产生小时脉冲信号。 module m_gen_min(clk_sec, clk_hour, min_low, min_high); input wire clk_sec; output reg clk_hour; output reg[3:0] min_low, min_high; reg [15:0] cnt; always @(posedge clk_sec) begin if (clk_hour == 1) clk_hour = 0; if (cnt == 59) begin cnt = 0; if (min_low == 9) begin min_low = 0; /* base 10 */ if (min_high == 5) begin min_high = 0; /* base 6 */ clk_hour = 1;

相关文档
相关文档 最新文档