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

合集下载

单片机定时器实验报告

单片机定时器实验报告

一、实验目的1. 理解单片机定时器的工作原理和功能。

2. 掌握单片机定时器的编程方法,包括初始化、设置定时时间、启动定时器等。

3. 学会使用定时器实现定时功能,并通过实验验证其效果。

二、实验器材1. 单片机实验板2. 连接线3. 51单片机4. 计时器5. 示波器6. 电脑7. Keil软件三、实验原理定时器是单片机的一种重要外设,用于实现定时功能。

51单片机内部有两个定时器,分别为定时器0和定时器1。

定时器的工作原理是通过定时器计数器对机器周期进行计数,当计数器达到设定值时,定时器溢出,并产生中断请求。

定时器0和定时器1都具有四种工作模式,分别为:1. 模式0:13位定时器/计数器2. 模式1:16位定时器/计数器3. 模式2:8位自动重装模式4. 模式3:两个8位计数器本实验采用定时器0工作在模式1,实现50ms的定时功能。

四、实验步骤1. 将单片机实验板连接到电脑,并启动Keil软件。

2. 创建一个新的项目,并添加51单片机头文件(reg51.h)。

3. 编写定时器初始化函数,设置定时器0工作在模式1,并设置定时时间为50ms。

4. 编写定时器中断服务函数,用于处理定时器溢出事件。

5. 编写主函数,设置定时器中断,并启动定时器。

6. 编译并下载程序到单片机实验板。

7. 使用示波器观察定时器0的溢出信号。

五、实验代码```c#include <reg51.h>#define TIMER0_MODE1 0x01// 定时器0初始化函数void Timer0_Init() {TMOD &= 0xF0; // 清除定时器0模式位TMOD |= TIMER0_MODE1; // 设置定时器0工作在模式1TH0 = 0xFC; // 设置定时器0高8位初值TL0 = 0x18; // 设置定时器0低8位初值ET0 = 1; // 开启定时器0中断EA = 1; // 开启总中断TR0 = 1; // 启动定时器0}// 定时器0中断服务函数void Timer0_ISR() interrupt 1 {TH0 = 0xFC; // 重新加载定时器0高8位初值TL0 = 0x18; // 重新加载定时器0低8位初值// ... (其他处理)}void main() {Timer0_Init(); // 初始化定时器0while(1) {// ... (其他处理)}}```六、实验结果与分析1. 编译并下载程序到单片机实验板,使用示波器观察定时器0的溢出信号,可以看到定时器0每隔50ms产生一个溢出信号。

单片机计数器实验报告

单片机计数器实验报告

单片机计数器实验报告单片机计数器实验报告引言:单片机是一种集成电路,内部集成了处理器、存储器和各种输入输出接口等功能模块。

它广泛应用于各个领域,包括电子设备、通信、汽车电子、家电等。

在这次实验中,我们将学习并实践单片机计数器的原理和应用。

实验目的:1. 理解单片机计数器的工作原理;2. 掌握单片机计数器的编程方法;3. 实现简单的计数功能。

实验器材:1. 单片机开发板;2. 电脑;3. USB数据线;4. 连接线。

实验步骤:1. 准备工作:a. 将单片机开发板连接到电脑上,确保连接稳定;b. 打开开发板的开发环境软件。

2. 编写程序:a. 在开发环境软件中创建一个新的项目;b. 编写程序代码,实现计数功能;c. 调试程序,确保程序没有错误。

3. 烧录程序:a. 将开发板与电脑连接,确保连接稳定;b. 在开发环境软件中选择烧录选项,将程序烧录到单片机中。

4. 运行程序:a. 断开开发板与电脑的连接;b. 将开发板连接到外部电源,确保供电正常;c. 按下开发板上的复位按钮,启动程序。

实验结果:经过以上步骤,我们成功实现了单片机计数器的功能。

当按下复位按钮后,计数器从0开始计数,每经过一个固定的时间周期,计数值加1。

我们可以通过开发板上的数码管显示当前的计数值。

实验分析:单片机计数器是通过定时器模块实现的。

定时器是单片机中的一个重要模块,它可以根据设定的时间间隔来触发中断或执行特定的操作。

在本实验中,我们使用了定时器模块来实现计数功能。

通过编写程序,我们可以设定定时器的工作模式和时间间隔。

在每个时间间隔结束时,定时器会触发中断,程序会执行中断服务程序,从而实现计数器的自动递增。

同时,我们还可以通过程序控制数码管的显示,将计数值实时显示出来。

实验总结:通过本次实验,我们学习了单片机计数器的原理和应用,并成功实现了一个简单的计数功能。

单片机计数器在各个领域都有广泛的应用,例如工业自动化、仪器仪表、电子游戏等。

单片机定时器实验报告

单片机定时器实验报告

单片机定时器实验报告
单片机定时器实验报告
简介
•实验名称:单片机定时器实验
•实验目的:掌握单片机中定时器的工作原理及使用方法•实验设备:单片机开发板、电源等
实验内容
1.单片机定时器的基本概念和原理
2.单片机定时器的分类和特点
3.实验步骤和流程
–步骤1:搭建实验电路
–步骤2:编写单片机程序
–步骤3:下载程序到单片机
–步骤4:观察定时器的工作情况
4.实验结果和分析
实验结果
•在实验过程中,我们成功搭建了单片机定时器实验电路,并编写了相应的程序。

通过下载程序到单片机,观察到定时器按照预设
的时间间隔产生中断,并执行相应的任务。

•实验结果表明,我们掌握了单片机定时器的使用方法,可以实现定时功能。

实验分析
•单片机定时器是一种重要的计时和控制设备,广泛应用于各种电子设备中。

•通过本次实验,我们深入了解了单片机定时器的工作原理和使用方法,对于日后的电子设计和开发有着重要的意义。

实验总结
•通过本次实验,我们学习了单片机定时器的基本知识,掌握了单片机定时器的使用方法,并成功实现了定时功能。

•在实验过程中,我们发现了一些问题,并通过调试和修改程序进行了解决。

这对我们提高了动手实践和问题解决能力有很大帮助。

•通过本次实验,我们对于单片机定时器有了更深入的了解,为今后的学习和应用打下了坚实的基础。

参考资料
•《单片机原理与应用》
•单片机实验教材及课件。

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

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

单片机定时器计数器实验报告单片机定时器计数器实验报告篇一:单片机计数器实验报告计数器实验报告㈠实验目的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 MAINORG 001BH AJMP MAIN1 MAIN:MOV SP,#60HMOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOV TH1,#3CHMOV TL0,#00H;T0的中断入口地址 ;设置T1做定时器,T0做计数器,都于方式1工作 ;装入中断次数 ;装入计数值低8位 ;装入计数值高8位MOV TH0,#00HSETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0 SETB ET1 ;允许T1中断 SETB EA ;允许CPU中断 SJMP $;。

单片机实验报告定时器

单片机实验报告定时器

一、实验目的1. 理解单片机定时器的原理及工作方式。

2. 掌握单片机定时器的编程方法,实现定时功能。

3. 学习使用定时器中断,处理定时器事件。

二、实验环境1. 硬件设备:MCS-51单片机实验板、示波器、电源等。

2. 软件环境:Keil C51、Proteus仿真软件。

三、实验原理1. 定时器概述定时器是单片机的一个重要组成部分,用于产生定时信号或测量时间。

MCS-51单片机内部有两个定时器,即定时器0和定时器1。

2. 定时器工作原理定时器通过内部计数器进行计数,当计数达到设定值时,产生一个定时中断,执行中断服务程序。

定时器的工作方式分为四种:方式0、方式1、方式2和方式3。

3. 定时器编程定时器编程主要包括以下几个步骤:(1)设置定时器工作模式:通过向定时器模式寄存器(TMOD)写入相应的值来设置定时器工作模式。

(2)设置定时器初值:通过向定时器寄存器(THx、TLx)写入相应的值来设置定时器初值。

(3)启动定时器:通过设置定时器控制寄存器(TCON)的相应位来启动定时器。

(4)编写定时器中断服务程序:当定时器溢出时,执行中断服务程序,实现相应的功能。

四、实验内容1. 实验一:定时器0定时50ms(1)硬件连接:将P1.0口连接到蜂鸣器。

(2)软件设计:- 设置定时器0工作在方式1,定时50ms。

- 开启定时器0中断。

- 编写定时器0中断服务程序,使蜂鸣器响50ms。

2. 实验二:定时器1计数脉冲(1)硬件连接:将P3.4口连接到信号发生器。

(2)软件设计:- 设置定时器1工作在方式2,计数P3.4口的脉冲信号。

- 开启定时器1中断。

- 编写定时器1中断服务程序,记录计数器计数值,并通过数码管显示。

3. 实验三:定时器0定时1s(1)硬件连接:将P1.0口连接到蜂鸣器。

(2)软件设计:- 设置定时器0工作在方式1,定时1s。

- 开启定时器0中断。

- 编写定时器0中断服务程序,使蜂鸣器响1s。

五、实验步骤1. 编写实验一程序,并使用Proteus进行仿真测试,验证程序功能。

定时器计数器实验报告

定时器计数器实验报告

定时器计数器实验报告简介:定时器是一种用来产生、计数和处理时间信号的计时装置。

在数字电路中,定时器主要分为内部定时器和外部定时器两类,内部定时器是在单片机内部实现的,外部定时器则是通过外部电路实现的。

计数器则是一种用来计数的电子元件,根据不同的使用场合和要求,计数器可以分为多种类型。

在嵌入式系统中,定时器计数器应用广泛,例如在时钟、延时、计数等方面都有很大的作用。

实验目的: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开发板连接到电脑,并下载程序到开发板中。

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

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

实验名称:定时器/计数器应用实验日期:见自己实验数据得分:同组人:不填指导教师:姓名一、实验目的1.掌握51单片机定时器/计数器的基本结构、工作原理和工作方式。

2.掌握定时器/计数器T0、T1工作在定时器和计数器两种状态下的编程方法。

3.学习和掌握定时器/计数器工作在定时器和计数器两种状态下,分别采用中断和查询方式控制的编程方法。

4.熟练掌握利用软件扩展定时器/计数器量程的原理和编程技巧。

二、实验设备PC机一台,单片机实验系统一套三、实验内容设定时器/计数器工作于定时方式,定时时间为100ms,每当100ms到申请中断。

每10秒种将A的内容循环左移一次,送P1口显示。

四、实验原理51单片机有2个16位的定时器/计数器,分别是T0和T1。

它们有两种工作状态,可以工作在定时方式和计数方式;定时是对内部的机器周期进行加法计数,计数是对外部输入的计数脉冲进行加法计数,T0的外部计数脉冲从P3.4引脚输入,T1的外部计数脉冲从P3.5引脚输入;计数满产生溢出,硬件使定时器/计数器T0、T1的中断请求标志TF0、TF1置位;如果定时器/计数器允许中断,则可以采用中断方式进行溢出处理,而如果定时器/计数器不允许中断,则可以采用查询方式进行溢出处理。

若定时器/计数器T0工作在定时状态,在实验系统的晶振频率f OSC=12MH Z时,T0工作在方式1,16位最大计数量程,最长的定时时间是65mS多,要想实现10S定时,必须对T0进行量程扩展。

实验中采用R7进行软件扩展,即R7对T0定时50mS进行计数,计数200次就是定时10S。

每10S对累加器A进行一次左移,然后送P1口显示。

实验电路连接图如图1所示。

图1 定时器/计数器应用实验接线图根据此实验原理编写的实验源程序清单见附页。

五、实验步骤1.在E盘下为工程建立文件夹姓名3;2.新建工程项目文件姓名3.uv2,保存在文件夹姓名3中,并为工程选择目标器件为AT公司的AT89S51;3.编辑源程序,建立源文件姓名3.ASM,保存在文件夹姓名3中;4.将源文件姓名3.ASM添加到工程项目组中;5.设置调试环境,选择调试模式为Proteus软件仿真;6.运行程序,根据设计的数据记录表格进行实验,观察发光管显示的状态,并记录实验现象;7.实验数据经过实验指导教师检查正确后,实验结束。

单片机定时器实验报告doc

单片机定时器实验报告doc

单片机定时器实验报告篇一:单片机实验报告——定时器实验四定时器实验自动化121班 36 张礼一.实验目的掌握定时器的工作原理及四种工作方式,掌握定时器计数初始值的计算,掌握如何对定时器进行初始化,以及程序中如何使用定时器进行定时。

二.实验仪器单片机开发板一套,计算机一台。

三.实验任务编写程序,使用单片机开发板上8位共阴极数码管的其中一位来显示0~9这九个字符,先从“0”开始显示,数字依次递增,当显示完“9”这个字符后,又从“0”开始显示,循环往复,每1秒钟变换一个字符,1秒钟的定时时间必须由定时器T0(或T1)提供。

开发板上的8位共阴极数码管与单片机的输入输出端口P1的硬件接线如图4-1所示,单片机P1口的8条数据线通过J3端子同时连接到 2片74HC573D锁存器的输入端,数码管的各个同名端分别连接后再与锁存器U2的8个输出端相连,每一位数码管的位选端分别与锁存器U3的8个输出端相连。

两片锁存器的输出使能端OE都恒接地,使得锁存器的内部数据保持器输出端与锁存器的输出端保持接通。

而U2的锁存使能端LE由P2.1控制,所以P2.1是段锁存;U3的锁存使能端LE由P2.0控制,所以P2.0是位锁存。

当锁存使能端为“1”时,则锁存器输入端的数据传送到输出端;当锁存使能端为“0”时,锁存器输入端的数据则不能传送到输出端;因此段码和位码通过锁存器分时输出。

汇编语言程序流程如图4-2:四.实验步骤:1.数码管的0~9的字型码表如下:2.参考图4-2所给的程序流程图编写实验程序。

(注:以下程序为两位60秒计数程序)#include sbit wei=P2^0; sbit duan=P2^1;char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};int i,j,k,num,shi,ge; void delay(int a) {for(i=0;i void display(int shi,int ge){wei=1;P1=0xfe;wei=0;duan=1;P1=table[shi];duan=0;wei=1; delay(5);P1=0xfd;wei=0; duan=1;P1=table[ge];duan=0; }void main() {TMOD=0x01;TH0=(65536-45872)/256; TL0=(65536-45872)%256; EA=1; ET0=1; TR0=1; num=0; while(1) {delay(5);display(shi,ge); } }void T0_time() interrupt 1 {TH0=(65536-45872)/256; TL0=(65536-45872)%256; k++; if(k==20) { k=0; num++;if(num==60)num=0; shi=num/10; ge=num%10; } }3.实验接线,如图4-1。

单片机定时器-计数器实验总结

单片机定时器-计数器实验总结

单片机定时器-计数器实验总结单片机定时器/计数器实验总结篇一:单片机实验之定时器计数器应用实验一一、实验目的1、掌握定时器/计数器定时功能的使用方法。

2、掌握定时器/计数器的中断、查询使用方法。

3、掌握Prteus软件与Keil软件的使用方法。

4、掌握单片机系统的硬件和软件设计方法。

二、设计要求1、用Prteus软件画出电路原理图,单片机的定时器/计数器以查询方式工作,在P1.0口线上产生周期为200μS的连续方波,在P1.0口线上接示波器观察波形。

2、用Prteus软件画出电路原理图,单片机的定时器/计数器以中断方式工作,在P1.1口线上产生周期为240μS的连续方波,在P1.1口线上接示波器观察波形。

三、电路原理图六、实验总结通过这次实验,对定时器/计数器的查询工作方式有了比较深刻的理解,并能熟练运用。

掌握定时器/计数器的中断、查询使用方法。

对于思考题能够运用三种不同思路进行编程。

七、思考题1、在P1.0口线上产生周期为500微秒,占空比为2:5的连续矩形波。

答:程序见程序清单。

四、实验程序流程框图和程序清单1、以查询方式工作,在P1.0 RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #02H MV TH0, #9CH MV TL0, #9CH SETB TR0 LP: JNB TF0, LP CLR TF0 CPL P1.0 AJMP LP END2、以中断方式工作,在P1.1 RG 0000H START: LJMP MAIN RG 000BH LJMP TTC0 RG 0100H MAIN: MV TMD, #02H MV TH0, #88H MV TL0, #88H SETB EA SETB ET0 SETB TR0 HERE: LJMP HERE RG 0200H TTC0: CPL P1.1 RETI END3、在P1.0口线上产生周期为500微秒,占空比为2:5的连续矩形波 RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #20H MV TH1, #38H MV TL1, #38H MV TH0, #0F6H MV TL0, #14H LP1: SETB TR1 LP2: JNB TF1, LP2 CLR TF1 CLR TR1 CPL P1.0 SETB TR0 LP3: JNB TF0, LP3 MV TH0, #0F6H MV TL0, #14H CLR TF0 CLR TR0 CPL P1.0 LJMP LP1 END RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #20H MV TH1, #38H MV TL1, #38H MV TH0, #0F0H MV TL0, #0CH SETB TR0 LP1: SETB TR1 LP2: JNB TF1, LP2 CLR TF1 CLR TR1 CPL P1.0 SETB TR0 LP3: JNB TF0, LP3 CLR TF0 MV TH0, #0F0H MV TL0, #0CH CPL P1.0 LJMP LP1 END RG 0000H START: LJMP MAIN RG 0100H MAIN: MV IE, #00H MV TMD, #00H LP1: MV TH1, #0F9H MV TL1, #18H SETB TR1 LP2: JNB TF1, LP2 CLR TF1 CPL P1.0 MV TH1, #0F6H MV TL1, #14H LP3: JNB TF1, LP3 CLR TF1 CPL P1.0 LJMP LP1 END五、实验结果(波形图)篇二:单片机实验-定时器计数器应用实验一定时器/计数器应用实验一一、实验目的和要求1、掌握定时器/计数器定时功能的使用方法。

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

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

批阅长沙理工大学实验报告年级光电班号姓名同组姓名实验日期月日指导教师签字:批阅老师签字:内容一、实验目的四、实验方法及步骤二、实验原理五、实验记录及数据处理三、实验仪器六、误差分析及问题讨论单片机定时器/计数器实验一、实验目的1、掌握51单片机定时器/计数器的基本结构。

2、掌握定时器/计数器的原理及编程方法。

二、实验仪器1、装有keil软件的电脑2、单片机开发板三、实验原理51单片机有2个16位的定时器/计数器,分别是T0和T1,他们有四种工作方式,现以方式1举例。

若定时器/计数器0工作在方式1,计数器由TH0全部8位和TL0全部8位构成。

方式1作计数器用时,计数范围是:1-65536(2^16);作定时器用时,时间计算公式是:T=(2^16-计数初值)×晶振周期×12。

四、实验内容1、计算计数初值单片机晶振频率为6MHz,使用定时器0产生周期为120000μs等宽方波连续脉冲,并由P1.0输出。

设待求计数初值为x,则:(2^16-x)×2×10^-6 = 120000×10^-6解得x=5536。

二进制表示为:00010101 10100000B。

十六进制为:高八位(15H),低八位(A0H)。

2、设置相关控制寄存器TMOD设置为xxxx0001B3、程序设计ORG 0000HAJMP MAINORG 30HMAIN: MOV P1,#0FFH ;关闭所有灯ANL TMOD,#0F0H ;置定时器0工作方式1ORL TMOD,#01H ;不影响T1的工作MOV TH0,#15H ;设置计数初始值MOV TL0,#0A0HSETB EA ;CPU开中断SETB ET0 ;定时器0开中断SETB TR0 ;定时器开始运行LOOP: JBC TF0,INTP ;如果TF0=1,则清TF0并转到INTPAJMP LOOP ;然跳转到LOOP处运行INTP: MOV TH0,#15H ;重新设置计数初值MOV TL0,#0A0HCPL P1.0 ;输出取反AJMP LOOPEND AJMP LOOPEND4、实验仿真新建工程项目文件中,并为工程选择目标器件为AT公司的AT89S51。

定时器计数器实验报告

定时器计数器实验报告

定时器计数器实验报告定时器计数器实验报告引言:定时器计数器是一种常用的电子元件,它可以在电路中起到计时和计数的作用。

在本次实验中,我们将探索定时器计数器的基本原理和应用,并通过实际操作来验证其性能和功能。

一、实验目的本次实验的目的是熟悉定时器计数器的工作原理,掌握其使用方法,并通过实验验证其性能和功能。

二、实验器材和原理1. 实验器材:- 定时器计数器模块- 电源- 示波器- 连接线- 电阻、电容等元件2. 实验原理:定时器计数器是一种能够产生精确时间间隔的电子元件。

它通常由一个时钟信号源和一个计数器组成。

时钟信号源提供固定频率的脉冲信号,计数器根据时钟信号的输入进行计数,并在达到设定值时触发相应的操作。

三、实验步骤1. 连接电路:将定时器计数器模块与电源和示波器连接起来,确保电路连接正确。

2. 设置参数:根据实验要求,设置定时器计数器的工作频率、计数范围等参数。

这些参数可以通过调节电阻、电容等元件来实现。

3. 运行实验:启动电源,观察示波器上的波形变化。

根据设定的参数,定时器计数器将在一定时间间隔内产生脉冲信号,并在达到计数值时触发相应的操作。

4. 数据记录和分析:记录实验过程中的数据和观察结果,并进行分析。

比较实验结果与理论预期的差异,找出可能的原因并提出改进措施。

四、实验结果与讨论通过实验,我们观察到定时器计数器在不同参数设定下的工作情况。

根据实验数据和观察结果,我们可以得出以下结论:1. 定时器计数器的工作频率与输入时钟信号的频率有关。

当时钟信号频率较高时,定时器计数器的计数速度也会相应增加。

2. 定时器计数器的计数范围决定了其能够计数的最大值。

当计数器达到设定的计数范围时,将触发相应的操作。

3. 定时器计数器可以应用于各种计时和计数的场合,如脉冲计数、频率测量等。

通过调节参数,可以实现不同的功能。

根据实验结果,我们可以进一步探索定时器计数器的应用领域和优化方法,提高其性能和功能。

五、实验总结通过本次实验,我们深入了解了定时器计数器的原理和应用。

单片机定时器实训报告

单片机定时器实训报告

一、实训背景随着电子技术的不断发展,单片机作为嵌入式系统中的核心部件,得到了广泛应用。

定时器作为单片机的重要功能模块,能够实现定时、计数等功能,是单片机应用系统设计的关键技术之一。

为了提高学生的单片机应用能力,本次实训选取了基于51单片机的定时器应用作为实训内容。

二、实训目的1. 掌握51单片机定时器的基本原理和工作方式;2. 学会使用定时器实现定时、计数等功能;3. 培养学生动手实践能力和解决实际问题的能力;4. 提高学生对单片机应用系统的设计水平。

三、实训内容本次实训主要涉及以下内容:1. 51单片机定时器原理及工作方式;2. 定时器初始化编程;3. 定时器中断编程;4. 定时器应用实例:LED流水灯控制。

四、实训步骤1. 学习51单片机定时器原理及工作方式,掌握定时器的工作模式、定时器计数范围等参数;2. 编写定时器初始化程序,包括定时器模式选择、计数初值设置等;3. 编写定时器中断服务程序,实现定时功能;4. 编写LED流水灯控制程序,实现定时器中断触发LED流水灯效果;5. 将程序烧录到单片机中,进行实验验证。

五、实训结果与分析1. 定时器初始化编程:根据实训要求,设置了定时器模式、计数初值等参数,实现了定时器定时功能;2. 定时器中断编程:编写了定时器中断服务程序,实现了定时器中断触发功能;3. LED流水灯控制:通过定时器中断触发,实现了LED流水灯效果,验证了定时器应用实例的正确性。

在实训过程中,遇到以下问题及解决方法:1. 定时器计数初值设置错误:通过查阅资料,了解了定时器计数初值的计算方法,正确设置了计数初值;2. 定时器中断服务程序编写错误:通过分析程序,发现中断服务程序中存在逻辑错误,修改后程序运行正常。

六、实训心得通过本次实训,我深刻认识到以下内容:1. 定时器在单片机应用系统中的重要作用,掌握了定时器的基本原理和工作方式;2. 编程过程中,要注重代码的可读性和可维护性,提高编程效率;3. 在遇到问题时,要善于查阅资料,分析问题原因,并采取有效措施解决问题;4. 实训过程中,要注重理论与实践相结合,提高动手实践能力。

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

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

实验六定时器计数器应用实验报告一、实验目的本实验的目的是通过对定时器计数器的应用实验,加深对定时器和计数器工作原理的理解,掌握定时器的使用方法,并能灵活应用到实际工程中。

二、实验原理定时器是一种常用的计时设备,它可以在微处理器或微控制器系统中用于各种计数、计时和频率测量应用。

我们所面对的实验中使用的定时器是软件定时器,其工作原理是通过编程方式配置定时器的时钟源和计数器的计数范围,然后在主程序中通过中断或轮询的方式来读取计数器的值,从而实现不同的定时器功能。

计数器是一种用于计数的设备,它可以对外部信号的频率进行计数。

在本实验中,我们使用计数器来计算外部信号的脉冲数,并将计数结果显示出来。

三、实验材料1. STC89C52 单片机开发板2. 4位数码管3. 杜邦线若干4. 外部信号发生器四、实验步骤1. 连接电路图如下所示:(此处省略电路图)2. 打开 Keil μVision 软件并新建一个工程,选择合适的单片机型号。

3. 在主程序中初始化定时器和计数器,设置适当的时钟源和计数范围。

4. 设置外部中断,用于触发计数器开始计数。

5. 在中断服务程序中编写计数器处理逻辑,获取计数值并进行相应的操作。

6. 在主循环中,根据需求配置定时器,比如实现不同的定时功能,或者将计数结果显示在数码管上。

7. 编译、烧录程序到单片机开发板上,并进行实验验证。

五、实验结果经过实验,我们成功地实现了定时器计数器的应用功能。

通过设置不同的计数范围和外部触发条件,我们能够准确地计算出外部信号的脉冲数,并将计数结果显示出来。

同时,我们还实现了不同的定时功能,比如周期性触发中断、定时器中断延时等。

六、实验总结通过本次实验,我们深入理解了定时器和计数器的工作原理,并掌握了定时器的使用方法。

定时器计数器在实际工程中具有广泛的应用,比如用于频率测量、脉冲计数、定时触发等。

掌握了定时器计数器的使用,对于我们的工程开发和项目实施都具有重要的意义。

实验三 定时器实验 实验报告

实验三 定时器实验 实验报告

课程名称:单片机实验题目:实验三定时实验学生姓名:专业:电子信息科学与技术班级:学号:指导教师:张涛实验三 定时器实验一、实验目的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溢出标志位。

51单片机定时器计数器汇编实验

51单片机定时器计数器汇编实验

实验三、定时器/计数器实验报告一、实验内容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数码管显示。

(计算机仿真)二、实验仿真图(1)脉冲计数实验程序ORG 0000HBEGIN:MOV TMOD,#51H MOV TL0,#0F0HMOV TH0,#0DBHMOV TH1,#00HMOV TL1,#00HMOV P1,#00HMOV P0,#00HMOV P2,#00HMOV R3,#00HMOV R4,#00HSETB TR0SETB TR1S1: MOV R1,#33HMOV A,R4MOV R5,TL1ADD A,R5MOV P1,AMOV R2,TL1CJNE R2,#10,S2MOV TH1,#00HMOV TL1,#00HINC R3MOV A,R3MOV DPTR,#TAB1MOVC A,@A+DPTRMOV P2,AMOV P0,#3FHMOV A,R3MOV B,#0AHMUL ABMOV R4,AMOV P1,R4AJMP NEXTS2: MOV R1,#33HMOV DPTR,#TAB1MOV A,TL1MOVC A,@A+DPTRMOV P0,AAJMP NEXT LOOP: JBC TF0,NEXT AJMP LOOPNEXT: MOV TL0,#0F0HMOV TH0,#0DBHDJNZ R1,LOOPCPL P3.6CPL P3.7AJMP S1TAB1:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;(SW3,SW4为:00) END(2)60秒定时器实验程序ORG 0000HBEGIN:MOV TMOD,#51HTL0,#0F0HMOVMOVTH0,#0DBHTH1,#00HMOVTL1,#00HMOVR3,#00HMOVP0,#00HMOVP2,#00HMOVSETBTR0TR1SETBS1: MOV R1,#33HR2,TL1MOVR2,#10,S2CJNETH1,#00HMOVTL1,#00HMOVR3INCR3,#06H,S4CJNER3,#00HMOVS4: MOV A,R3DPTR,#TAB1MOVA,@A+DPTRMOVCP2,AMOVMOVP0,#3FHNEXTAJMPS2: MOV R1,#33HDPTR,#TAB1MOVA,TL1MOVA,@A+DPTRMOVCMOVP0,ANEXTAJMPLOOP: JBC TF0,NEXTLOOPAJMPNEXT: MOV TL0,#0F0HTH0,#0DBHMOVR1,LOOPDJNZP3.6CPLCPLP3.7S1AJMPTAB1:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH END。

定时器计数实验报告

定时器计数实验报告

定时器计数实验报告
⼀、实验⽬的
1、了解定时器/
计数器的⼯作⽅式和⼯作原理。

2、掌握定时器/计数器的初值计算。

3、学会使⽤定时器/计数器。

⼆、实验仪器
Keil 软件,Protus 软件
三、实验内容
1、假设系统时钟频率采⽤12MHz ,要在P1.0引脚上输出⼀个周期为2ms 的⽅波。

1)初值计算
⽅波的周期⽤定时器T0来确定,采⽤⽅式1,16位定时⽅式。

单⽚机时钟频率频为12MHz ,产⽣周期为2ms 的⽅波,则定时器初始值应为:
机器周期 = 106-1112112?==?s MHZ µ ()H X X 18fc 64536
11-10
1023-6-16==?=??
2)程序
ORG
0000H RESET:AJMP
MAIN ORG
00BH AJMP
IT0P ORG
0100H MAIN: MOV
SP,#60H ;设置堆栈指针 MOV
TMOD,#01H ;设T0为定时器1⼯作⽅式 ACALL
PT0M0 HERE: AJMP
HERE ;原地跳转,等待中断 PT0M0:MOV
TL0,#18H ;T0赋初值低8位 MOV
TH0,#0fcH ;初值⾼8位 SETB
ET0 ;允许T0中断 SETB
EA ;开总中断 SETB
TR0 ;启动T0中断 RET
IT0P: MOV
TL0,#18H ;T0中断服务⼦程序 MOV
TH0,#0fcH CPL
P1.0 ;P1.0的状态取反
四、实验结果。

单片机定时计数实训报告

单片机定时计数实训报告

一、实验目的1. 理解单片机定时计数器的工作原理和编程方法。

2. 掌握定时计数器在中断程序中的应用。

3. 培养动手实践能力和编程能力。

二、实验器材1. 单片机实验板2. 信号发生器3. 电脑4. 示波器5. 蜂鸣器6. LED灯三、实验原理单片机的定时计数器是单片机的重要组成部分,主要用于定时、计数和产生脉冲信号等功能。

本实验主要利用定时计数器T0进行定时,并通过中断程序实现计数功能。

四、实验内容1. 定时器T0初始化:设置定时器T0为模式1,并设置初值,使定时器每隔50ms 产生一次中断。

2. 定时器中断程序:在中断服务程序中,读取外部输入信号的脉冲数,并更新显示。

3. 计数器功能实现:通过外部中断,实现对外部信号的计数功能。

4. 蜂鸣器控制:当计数达到一定值时,通过单片机控制蜂鸣器发出声音。

5. LED灯控制:根据计数器的值,通过单片机控制LED灯的亮灭。

五、实验步骤1. 连接实验板,设置好单片机、信号发生器、蜂鸣器、LED灯等硬件设备。

2. 编写程序,实现定时器T0的初始化、定时器中断程序、计数器功能实现、蜂鸣器控制和LED灯控制等功能。

3. 烧录程序到单片机,观察实验结果。

4. 调整程序,使实验结果符合预期。

六、实验结果与分析1. 定时器T0初始化成功,每隔50ms产生一次中断。

2. 定时器中断程序正确读取外部输入信号的脉冲数,并更新显示。

3. 计数器功能实现,成功对外部信号进行计数。

4. 蜂鸣器控制,当计数达到一定值时,蜂鸣器发出声音。

5. LED灯控制,根据计数器的值,LED灯亮灭变化。

七、实验总结1. 通过本次实验,掌握了单片机定时计数器的工作原理和编程方法。

2. 熟悉了定时计数器在中断程序中的应用。

3. 培养了动手实践能力和编程能力。

4. 发现了实验过程中存在的问题,并进行了调整。

5. 对单片机定时计数器有了更深入的了解,为以后的学习和应用打下了基础。

八、实验拓展1. 改进实验程序,实现定时计数器的定时精度调整。

定时计数器实验-单片机

定时计数器实验-单片机

单片机实验报告G A T EC /TM 1M 0G A T EC /TM 1M 0TH1TL1TH0TL0T1方式T1引脚T0引脚机器周期脉冲内部总线TMODTCON 外部中断相关位T F 1T R 1T F 0T R 0实验五 定时/计数器实验一、实验目的1.学习8051内部定时/计数器的工作原理及编程方法; 2.掌握定时/计数器外扩中断的方法。

二、实验原理8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。

它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。

T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。

作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。

计数的最高频率一般为振荡频率的1/24。

定时/计数器的结构:定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。

TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。

计数器初值的计算:设计数器的最大计数值为M(根据不同工作方式,M 可以是213、216或28),则计算初值X的公式如下:X=M-要求的计数值(十六进制数)定时器初值的计算:在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。

因此,定时器定时初值计算公式:X=M-(要求的定时值)/(12/fosc)80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。

TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。

❖工作方式寄存器TMOD:工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。

其格式如下:GATE:门控位。

GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。

定时器的定时实验报告

定时器的定时实验报告

一、实验目的1. 理解定时器的基本原理和工作方式。

2. 掌握定时器定时功能的实现方法。

3. 学习使用定时器中断进行时间控制。

4. 培养动手实践能力和问题解决能力。

二、实验环境1. 硬件:PC机一台,单片机实验系统一套,定时器模块。

2. 软件:Keil Vision 4软件,实验指导书。

三、实验原理定时器是单片机中用于实现时间控制的重要外设。

本实验采用定时器模块,通过编程实现对时间的精确控制。

1. 定时器的基本原理定时器由计数器、预置寄存器和控制逻辑组成。

计数器用于记录定时器的计数次数,预置寄存器用于设置定时器的计数初值,控制逻辑用于控制定时器的启动、停止和中断。

2. 定时器的工作方式定时器主要有以下两种工作方式:定时方式:定时器计数到预置值时,产生定时中断,完成定时任务。

计数方式:定时器对外部事件进行计数,计数到预置值时,产生计数中断。

3. 定时器中断定时器中断是定时器完成定时任务的一种方式。

当定时器计数到预置值时,产生中断请求,CPU响应中断后执行中断服务程序。

四、实验内容1. 定时器初始化:设置定时器的计数初值、工作方式、中断使能等。

2. 定时器启动:启动定时器开始计数。

3. 定时器中断处理:编写中断服务程序,实现定时任务。

五、实验步骤1. 搭建实验电路:根据实验指导书连接电路,包括单片机、定时器模块和外部设备。

2. 编写程序:初始化定时器:设置定时器的计数初值、工作方式、中断使能等。

启动定时器:启动定时器开始计数。

编写中断服务程序:在中断服务程序中实现定时任务。

3. 编译程序:使用Keil Vision 4软件编译程序。

4. 下载程序:将编译后的程序下载到单片机中。

5. 观察实验现象:观察外部设备的变化,验证定时器定时功能的实现。

六、实验结果与分析1. 实验现象:定时器模块按照预设的时间间隔产生中断,执行中断服务程序。

2. 实验分析:定时器定时功能的实现:通过设置定时器的计数初值,可以精确控制定时器的时间间隔。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机定时器计数器实验报告篇一:单片机计数器实验报告计数器实验报告㈠实验目的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 MAINORG 001BH AJMP MAIN1 MAIN:MOV SP,#60HMOV TMOD,#15H MOV 20H,#14H MOV TL1,#0B0H MOV TH1,#3CHMOV TL0,#00H;T0的中断入口地址 ;设置T1做定时器,T0做计数器,都于方式1工作 ;装入中断次数 ;装入计数值低8位 ;装入计数值高8位MOV TH0,#00HSETB TR1 ;启动定时器T1 SETB TR0 ;启动计数器T0 SETB ET1 ;允许T1中断 SETB EA ;允许CPU中断 SJMP $;等待中断MAIN1: PUSH PSW PUSH ACC CLR TR0CLR TR1 MOV TL1,#0B0H MOV TH1,#3CHDJNZ 20H,RETUNT MOV 20H ,#14HSHOW: MOV R0,TH0 MOV R1,TL0MOV A,R1 MOV B,#0AH DIV ABMOV C,ACC.3MOV P1.0,C MOV C,ACC.2 MOV P1.1,C MOV C,ACC.1 MOV P1.2,C MOV C,ACC.0 MOV P1.3,CMOV A,B MOV C,ACC.3MOV P1.4,C MOV C,ACC.2 MOV P1.5,C MOV C,ACC.1 MOV P1.6,C MOV C,ACC.0 MOV P1.7,C ;保护现场;装入计数值低8位;装入计数值高8位,50ms;允许T1中断;未到1s,继续计时 ;1s到重新开始;显示计数器T0的值;读计数器当前值 ;将计数值转为十进制;显示部分,将A中保存的十位赋给L0~L3 将B中保存的各位转移到A中 ;将个位的数字显示在L4~L7上;RETUNT:MOV TL0,#00H;将计数器T0清零 MOV TH0,#00HSETB TR0SETB TR1POP ACCPOP PSWRETI ;中断返回在频率为1000HZ时,L0~L7显示为50;频率为300HZ 时,L0~L7显示为15,结果正确,程序可以正确运行。

思考与小结:有了前面的定时器实验做基础,定时器计数器的选择以及初始化已经不再是难点,本次试验的重点是写入两个中断判断程序和十六进制到十进制的转化和显示。

MOV TL1,#0B0H ;装入计数值低8位MOV TH1,#3CH;装入计数值高8位,50msMOV 20H,#14H ;未到1s,继续计时 DJNZ 20H,RETUNT;1s 到重新开始 RETUNT:MOV TL0,#00H;将计数器T0清零 MOV TH0,#00H由于书上详细解释了设置中断时间的问题,所以中断程序并没有什么太大的难点,主要是要思考一下程序的执行顺序问题。

十六进制到十进制的转化和显示使我们这次实验遇到的比较大的困难,刚开始采用的是DA指令,由于没有搞清楚它的实质错误的使用了DA。

DA用于十六进制到BCD的转换,不能用于十六进制到8421的转换,于是我们思考了很久。

后来终于找到了比较简单的方法用除数,十位放在A中,个位也就是余数放在B中。

MOV R0,TH0 ;读计数器当前值 MOV R1,TL0MOV A,R1 MOV B,#0AHDIV AB;将计数值转为十进制由于这次的数字比较小而且要显示在L0~L7上,所以可以用这种方法,如果是数字比较大的话这种方法也不奏效,需要写一段通用代码来实现。

后面的问题可谓是一只强大的拦路虎,可能是基础只是不过关的缘故,我们一直在数字的显示顺序上纠结万分,用了左循环但是没有达到预期目的,在老师的指导之下才知道原来可以直接位赋值。

以后一些使用的知识和技巧一定要掌握。

MOV C,ACC.3 ;显示部分,将A中保存的十位赋给L0~L3 MOV P1.0,C MOV C,ACC.2 MOV P1.1,CMOV C,ACC.1 MOV P1.2,C MOV C,ACC.0 MOV P1.3,CMOV A,B;将B中保存的各位转移到A中 MOV C,ACC.3 ;将个位的数字显示在L4~L7上 MOV P1.4,C MOV C,ACC.2 MOV P1.5,C MOV C,ACC.1 MOV P1.6,C MOV C,ACC.0 MOV P1.7,C篇二:51单片机定时器实验电子信息工程学系实验报告课程名称:单片机原理实验项目名称:51定时器实验实验时间:XX-11-27班级:测控081 姓名:学号:2实验目的:熟悉keil仿真软件、伟福仿真器的使用和C51定时程序的编写。

了解51单片机中定时、计数的概念,熟悉51单片机内部定时/计数器的结构与工作原理。

掌握中断方式处理定时/计数的工作过程,掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。

实验原理:定时分类及原理1.软件定时:即让机器执行一个程序段,这段程序本身没有具体的执行目的,只是为了磨时间。

执行这段程序所需要的时间就是延时时间。

这种程序前面已设计过。

这种方法定时占用CPU执行时间,降低了CPU利用率。

此次实验使用的是MCS-51系列单片机。

2.数字电路硬件定时:采用小规模集成电路器件如555,外接定时部件(电阻和电容)构成。

这样的定时电路简单,但要改变定时范围,必须改变电阻和电容,这种定时电路在硬件连接好以后,修改不方便。

3.可编程定时/计数器:是为方便微型计算机系统的设计和应用而研制的,它是硬件定时,又很容易地通过软件来确定和改变它的定时值,通过初始化编程,能够满足各种不同的定时和计数要求,因而在嵌入式系统的设计和应用中得到广泛的应用。

8051型单片机有两个十六位定时/计数器T0、T1,有四种工作方式,跟定时/计数器相关的特殊功能寄存器有这样几个:方式控制寄存器TMODM1、M0的状态决定定时器的工作方式,定时和外部事件计数方式选择位C/T,GATE与TR0、TR1配合决定定时/计数器的启停。

加法计数寄存器TH0、TH1 (高八位)TL0、TL1(低八位);定时/计数到标志TF0、TF1(中断控制寄存器TCON);定时/计数器启停控制位TR0、TR1(TCON);定时/计数器中断允许位ET0、ET1(中断允许寄存IE);定时/计数器中断优先级控制位PT0、PT1(中断优IP)。

定时/计数器的工作方式 MCS-51的定时器有方式0、方式1、方式2和方式2这3种工作方式。

1.方式0当M1M0=00时,定时器工作于方式0。

方式 0为13位的计数器,由TL0的低5位和TH0的8位组成,TL0低5位计数溢出时向TH0进位,TH0计数溢出时置位溢出标志TF0。

若T0工作于定时方式,设计数初值为a,晶振频率为12MHz,则T0从初值开始计数到溢出的定时时间为 t=(213-a)×1μS。

2. 方式1当M1M0=01时,定时器工作于方式1。

T1工作于方式1时,由TH1作为高8位,TL1作为低8位,构成一个十六位的计数器。

若T1工作于定时方式1,计数初值为 a,晶振频率为12MHz,则T1从计数初值计数到溢出的定时时间为t =(216-a)μS。

3. 方式2M1M0=10时,定时器/计数器工作于方式2,方式2为自动恢复初值的 8位计数器。

TL1作为8位计数器,TH1作为计数初值寄存器。

t =(28-a)μS。

单片机内部的定时计数模块,在定时时,对工作频率的12分频进行计数,先记入TL后记入TH,直到溢出为止,根据TL、TH内的初值不同可以定出不同的时间;在计数工作方式时,对T0(T1)引脚的输入脉冲进行计数,将计数值记入TL、TH。

当定时/计数溢出时,会引起中断。

设置合适的计数初值,以产生期望的定时间隔。

由于定时/计数器在方式0、方式1和方式2时的最大计数间隔取决于使用的晶振频率fosc,如下表所示,当需要的定时间隔较大时,要采用适当的方法,即将定时间隔分段处理。

计数初值与定时时间的关系为:T = 12×(T_all –a)/fosc定时间隔为T,计数初值为a。

所以有计数初值a =–T×fosc/12,THx = a / 256,TLx = a % 256。

定时器均有一个最大定时时间,对于长时间的定时需要,可以将定时间隔为固定的较小时间,通过另设一全局变量ah1用于计数,累加固定的较小定时时间来进行。

确定定时/计数器工作于查询方式还是中断方式,若工作于中断方式,则在初始化时开放定时/计数器的中断及总中断: ET0 = 1; EA = 1;还需要编写中断服务函数:void T0_srv(void) interrupt 1 using 1{TL0 = a % 256;TH0 = a / 256;中断服务程序段}4.启动定时器:TR0(TR1)= 1。

实验设备与器件硬件:微机、WAVE单片机仿真器、单片机实验板、跳帽若干软件:KEIL C51单片机仿真调试软件,伟福V系列仿真调试软件实验内容:利用实验板上的一位LED数码管做显示,利用中断法编写定时程序,控制单片机定时器进行定时,所定时间为1S。

刚开始LED数码管显示0,每过1S数码管的显示值增加1,当显示到59时返回0,依此反复。

实验的程序代码如下:#includevoid mDelay (unsigned int Delay) {unsigned int b; for(;Delay>0;Delay--) {for(b=0;b int i,j,k,a; i=-1; j=0; k=0;unsigned char code tab[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x 80,0x90}; void main() {TMOD=0x01;a=-0.1*6*1000000/12; TH0=a/256; TL0=a%256;EA=1; ET0=1; TR0=1; while(1); }void t0( )interrupt 1 {TH0=a/256; TL0=a%256; k++; if(k==10) {k=0; i++;if(i==10){i=0;j++;} if(j==6){i=0;j=0;} {P2=0xfe; P0=tab[i]; mDelay(6000); P2=(P2 实验结果及分析:本题实验的记数结果如下:实验分析如下:本实验是通过定时器来达成在LED数码管从00秒到59秒的显示过程的。

相关文档
最新文档