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

合集下载

单片机定时器实验报告

单片机定时器实验报告

一、实验目的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:下载程序到单片机
–步骤4:观察定时器的工作情况
4.实验结果和分析
实验结果
•在实验过程中,我们成功搭建了单片机定时器实验电路,并编写了相应的程序。

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

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

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

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

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

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

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

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

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

单片机定时器实验原理

单片机定时器实验原理

单片机定时器实验原理一、概述单片机定时器是单片机的重要组成部分,它能够实现定时控制、时间间隔生成等功能。

通过单片机定时器实验,可以更好地了解单片机的内部结构和工作原理,为进一步开发单片机应用系统打下坚实的基础。

二、实验目的1. 掌握单片机定时器的结构和原理。

2. 学会使用单片机定时器进行时间间隔控制。

3. 了解单片机定时器的应用范围和限制。

三、实验原理1. 单片机定时器的结构单片机定时器通常由一个计数器和一个控制逻辑组成。

计数器负责记录脉冲数,控制逻辑负责控制计数器的计数和复位。

单片机定时器通常采用可编程计数脉冲,可以实现任意时间间隔的生成。

2. 单片机定时器的原理单片机定时器的工作原理是基于计数器的计数。

当单片机接收到一个启动信号时,计数器开始计数,当计数达到预设的时间间隔时,单片机输出相应的信号或执行相应的操作。

通过改变计数器的预设值,可以改变时间间隔的长短。

3. 单片机定时器的应用单片机定时器在许多领域都有应用,如智能家居、工业控制、通信设备等。

在智能家居中,可以通过单片机定时器控制家电设备的开启和关闭;在工业控制中,可以通过单片机定时器实现生产线的自动化控制;在通信设备中,可以通过单片机定时器实现时间戳的生成和数据传输的时间控制。

四、实验步骤1. 准备实验器材和软件环境,包括单片机、定时器芯片、编程器、开发板等。

2. 连接实验设备,并调试确保连接正常。

3. 编写实验程序,并上传到单片机中。

4. 观察并记录实验结果,分析误差原因。

5. 根据实验结果,调整程序参数,进行多次实验,直到达到满意的效果。

五、实验注意事项1. 实验过程中要保持设备连接的稳定性,避免意外断开。

2. 编程和调试过程中要确保程序正确,避免误操作导致设备损坏。

3. 注意观察实验现象,及时记录实验数据,分析实验结果。

4. 实验结束后,要清理实验现场,确保设备复位。

六、实验结果分析通过实验,我们能够得到较为准确的时间间隔控制结果。

定时器计数器实验报告

定时器计数器实验报告

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

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

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

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

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

单片机计时器设计实训报告

单片机计时器设计实训报告

一、实训目的通过本次实训,使学生了解单片机计时器的基本原理和设计方法,掌握单片机计时器的硬件设计和软件编程,提高学生动手实践能力和创新能力。

二、实训内容本次实训设计一款基于51单片机的计时器,具备计时、暂停、复位功能,计时范围0-59秒,精确到0.1秒。

三、实训原理1. 计时原理:利用51单片机的定时器/计数器功能,通过定时器中断实现计时功能。

2. 暂停功能:在计时过程中,按下暂停按钮,关闭定时器中断,计时停止。

3. 复位功能:按下复位按钮,将计时器清零,数码管显示00.0。

四、实训步骤1. 硬件设计(1)选择51单片机作为核心控制单元。

(2)选择4位共阴数码管作为显示模块,用于显示计时时间。

(3)选择按键作为控制模块,实现计时、暂停、复位功能。

(4)设计电路原理图,包括单片机、数码管、按键等模块的连接。

2. 软件设计(1)编写程序,初始化定时器/计数器,设置中断时间。

(2)编写中断服务程序,实现计时功能。

(3)编写按键扫描程序,实现计时、暂停、复位功能。

(4)编写数码管显示程序,将计时时间显示在数码管上。

3. 系统调试(1)连接电路,将程序烧录到单片机中。

(2)测试计时功能,确保计时准确。

(3)测试暂停和复位功能,确保功能正常。

(4)测试按键功能,确保按键操作正确。

五、实训结果与分析1. 硬件设计结果根据设计要求,成功设计了一款基于51单片机的计时器,包括单片机、数码管、按键等模块的连接,电路原理图如下:```+3.3V||---[单片机]||---[数码管]||---[按键]|GND```2. 软件设计结果编写了完整的程序,实现了计时、暂停、复位功能,数码管显示计时时间,计时范围0-59秒,精确到0.1秒。

3. 系统调试结果经过调试,计时器功能正常,计时准确,按键操作正确,符合设计要求。

六、实训心得1. 通过本次实训,掌握了单片机计时器的基本原理和设计方法,提高了动手实践能力和创新能力。

2. 学会了如何使用51单片机定时器/计数器功能实现计时功能,了解了中断编程的基本方法。

单片机原理与应用实验报告5——秒表定时器实验

单片机原理与应用实验报告5——秒表定时器实验

大连理工大学软件学院《单片机原理与应用》实验报告姓名:学号:班级:姓名:学号:班级:组号:实验箱编号:实验时间:月日实验室:嵌入式实验室实验台:Embest Edukit-III平台指导教师:侯刚成绩:实验五:秒表定时器实验一、实验目的和要求题目:秒表定时器实验实验目的1. 学习单片机的基本接口技术。

2. 学习74HC595、74HC138使用及与51单片机的控制方法。

实验要求1.通过按键控制,完成数码管的显示计数控制。

2. 用汇编语言设计程序,完成8个数码管的显示控制。

当按下INT 按钮时,数码管开始快速计时,高五位为秒数,低三位为ms 数,每1ms 刷新一次显示内容。

当再次按下INT 按钮时,停止计数。

二、实验原理和内容实验内容:用汇编语言设计程序,完成8个数码管的显示控制。

当按下INT 按钮时,数码管开始快速计时,高五位为秒数,低三位为ms 数,每1ms 刷新一次显示内容。

当再次按下INT 按钮时,停止计数。

实验原理:1.根据原理图,分析工作原理,有P0进行取段码,P2.0 P2.1 P2.2进行取位码。

2.使用定时器进行计时。

根据所给开发板上的晶振频率,计算出计时器所付初值,设置计时器TO在模式下工作,每次计时100ms后,转入数码管显示中断处理程序。

3.实验板为共阴极数码管显示,将对应的显示0~9的电信号依次存储在“数组表”中。

4.使用key1,key2两个按键,按下key1,开始计时。

按下key2,计时停止。

5.根据实验要求,采用T0,T1两个定时器,其中T0用来增加时间显示,T1为按暂停键时为LED显示管循环上电所用。

6.每部分中断程序用寄存器间接寻址的方式获取显示数字的电信号量。

并进行循环上电,保证数字的亮度。

三、主要仪器设备及软件编程环境主要仪器:计算机编程软件,51电路开发板编程环境:uVision2 ,progisp烧写软件四、实验步骤与编程实验步骤:编写代码,编译,调试,烧写,完成实验。

单片机定时器实验报告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。

51单片机定时计数器的工作原理

51单片机定时计数器的工作原理

51单片机定时计数器的工作原理
51单片机是一种常用的微控制器,它具有多个定时计数器,其中包括定时器0和定时器1。

这些定时计数器是通过内部时
钟源提供的脉冲进行计数的。

定时器0和定时器1是独立的计数器,它们可以用于不同
的应用。

这里我们将主要关注定时器0的工作原理。

定时器0
由一个八位计数器和一个控制寄存器组成。

当定时器0启动时,它会根据时钟源提供的脉冲进行计数,每个脉冲会使计数器的值增加1。

定时器0的计数范围为0-255,即八位二进制数。

通过控制寄存器,我们可以设置定时器0的工作模式、计
数器的初始值以及时钟源的频率。

定时器0可以以不同的方式工作,包括定时模式和计数模式。

在定时模式下,我们可以设置一个初始值,并在每次计数
器增加到该值时产生一个中断。

这样就可以实现精确的定时功能。

定时器0的中断服务程序可以完成各种操作,例如控制其他外设、延时等。

在计数模式下,定时器0将简单地计数外部触发信号的脉
冲次数。

这可以用于测量外部事件的时间间隔或频率。

需要注意的是,定时器0的工作需要通过编程来完成。


们可以使用汇编语言或C语言来配置定时器0的寄存器,并
设计相应的中断服务程序。

51单片机定时器的工作原理是通过定时器0和定时器1实
现计数功能。

定时器0可以在定时模式或计数模式下工作,通过设置计数值和时钟源频率,实现精确的定时功能或测量外部
事件的时间间隔或频率。

编程则是必不可少的,通过配置寄存器和编写中断服务程序来实现定时器的工作。

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

宁德师范学院计算机系
实验报告(2014—2015学年第 2学期)
课程名称单片机原理
实验名称定时器与计数器
专业计算机科学与技术(非师)
年级 12级
学号 B47 姓名王秋
指导教师杨烈君
实验日期
实验步骤、实验结果及分析:
1、使用Proteus ISIS 7 Professional应用程序,建立一个.DSN文件
2、在“库”下拉菜单中,选中“拾取元件”(快捷键P),分别选择以下元件:AT89C51、LED-YELLOW、BUTTON、7SEG-MPX8-CA-BLUE、RESPACK-8。

3、构建仿真电路
4、创建一个Keil应用程序:新建一个工程项目文件;为工程选择目标器件(AT89C52);为工程项目创建源程序文件并输入程序代码;保存创建的源程序项目文件;把源程序文件添加到项目中。

5、把用户程序经过编译后生成的HEX文件添加到仿真电路中的处理器中(编辑元件→文件路径)
程序代码:
1.实现单按键控制Led灯闪烁(1s变化一次)
#include""
#define uchar unsigned char
u char Time_50ms;
s bit Led1=P1^0;
u char Mode;
v oid delay(int x)
注:1、报告内的项目或设置,可根据实际情况加以补充和调整 2、教师批改学生实验报告应在学生提交实验报告10日内。

相关文档
最新文档