微机原理实验:定时器计数器
定时器计数器实验报告
定时器计数器实验报告
《定时器计数器实验报告》
实验目的:通过定时器计数器实验,掌握定时器的基本原理和使用方法,以及
探究定时器在电子设备中的应用。
实验材料:定时器计数器、电源供应器、示波器、电阻、电容等元器件。
实验步骤:
1. 搭建电路:按照实验指导书上的电路图,搭建定时器计数器的电路。
2. 接通电源:将电路接通电源,并调节电源供应器的输出电压和电流。
3. 调节参数:通过调节电阻、电容等元器件的数值,调节定时器计数器的工作
频率和工作周期。
4. 测量波形:使用示波器测量定时器计数器输出的波形,观察波形的频率、占
空比等参数。
5. 实验记录:记录实验过程中的关键参数和观察结果,包括电路连接方式、元
器件数值、波形频率和占空比等。
实验结果:
经过实验观察和记录,我们得出了定时器计数器在不同参数设置下的工作波形,包括方波、脉冲波等。
通过调节电阻、电容等元器件的数值,我们成功改变了
定时器计数器的工作频率和工作周期,并且得到了不同频率和占空比的波形。
实验总结:
通过本次实验,我们深入了解了定时器计数器的工作原理和使用方法,掌握了
定时器在电子设备中的应用。
定时器计数器是一种非常重要的电子元器件,广
泛应用于各种电子设备中,如计时器、脉冲发生器、频率分频器等。
掌握了定
时器计数器的基本原理和使用方法,对我们今后的电子工程实践和研究具有重要意义。
在今后的学习和工作中,我们将继续深入研究和应用定时器计数器,不断提高自己的电子技术水平,为电子设备的设计和应用做出更大的贡献。
微机实验报告——定时器计数器
实验三8253定时器/计数器实验一、实验目的1.学会8253芯片与微机接口的原理和方法。
2.掌握8253定时器/计数器的工作原理和编程方法。
二、实验内容编写程序,将8253的计数器0设置为方式2(频率发生器),计数器1设置为方式3(方波频率发生器),计数器0的输出作为计数器1的输入,计数器1的输出接在一个LED上,运行后可观察到该LED在不停地闪烁。
1.编程时用程序框图中的二个计数初值,计算OUT1的输出频率,用表观察LED,进行核对。
2.修改程序中的二个计数初值,使OUT1的输出频率为1Hz,用手表观察LED,进行核对。
3.上面计数方式选用的是 16 进制,现若改用 BCD 码,试修改程序中的二个计数初值,使LED的闪亮频率仍为1Hz。
三、实验区域电路连接图CS3→0040H;JX8→JX0;IOWR→IOWR;IORD→IORD;A0→A0;A1→A1;GATE0→+5V;GATE1→+5V;OUT0→CLK1;OUT1→L1;CLK0→0.5MHz;(单脉冲与时钟单元)四、程序框图8253方式控制字五、编程程序code segmentassumecs:codeorg 1000hstart:mov dx,43h /控制字地址/ mov al,00110100boutdx,almov dx,40h /计时器0地址/mov al,0F4houtdx,almov al,01h /计数器0写入初值01F4H/outdx,almov dx,43hmov al,01110110boutdx,almov dx,41h /计时器1地址/mov al,0E8houtdx,almov al,3h /计数器1写入初值03E8H/out dx,al /分两次赋值,先低八位0E8H,后高八位03H/jmp $ /8253自行控制led灯/code endsend start六、实验步骤1. 按连线图连接好,检查无误后打开实验箱电源。
定时器计数器实验报告
定时器计数器实验报告简介:定时器是一种用来产生、计数和处理时间信号的计时装置。
在数字电路中,定时器主要分为内部定时器和外部定时器两类,内部定时器是在单片机内部实现的,外部定时器则是通过外部电路实现的。
计数器则是一种用来计数的电子元件,根据不同的使用场合和要求,计数器可以分为多种类型。
在嵌入式系统中,定时器计数器应用广泛,例如在时钟、延时、计数等方面都有很大的作用。
实验目的:1. 学习定时器和计数器的基本原理及应用。
2. 熟悉定时器和计数器在单片机中的编程方法。
3. 掌握通过定时器和计数器实现延时和计数功能的方法。
实验器材:1. STM32F103C8T6开发板2. ST-LINK V2下载器3. 电脑实验内容:一、实验1:使用定时器和计数器实现延时功能1. 在Keil C中新建一个工程,并编写以下程序代码:```#include "stm32f10x.h"void TIM2_Int_Init(u16 arr,u16 psc){TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;NVIC_InitTypeDef NVIC_InitStructure ;RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);TIM_TimeBaseStructure.TIM_Period = arr;TIM_TimeBaseStructure.TIM_Prescaler=psc;TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode _Up;TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);TIM_ITConfig(TIM2,TIM_IT_Update,ENABLE );NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure);TIM_Cmd(TIM2, ENABLE);}void TIM2_IRQHandler(void){if (TIM_GetITStatus(TIM2, TIM_IT_Update) != RESET) {TIM_ClearFlag(TIM2, TIM_FLAG_Update);GPIO_WriteBit(GPIOB,GPIO_Pin_12,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOB,GPIO_Pin_12)));}}int main(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStructure);TIM2_Int_Init(9999,7199);while (1);}```2. 将STM32开发板连接到电脑,并下载程序到开发板中。
微机原理实验定时器计数器
微机原理实验定时器计数器YUKI was compiled on the morning of December 16, 2020可编程定时器/计数器(8253)一、实验目的掌握8253的基本工作原理和编程方法。
二、实验内容1.按下图虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0遍高电平)。
2.按下图连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1Hz)。
三、编程提示8253控制寄存器地址: 283H—0C403H计数器0地址: 280H—04C400H计数器1地址: 281H—04C401HCLK0连接时钟:1MHz。
2、程序参考流程图四、程序设计及实验调试程序设计的思想及注意事项:第一个实验,在编程时要注意机器识别的ASCII 码和输入数据数字的区别,可以根据书上ASCII 码和输入数据的转换关系,当数据在0—9之间,对数据加30H 即可对应机器识别的ASCII 码,对于A —F 之间则加37H 。
编程时采用了二号功能键输出显示,六号功能键进行输入操作。
第二个实验,在向计数器0和计数器1送初始值时,要注意先送低字节后送高字节,送入的数据应是1000而非1000H ,否则最后出现逻辑笔跳变的时间不是1s 。
实验一:CODE SEGMENTASSUME CS:CODESTART: MOV DX,0C403HMOV AL,00010000B ;计数器0工作方式为0 OUT DX,ALMOV DX,0C400HMOV AL,09H ;送计数器初值OUT DX,ALXUNHUAN: MOV DX,0C400HIN AL,DX ;读计数器的值CMP AL,9JG BIGADD AL,30H ;0到9,显示ASCII码JMP JUDGEBIG: ADDAL,37H ;大于9,显示ASCII码 JMP JUDGEJUDGE: MOV DL,ALMOV AH,02HINT 21H ;使用02H功能输出显示MOV DL,0FFHMOV AH,06HINT 21H ;执行键盘输入操作JZ XUNHUANMOV AH,4CHINT 21H ;返回操作系统CODE ENDSEND START实验中遇到问题及分析:编写程序时,由于要将结果显示在屏幕上,所以要对写入的值读出来,编写MOV DX,0C400H IN AL,DX 语句即可实现。
微机原理实验 可编程定时器计数器82548253实验
图2 8253/8254定时器/计数器实验连线图
六、实验源程序清单
CODE SEGMENT
ASSUME CS:CODE
ORG 100H
START:MOV AL, 00010110B;控制字00-计数器0,01-低8位,011-方式3,0-二进制
OUT 03H,AL;将控制字写入控制寄存器
实验报告(45)
总分
指导教师签字:
年月日
备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
图1可编程定时器/计数器8253/8254原理图
(2).计数器都有6种工作方式:
方式0—计数过程结束时中断;
方式1—可编程的单拍脉冲;
方式2—频率发生器;
方式3—方波发生器;
方式4—软件触发;
方式5—硬件触发。
(3)6种工作方式主要有5点不同:
一是启动计数器的触发方式和时刻不同;二是计数过程中门控信号GATE对计数操作的影响不同;三是OUT输出的波形不同;四是在计数过程中重新写入计数初值对计数过程的影响不同;五是计数过程结束,减法计数器是否恢复计数初值并自动重复计数过程的不同。
九、实验总结
硬件实验相对来说趣味性大了很多,同时也使得程序没那么复杂不过存在的问题突出表现于受到硬件实验条件的制约,硬件上的小问题就有可能导致不能出显预想的结果这也就使得在硬件连接上要很小心。
十、思考题
1.若8254模块选通线CS连到MCU主模块的地址A12,则应如何修改程序?
答:改变了存储芯片的地址范围所以将程序对应的地址范围改过即可。接A12对应地址范围是6800~6FFFH;接A14对应地址范围是3800~3FFFH。
微机原理实验---定时计数器应用实验
深圳大学实验报告课程名称:微机计算机设计实验项目名称:8254 定时/计数器应用实验学院:信息工程学院专业:电子信息工程指导教师:报告人:学号:**********班级:<1>班实验时间:2011. 05. 26实验报告提交时间:2011. 06. 09教务处制一、实验目的1. 掌握8254 的工作方式及应用编程。
2. 掌握8254 典型应用电路的接法。
二、实验要求1. 计数应用实验。
编写程序,应用8254 的计数功能,使用单次脉冲模拟计数,使每当按动‘KK1+’5 次后,产生一次计数中断,并在屏幕上显示一个字符‘M’。
三、实验设备PC 机一台,TD-PITE 实验装置或TD-PITC 实验装置一套。
四、实验原理1、8254 是Intel 公司生产的可编程间隔定时器。
是8253 的改进型,比8253 具有更优良的性能。
8254 具有以下基本功能:(1)有3 个独立的16 位计数器。
(2)每个计数器可按二进制或十进制(BCD)计数。
(3)每个计数器可编程工作于6 种不同工作方式。
(4)8254 每个计数器允许的最高计数频率为10MHz(8253 为2MHz)。
(5)8254 有读回命令(8253 没有),除了可以读出当前计数单元的内容外,还可以读出状态寄存器的内容。
(6)计数脉冲可以是有规律的时钟信号,也可以是随机信号。
计数初值公式为:n=fCLKi÷fOUTi、其中fCLKi 是输入时钟脉冲的频率,fOUTi 是输出波形的频率。
计数器组成。
8254 的工作方式如下述:(1)方式0:计数到0 结束输出正跃变信号方式。
(2)方式1:硬件可重触发单稳方式。
(3)方式2:频率发生器方式。
(4)方式3:方波发生器。
(5)方式4:软件触发选通方式。
(6)方式5:硬件触发选通方式。
8254 的内部结构框图和引脚图2、8254 的控制字有两个:一个用来设置计数器的工作方式,称为方式控制字;另一个用来设置读回命令,称为读回控制字。
实验二定时器计数器实验
实验二定时器计数器实验1.实验目的①掌握8051的定时器、中断系统编程方法;②了解定时器的应用、实时程序的设计和调试技巧。
2.预习要求①理解定时器的四种工作方式的异同点;②理解TMOD寄存器中GATE、C/T控制位的作用;③理解定时器中断服务程序的响应过程;④理解定时器实现精确定时的方法;⑤认真预习本节实验内容,设计出器件之间的实验连接线,自行编写程序,填写实验报告。
3.实验设备计算机1台;ZDGDTH-1型80C51实验开发系统1套;2号导线、8P数据线若干条;4.基础型实验内容①如图2-1所示,假设采用P1.0口控制外部LED,用拨动开关控制外部中断,用二号导线将D2区80C51/C8051F020MCU模块的 P1.0、P3.2口分别与A 5区八位逻辑电平显示模块的L0、C6区八位逻辑电平输出K0相连。
在Keil环境运行以下程序,分别拨动K0于高低电平位置,观察实验现象,并说明所发生实验现象的原因。
图2-1 外部中断及LED显示电路ORG 0000HLJMP MAINORG 000BHLJMP TIMER0ORG 0030HMAIN: CLR P1.0MOV TMOD,#0AHMOV TL0,#50HMOV TH0,#50HSETB TR0SJMP $TIMER0: CPL P1.0RETIEND②用二号导线将80C51/C8051F020 MCU模块的P1.0与八位逻辑电平显示模块的任意一只发光二极管相连,全速运行下列程序,发光二极管隔一秒点亮一次,点亮时间为一秒。
流程图为:主程序框图定时中断子程序图源程序:Tick equ 10000 ; 10000 x 100us = 1sT100us equ 20 ; 100us时间常数(6M)C100us equ 5h ; 100us记数单元LEDBuf BIT 00HLED BIT P1.0org 0000Hljmp Startorg 000BHLJMP T0IntORG 0100HT0Int: push PSWmov a, C100us+1jnz Goondec C100usGoon: dec C100us+1mov a, C100usorl a, C100us+1jnz Exit ; 100us 记数器不为0, 返回mov C100us, #HIGH(TICK);#high(Tick)mov C100us+1, #LOW(TICK);#low(Tick)cpl LEDBuf ;100us 记数器为0, 重置记数器,取反LEDExit: pop PSWretiStart: mov TMOD, #02h ; 方式2, 定时器mov TH0, #t100usmov TL0, #t100usmov IE, #10000010b ; EA=1, IT0 = 1setb TR0 ; 开始定时clr LEDBufclr P1.0mov C100us, #high(Tick)mov C100us+1, #low(Tick)Loop: mov c, LEDBufmov P1.0, csjmp Loopend5.设计型实验内容①编程使第1~4和5~8发光二极管循环点亮的时间分别为0.25s、0.5s、0.75s、1s。
定时器计数器实验报告
定时器计数器实验报告定时器计数器实验报告引言:定时器计数器是一种常用的电子元件,它可以在电路中起到计时和计数的作用。
在本次实验中,我们将探索定时器计数器的基本原理和应用,并通过实际操作来验证其性能和功能。
一、实验目的本次实验的目的是熟悉定时器计数器的工作原理,掌握其使用方法,并通过实验验证其性能和功能。
二、实验器材和原理1. 实验器材:- 定时器计数器模块- 电源- 示波器- 连接线- 电阻、电容等元件2. 实验原理:定时器计数器是一种能够产生精确时间间隔的电子元件。
它通常由一个时钟信号源和一个计数器组成。
时钟信号源提供固定频率的脉冲信号,计数器根据时钟信号的输入进行计数,并在达到设定值时触发相应的操作。
三、实验步骤1. 连接电路:将定时器计数器模块与电源和示波器连接起来,确保电路连接正确。
2. 设置参数:根据实验要求,设置定时器计数器的工作频率、计数范围等参数。
这些参数可以通过调节电阻、电容等元件来实现。
3. 运行实验:启动电源,观察示波器上的波形变化。
根据设定的参数,定时器计数器将在一定时间间隔内产生脉冲信号,并在达到计数值时触发相应的操作。
4. 数据记录和分析:记录实验过程中的数据和观察结果,并进行分析。
比较实验结果与理论预期的差异,找出可能的原因并提出改进措施。
四、实验结果与讨论通过实验,我们观察到定时器计数器在不同参数设定下的工作情况。
根据实验数据和观察结果,我们可以得出以下结论:1. 定时器计数器的工作频率与输入时钟信号的频率有关。
当时钟信号频率较高时,定时器计数器的计数速度也会相应增加。
2. 定时器计数器的计数范围决定了其能够计数的最大值。
当计数器达到设定的计数范围时,将触发相应的操作。
3. 定时器计数器可以应用于各种计时和计数的场合,如脉冲计数、频率测量等。
通过调节参数,可以实现不同的功能。
根据实验结果,我们可以进一步探索定时器计数器的应用领域和优化方法,提高其性能和功能。
五、实验总结通过本次实验,我们深入了解了定时器计数器的原理和应用。
PLC实验二 定时器、计数器实验
实验二定时器、计数器实验一、目的要求1、了解和熟悉编程软件的使用方法。
2、了解写入和编辑用户程序的方法。
3、掌握定时器、计数器的使用。
二、实验设备台达可编程序控制器一台;PLC实验箱一台;装有WPL编程软件和开发软件的计算机一台;编程连接电缆一根。
三、实验内容1、实验原理定时器相当于继电器电路中的时间继电器,可在程序中作延时控制。
可编程控制器中的定时器是根据时钟脉冲累积计时的,时钟脉冲有1ms、10ms、100ms等不同规格。
(定时器的工作过程实际上是对时钟脉冲计数)因工作需要,定时器除了占有自己编号的存储器位外,还占有一个设定值寄存器(字),一个当前值寄存器(字)。
设定值寄存器(字)存储编程时赋值的计时时间设定值。
当前值寄存器记录计时当前值。
这些寄存器为16位二进制存储器。
其最大值乘以定时器的计时单位值即是定时器的最大计时范围值。
定时器满足计时条件开始计时,当前值寄存器则开始计数,当当前值与设定值相等时定时器动作,常开触点接通,常闭触点断开,并通过程序作用于控制对象,达到时间控制的目的。
TMR为十六位定时器,当该指令执行时,其所指定的定时器线圈受电,定时器开始计时,当到达所指定的定时值(计时值≥设定值),其接点动作如下:CNT为十六位计数器,当该指令由Off→On执行,表示所指定的计数器线圈由失电→受电,则该计数器计数值加1,当计数到达所指定的定数值(计数值= 设定值),其接点动作如下:??当计数到达之后,若再有计数脉冲输入,其接点及计数值均保持不变,若要重新计数或作清除的动作,请利用RST指令。
编程使PLC输出Y0输出3秒的脉冲,PLC输入1对脉冲计数,计数值为10时,PLC输出Y1输出为1,第11个脉冲清零。
OUTPUT00OUTPUT012、示范梯形图3、接线方法:INPUT 00接PO1INPUT 01接PO2OUTPUT 01 接输出显示LED灯FL1四、实验步骤1、按实验要求对PLC编程,或运行PLC程序DVP2;2、下载实验程序,成功完成后,使PLC处于运行状态,RUN指示灯亮;3、按下PO1十次观察输出变化,LED灯亮;此时按下PO2,LED灯灭。
微机原理实验4 可编程定时器计数器8253
实验三可编程定时器/计数器8253要求:按图15连接电路,并将OUT0接指示灯(高电红灯亮、低电平绿灯亮)。
将计数器0、计数器1分别设置为方式3,已知CLK0输入为1MHz的方波,计算两计数器的计数初值,使OUT1输出1s为周期的方波,接着退出程序返回DOS流程图:初始化计数器1初始化计数器0按任意键返回dos程序:stack segment stack 'stack'dw 32 dup (0)stack endsdata segmenttip db 'quit the program.$'data endscode segmentstart proc farassume ss:stack, cs:code,ds:datapush dssub ax,axpush axmov ax,datamov ds,axmov dx,283hmov al,77hout dx,almov dx,281hmov al,00hout dx,almov al,10hout dx,almov dx,283hmov al,37hout dx,almov dx,280hmov al,00hout dx,almov al,10hout dx,almov dx,offset tipmov ah,9int 21hmov ah,8int 21hmov ah,4chint 21hretstart endpcode endsend start分析总结:这次的程序真心是没什么好说的了,初始化完后就没有然后了(话说这也能叫程序的······),本来按我的想法得有一个输入计数值的结构和一秒自动检测误差的结构的,关于输入结构前面的实验已经出现过了应该不是很难办,而延时结构就比较麻烦了,直接的调用int 15h,ah 86h功能不知为啥老是出问题,也不晓得是不是我格式错了,而通过指令循环凑出1s延迟计算起来有些麻烦,稳定性可能还有些问题,这个可能还得去查多点资料了,不过只要延迟精确了误差也就几条指令罢了,之后显示的话也就稍微麻烦点而已了。
微机实验 可编程定时器计数器8253
微机原理实验报告实验题目:可编程定时器/计数器8253一、实验目的1、学习8253可编程定时器/计数器定时方法2、学习8253多级串联实现大时间常数定时方法二、实验内容编一个1秒定时子程序,并提示有键盘读入要计时的时间,并把数值显示在屏幕上三、实验器材微机原理实验箱1个电脑(带TPC-USB软件)1台插线若干四、实现过程1、流程图2、程序源代码;*****************************************IOY0 EQU 280H;*****************************************MY8253_COUNT0 EQU IOY0+00HMY8253_COUNT1 EQU IOY0+01HMY8253_COUNT2 EQU IOY0+02HMY8253_MODE EQU IOY0+03H;*****************************************MY8255IOY0 EQU 2A0H;*****************************************MY8255_A EQU MY8255IOY0+00HMY8255_B EQU MY8255IOY0+01HMY8255_C EQU MY8255IOY0+02HMY8255_MODE EQU MY8255IOY0+03HSTACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSDATA SEGMENTCOUNTER2 DB 0MESG1 DB 'Please input your number:',0DH,0AH,'$' ;提示语一,请输入数字MESG2 DB 'It is counting:',0DH,0AH,'$';提示语二,正在计数MESG3 DB 'Wrong input,please input again:',0DH,0AH,'$';提示语三,输入错误,请重新输入DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DX,OFFSET MESG1 ;输出提示语MOV AH,9INT 21HDEAL: MOV AH,1 ;读入一个数字INT 21HCMP AL,'0'JL EXITCMP AL,'9'JG EXITMOV BL,ALSUB BL,30H ;把输入的ASCII码转化成数字ADD COUNTER2,BL ;COUNTER2+=INPUTMOV CH,00HMOV CL,COUNTER2MOV DL,0DH ;回车换行MOV AH,02INT 21HMOV DL,0AHMOV AH,02INT 21HONE_SECOND:MOV AL,CL ;输出当前计数值CXADD AL,30HMOV DL,ALMOV AH,02INT 21HMOV DL,0DH ;回车换行MOV AH,02INT 21HMOV DL,0AHMOV AH,02INT 21HMOV DX,MY8253_MODE ;计数器0,方式3,十进制计数MOV AL,37HOUT DX,ALMOV DX,MY8253_COUNT0 ;装入初值MOV AL,00H ;1000分频OUT DX,ALMOV AL,10HOUT DX,ALMOV DX,MY8253_MODE ;计数器1,方式0,十进制计数MOV AL,71HOUT DX,ALMOV DX,MY8253_COUNT1 ;装入初值MOV AL,00H ;1000分频MOV AL,10HOUT DX,ALMOV DX,MY8255_MODEMOV AL,89HOUT DX,ALMOV DX,MY8255_CL1: IN AL,DX ;判断PC7口是否为高,即计数一秒是否已到TEST AL,80HJZ L1DEC CXJNZ ONE_SECONDQUIT:MOV AX,4C00HINT 21HEXIT: MOV DX,OFFSET MESG3 ;输入范围错误,提示重新输入MOV AH,9INT 21HJMP DEALCODE ENDSEND START3、实验结果图五、实验改进1、说明本实验中课本上只给出了0~9秒的计数,而实际运用的时候我们经常会需要用到任意值的定时,因此我们做了改进,计时可以输入任意数,若要输出到屏幕则能计数0~992、流程图注:改进的地方是分十位和个位进行存储和输出显示六、小结1、通过本次试验,我进一步了解了8253的定时和计数功能,以及如何通过串联定时器的方式实现大时间常数的定时。
实验五 定时器计数器实验
实验五定时器/计数器实验
一.实验目的
1.学习内部计数器、定时器的使用方法和编程方法
2.学习用查询方式应用定时器
3.掌握用中断方式应用定时器
二.实验设备
电脑、THDPJ-2型单片机开发综合实验箱及连接线
三.实验内容
1.将E:\原始程序\T10-计数器.asm,另存为E:\ 班级文件夹\个人文件夹\*.asm,接线并运行程序,记录结果。
接线方法:T0端接单次脉冲发生器,P1口接LED灯。
2.用查询定时器溢出方式实现1秒延时,并取代实验1(流水灯实验)中的延时1秒的子程序(当然,仍可以将延时写成子程序)。
3.用中断方式实现步骤2。
(自编流程图及程序)
4.(选作)在步骤3的基础上增加一个外部中断(INT0)。
一旦中断,要求显示高4位亮2秒(用循环子程序实现延时2秒)。
四.实验报告要求:每个步骤有硬件接线图、流程图,有程序,有观察到的现象。
最后有实验心得。
主程序框图
主程序框图。
定时计数器实验报告
定时计数器实验报告
目录
1. 研究背景
1.1 定时计数器的定义
1.2 定时计数器的应用领域
2. 研究内容
2.1 定时计数器的原理
2.2 定时计数器的工作原理
3. 研究意义
3.1 定时计数器在日常生活中的作用
3.2 定时计数器在工业生产中的作用
1. 研究背景
1.1 定时计数器的定义
定时计数器是一种用来记录特定时间间隔的工具或设备,通常用于计时或计数任务。
1.2 定时计数器的应用领域
定时计数器广泛应用于实验室科研、体育比赛、生产制造等领域,能够帮助人们准确记录时间和次数,提高工作效率。
2. 研究内容
2.1 定时计数器的原理
定时计数器通过内置的计时芯片或机械装置,能够精确地测量时间间隔,同时记录计数值。
2.2 定时计数器的工作原理
定时计数器先设定计时或计数的目标值,然后启动计时器,根据预设的条件自动停止计时或计数,并显示结果。
3. 研究意义
3.1 定时计数器在日常生活中的作用
定时计数器可以帮助人们管理时间,提醒完成任务的进度,规划
生活,提高效率。
3.2 定时计数器在工业生产中的作用
定时计数器在工业生产中可以用于监控生产流程的时间和数量,保证生产效率和质量。
微机接口技术实验定时计数器8253
微机接口技术实验定时/计数器(8253)1. 实验原理TPC-USB平台上有一块8253定时/计数器芯片,除了片选引脚,其他信号都已接好。
有关结构和编程,请参考本章前几节内容。
2. 实验内容(1)计数器方式0实验将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动开关逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。
步骤如下:1)按图2.1虚线连接电路。
图2.1 TPC-USB平台计数器方式0实验连线图2)根据流程图2.2,编程并运行,观察实验结果。
图2.2 TPC-USB平台计数器方式0实验流程图3)实验代码:CODE SEGMENTASSUME CS:CODESTART:MOV AL,10HMOV DX,283HOUT DX,ALMOV AL,0FHMOV DX,280HOUT DX,ALLL: MOV AL,00HMOV DX,283HOUT DX,ALMOV DX,280HIN AL,DXCMP AL,9JBE L1ADD AL,7L1:ADD AL,30HMOV DL,ALMOV AH,2INT 21HMOV DL,0DHMOV AH,02HINT 21HMOV DL,0AH MOV AH,02H INT 21HMOV AH,6MOV DL,0FFH INT 21H JZ LLMOV AH, 4CH INT 21H CODE ENDS END START(2)计数器方式3实验将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1Hz)。
步骤如下:1)按图2.3连接电路。
U5 8253+5V+5V图2.3 TPC-USB 平台计数器方式3实验连线2)根据流程图2.4,编程并运行,观察实验结果。
图2.4 TPC-USB平台计数器方式3实验流程图3)实验代码:CODE SEGMENTASSUME CS:CODESTART:MOV AL,37HMOV DX,283HOUT DX,ALMOV AL,00HMOV DX,280HOUT DX,ALMOV AL,10HOUT DX,ALMOV AL,77HMOV DX,283HOUT DX,ALMOV AL,00HMOV DX,281HOUT DX,ALMOV AL,10HOUT DX,ALMOV AH,4CHINT 21HCODE ENDSEND START(3)计数器级联实验将计数器0设置为方式3(方波),计数器1设置为方式2(分频)。
定时器计数器的定时实验
定时器计数器的定时实验简介本文将介绍定时器计数器的定时实验,主要涉及定时器计数器的原理、使用方法以及实验步骤。
定时器计数器是一种常用的计时设备,广泛应用于各种计时场景。
定时器计数器的原理定时器计数器是一种能够精确计时的设备,它通常由一个可编程的时钟和一个计数器组成。
计数器根据时钟的脉冲信号进行计数,从而实现计时的功能。
定时器计数器的工作原理如下:1.初始化计数器:将计数器的初始值设置为0。
2.启动计数器:通过控制信号将时钟输入到计数器中,开始计数。
3.计数过程:计数器根据时钟的脉冲信号进行计数,每接收到一个时钟脉冲,计数器的值加1。
4.判断定时完成:当计数器的值等于设定的定时值时,表示定时完成。
5.停止计数器:定时完成后,停止时钟信号的输入,计数器停止计数。
定时器计数器的使用方法定时器计数器通常由软件通过编程的方式进行使用,具体方法如下:1.初始化定时器计数器:首先,需要将计数器的初始值设置为0,并且设定定时的时间。
2.启动计数器:通过控制信号将时钟输入到计数器中,开始计数。
3.监测计数器的值:在计数的过程中,可以通过查询计数器的值来获取当前的计时结果。
4.判断定时完成:当计数器的值等于设定的定时值时,表示定时完成。
5.停止计数器:定时完成后,停止时钟信号的输入,计数器停止计数。
实验步骤以下是一个简单的实验步骤,用于演示定时器计数器的定时功能:1.准备硬件:–打开开发板,并确保定时器计数器的引脚与外部设备连接正常。
–连接调试器,以便在实验过程中监测计数器的值。
2.编写代码:–在开发环境中,编写一段代码,完成实验的需求,包括初始化计数器、设定定时值等。
3.烧录程序:–将编写好的程序烧录到开发板中。
4.启动实验:–启动开发板,开始实验。
5.监测计数器的值:–在实验过程中,通过调试器监测计数器的值,以便实时了解计时结果。
6.判断定时完成:–当计数器的值等于设定的定时值时,表示定时完成,可以进行相关操作,如触发其他事件、输出提示信息等。
微机原理 单片机 实验4 定时计数器应用
MOV TH0,# H MOV TL0,# H SETB ET0 SETB EA SETB ET1 MOV TH1,# H MOV TL1,# H SETB TR0 SETB TR1 SJMP $ DVT0 :MOV TH0,# H MOV TL0,# H CPL P1.7 RETI DVT1: MOV TH1,# H MOV TL1,# H CPL P1.6 RETI END
mov mov mov setb ajmp int_timer0: mov mov djnz mov djnz mov cpl l1: reti end
ie,#82h 30h,#10 31h,#6 tr0 $
;设置中断允许寄存器
;30H和31H是两个软件计数器。 ;启动定时 ;原地踏步 ;定时器0中断服务程序。 th0,#high (65536-50000) tl0,#low(65536-50000) ;重设50MS定时。 30h,l1 30h,#10 31h,l1 31h,#6 ;软件计数 p1.1 ;10*6*50MS=3000MS时间到,P1.1取反 ;中断返回
实验四 定时计数器应用
一、实验目的:
1、单片机系统中,可以用软件或硬件定时,当定时时 间较长,定时准确率要求较高时,应采用硬件定时。 MCS—51系列单片机中有2个16位的可编程定时/计 数器T0和T1,通过本实验要求掌握T0、T1的初始化 编程和应用。 2、熟悉XLISP系列 单片机综合仿真试验仪的组成和 使用方法。学会应用XLISP仿真试验和keil-uvision2集 成调试软件进行仿真实验。掌握仿真实验的步骤并能 得到正确的实验结果。
Байду номын сангаас
4、思考题: P1口接8个LED灯循环点亮(间隔1s),P3.2接键盘, 按下后实现中断,使全部LED灯闪烁(间隔0.5s)5次 后继续循环点亮。 间隔时间(1s和0.5s)用定时计数器定时实现。
第8章 微机原理-定时器-计数器
;置T0为计数器方式2 ;置计数初值 ; ;启动T0工作 ;CPU开中断 ;允许T0中断
徐医医学影像学院
思考
• 使用T1,以工作方式1,定时5s(晶振频率为 6MHz)。
第8章 定时器\计数器
8.1 概述 8.2 定时/计数器的结构和工作原理 8.3 定时/计数器的控制 8.4 定时/计数器的功能扩展
8.4 定时/计数器的功能扩展
一、8253的主要功能
• (1)具有3个独立的16位计数器; • (2)每个计数器都可按二进制或BCD码进行计数; • (3)每个计数器有6种工作方式;
复习
(5)TF0—T0溢出中断请求标志位。 T0计数后,溢出时,由硬件置“1”TF0,向CPU申请中断,CPU响应TF0中 断,此标志一直保持到CPU响应中断后,硬件才自动清“0”TF0,TF0也可 由软件清0。
(6)TF1—T1的溢出中断请求标志位,功能和TF0类似。 TR1、TR0 2个位与中断无关。
第8章 定时器\计数器
8.1 概述 8.2 定时/计数器的结构和工作原理 8.3 定时/计数器的控制 8.4 定时/计数器的功能扩展
第8章 定时器\计数器
8.1 概述 8.2 定时/计数器的结构和工作原理 8.3 定时/计数器的控制 8.4 定时/计数器的功能扩展
8.1 概述
➢实现定时常用的三种方法:
8.1 概述 8.2 定时/计数器的结构和工作原理 8.3 定时/计数器的控制 8.4 定时/计数器的功能扩展
8.3 定时/计数器的控制
TMOD:工作方式;TCON控制启动和中断申请。
8.3.1 控制寄存器TCON
TCO
N
TF1 TR1 TF0 TR0 IE1
(88H)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可编程定时器 / 计数器( 8253 )
一、实验目的
掌握8253 的基本工作原理和编程方法。
二、实验内容
1.按下图虚线连接电路,将计数器0设置为方式0,计数器初值为N( N V OFH, 用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电
平变化(当输入N+1个脉冲后OUT(遍高电平)。
2. 按下图连接电路,将计数器0、计数器1 分别设置为方式3,计数初值设为1000,
用逻辑笔观察OUT1输出电平的变化(频率1Hz)0 三、编程提示
8253 控制寄存器地址: 283H—0C403H
计数器0 地址:280H —04C400H
计数器1 地址:281H —04C401H
CLK0连接时钟: 1MHz0
2、程序参考流程图
四、程序设计及实验调试 程序设计的思想及注意事项:
第一个实验,在编程时要注意机器识别的 据书上ASCII 码和输入数据的转换关系, 应机器识别的ASCII 码,对于A — F 之间则加37H 。
ASCII 码和输入数据数字的区别,可以根 当数据在 0— 9之间,对数据加30H 即可对 编程时采用了二号功能键输出显 示,六号功能键进行输入操作。
第二个实验,在向计数器0和计数器1送初始值时, 送入的数据应是1000而非1000H,否则最后出现逻辑笔跳变的时间不是 要注意先送低字节后送高字节, 1s 。
实验一:
CODE SEGMENT
ASSUME CS:CODE
START: MOV DX,0C403H
OUT DX,AL
MOV DX,0C400H
OUT DX,AL
XUNHUAN: MOV DX,0C400H
读计数器的值 CMP AL,9
JG BIG
JMP JUDGE
JMP JUDGE
JUDGE: MOV DL,AL
MOV AL,00010000B ;
计数器 0 工作方式为 0 MOV AL,09H
送计数器初值 IN AL,DX
ADD AL,30H ;0
到 9 ,显示 ASCII 码 BIG: ADDAL,37H
; 大于 9 ,显示 ASCII 码
MOV AH,02H
INT 21H 使用02H 功能输出显示
MOV DL,0FFH
MOV AH,06H
INT 21H 执行键盘输入操作
JZ XUNHUAN
MOV AH,4CH
INT 21H 返回操作系统
CODE ENDS
END START
实验中遇到问题及分析:编写程序时,由于要将结果显示在屏幕上,所以要对写入的值读出来,编写DX,0C400H IN AL,DX 语句即可实现。
MOV
在硬件调试过程中,总体来说很顺利。
当计数结果由9 减到0 时,有逻辑跳变,同
时屏幕显示下一个ASCII 字符。
老师说过不能使用拨码开关,否则会出现几个脉冲,从而不是减一计数,我在实验时试过拨码开关,将开关上下拨一次,减数的结果是随机的,所以不适合使用。
实验二:
CODE SEGMENT
ASSUME CS:CODE
START:
MOV AL,00110110B ; 计数器0, 工作方式3 MOV DX,0C403H
OUT DX,AL 写控制口
MOV AX,1000
MOV DX,0C400H
OUT DX,AL
MOV AL,AH
OUT DX,AL 计数器0 送初值1000 MOV AL,01110110B
MOV DX,0C403H 计数器1, 工作方式3 OUT DX,AL
MOV AX,1000
MOV DX,0C401H
OUT DX,AL
MOV AL,AH
OUT DX,AL 计数器1 送初值1000
MOV AH,4CH
INT 21H
CODE ENDS
END START
实验中遇到问题及分析:
由于在软件编程时注意到了送初始值为1000,而不是1000H,所以这方面没有产生
错误。
在编程向计数器0 和计数器1 送值,由于疏忽了MOVDX,0C400H,MOVDX,0C401H
两条语句,在运行之后,系统没有报错,也生成了执行文件,但是一打开执行文件,文件马上就返回DOS系统。
而逻辑笔也没有任何跳变。
我幵始觉得自己是否将初始值送进了两个计数器,后来发现,两个计数器的端口地址忘了写入。
五、实验结果及分析:
1. 对于实验一,设计数器0为工作方式0,执行计数功能。
输入计数初值9,并手
动逐个输入单脉冲,输入前9 个脉冲时,逻辑笔绿灯亮,此时为低电平,屏幕上显示数字由9 逐个递减,当输入第十个脉冲时,计数完毕,逻辑笔红灯亮,此时为高电平。
屏幕上快速连续显示计数值,因为程序中并没有写入控制屏幕输出的部分,由于计算机执行频率较快,导致屏幕不停输出计数值。
2.计数器0 和计数器1均为工作方式3,执行方波发生器的功能。
输入计数初
值1000,从计数器0的clk0端输入1MHZ 脉冲,经过计数器0的1000分频变为1KHZ 脉冲。
将计数器 0 的输出端与计数器 1 的 clk1 相连接, 再经计数器 1 的 1000分频, 从out1输出1HZ 脉冲。
因此,逻辑笔的绿灯和红灯交替闪亮,频率均为
1HZ 若实
验时写入均1000H,结果就是每隔2.56s 亮一次。
六、实验总结:
这个实验是我第一次使用实验箱。
这次微机实验连线很简单,
争取弄懂连线的原理,如在第二个小实验,将 out0 接 clock1
的结果。
编写程序前,我先复习了微机原理与接口技术课本中与 之后按照流
程图认真编程序,编程时,注意到将小于 9 的数加 的数加37H 转化为ASCII 码,并调用了 DOS 的2号功能输出字符。
接下来的第二个程序也遇到了一些困难, 在编程向计数器 0和计数器 1送值, 由 于疏忽了 MOV DX,0C400H MOV DX,0C401H 两条语句,在运行之后,系统没有报错, 也生成了执行文件,但是一打幵执行文件,文件马上就返回
DOS 系统。
而逻辑笔也
没有任何跳变,后来通过软硬件结合找原因,最后得到了满意的结果。
经过上机实验,我掌握了上机调试的初步经验,编程能力也得到了一次验证,此
外还加深了对课本理论知识的理解。
同时我学会了软硬件结合的办法调试程序。
我都是自己不看书, 是为了达到两次分频 8253 相关的知识, 30H,大于9小于16。