怎么去设置定时?

例如:
定时 50微秒

 首先  50000 ÷ 1.085  =  46,082.94930875576   从 0 开始加 19,453 次会溢出     这样的计算会有误差,但是影响比较小可以忽略不计TH0 = (65535 - 46082) / 256;   // 将商放在高八位TL0 = (65535 - 46082) % 256;   // 将余数放在低八位或者 65535 - 46082 = 19453十六进制得到:4BFD二进制得到:0100 1011 1111 1101 将得到的十六进制分别放入 TH0 和 TL0;TH0 = 0x4b;TL0 = 0xfd; //定时50ms

定时器

定时器0工作模式1 16位定时模式,数码管动态显示0-10秒表。

#include <reg52.h>
#include <intrins.h>#define uint unsigned int
#define uchar unsigned charsbit DU = P2^6;//数码管段选
sbit WE = P2^7;//数码管段选//共阴数码管段选表0-9
uchar  code tabel[]= {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F,};/*====================================
函数  : delay(uint z)
参数  :z 延时毫秒设定,取值范围0-65535
返回值 :无
描述  :12T/Fosc11.0592M毫秒级延时
====================================*/
void delay(uint z)
{uint x,y;for(x = z; x > 0; x--)for(y = 114; y > 0 ; y--);
} /*====================================
函数  :display(uchar i)
参数  :i 显示数值,取值范围0-255
返回值 :无
描述  :三位共阴数码管动态显示
====================================*/
void display(uchar i)
{uchar bai, shi, ge;bai = i / 100; //236 / 100  = 2shi = i % 100 / 10;   //236 % 100 / 10 = 3ge  = i % 10;//236 % 10 =6//第一位数码管       P0 = 0XFF;//清除断码WE = 1;//打开位选锁存器P0 = 0XFE; //1111 1110WE = 0;//锁存位选数据DU = 1;//打开段选锁存器P0 = tabel[bai];//DU = 0;//锁存段选数据delay(5);//第二位数码管P0 = 0XFF;//清除断码WE = 1;//打开位选锁存器P0 = 0XFD; //1111 1101WE = 0;//锁存位选数据DU = 1;//打开段选锁存器P0 = tabel[shi];//DU = 0;//锁存段选数据delay(5);//第三位数码管P0 = 0XFF;//清除断码WE = 1;//打开位选锁存器P0 = 0XFB; //1111 1011WE = 0;//锁存位选数据DU = 1;//打开段选锁存器P0 = tabel[ge];//DU = 0;//锁存段选数据delay(5);
}
//定时器0初始化
void timer0Init()
{TR0 = 1;   //启动定时器0TMOD = 0X01; //定时器工作模式1,16位定时器计数模式TH0 = 0x4b;TL0 = 0xfd; //定时50ms/*怎么去定时?例如定时 50微秒首先  50000 ÷ 1.085  =  46,082.94930875576   从 0 开始加 19,453 次会溢出     这样的计算会有误差,但是影响比较小可以忽略不计TH0 = (65535 - 46082) / 256;   // 将商放在高八位TL0 = (65535 - 46082) % 256;   // 将余数放在低八位或者 65535 - 46082 = 19453十六进制得到:4BFD二进制得到:0100 1011 1111 1101 将得到的十六进制分别放入 TH0 和 TL0;TH0 = 0x4b;TL0 = 0xfd; //定时50ms*/
}void main(){//main函数自身会循环uchar mSec, Sec;//毫秒和秒储存变量timer0Init();//定时器0初始化while(1){if(TF0 == 1)//判断是否溢出{TF0 = 0;//软件清零溢出标志位TH0 = 0x4b;TL0 = 0xfd; //定时50msmSec++;//50ms到if(mSec == 20){mSec = 0;Sec++;//1秒时间到}                  }display(Sec); //数码管显示函数if(Sec > 59)Sec = 0;//秒清零 }
}

STC89C52单片机 定时器相关推荐

  1. 89c52单片机c语言延时程序计算 脉冲,89C52单片机定时器延时时间的计算与程序解析 - STC89C52单片机定时器/计数器详解(含程序和定时器2)...

    STC单片机STC89C52RC定时器延时时间的计算 延时时间要根据晶振频率计算,不同板子可能有所不同. 时钟周期: 1/时钟源,在我现在这块板子上,晶振频率是11.0592M,也就是时钟周期是 1/ ...

  2. STC89C52单片机定时器2详细整理

    51单片机是我自学的第一款单片机,那时正好是过春节,想起那个寒假,外面下着大雪,有时还会传来一两声爆竹的炸响,而我一个人在房间里摆弄单片机开发板,反复调试程序的时光,真是难忘! 我自认为这款单片机所有 ...

  3. STC89C52单片机定时器及中断系统的介绍以及代码示例

    目录 一,定时器介绍 二,STC89C52定时器资源 三,定时器框图 四,定时器工作模式 五,中断系统及其流程 六,STC89C52中断资源 七,定时器与中断系统 八,相关寄存器的认识与配置 首先是定 ...

  4. STC89C52单片机——定时器闹钟

    一.功能概述 概述:通过按下矩阵键盘输入数字让数码管显示,然后按下独立键盘通过定时器开始倒计时,倒计时结束蜂鸣器响. 二.所使用的功能模块 矩阵键盘.独立键盘.蜂鸣器.数码管 三.编程过程中所遇到的问 ...

  5. 单片机定时器精准定时_8051单片机(STC89C52)定时器实现10ms精准定时

    8051内部集成了2个16bits的计数器, 可以根据需要将其作为定时器使用. 这时, 定时器的计数频率为系统CLK/12. 如果CPU的晶振频率为12MHz, 那么定时器信号源的频率固定为12MHz ...

  6. 52单片机定时器2使用(C语言程序)

    本文是关于52单片机定时器计数器2做为普通的16位自动重装定时器使用,类似于定时器计数器0和定时器计数器1工作在方式1下.以下程序在Keil 2和Keil 3下调时通过,下载在本校的实验板上达到预期效 ...

  7. 基于STC89C52单片机的密码锁设计与实现

    目 录 一.引言 3 1.1 课题研究背景及意义 3 1.2 课题设计的目的以及主要内容 4 二.系统硬件设计 5 2.1.系统硬件总体设计 5 2.2 单片机型号的选择 6 1.STC89C52单片 ...

  8. 89c51控制小车运行c语言,基于STC89C52单片机和STM32的智能小车控制系统

    摘要:针对智能车的控制系统, 选用STC89C52作为整个系统的主控芯片, 并进行硬件电路设计;以NREF24L01作为无线接收模块, 选取E18-D80NK-N红外光电传感器作为避障模块的核心器件; ...

  9. stc89c51单片机音乐盒系统设计_基于STC89C52单片机的七彩迷你音乐盒

    基于STC89C52单片机的七彩迷你音乐盒.在单片机最小系统的基础上,对其他两个I/O口连接硬件电路.P1.0接一个七彩快闪LED灯.P1.5口接一个NPN型三极管的放大电路,再连接一个无源蜂鸣器(用 ...

最新文章

  1. 编译原理(六)自底向上分析之LR分析法
  2. 10 分钟入门 AST 代码优化与修改
  3. C++ STL算法之accumulate函数
  4. Gradle属性(四)
  5. [vue] vue给组件绑定自定义事件无效怎么解决?
  6. Linux设备树翻译计划
  7. edtext 从右边开始输入 安卓_转换iOS和安卓的视频至任何格式
  8. MySQL 输入任何语句都提示You must reset your password using ALTER USER 解决方法
  9. python and or优先级_python的and和or优先级
  10. python的常量和变量_python中的常量和变量代码详解
  11. 将循环结果写入到新建的dataframe中
  12. Apache访问localhost页面403Forbidden
  13. 【2022.3】尚硅谷Vue.js从入门到精通基础笔记(理论+实操+知识点速查)
  14. H 幻方变换(puzzle)(NYIST 2019年校赛)
  15. html中超链接使用_html超链接有哪些类型 html中,超链接用的是什么标签
  16. ClickHouse 之 FORMAT 应用
  17. 500以内降噪蓝牙耳机推荐,2023年热门降噪蓝牙耳机推荐
  18. 好嗨呦 之 快速部署 Spring Boot 项目
  19. auto CAD 二次开发 c#.net 之JIG画多段线(polyline)
  20. 【LeetCode】【VSCode】在VSCode中使用插件刷题

热门文章

  1. 解决Centos6.5虚拟机上网问题
  2. 网站商务通如何导出查看历史聊天纪录
  3. 8086汇编学习笔记9-中断
  4. HTML5 progress和meter控件
  5. JSP与servlet之间的传值方式
  6. EasyUI-DataGrid之批量删除
  7. 动态规划学习之三种方法解决斐波拉契数
  8. Hadoop1.2.1伪分布模式安装指南
  9. 什么是IaaS, PaaS和SaaS及其区别
  10. 后台开发经典书籍--unix环境高级编程