[VIP专享]微机与接口实验3定时器计数器
定时器计数器的定时实验
定时器和计数器是数字逻辑电路中常见的功能模块,用于时间测量和事件计数。
以下是一个可能的定时器计数器的定时实验设计方案:
实验名称:定时器计数器的定时实验
实验目的:
1. 了解定时器和计数器在数字电路中的应用;
2. 学习定时器的工作原理和使用方法;
3. 掌握计数器的功能及其在事件计数中的应用。
实验内容:
1. 定时器实验:
-设计一个简单的定时器电路,利用集成电路或开发板上的定时器模块,实现不同时间间隔的脉冲输出。
-调节定时器参数,观察输出信号的频率和占空比的变化。
2. 计数器实验:
-将定时器的输出信号连接到计数器输入端,通过计数器实现对脉冲数量的计数。
-设置计数器的初始值和计数方式,观察计数器的计数过程及计数结果。
实验器材与设备:
1. 集成电路或开发板上的定时器和计数器模块
2. 连接线、电源等实验器材
3. 示波器或数码多用表等测试仪器
4. 相关的实验软件和工具
实验注意事项:
1. 理解定时器和计数器的工作原理,正确连接和设置实验电路。
2. 注意电路连接的准确性,确保信号传输正常。
3. 在实验过程中注意观察输出信号波形和计数结果,及时调整参数以获取所需实验数据。
预期结果:
通过该实验,学生可以深入了解定时器和计数器在数字电路中的应用,掌握定时器的工作原理和调节方法,以及理解计数器在事件计数中的作用。
学生将能够实际操作定时器计数器模块,设计并搭建相应的实验电路,观察实验结果并进行数据分析。
这样的定时器计数器的定时实验设计旨在帮助学生加深对数字逻辑电路中定时和计数功能的理解,培养其实验操作能力和问题解决能力。
定时器计数器实验报告
定时器计数器实验报告
《定时器计数器实验报告》
实验目的:通过定时器计数器实验,掌握定时器的基本原理和使用方法,以及
探究定时器在电子设备中的应用。
实验材料:定时器计数器、电源供应器、示波器、电阻、电容等元器件。
实验步骤:
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开发板连接到电脑,并下载程序到开发板中。
《微机原理与接口技术》实验指导书
《微机原理与接口技术》课程实验指导书实验内容EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求✧实验一实验系统及仪器仪表使用与汇编环境✧实验二简单程序设计实验✧实验三存储器读/写实验✧实验四简单I/0口扩展实验✧实验五8259A中断控制器实验✧实验六8253定时器/计数器实验✧实验七8255并行口实验✧实验八DMA实验✧实验九8250串口实验✧实验十A/D实验✧实验十一D/A实验✧实验十二8279显示器接口实验EL-8086-III微机原理与接口技术教学实验系统简介使用说明及要求EL-8086-III微机原理与接口技术教学实验系统是为微机原理与接口技术课程的教学实验而研制的,涵盖了目前流行教材的主要内容,该系统采用开放接口,并配有丰富的软硬件资源,可以形象生动地向学生展示8086及其相关接口的工作原理,其应用领域重点面向教学培训,同时也可作为8086的开发系统使用。
可供大学本科学习《微机原理与接口技术(8086)》,《单片机应用技术》等课程提供基本的实验条件,同时也可供计算机其它课程的教学和培训使用。
为配合使用EL型微机教学实验系统而开发的8086调试软件,可以在WINDOWS 2000/XP等多种操作系统下运行。
在使用本软件系统调试程序时,可以同时打开寄存器窗口、内存窗口、反汇编窗口、波形显示窗口等等,极大地方便了用户的程序调试。
该软件集源程序编辑、编译、链接、调试与一体,每项功能均为汉字下拉菜单,简明易学。
经常使用的功能均备有热键,这样可以提高程序的调试效率。
一、基本特点EL型微机教学实验系统是北京精仪达盛科技有限公司根据广大学者和许多高等院校实验需求,结合电子发展情况而研制的具有开发、应用、实验相结合的高科技实验设备。
旨在尽快提高我国电子科技发展水平,提高实验者的动手能力、分析解决问题能力。
系统具有以下特点:1、系统采用了模块化设计,实验系统功能齐全,涵盖了微机教学实验课程的大部分内容。
接口技术实验-8253定时计数器
接口技术实验报告
实验三:可编程定时/计数器8253
一、实验目的
1、学会8253芯片和微机接口的原理和方法。
2、掌握8253定时器/计数器的工作方式和编程原理。
二、实验设备
微机原理实验箱、计算机一套。
三、实验内容
8253计数器0,1工作于方波方式,产生方波。
四、实验原理
本实验用到三部分电路:脉冲发生电路、分频电路以及8253定时器/计数器电路。
脉冲发生电路:实验台上提供8MHZ的脉冲源,见下图,实验台上标有8MHZ的插
孔,即为脉冲的输出端。
脉冲发生电路
分频电路:该电路由一片74LS393组成,见下图。
T0-T7为分频输出插孔。
该计数器在加电时由RESET信号清零。
当脉冲输入为8.0MHZ时,T0-T7输出脉冲频率依次为4.0MHZ,2.0MHZ,1.0MHZ,500KHZ,250KHZ,125KHZ,62500HZ,31250HZ。
分频电路
8253定时器/计数器电路:该电路由1片8253组成,8253的片选、数据口、地址、读、写线均已接好,时钟输入分别为CLK0、CLK1。
定时器输出、GATE控制孔对应如下:OUT0、GATE0、OUT1、GATE1。
原理图如下:
注:GATE信号无输入时为高电平
8253定时器/计数器电路
四、实验连线
1、实验连线:
T接8.0MHZ;CLK0插孔接分频器74LS393(左下方)的T2插孔; OUT0接CLK 1;OUT1接发光二极管;
各通道门控信号GATE +5V
2、编程调试程序。
3、全速运行,观察实验结果。
定时器计数器实验报告
定时器计数器实验报告定时器计数器实验报告引言:定时器计数器是一种常用的电子元件,它可以在电路中起到计时和计数的作用。
在本次实验中,我们将探索定时器计数器的基本原理和应用,并通过实际操作来验证其性能和功能。
一、实验目的本次实验的目的是熟悉定时器计数器的工作原理,掌握其使用方法,并通过实验验证其性能和功能。
二、实验器材和原理1. 实验器材:- 定时器计数器模块- 电源- 示波器- 连接线- 电阻、电容等元件2. 实验原理:定时器计数器是一种能够产生精确时间间隔的电子元件。
它通常由一个时钟信号源和一个计数器组成。
时钟信号源提供固定频率的脉冲信号,计数器根据时钟信号的输入进行计数,并在达到设定值时触发相应的操作。
三、实验步骤1. 连接电路:将定时器计数器模块与电源和示波器连接起来,确保电路连接正确。
2. 设置参数:根据实验要求,设置定时器计数器的工作频率、计数范围等参数。
这些参数可以通过调节电阻、电容等元件来实现。
3. 运行实验:启动电源,观察示波器上的波形变化。
根据设定的参数,定时器计数器将在一定时间间隔内产生脉冲信号,并在达到计数值时触发相应的操作。
4. 数据记录和分析:记录实验过程中的数据和观察结果,并进行分析。
比较实验结果与理论预期的差异,找出可能的原因并提出改进措施。
四、实验结果与讨论通过实验,我们观察到定时器计数器在不同参数设定下的工作情况。
根据实验数据和观察结果,我们可以得出以下结论:1. 定时器计数器的工作频率与输入时钟信号的频率有关。
当时钟信号频率较高时,定时器计数器的计数速度也会相应增加。
2. 定时器计数器的计数范围决定了其能够计数的最大值。
当计数器达到设定的计数范围时,将触发相应的操作。
3. 定时器计数器可以应用于各种计时和计数的场合,如脉冲计数、频率测量等。
通过调节参数,可以实现不同的功能。
根据实验结果,我们可以进一步探索定时器计数器的应用领域和优化方法,提高其性能和功能。
五、实验总结通过本次实验,我们深入了解了定时器计数器的原理和应用。
定时计数器实验报告
实验3.3.1 定时/计数器实验一、实验目的1、了解MCS-51单片机定时/计数器的工作原理与工作方式;2、掌握定时/计数器T0和T1在定时器和计数器两中方式下的编程;3、学习定时/计数器T2的可编程时钟输出功能;4、掌握使用Proteus进行单片机系统仿真的方法。
二、实验内容1、使用定时器T0与定时器T1进行定时,在P1.0和P1.1引脚上输出方波信号,通过示波器观察波形输出,测量并记录方波周期。
2、将定时/计数器1设定为计数方式,每次计数到10在P1.0引脚上取反一次,观察发光二极管的状态变化。
3、定时器2可以作为时钟发生器使用,并在P1.0引脚上输出占空比为50%的方波。
编程定时器2,使用示波器测量输出时钟,测量时钟周期。
三、实验环境PC机一台,Proteus仿真软件、KEIL uVision2软件一套四、硬件电路接线图说明:SW1打到上边触点时用于实验内容1和内容3,SW1打到下边触点时与KK1一起用于实验内容2。
内容1内容2 内容3内容1:#include"sst89x5x4.h" sbit wave1=P1^0; sbit wave2=P1^1; void main(){TMOD=0x11;TH0=0x0F8;TL0=0x00;TH1=0x0F8;TL1=0;TR0=1;TR1=1;while(1){if(TF0==1){TH0=0x0F8;TL0=0x00;wave1=~wave1;TF0=0;}else if(TF1==1) {TH1=0x0F8;TL1=0;wave2=~wave2;TF1=0;}}}内容2:#include"sst89x5x4.h" sbit P10=P1^0;void main(){TMOD=0x60;TH1=0xF6;TL1=0xF6;TR1=1;for(;;){while(TF1==0);P10=~P10;TF1=0;}}内容3:#include"sst89x5x4.H"void main(){RCAP2H=0xFF;RCAP2L=0x00;T2MOD=0x02;T2CON=0x04;while(1);}七、实验步骤1、打开Proteus,画好硬件电路图并保存;2、打开KEIL uVision2,建立工程并按程序清单编写好源程序,编译连接;3、将Proteus和KEIL uVision2连接调试,验证电路和程序的功能。
【VIP专享】微机实验 可编程定时器计数器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的定时和计数功能,以及如何通过串联定时器的方式实现大时间常数的定时。
实验三定时器计数器及中断实验
配置单片机的中断允许寄存器,使能所选定时器/计数器的中断。
编写主程序及中断服务程序
主程序
编写主程序,实现基本的输入输出、 初始化等操作。
中断服务程序
在中断服务程序中实现定时或计数到 达后的具体操作,如LED闪烁、数据 采集等。
编译、链接、下载程序
1 2
编译程序
使用合适的编译器将编写的程序编译成机器码。
PART 06
知识拓展与应用前景
定时器/计数器在其他领域的应用
工业自动化
定时器/计数器可用于控制生产线 的运行时间、产品计数等,提高
生产效率和自动化水平。
能源管理
在智能电网、智能家居等领域,定 时器/计数器可用于实现用电设备 的定时开关、能耗统计等功能,促 进节能减排。
交通运输
定时器/计数器可用于交通信号灯控 制、车辆计时收费等场景,提高交 通运行效率和管理水平。
我们在实验中观察了中断响应的过程,并记录了中断处理程序的执行时
间。
02
中断处理
中断处理程序是专门用来处理中断事件的程序。我们在实验中编写了相
应的中断处理程序,并在中断发生时执行了相应的操作,如清除中断标
志、读取计数值等。
03
中断返回
当中断处理程序执行完毕后,CPU会返回到原来的程序继续执行。我们
在实验中观察了中断返回的过程,并验证了程序的正确恢复。
实验结果可靠性分析
我们对多次实验的结果进行了统计分析,评估了实验结果的可靠性和稳定性。通过增加实 验次数和改进实验方法,我们可以提高实验结果的准确性和可信度。
PART 05
问题讨论与解决方案
实验中遇到的问题及解决方法
问题一
定时器/计数器无法正常工作
定时器计数器工作原理
定时器计数器工作原理
定时器计数器是一种用于计算时间间隔的电子设备。
它通过内部的晶振、分频器和计数器等组件实现精确的计时功能。
工作原理如下:
1. 晶振:定时器计数器内部搭载了一个晶振,晶振的频率非常稳定,一般为固定的几十千赫兹。
2. 分频器:晶振的频率可能非常高,但计数器需要较低的频率进行计数,所以需要一个分频器将晶振的频率降低,得到一个更低的频率作为计数器的输入。
3. 计数器:分频器将得到的较低频率信号送入计数器,计数器会根据信号的脉冲个数来进行计数。
4. 触发器:计数器会将计数结果保存在一个触发器中,可以通过读取这个触发器来获取时间间隔的计数值。
5. 重置:当计数器达到设定的计数值后,会自动重置为初始状态,重新开始计数。
通过以上几个步骤的组合,定时器计数器可以实现精确的时间间隔计算。
可以根据不同的需求设置不同的晶振频率、分频器的分频倍数和触发器的位数,以实现不同精度的计数功能。
定时器计数器广泛应用于各种电子设备中,如计时器、时钟、
定时开关等。
它们都依赖于定时器计数器的准确计时功能,来实现精确的时间控制。
实验3、定时器计数器实验
实验三、定时器/计数器实验一、实验目的1、了解MCS-51单片机定时/计数器的基本结构、工作原理和工作方式。
2、掌握定时/计数器工作在定时器和计数器两种方式下的编程方法。
3、掌握数码管显示电路的驱动原理及编程方法。
二、实验内容1、编写单片机程序,用T0作定时器产生周期为1秒的方波(用查询方式编程),从P3.6,P3.7口输出,将P3.7接到示波器显示该方波波形;用T1作计数器对从P3.6输出的方波进行计数,计数结果通过P1口输出到发光二极管显示。
(计算机仿真)2、编写单片机程序,用T0作定时器产生周期为1秒的方波(用查询方式编程),从P3.6,P3.7口输出,将P3.6输出的方波接到P3.5口通过T1作计数器对该方波进行计数,计数值由LED显示,用存储示波器显示P3.7输出的方波。
(实验台验证)3、设计一个60秒计时器,秒计时结果用两位LED数码管显示。
(计算机仿真)4、选做:设置按键控制计时器的启、停及清零功能。
三、实验原理电路原理图如下,所需元件为:AT89C52、LED-YELLOW、7SEG-COM-CAT-GRN 当晶振为22.1184M时,一个机器周期为0.54251微秒,要实现500毫秒的定时,需要921659个机器周期,对于51单片机内部定时器来说,最大只能定时65536个机器周期,定时35.535毫秒,不能满足要求,为此必须借助软件循环进行扩展。
实现的方法是:用定时器中断定时10毫秒,再用软件扩展50倍即可得到500毫秒的定时。
当到达500毫秒时,对P3.7输出取反,可得到周期为1秒的方波。
选择模式1,每个10ms中断一次,设初值为X,根据下面公式,可求得X 的值。
(216-计数初值)*机器周期=定时时间36161010101184.2212)2(-⨯=⨯⨯-X 有关定时计数器的特殊功能寄存器,请参考课本。
选择模式1,每个10ms 中断一次,设初值为X ,根据下面公式,可求得X 的值。
实验三 定时器实验 实验报告
课程名称:单片机实验题目:实验三定时实验学生姓名:专业:电子信息科学与技术班级:学号:指导教师:张涛实验三 定时器实验一、实验目的1、掌握单片机系统定时器断的原理及使用方法。
二、实验原理 (一)、单片机定时器/计数器的结构 1.定时器/计数器组成框图8051单片机内部有两个16位的可编程定时器/计数器,称为定时器0(T0)和定时器1(T1),可编程选择其作为定时器用或作为计数器用。
此外,工作方式、定时时间、计数值、启动、中断请求等都可以由程序设定,其逻辑结构如图所示。
_____INT1(P3.3)_____INT0(P3.2)T1(P3.5)T0(P3.4)图 8051定时器/计数器逻辑结构图由图可知,8051定时器/计数器由定时器 T0、定时器T1、定时器方式寄存器TMOD 和定时器控制寄存器TCON 组成。
2.定时/计数器的方式寄存器和控制寄存器定时/计数器的初始化通过定时/计数器的方式寄存器TMOD 和控制寄存器TCON 完成。
1)定时/计数器方式寄存器TMODTMOD 为T1、T2的工作方式寄存器,其格式如下:TMOD D7 D6 D5 D4 D3 D2 D1 D0(89H) TMOD 的低 (1(2)T /C :功能选择位。
0/C =时,设置为定时器工作方式;1/C =时,设置为计数器工作方式。
(3)GATE :门控位。
当GA TE=0时,软件控制位TR0或TR1置1即可启动定时器;当GATE=1时,软件控制位TR0或TR1须置1,同时还须0INT (P3.2)或1INT (P3.3)为高电平方可启动定时器,即允许外中断0INT 、1INT 启动定时器。
TMOD 不能位寻址,只能用字节指令设置定时器工作方式,高4位定义T1,低4位定义T0。
复位时,TMOD 所有位均置0。
2)定时器/计数器控制寄存器TCONTCON 的作用是控制定时器的启动、停止,标志定时器的溢出和中断情况。
定时器控制字TCON 的格式如下:TCON (88H ) 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H(1) TCON.7 TF1:定时器1溢出标志位。
定时计数器实验报告
定时计数器实验报告
目录
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.判断定时完成:–当计数器的值等于设定的定时值时,表示定时完成,可以进行相关操作,如触发其他事件、输出提示信息等。
实验三-定时器、计数器应用实验一
定时器/计数器应用实验一设计性试验2012年11月14日星期三第三四节课一、实验目的1、掌握定时器/计数器定时功能的使用方法。
2、掌握定时器/计数器的中断、查询使用方法。
3、掌握Proteus软件与Keil软件的使用方法。
4、掌握单片机系统的硬件和软件设计方法。
二、设计要求1、用Proteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,在P1.0口线上产生周期为200μS的连续方波,在P 1.0口线上接示波器观察波形。
2、用Proteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,在P1.1口线上产生周期为240μS的连续方波,在P 1.1口线上接示波器观察波形。
三、电路原理图四、实验程序流程框图和程序清单及实验结果/*********设计要求:(a)单片机的定时器/计数器以查询方式工作,在P1.0口线上产生周期为200us的连续方波编写:吕小洋说明:用定时器1的方式1以查询方式工作时间:2012年11月10日***************/ORG 0000HORG 0100HMAIN: MOV SP, #2FHCLR EA ;关总中断CLR ET1 ;禁止定时器1中断MOV TMOD, #00010000B ;设置定时器1MOV TH1, #0FFH ;设置计数初值MOV TL1, #9CHSETB TR1 ;启动定时器LOOP: JNB TF1, LOOP ;查询计数是否溢出MOV TH1, #0FFH ;重置计数初值MOV TL1, #9CHCLR TF1 ;清除计数溢出标志CPL P1.0 ;输出取反LJMP LOOP ;重复取反ENDTMOD初始化计数初值初始化中断初始化启动定时器等待中断输出取反中断返回开始开始/*********设计要求:(b)单片机的定时器/计数器以查询方式工作, 在P1.0口线上产生周期为200us 的连续方波 编写:吕小洋说明:用定时器0的免装初值方式2以中断方式工作 时间:2012年11月10日 ***************/ORG0000H START: LJMP MAINORG 000BHLJMPTTC0ORG 0100H MAIN: MOV SP, #2FH SETB EA ;开总中断 SETB ET0;定时器0允许中断MOV TMOD, #02H ;设置T0为工作方式2 MOV TH0, #88H ;设置计数初值 MOV TL0, #88HSETBTR0;启动定时器HERE: LJMP HERE ;等待中断/****中断服务程序****/ORG 0200HTTC0: CPL P1.0 ;输出取反RETI ;中断返回END五、实验总结通过本次试验,我掌握了定时器/计数器定时功能的使用方法,能够利用定时器产生特定脉宽的波形,掌握了定时器/计数器的中断、查询使用方法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
微机与接口技术实验3
实验设备:LAB6000通用微控制器实验系统
实验用时8小时
实验内容:定时器计数器实验
1.简单计数器:用实验系统的频率发生器作为输入信号,作为定时器T0输入,实现秒脉冲发生器,秒脉冲信号接8259A INT0。
用发光二极管二进制方式显示秒计数。
2.脉宽调制信号输出:用8253两路定时器,产生脉宽调制信号,要求频率为4K,要求占空比是周期变化的,变化规律为
5%,10%,15%....90%,95%,5%,…….,每秒占空比变化一次,则整个pwm波占空比变化周期是19秒。
3.在原理图上增加8253芯片,地址为C000H起(占16地址)实验报告:程序清单,说明;电路原理图。
程序代码
1.
设计思路较为简单,把计数器的输出接到中断程序的INT0,在中断程序中计数,然后把计数值通过8255输出到指示灯,就能实现程序功能。
CONTROL equ 0c003h
COUNT0 equ 0c000h
COUNT1 equ 0c001h
COUNT2 equ 0c002h
mode equ 82h ; 8255 工作方式
PA8255 equ 8000h ; 8255 PA口输出地址
CTL8255 equ 8003h
ICW1 equ 00010011b ; 单片8259, 上升沿中断, 要写ICW4
ICW2 equ 00100000b ; 中断号为20H
ICW4 equ 00000001b ; 工作在8086/88 方式
OCW1 equ 11111110b ; 只响应INT0 中断,也响应INT1中断
CS8259A equ 09000h ; 8259地址
CS8259B equ 09001h
data segment
CNT dw 0
CNNT dw 0
data ends
code segment
assume cs:code,ds:data
IEnter proc near
push ax
push dx
mov dx, PA8255
inc CNT
;cmp CNT,50
;jnb add1
;jmp output
add1:
;inc CNNT
;mov CNT,0
mov ax, CNT
out dx, ax ; 输出计数值
output:
mov dx, CS8259A
mov al, 20h ; 中断服务程序结束指令
out dx, al
pop dx
pop ax
iret
IEnter endp
IInit proc
mov dx, CS8259A
mov al, ICW1
out dx, al
mov dx, CS8259B
mov al, ICW2
mov al, ICW4
out dx, al
mov al, OCW1
out dx, al
ret
IInit endp
start proc near
mov al, 36h; 00110110B ; 计数器0,16位,方式3,二进制
mov dx, CONTROL
out dx, al
mov ax, 1000
mov dx, COUNT0
out dx, al ; 计数器低字节
mov al, ah
out dx, al ; 计数器高字节
mov al, 76h; 01110110B ; 计数器1,16位,方式3,二进制
mov dx, CONTROL
out dx, al
mov ax, 1000
mov dx, COUNT1
out dx, al ; 计数器低字节
mov al, ah
out dx, al ; 计数器高字节
mov dx, CTL8255
mov al, mode
out dx, al
cli
mov ax, 0
mov ds, ax
mov bx, 4*ICW2 ; 中断号
mov ax, code
shl ax, 4 ; x 16
add ax, offset IEnter ; 中断入口地址(段地址为0)
mov ax, 0
inc bx
inc bx
mov [bx], ax ; 代码段地址为0
call IInit
mov ax, data
mov ds, ax
mov CNT, 0 ; 计数值初始为0
mov ax, CNT
mov dx, PA8255
out dx, ax
sti
LP: ; 等待中断,并计数。
nop
jmp LP
jmp $
start endp
code ends
end start
2.
设计思路为:计时器0工作在方式2,计数值为1000,产生4kHz的波形OUT0,把OUT0分别作为GATE1和INT0使用。
计时器1工作在方式1,计数值每一个GATE1加载一次。
为了保证占空比每1s改变一次,需要利用中断程序,对OUT0进行计数,每4000个OUT0(INT0)占用1s时间,因此每4000次中断改变一次计时器1的计数值。
这样就实现了程序功能。
CONTROL equ 0c003h
COUNT0 equ 0c000h
COUNT1 equ 0c001h
COUNT2 equ 0c002h
mode equ 82h ; 8255 工作方式
PA8255 equ 8000h ; 8255 PA口输出地址
CTL8255 equ 8003h
ICW1 equ 00010011b ; 单片8259, 上升沿中断, 要写ICW4
ICW2 equ 00100000b ; 中断号为20H
ICW4 equ 00000001b ; 工作在8086/88 方式
OCW1 equ 11111110b ; 只响应INT0 中断,也响应INT1中断CS8259A equ 09000h ; 8259地址
CS8259B equ 09001h
data segment
CNT dw 0
CNNT dw 0
data ends
code segment
assume cs:code,ds:data
IEnter proc near
push ax
push dx
INC CNNT
CMP CNNT,4000
JB output
mov CNNT,0
add CNT,50
cmp CNT,950
ja add1
jmp go
add1:
;inc CNNT
mov CNT,50
go:
mov ax, CNT
mov dx, COUNT1
out dx, al ; 计数器低字节
mov al, ah
out dx, al ; 计数器高字节
;mov dx, CTL8255
;mov al, mode
;out dx, al
output:
mov dx, CS8259A
mov al, 20h ; 中断服务程序结束指令
out dx, al
pop dx
pop ax
iret
IEnter endp
IInit proc
mov dx, CS8259A
mov al, ICW1
out dx, al
mov dx, CS8259B
mov al, ICW2
out dx, al
mov al, ICW4
out dx, al
mov al, OCW1
out dx, al
ret
IInit endp
start proc near
mov ax, data
mov ds, ax
mov al, 00110100B ; 计数器0,16位,方式2,二进制
mov dx, CONTROL
out dx, al
mov al, 01110010B; 01110010B ; 计数器1,16位,方式1,二进制
out dx, al
mov ax, 1000
mov dx, COUNT0
out dx, al ; 计数器低字节
mov al, ah
out dx, al ; 计数器高字节
;新加的
mov dx, CTL8255
mov al, mode
out dx, al
cli
mov ax, 0
mov ds, ax
mov bx, 4*ICW2 ; 中断号
mov ax, code
shl ax, 4 ; x 16
add ax, offset IEnter ; 中断入口地址(段地址为0)
mov [bx], ax
mov ax, 0
inc bx
inc bx
mov [bx], ax ; 代码段地址为0
call IInit
mov CNT, 0 ; 计数值初始为0
mov ax, CNT
mov dx, PA8255
out dx, ax
mov ax,data
mov ds,ax
sti
LP: ; 等待中断,并计数。
nop
jmp LP
jmp $
start endp
code ends
end start
波形图:
可以看到变化的占空比。