0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用单片机设计记时器的资料概述

Wildesbeast 来源:单片机教程网 作者:单片机教程网 2020-05-16 12:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

1.实验任务

用AT89S51单片机的定时/计数器T0产生一秒的定时时间,作为秒计数时间,当一秒产生时,秒计数加1,秒计数到60时,自动从0开始。下面我就开始介绍如何制作这款单片机记时器,硬件电路如下图所示

2.电路原理

图4.15.1

3.系统板上硬件连线

(1. 把“单片机系统”区域中的P0.0/AD0-P0.7/AD7端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P0.0/AD0对应着a,P0.1/AD1对应着b,……,P0.7/AD7对应着h。

(2. 把“单片机系统”区域中的P2.0/A8-P2.7/A15端口用8芯排线连接到“四路静态数码显示模块”区域中的任一个a-h端口上;要求:P2.0/A8对应着a,P2.1/A9对应着b,……,P2.7/A15对应着h。

4.程序设计内容

AT89S51单片机的内部16位定时/计数器是一个可编程定时/计数器,它既可以工作在13位定时方式,也可以工作在16位定时方式和8位定时方式。只要通过设置特殊功能寄存器TMOD,即可完成。定时/计数器何时工作也是通过软件来设定TCON特殊功能寄存器来完成的。

现在我们选择16位定时工作方式,对于T0来说,最大定时也只有65536us,即65.536ms,无法达到我们所需要的1秒的定时,因此,我们必须通过软件来处理这个问题,假设我们取T0的最大定时为50ms,即要定时1秒需要经过20次的50ms的定时。对于这20次我们就可以采用软件的方法来统计了。

因此,我们设定TMOD=00000001B,即TMOD=01H

下面我们要给T0定时/计数器的TH0,TL0装入预置初值,通过下面的公式可以计算出

TH0=(216-50000)/256

TL0=(216-50000)MOD256

当T0在工作的时候,我们如何得知50ms的定时时间已到,这回我们通过检测TCON特殊功能寄存器中的TF0标志位,如果TF0=1表示定时时间已到。

5.程序框图

图4.15.2

6.汇编源程序(查询法)

SECOND EQU 30H

TCOUNT EQU 31H

ORG 00H

START: MOV SECOND,#00H

MOV TCOUNT,#00H

MOV TMOD,#01H

MOV TH0,#(65536-50000) / 256

MOV TL0,#(65536-50000) MOD 256

SETB TR0

DISP: MOV A,SECOND

MOV B,#10

DIV AB

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,B

MOVC A,@A+DPTR

MOV P2,A

WAIT: JNB TF0,WAIT

CLR TF0

MOV TH0,#(65536-50000) / 256

MOV TL0,#(65536-50000) MOD 256

INC TCOUNT

MOV A,TCOUNT

CJNE A,#20,NEXT

MOV TCOUNT,#00H

INC SECOND

MOV A,SECOND

CJNE A,#60,NEX

MOV SECOND,#00H

NEX: LJMP DISP

NEXT: LJMP WAIT

TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

7. C语言源程序(查询法)

#include 《AT89X51.H》

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,0x00};

unsigned char second;

unsigned char tcount;

void main(void)

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

TR0=1;

tcount=0;

second=0;

P0=dispcode[second/10];

P2=dispcode[second];

while(1)

{

if(TF0==1)

{

tcount++;

if(tcount==20)

{

tcount=0;

second++;

if(second==60)

{

second=0;

}

P0=dispcode[second/10];

P2=dispcode[second];

}

TF0=0;

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

}

}

}

1. 汇编源程序(中断法)

SECOND EQU 30H

TCOUNT EQU 31H

ORG 00H

LJMP START

ORG 0BH

LJMP INT0X

START: MOV SECOND,#00H

MOV A,SECOND

MOV B,#10

DIV AB

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,B

MOVC A,@A+DPTR

MOV P2,A

MOV TCOUNT,#00H

MOV TMOD,#01H

MOV TH0,#(65536-50000) / 256

MOV TL0,#(65536-50000) MOD 256

SETB TR0

SETB ET0

SETB EA

SJMP $

INT0X:

MOV TH0,#(65536-50000) / 256

MOV TL0,#(65536-50000) MOD 256

INC TCOUNT

MOV A,TCOUNT

CJNE A,#20,NEXT

MOV TCOUNT,#00H

INC SECOND

MOV A,SECOND

CJNE A,#60,NEX

MOV SECOND,#00H

NEX: MOV A,SECOND

MOV B,#10

DIV AB

MOV DPTR,#TABLE

MOVC A,@A+DPTR

MOV P0,A

MOV A,B

MOVC A,@A+DPTR

MOV P2,A

NEXT: RETI

TABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

2. C语言源程序(中断法)

#include 《AT89X51.H》

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,0x00};

unsigned char second;

unsigned char tcount;

void main(void)

{

TMOD=0x01;

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

TR0=1;

ET0=1;

EA=1;

tcount=0;

second=0;

P0=dispcode[second/10];

P2=dispcode[second];

while(1);

}

void t0(void) interrupt 1 using 0

{

tcount++;

if(tcount==20)

{

tcount=0;

second++;

if(second==60)

{

second=0;

}

P0=dispcode[second/10];

P2=dispcode[second];

}

TH0=(65536-50000)/256;

TL0=(65536-50000)%6;

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6078

    文章

    45649

    浏览量

    676397
  • 计数器
    +关注

    关注

    32

    文章

    2325

    浏览量

    98786
  • 定时器
    +关注

    关注

    23

    文章

    3382

    浏览量

    125346
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Renesas 7544 系列单片机:技术剖析与设计要点

    的 7544 系列单片机,详细剖析其技术特点、功能模块以及在设计过程中需要注意的要点。 文件下载: M37544G2SP.pdf 一、产品概述 Renesas 的 7544 系列是基于 740 家族
    的头像 发表于 04-13 14:20 228次阅读

    基于单片机的额温枪设计

    电子发烧友网站提供《基于单片机的额温枪设计.docx》资料免费下载
    发表于 03-01 15:36 0次下载

    32位单片机PY32F003的特性概述

    PY32F003是一款极具性价比的国产入门级32位单片机,基于ARM Cortex-M0+内核,主频最高32MHz。提供最大64KB的Flash存储和8KB的SRAM,这个容量对于大多数简单的控制
    的头像 发表于 11-07 16:02 1630次阅读
    32位<b class='flag-5'>单片机</b>PY32F003的特性<b class='flag-5'>概述</b>

    51单片机RS485编程实例资料

    详细介绍51单片机RS485通信接线和编程代码
    发表于 10-20 14:57 8次下载

    普冉PY32C673单片机产品概述

    PY32C673单片机采用高性能的 32 位 ARM Cortex-M0+ 内核,嵌入高达 64 Kbytes flash 和 8 Kbytes SRAM 存储,有128 bytes User OTP Data,最高工作频率 72 MHz。
    的头像 发表于 08-26 15:22 1711次阅读
    普冉PY32C673<b class='flag-5'>单片机</b>产品<b class='flag-5'>概述</b>

    客户开发案例:基于单片机与纳祥专用IC的桶装水电动抽水方案

    的桶装水电动抽水方案,可适用于多种主流桶装水,简约实用,提升了便捷性与精准度。01方案概述本方案以单片机为核心控制单片机接收按键信号后
    的头像 发表于 08-18 10:33 1166次阅读
    客户开发案例:基于<b class='flag-5'>单片机</b>与纳祥专用IC的桶装水电动抽水<b class='flag-5'>器</b>方案

    单片机原理及应用详解

    单片机(Microcontroller Unit, MCC)  是一种集成计算机核心功能(CPU、存储、I/O接口等)的微型芯片,广泛应用于嵌入式系统中。以下是其原理及应用的详细介绍: 一、单片机
    的头像 发表于 08-11 13:57 3089次阅读

    什么单片机比较耐用

            在工业控制、户外设备、医疗仪器等场景中,单片机的耐用性直接决定了设备的稳定运行与维护成本。耐用的单片机通常具备宽温工作范围、强抗干扰能力、稳定的电源适应性和长寿命的硬件设计。深圳市安
    的头像 发表于 07-31 13:48 997次阅读

    怎么测单片机系统频率

    单片机系统频率是指单片机工作时的时钟频率,它直接影响单片机的运行速度和处理能力,准确测量系统频率对单片机应用开发、程序调试和性能优化具有重要意义。测量
    的头像 发表于 07-25 11:39 1249次阅读

    单片机怎么驱动电机?

    在各类自动化设备和智能装置中,电机是重要的执行部件,而单片机作为控制核心,需要通过特定的方式驱动电机运转。单片机驱动电机并非直接连接即可,而是要根据电机类型和功率,搭配合适的驱动电路,才能实现稳定
    的头像 发表于 07-25 09:31 1538次阅读

    单片机怎么烧程序

    骤,才能让单片机发挥作用。 烧程序前的准备工作 单片机烧程序前,需要做好硬件和软件两方面的准备。硬件方面,核心设备包括目标单片机、编程(或下载
    的头像 发表于 07-23 11:47 2379次阅读

    AT89C51 单片机中文资料

    电子发烧友网站提供《AT89C51 单片机中文资料.pdf》资料免费下载
    发表于 06-24 15:29 1次下载

    STM32单片机片上数字滤波操作文档 快速入门数字滤波单片机上的实现

    这个文档,是为了帮助大家快速入门数字滤波单片机上的实现。
    的头像 发表于 06-23 16:53 2091次阅读
    STM32<b class='flag-5'>单片机</b>片上数字滤波<b class='flag-5'>器</b>操作文档 快速入门数字滤波<b class='flag-5'>器</b>在<b class='flag-5'>单片机</b>上的实现

    单片机项目实例:有人无线WIFI模块资料

    单片机项目实例:有人无线WIFI模块资料,推荐下载!
    发表于 06-09 22:32

    单片机项目实例:文件系统资料与SD卡资料

    单片机项目实例:文件系统资料与SD卡资料,推荐下载!
    发表于 06-09 22:31