实验四 51单片机的定时器实验

合集下载

单片机定时器实验报告

单片机定时器实验报告

一、实验目的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产生一个溢出信号。

单片机定时器仿真实验

单片机定时器仿真实验
地址 D7 D6 D5 D4 D3 D2 D1 D0 符号 GATE C/T M1 M0 GATE C/T M1 M0
定时 / 计数器1

定时 / 计数器0
M1,M0——操作方式选择位;

M1M0=00——13位计数器; M1M0=01——16位计数器; M1M0=10——自动再装入8位计数器; M1M0=11 ——T0分成两个8位计数器;T1无效
元件名称 所属类 所属子类
AT89C51
CAP CAP-ELEC
Microprocessor ICs
Capacitors Capacitors
8051 Family
Generic Generic
CRYSTAL
RES LED-BLUE SWITCH
5 年3月 2013
Miscellaneous
Resistors Active Active

PT0=0——定时器/计数器中断低优先级; PT0=1——定时器/计数器中断高优先级;

PT1—— 定时中断1优先级设定位;


PT1=0——定时器/计数器中断低优先级; PT1=1——定时器/计数器中断高优先级。
2 年3月 2013
2006-2-10
传感器原理与应用
51系列单片机定时器/计数器实验Proteus仿真
(1)中断允许寄存器IE (地址为A8H )
位地址 位符号

AF EA
AE -
AD -
AC AB ES ET1
AA EX1
A9 ET0
A8 EX0
EA—— 中断允许总控制位;

EA=0—— 中断总禁止,禁止所有中断; EA=1—— 中断总允许; ET0=0——禁止定时器/计数器中断; ET0=1——允许定时器/计数器中断; ET1=0——禁止定时器/计数器中断; ET1=1——允许定时器/计数器中断。

单片机定时器实验原理

单片机定时器实验原理

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

51单片机定时器实验报告

51单片机定时器实验报告

51单片机定时器实验实验内容:实验内容:(1)编写程序使定时器0或者定时器1工作在方式1,定时50ms触发蜂鸣器。

C语言程序#include<reg52.h>#define uint unsigned int#define ucahr unsigned charsbit FM=P0^0;void main(){TMOD=0x01;TH0=(65535-50000)/256;TH0=(65535-50000)%256;EA=1; //开总中断ET0=1; //开定时器0中断TR0=1;while(1);}void T0_time()interrupt 1 {TH0=(65535-50000)/256; TH0=(65535-50000)%256; FM=~FM;}汇编程序ORG 0000HJAMP MAINORG 000BHLJMP INT0_INTORG 0100HMIAN: SETB EASETB ET0AJMP $INT0_INT:MOV R2,#0FAHMOV R3,#0C8HDJNZ R3,$DJNZ R2,INT0_INTRETI(2)编写程序使定时器0或者定时器1工作在方式1,定时500ms使两位数码管从00、01、02……98、99每间隔500ms加1显示。

#include<reg52.h>#define uint unsigned int#define ucahr unsigned charuint num,num1;sbit FM=P0^7;int shi,ge,a;void delay(uint);void shumaguan();unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e}; //共阳极数码管0-F编码表void main(){TMOD=0x01;TH0=(65535-50000)/256; TH0=(65535-50000)%256; EA=1; //开总中断ET0=1; //开定时器0中断TR0=1;while(1){shumaguan();}}void T0_time()interrupt 1 {TH0=(65535-50000)/256; TH0=(65535-50000)%256;num1++;if(num1==10) {num1=0;num++;shi=num/10;ge=num%10;if(num==100) {num=0;}}}void shumaguan() {P3=0x01;P2=table[shi];delay(5);P3=0x02;P2=table[ge]; delay(5);void zuoyi(){a=~P3;a=a<<1;P3=~a;if(P3==0xfb){P3=0xfe;}}void delay(uint x) {int i,j;for(i=0;i<x;i++)for(j=0;j<110;j++);}(3)编写程序使定时器0或者定时器1工作在方式2,自动重装载模式,定时500ms 使两位数码管从00、01、02……98、99每间隔500ms加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可以在定时模式或计数模式下工作,通过设置计数值和时钟源频率,实现精确的定时功能或测量外部
事件的时间间隔或频率。

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

单片机定时器实验报告

单片机定时器实验报告

单片机定时器实验报告篇一:单片机实验报告——定时器实验四定时器实验自动化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。

MCS-51单片机实验集合(9个实验)

MCS-51单片机实验集合(9个实验)
外部RAM单元的方法。 (8) 理解MCS-51单片机在复位期间及复位后有关引脚的状态、特殊功能
寄存器的初值。
附录A 实 验
二、实验器材 仿真器及附件(电源、仿真头、联机通讯电缆)、直流稳压
电源(最好是单片机专用电源)、逻辑笔、数字万用表各一套。
附录A 实 验
三、实验电路
+ 5V
U2 R1 2 1 7407
附录A 实 验
附录A 实 验
实验一 MCS-51单片机及其开发系统 (仿真器)的认识
实验二 MCS-51指令系统 实验三 MCS-51指令系统综合练习 实验四 中断实验 实验五 显示器与定时中断 实验六 串行通信 实验七 键盘扫描 实验八 A/D转换 实验九 D/A转换
附录A 实 验
实验一 MCS-51单片机及其开发系统(仿真器)的认识
一、实验目的 (1) 了解MCS-51单片机开发常用工具。 (2) 了解仿真器构成、功能及连接。 (3) 掌握MCS-51开发软件(汇编器)安装、功能及基本操作。 (4) 掌握源程序的编辑、汇编、运行(包括连续执行、单步执行和跟踪执
行)。 (5) 掌握汇编语言指令与机器语言指令之间的对应关系。 (6) 掌握ORG、DATA、BIT等伪指令的作用。 (7) 掌握在特定仿真开发系统下浏览、修改特殊功能寄存器、内部RAM、
25 24
23 22
21
U6
+ 5V
1
2 3
4
A0 Vcc A1 WP A2 SCL Vss SDA
8
7 6 P3.4 5 P3.5
33 pF 3.6864 MHZ
8 9C5 2 U4A
1 2
6
INT0
4
74LS21 5
2 4W C0 2

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

实验四51单片机的定时器实验
在单片机应用系统中,许多场合都要用到计数或定时功能。

例如,对某个外部事件进行计数、定时巡回检测物理参数、按一定的时间间隔进行现场控制等。

MCS-51单片机内部提供了两个16位的可编程的定时器/计数器T0和T1,通过编程可方便灵活地设定定时或计数的参数或方式。

一、实验目的
掌握51单片机的定时器应用。

二、实验内容
f=12MHz,要求用定时器/计数器T0以方式1在P1.0脚上输出周期为4ms 1、设单片机的
osc
的方波。

Note:分别用查询方式和中断方式实现程序设计。

2、已知振荡频率为6MHz,用T0实现从P1.0口产生周期为1s,占空比为30%的波形。

3、已知振荡频率为12MHz,利用单片机T1产生定时时钟,由P1口输出信号控制8个LED
灯。

试编程使8个灯依次轮流点亮,且每个灯点亮时间为100ms。

4、设计一个跑马灯应用系统(每个LED亮灯时间为100ms),用外中断INT1实现LED单
灯左移和单灯右移的切换。

5、如图4-1所示,指拨开关的状态由P2输入,在此将利用其中的4个按键设定输出地频
三、实验步骤
1、首先在PROTEUS仿真软件中把电路连接妥当。

2、画出流程图。

3、使用KEIL集成开发环境编写程序,编译调试。

四、思考
1、查询方式和中断方式的区别在哪里?
五、参考答案
参看lesson4文件夹ex1.c,ex2.c程序。

相关文档
最新文档