单片机关于定时器的大作业实验报告

合集下载

单片机定时器实验报告

单片机定时器实验报告

一、实验目的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. 定时器应用实践在定时器应用实践部分,我参与了团队的项目。

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

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

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

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

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

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

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

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

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

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显示。

单片机定时器实验报告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、掌握定时器/计数器定时功能的使用方法。

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、掌握定时器/计数器定时功能的使用方法。

单片机定时器实验报告

单片机定时器实验报告

定时器实验报告㈠实验目的1.掌握单片机内部计数器的使用和编程方法;2.掌握中断处理程序的编程方法。

㈡实验器材1.G6W仿真器一台2.MCS—51实验板一台3.PC机一台4.电源一台5.示波器一台㈢实验内容及要求1.在使用12MHz晶振的条件下,由8051内部定时器1按方式1工作,即作为16位定时器使用,每0.05秒钟T1溢出中断一次。

P1口的P1.0~P1.7分别接发光二极管的L1~L8。

(用连线连接J2、J3)。

要求:编写程序模拟一循环彩灯。

彩灯变化花样为:①L1、L2、 (8)次点亮;②L1、L2、…L8依次熄灭;③L1、L2、…L8全亮、全灭。

各时序间隔为0.5秒。

让发光二极管按以上规律循环显示下去。

2.编写一个救护车警笛声程序,要求:高低两种音调交替出现,交替周期1~1.5S。

㈣ 实验框图循环彩灯代码ORG 0000H LJMP MAINORG 000BH ;T0的中断入口地址MAIN:MOV SP,#60HMOV TMOD,#01H ;设置T1工作于方式一MOV 20H,#0AH ;装入中断次数MOV TL0,#0B0H ;装入计数值低8位MOV TH0,#3CH ;装入计数值高8位SETB TR1 ;启动定时器T1SETB ET1 ;允许T1中断SETB EA ;允许CPU中断SJMP $ ;等待中断CAIDENG:PUSH PSWPUSH ACC ;保护现场MOV TL0,#0B0H ;装入计数值低8位MOV TH0,#3CH ;装入计数值高8位JUDGE:DJNZ 20H,RETUNT ;0.5秒未到,返回MOV 20H,#0AH ;重置中断次数HUAY ANG1: ;花样一MOV R0,#08H ;设置花样一循环次数MOV P1,#00HMOV A,#01HLOOP:MOV P1,ALCALL DELAYLCALL DELAYLCALL DELAYRL ADJNZ R0,LOOPNEXT1:MOV TL0,#0B0H ;装入计数值低8位MOV TH0,#3CH ;装入计数值高8位JUDGE1:DJNZ 20H,NEXT1 ;0.5秒未到,返回MOV 20H,0AHHUAY ANG2: ;花样二MOV R0,#08H ;设置花样二循环次数MOV P1,#0FFHMOV A,#0FEHLOOP1:MOV P1,ALCALL DELAYLCALL DELAYLCALL DELAYRL ADJNZ R0,LOOP1NEXT2:MOV TL0,#0B0H ;装入计数值低8位MOV TH0,#3CH ;装入计数值高8位JUDGE2:DJNZ 20H,NEXT2 ;0.5秒未到,返回MOV 20H,0AHHUAY ANG3:MOV P1,#00HLCALL DELAYLCALL DELAYLCALL DELAYMOV P1,#0FFHLCALL DELAYLCALL DELAYLCALL DELAYNEXT3:MOV TL0,#0B0H ;装入计数值低8位MOV TH0,#3CH ;装入计数值高8位JUDGE3:DJNZ 20H,NEXT3 ;0.5秒未到,返回MOV 20H,0AHJMP RETUNTDELAY: ;延时子程序MOV R2,#0FFHDELAY1:MOV R1,#0FFHDJNZ R1,$DJNZ R2,DELAY1RETRETUNT:POP ACCPOP PSWRETI ;中断返回END救护车警笛声程序ORG 0000HAJMP MAINORG 001BH ;T0的中断入口地址AJMP S1ORG 0040HMAIN:MOV SP,#70HMOV R1,#100MOV R2,#10MOV R3,#20MOV TMOD,#10H ;设置T1为定时器,工作方式1MOV TH1,#0FCH ;装入计数值高8位MOV TL1,#18H ;装入计数值低8位SETB TR1 ;启动定时器T1SETB ET1 ;允许T1中断SETB EA ;允许CPU中断SJMP $ ;等待中断S1:JB F0,S2 ;高音部分MOV TH1,#0FCHMOV TL1,#18HCPL P1.0 ;取反DJNZ R1,ENDSMOV R1,#100DJNZ R2,ENDSMOV R2,#10SETB F0 ;F0赋值SJMP ENDSS2:MOV TH1,#0FEH ;低音部分MOV TL1,#0CHCPL P1.0DJNZ R1,ENDSMOV R1,#100DJNZ R3,ENDSMOV R3,#20CLR F0ENDS:RETI本次实验主要考察定时器和计数器还有中断的使用,由于课本上例题详细,所以初始化赋值之类的基础性问题并没有遇到什么困难,再加上第一次实验P1口输出和音乐实验的铺垫,基本上没有遇到什么太大的问题。

(完整word版)实验5定时器计数器实验报告

(完整word版)实验5定时器计数器实验报告

单片机实验五定时器/计数器设计实验报告一、实验内容1、采用12MHZ时钟频率的单片机,通过一个开关输入,触发定时计数.按下开关10次,计算按键的平均时间,并通过数码管显示出来。

二、实验目的1、了解定时器的各种工作方式。

2、掌握定时器/计数器的使用和编程方法。

三、实验设备win7系统下的proteus7.8和ceil4联调四、实验电路图五、程序代码#include<reg51。

h〉sbit P1_0=P1^0;unsigned char numcode[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88};unsigned char seqcode[4]={0x01,0x02,0x04,0x08};unsigned int num=0;void int1()interrupt 1{num++;TL0=0xb0;TH0=0x3c;}void DelayMS(unsigned int ms){unsigned char i;while(ms——)for(i=0;i<120;i++);}void main(){unsigned char i=0;unsigned char dspcode[4];unsigned long t;P3=numcode[i];ET0=1;EA=1;TH0=0x3c;TL0=0xb0;TMOD=0x01;while(1){if(P1_0==0){TR0=1;i++;P3=numcode[i];while(P1_0==0);TR0=0;if(i==10){t=((TH0〈〈8)+TL0)/1000;t=(t+50*num)/10;dspcode[0]=numcode[(t/1000)%10]^0x80;dspcode[1]=numcode[(t/100)%10];dspcode[2]=numcode[(t/10)%10];dspcode[3]=numcode[t%10];break;}}}while(1){for(i=0;i<4;i++){P2=seqcode[i];P0=dspcode[i];DelayMS(5);}}}六、实验结果七、实验小结通过实验,我了解了定时器的各种工作方式和定时器/计数器的使用和编程方法,为进一步学习打下基础.。

单片机定时器实训报告

单片机定时器实训报告

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

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

为了提高学生的单片机应用能力,本次实训选取了基于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. 理解单片机定时器的工作原理;2. 掌握定时器的基本配置和使用方法;3. 实现定时器产生精确的时间延迟和周期性的信号。

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

实验步骤:1. 连接单片机开发板和电脑,确保开发板与电脑正常通信;2. 打开开发板的开发环境软件,创建一个新的工程;3. 在工程中选择定时器模块,并进行基本配置,如选择定时器模式、预分频系数等;4. 编写程序代码,实现定时器功能。

可以选择定时产生一个精确的时间延迟,或者产生一个周期性的信号;5. 将程序代码下载到单片机开发板中,并运行程序;6. 观察实验结果,验证定时器的工作是否符合预期。

实验结果:经过实验,我们成功实现了单片机定时器的功能。

通过设置定时器的工作模式和预分频系数,我们可以生成精确的时间延迟和周期性的信号。

实验结果与预期一致,证明了定时器的可靠性和准确性。

实验总结:通过本次实验,我们深入了解了单片机定时器的原理和应用。

定时器作为嵌入式系统中的重要组件,具有广泛的应用前景。

掌握定时器的基本配置和使用方法,对于开发嵌入式系统和实现各种功能非常重要。

通过实验,我们不仅学到了理论知识,还掌握了实际操作的技巧和经验。

然而,单片机定时器的应用不仅仅局限于时间延迟和周期性信号的生成。

在实际工程中,定时器还可以用于测量脉冲宽度、频率计数、PWM波形生成等。

因此,我们在以后的学习和工作中,应该进一步探索和应用定时器的其他功能,以满足不同场景下的需求。

总之,单片机定时器是嵌入式系统中不可或缺的组件之一。

通过本次实验,我们对定时器的原理和应用有了更深入的了解。

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

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

实验三定时器实验实验报告一、实验目的1. 掌握定时器的基本概念;2. 学会使用定时器;3. 了解定时器的各种使用方法。

二、实验原理1. 定时器:定时器是单片机中一个重要的外设,是用来控制时间的。

AT89C51单片机中有2个定时器,它们分别是定时器0和定时器1。

定时器0和定时器1可以看作计时器,其作用是在每个指令的执行周期内加1,当计数器的值超过计数器的初始值后,会产生相应的中断信号来通知CPU。

2. 定时器的通用计数器模式:此模式中,定时器是单纯的计数器,没有和任何外设相连接,它的原理就是在每个时钟周期中向计数器加1,当计数器溢出时,就会产生中断信号,可以用来进行时间的计数,确定时间精度等应用。

此模式中,定时器将会和外部的时钟源相连接,通过在计数器内部计数,从而控制波形的输出,这种模式的应用非常广泛,如计时器、计时器、PWM波产生器等。

三、实验内容在本次实验中,我们将使用定时器的通用计数器模式来进行操作,首先需要配置定时器的工作模式,因为单片机中的定时器还有其他的工作模式,所以需要进行选择。

2. 设置定时时间及启动定时器在定时器配置好之后,需要将定时时间设置成所需的时间,并且启动定时器开始计时。

3. 检测中断并作出响应当定时器达到所设的时间时,会产生相应的中断信号,CPU会检测该中断信号并作出响应。

四、实验步骤首先选择所需的定时器,并进行相应的设置,比如计数器的内部工作频率,计时模式等。

根据需要的计时时间,将计数器的初始值设为所需的时间,在程序中添加相应的启动定时器的指令。

五、实验结果本次实验中,我们学会了使用定时器,并掌握了定时器的基本原理和使用方法,以及具体的应用方法。

定时器的应用非常广泛,是单片机的一个重要外设,相信在今后的学习和工作中,我们将会用到它,并更好地掌握它的应用。

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

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

单片机定时器计数器实验报告篇一:单片机计数器实验报告计数器实验报告㈠实验目的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,结果正确,程序可以正确运行。

(完整word版)单片机关于定时器的大作业实验报告

(完整word版)单片机关于定时器的大作业实验报告

课程设计报告基于微处理器的定时器设计一.硬件系统的设计:(1)设计要求:本课程设计的定时器,待机状态是一台时钟,以秒为单位两点闪烁,可设置多个闹铃时间,蜂鸣器鸣叫时间持续一分钟,并可作秒表使用,可控制秒表启停。

(2)设计目的:1.复习和巩固所学过的知识,利用此毕业设计正好可以对所学过的知识进行系统的回顾和总结。

2.拓展知识面,课堂的知识是远远满足不了设计的要求的,这就需要我们主动去找寻更多的资料,了解更多的知识。

3.培养了设计能力和解决实际问题的能力,同时增强了自学能力,通过设计完整的单片机系统也初步掌握了组成系统、编程、调试等能力。

4.通过本LCD电子钟的设计初步了解了单片机应用系统开发研制过程,软件和硬件设计的方法。

5.本课程设计目的是制作基于微处理器的定时器,将学过的微处理器硬件和软件知识,以及电子线路知识进行综合应用,形成一个能实际运行的电子作品。

(3)系统组成及工作原理该定时器主要由单片机,复位电路,电源,蜂鸣器和开关构成。

本定时器采用ATMEL公司的AT89S51单片机为核心,使用晶振11.0592MHz晶振与单片机AT89S51相连,通过软件编程的方法实现12分钟为一个周期,同时LCD显示分钟和秒的要求。

(a)硬件的设计:本设计的硬件系统主要由以下几个模块来实现:控制模块、输入模块、输出模块、电源模块。

控制模块主要用开关实现秒表与时钟以及闹钟之间的变换。

输入模块主要用于向控制器模块输入各种信息。

输出模块主要用于实时的实现各种显示。

电源模块主要用于向整个硬件系统供电。

(b)设计电路连线原理图:C1220p(c)时钟电路本设计是采用内部时钟方式,用一个11.0592MHz晶振和两个30Pf瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容起微调作用.其电路图见图(d)AT89S51及LCD的引脚图:a):b)(4)元器件清单(二)软件系统的设计:(1)使用单片机资源的情况:设计时使用单片机资源的情况如下:AT89S51单片机的P0、P1、P2口作为液晶数据线接口,其中,P0口接液晶分个位,P1接液晶秒十位,P2接液晶秒个位。

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

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

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

MSP430单片机定时器实验报告

MSP430单片机定时器实验报告

实验四定时器实验实验目的:MPS430F5529片内集成的定时器A的使用,学习计数器的补捕获比较模块的使用。

实验内容:定时器采用辅助时钟ACLK作为计数脉冲,fACLK=32768Hz,实现以下功能:1.定时器TA0延时1s,点亮或熄灭LED6,即灯亮1s灭1s,如此循环,采用中断服务程序实现。

2.定时器TA0延时1s,点亮或熄灭LED4,采用捕获比较器CCR0的比较模式,设定输出方式,输出方波,不用中断服务程序3.采用捕获比较器CCR1的比较模式LED5,设定输出方式,输出PWM波形,使LED 亮2s,灭1s。

4.用定时器实现30s倒计时,在液晶模块上显示,每过一秒显示数字变化一次。

5.使用TA1的捕获比较器CCR0捕获按键的间隔时间,在液晶模块上显示。

程序代码:程序1:#include <msp430f5529.h>void main(){WDTCTL = WDTPW + WDTHOLD; //关看门狗P1DIR |= BIT3; //设置P1.0口方向为输出。

TA0CCTL0 = CCIE; //设置捕获/比较控制寄存器中CCIE位为1,//CCR0捕获/比较功能中断为允许。

TA0CCR0 = 32767; //捕获/比较控制寄存器CCR0初值为32767TA0CTL = TASSEL_1 + MC_1+TACLR; //设置定时器A控制寄存器TACTL,//使时钟源选择为SMCLK辅助时钟。

//进入低功耗模式LPM0和开总中断_BIS_SR(LPM0_bits +GIE);}//定时器A 中断服务程序区#pragma vector=TIMER0_A0_VECTOR__interrupt void Timer_A (void){P1OUT ^= BIT3; //P1.0取反输出}实验现象:实验开始后,实验板上LED6亮灭闪烁,间隔为1s。

程序2:#include <msp430f5529.h>void main(void){WDTCTL = WDTPW + WDTHOLD; // 关狗P1DIR |= BIT1; // P1.1 设置为输出P1SEL |= BIT1; // P1.1 输出使能TA0CCR0 = 60000; // PWM PeriodTA0CCTL0 = OUTMOD_4; // CCR1 模式4TA0CCR1 = 30000; // CCR1 PWM duty cycleTA0CTL = TASSEL_1 + MC_1 + TACLR; // ACLK, up mode, clear TAR__bis_SR_register(LPM3_bits); // Enter LPM3__no_operation(); // For debugger}实验现象:实验开始后,实验板上LED4亮灭闪烁,间隔为1s。

单片机定时计数实训报告

单片机定时计数实训报告

一、实验目的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. 改进实验程序,实现定时计数器的定时精度调整。

定时器的定时实验报告

定时器的定时实验报告

一、实验目的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.通过本LCD电子钟的设计初步了解了单片机应用系统开发研制过程,软
件和硬件设计的方法。

5.本课程设计目的是制作基于微处理器的定时器,将学过的微处理器硬件
和软件知识,以及电子线路知识进行综合应用,形成一个能实际运行的
电子作品。

(3)系统组成及工作原理
该定时器主要由单片机,复位电路,电源,蜂鸣器和开关构成。

本定时器采用ATMEL公司的AT89S51单片机为核心,使用晶振11.0592MHz
晶振与单片机AT89S51相连,通过软件编程的方法实现12分钟为一个周期,同时LCD显示分钟和秒的要求。

(a)硬件的设计:
本设计的硬件系统主要由以下几个模块来实现:控制模块、输入模块、输出模块、电源模块。

控制模块主要用开关实现秒表与时钟以及闹钟之间的变换。

输入模块主要用于向控制器模块输入各种信息。

输出模块主要用于实时的实现各种显示。

电源模块主要用于向整个硬件系统供电。

(b)设计电路连线原理图:
C1
220p
(c)时钟电路
本设计是采用内部时钟方式,用一个11.0592MHz晶振和两个30Pf瓷片电容组成,为单片机提供标准时钟,其中两个瓷片电容起微调作用.其电路图见图
(d)AT89S51及LCD的引脚图:
a):
b)
(4)元器件清单
(二)软件系统的设计:
(1)使用单片机资源的情况:
设计时使用单片机资源的情况如下:AT89S51单片机的P0、P1、P2口作为液晶数据线接口,其中,P0口接液晶分个位,P1接液晶秒十位,P2接液晶秒个位。

P3 口接时钟电路和控制开关,用单片机定时器0中方式1来控制定时器运行。

(2)软件系统的各个模块功能:
本设计的软件系统主要采用以下基本模块来实现:主程序、中断服务程序、开关控制和液晶显示程序。

主程序用于对于各个程序模块的运行及控制,以及各个模式程序的初始化。

特别是定时中断的初始值。

实验中定时时
间为50ms。

所以TH0=3CH,TL0=0B0H。

中断服务程序用于时钟的运行,以及通过定时中断来实现各个模式。

即是待机模式,闹钟模式,秒表模式。

通过定时中断控制液晶中间两点闪烁,每隔0.5s闪烁一次。

在闹钟模式,但时钟走到10s时,蜂鸣器响5s。

开关控制用于确定按键并进行相应的模式处理。

如,当K2=1,时钟进入秒表模式,假如K1=1,秒表计时,否则K1=0,秒表暂停。

但K2=0,判断K1,假如K1=1,时钟进入闹钟模式,否则进入待机模式。

液晶显示程序用于控制液晶的显示,显示分秒时钟。

(3)设计的软件流程框图:
(3)实验程序
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP ITT0
ORG 0100H MAIN: MOV SP,#60H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV TMOD,#01H
SETB ET0
SETB EA
MOV R0,#0
MOV R1,#0
MOV R2,#0
CLR P3.0
MOV R7,#0
MOV DPTR,#TAB
SETB P3.1
SETB P3.3
SETB TR0
SJMP $
ORG 0500H
ITT0: MOV TH0,#3CH
MOV TL0,#0B0H
INC R7
CJNE R7,#20,MM;1S是否到
CPL P3.1
MOV R7,#0
JB P3.7,MODE2;K2为1则进入秒表模式,否则顺序执行,进
入待机或闹钟模式
INC R2
JNB P3.3,DELL;闹钟响?跳入判断是否响够5S
WW: CJNE R2,#10,EXIT;秒个位溢出
MOV R2,#0
INC R1
JB P3.6,MODE1;K1为1跳转入闹钟模式,否则顺序执行,进
入待机模式
QQ: CJNE R1,#6,EXIT;秒十位溢出
MOV R1,#0
INC R0
CJNE R0,#10,EXIT;分个位溢出
MOV R0,#0
CPL P3.0;分十位变化,只为0或1
SJMP EXIT
MM: CJNE R7,#10,EXIT0
CPL P3.1;0.5S到,两点取反
EXIT: MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
MOV A,R1
MOVC A,@A+DPTR
MOV P1,A
MOV A,R2
MOVC A,@A+DPTR
MOV P2,A;输出分秒
EXIT0: RETI
TAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH MODE1: JB P3.0,EXIT1
CJNE R0,#0,EXIT1
CJNE R1,#1,EXIT1
CJNE R2,#0,EXIT1;时间到00:10吗
CLR P3.3
MOV R6,#5
EXIT1: SJMP QQ
DELL: DJNZ R6,LOOP;响够5S吗
SETB P3.3
LOOP: SJMP WW
MODE2: INC R2
CJNE R2,#10,EXIT2
MOV R2,#0
INC R1
CJNE R1,#6,EXIT2
MOV R1,#0
INC R0
CJNE R0,#10,EXIT2
MOV R0,#0
CPL P3.0
SJMP EXIT2
EXIT2: JNB P3.6,STOP;秒表暂停键按下,即K1为0 EXIT3: SETB TR0;继续,开定时器中断,继续计时MOV A,R0
MOVC A,@A+DPTR
MOV P0,A
MOV A,R1
MOVC A,@A+DPTR
MOV P1,A
MOV A,R2
MOVC A,@A+DPTR
MOV P2,A
SJMP EXIT0
STOP: CLR TR0;暂停,关定时器中断,停止计时JB P3.6,EXIT3
SJMP STOP
END。

相关文档
最新文档