单片机原理与应用技术实验报告(实验项目:定时器)

合集下载

单片机定时器实验报告

单片机定时器实验报告

一、实验目的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. 硬件设备: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. 8051单片机实验板;2. 电脑;3. 开发软件Keil C51;4. 适配器和连接线。

三、实验原理:定时器是一种常见的计时设备,用于测量时间的间隔或周期。

在8051单片机中,定时器可通过内部的计数器和控制寄存器实现。

在本次实验中,使用T0定时器作为实验对象。

四、实验步骤:1. 打开Keil C51软件,在新建的工程中编写程序代码;2. 配置P0口的3、4号引脚为输入模式;3. 设置T0定时器的工作模式和计时时间;4. 将定时器引脚输出的方波信号接到P1.0引脚,通过示波器观察方波信号;5. 烧录程序代码到8051单片机;6. 上电启动单片机,观察并记录示波器上的方波信号;7. 根据实验结果,分析定时器的工作原理和应用场景。

五、实验结果:根据本次实验的设置,T0定时器的工作模式为模式1,计时时间为1秒。

在示波器上观察到定时器引脚输出的方波信号的频率为1Hz,即每秒产生一个高电平和一个低电平。

六、分析与讨论:根据实验结果可知,T0定时器在计时时间到达后会产生一个中断,并且在中断时改变定时器引脚的电平。

在实际应用中,可以通过定时器来实现各种需要精确计时的操作,如定时采集数据、测量时间间隔等。

七、实验总结:通过本次实验,我们了解了定时器的基本原理和工作方式,并学习了如何使用定时器进行各种定时操作。

定时器在实际应用中具有广泛的用途,可以实现许多需要精确计时的功能。

掌握定时器的使用方法对于单片机的开发和应用具有重要意义。

八、实验感想:本次实验使我更加深入地了解了定时器的原理和应用,掌握了一些常见的定时操作方法。

定时器在微控制器系统中有着广泛的应用,对于提高系统的稳定性和可靠性有着重要作用。

通过实验的操作,我对定时器的使用和工作原理有了更加深入的认识,对于今后在单片机开发中的应用和调试能力的提高有着积极的促进作用。

单片机实习报告定时器

单片机实习报告定时器

单片机实习报告——定时器一、实习目的通过本次单片机实习,使我对单片机的工作原理和应用有更深入的了解,特别是定时器的工作原理和编程方法。

同时,培养我动手实践能力和团队协作能力,提高我在实际工程中的应用能力。

二、实习内容本次实习主要分为两个部分:定时器的原理学习和定时器的应用实践。

在原理学习部分,我通过阅读相关资料和教材,对定时器的工作原理、工作模式和编程方法有了深入的了解。

在应用实践部分,我参与了团队的项目,通过实际操作,对定时器的应用有了更直观的认识。

三、实习过程1. 定时器原理学习在定时器原理学习部分,我首先了解了定时器的基本概念,定时器是一种能够根据设定的时间间隔产生中断的硬件设备。

然后,我学习了定时器的工作原理,包括定时器的工作模式、计数器、控制寄存器等。

最后,我掌握了定时器的编程方法,通过编写程序实现定时器的定时功能。

2. 定时器应用实践在定时器应用实践部分,我参与了团队的项目。

我们选择了一个简单的应用场景,利用定时器实现一个周期性的信号输出。

我负责编写定时器的程序,设置定时器的工作模式和计数器值,实现定时器的定时功能。

同时,我还参与了团队的讨论,提出了改进意见和解决方案。

四、实习收获通过本次实习,我对定时器的工作原理和编程方法有了更深入的了解,掌握了定时器的应用方法。

同时,我在实际操作中培养了动手实践能力,提高了团队协作能力。

此外,我还学会了如何查阅相关资料和教材,提高了自己的自学能力。

五、实习总结本次实习让我对单片机的定时器功能有了更深入的了解,通过实际操作,使我对定时器的应用有了更直观的认识。

同时,本次实习培养了我的团队协作能力和动手实践能力,提高了我在实际工程中的应用能力。

在今后的学习和工作中,我将继续努力,不断提高自己的技能水平,为我国的电子科技事业做出贡献。

单片机定时器实验报告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. 通过编程实现定时器的定时功能。

4. 学习定时器中断的应用。

二、实验环境1. 实验设备:单片机实验板、电源、连接线等。

2. 实验软件:Keil uVision 4、IAR EWARM等C语言开发环境。

三、实验原理定时器是一种用于实现时间延迟的硬件模块,它能够在预定的时间内产生中断或完成特定的操作。

定时器通常由计数器、控制寄存器、时钟源等组成。

定时器的工作原理是利用时钟源产生的时钟信号对计数器进行计数,当计数器达到预设值时,触发中断或完成特定操作。

四、实验内容1. 定时器基本配置(1)设置定时器模式:根据实验需求,选择定时器的工作模式(如模式0、模式1等)。

(2)设置定时器时钟源:选择定时器时钟源(如系统时钟、外部时钟等)。

(3)设置定时器计数初值:根据实验需求,设置定时器计数初值。

2. 定时器定时功能实现(1)编写程序初始化定时器:配置定时器模式、时钟源、计数初值等。

(2)编写定时器中断服务程序:在中断服务程序中实现定时功能,如控制LED闪烁、读取传感器数据等。

3. 定时器中断应用(1)配置定时器中断:设置定时器中断优先级、中断使能等。

(2)编写定时器中断服务程序:在中断服务程序中实现所需功能,如采集数据、发送数据等。

五、实验步骤1. 编写程序初始化定时器:设置定时器模式、时钟源、计数初值等。

2. 编写定时器中断服务程序:实现定时功能,如控制LED闪烁。

3. 编写定时器中断配置程序:设置定时器中断优先级、中断使能等。

4. 编译、下载程序:将编写好的程序编译生成HEX文件,通过编程器下载到实验板上。

5. 运行实验:观察实验现象,如LED闪烁频率、数据采集等。

六、实验结果与分析1. 定时器定时功能实现实验结果显示,定时器能够按照设定的定时时间产生中断,中断服务程序能够正确执行。

例如,LED闪烁频率与定时时间一致。

定时器实验报告

定时器实验报告

定时器实验报告
一、实验目的
学习如何在单片机中使用定时器,进一步理解定时器的工作
原理和使用方法。

二、实验器材
单片机开发板、电脑、LED灯或蜂鸣器等外部设备。

三、实验原理
定时器是一种内部的计时设备,可以通过设置定时器的工作
方式、计时单位和计时周期来完成不同的定时任务。

单片机上通常会有一个或多个定时器模块,我们可以通过配置和操作这些定时器模块来实现各种计时、延时、定时触发等功能。

四、实验步骤
1. 初始化定时器:设置定时器工作方式、计时单位和计时周期。

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

3. 监测定时器中断:定时器计时完成后会触发中断。

4. 处理定时器中断:在中断服务程序中进行相应的操作,如
控制LED灯闪烁、发出蜂鸣器声音等。

5. 关闭定时器:计时完成后关闭定时器。

五、实验结果和分析
在实验中,我们可以通过设置不同的计时器工作方式、计时
单位和计时周期来实现不同的定时效果。

例如,如果将定时器设置为周期性计时方式,计时单位为微秒,计时周期为1000,
那么定时器每隔1毫秒(1000微秒)就会触发一次中断,我
们可以在中断服务程序中控制LED灯或蜂鸣器进行响应操作。

六、实验心得
通过本次实验,我进一步了解了定时器的工作原理和使用方法。

定时器是单片机中常用的功能模块,可以实现各种时间相关的功能。

掌握了定时器的使用,有助于提高单片机系统的定时、延时、调度等能力,为后续的项目开发和应用打下良好的基础。

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

*****数学计算机科学系实验报告
专业:计算机科学与技术班级:实验课程:单片机原理与应用技术
姓名:学号:实验室:硬件实验室
同组同学:
实验时间:2013年3月20日指导教师签字:成绩:
实验项目:定时器
一实验目的和要求
定时器0实现1s定时,流水灯显示上的数据每秒加1。

二实验环境
PC机一台,实验仪器一套
三实验步骤及实验记录
1.在pc机上,打开Keil C。

2.在Keil C中,新建一个工程文件,点击“Project->New Project…”菜单。

3.选择工程文件要存放的路径 ,输入工程文件名 M, 最后单击保存。

4. 在弹出的对话框中选择 CPU 厂商及型号。

5.选择好 Atmel 公司的 89c51 后 , 单击确定。

6.在接着出现的对话框中选择“是”。

7.新建一个 C51 文件 , 点击file菜单下的NEW,或单击左上角的 New File快捷键。

8.保存新建的文件,单击SAVE。

9.在出现的对话框中输入保存文件名MAIN.C,再单击“保存”。

10.保存好后把此文件加入到工程中方法如下 : 用鼠标在 Source Group1 上单击右键 , 然后再单击 Add Files to Group ‘Source Group 1'。

11.选择要加入的文件 , 找到 MAIN.C 后 , 单击 Add, 然后单击Close。

12.在编辑框里输入代码如下:
#include "reg51.h" //包含头文件
sbit LE1=P2^0; //位选573锁存器使能
sbit LE2=P2^1; //段选573锁存器使能
#define uchar unsigned char
#define uint unsigned int
uchar temp,num; //定义变量
t0() interrupt 1 using 1
{
TH0=0x3c; //重置定时器初值
TL0=0xb0;
if(temp>=19) //满20次,即20次*50ms=1s
{
temp=0x00; //重置temp为0
num++; //显示变化一次
P1=~num; //将变化次数放在P1控制的LED上显示
}
else
{
temp++; //每进一次中断,temp加1
}
}
main()
{
TMOD=0x01; //0b00000001 用的是定时器0,工作在方式1(16位寄存器) //要实现定时50ms,(65536-T0)x12/12000000=0.05s得T0=15536即0x3cb0 TH0=0x3c; //装定时器初值高8位
TL0=0xb0; //装定时器初值低8位
TR0=1; //启动定时器0
ET0=1; //开定时器0中断
EA=1; //开总中断
while(1); //死循环,等待定时器中断
}
13.单击快捷键或单击Project/Rebuild all the files,如果在错误与警告处看到 0 Error(s) 表示编译通过。

14.单击Options for Target,单击 Output, 选中 Create HEX Fi。

再单击“确定”,再次编译产生HEX文件。

15.STC-ISP 软件烧写程序,步骤如下:
步骤1、选择单片机型号STC12C5A60S2。

步骤2、打开程序文件(后缀为.HEX 的文件)。

在相应工程下找到待下载的HEX 文件,点击打开即可。

步骤3、选择串行口COM3。

步骤4、用USB线连接电脑和主板,将主板和核心板上的电源都关闭,点击“Download下载”,打开核心板上的电源开关(注意不是主板上的电源开关),等待完成下载。

16.在单片机上,用8位排线将J8与J13连接。

17.打开单片机电源开关,观察现象。

四实验结果与分析
定时器0实现1s定时,LED显示的数据每秒加1。

相关文档
最新文档