下载此文档

C8051F340学习笔记—Timer0_and_Timer1_利用多余的定时计数器实现精确地延时.docx


文档分类:IT计算机 | 页数:约8页 举报非法文档有奖
1/8
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/8 下载此文档
文档列表 文档介绍
C8051F340 学****笔记定时计数器 0和定时计数器 1 作者 Jql 注: 原文中的程序少了几个空格, 在这里我已经补上空格了,直接生成 HEX 烧写成功可正常运行.---- 小丁. 声明:本笔记绝对原创仅供学****使用定时器 0和定时器 1都是 16位的寄存器,在被访问时以两个字节的形式出现:一个低字节( TL0 或 TL1 )和一个高字节( TH0 或 TH1 , TCON 用于允许定时器 0 和定时器 1 以及指示它们的状态,的 ET0 位置 1 来允许定时器 0 中断,通过将 ET1 位置 1 来允许定时器 1 中断, TMOD 中的方式选择位 T1M1-T0M0 来选择工作方式,每个定时器都可以被独立配置。有四种方式:方式0、1、2、3 定时器 0 与定时器 1 基本相同,一下只介绍定时器 0— 13位定时计数器 13 位定时计数器使用 TH 的8 位和 TL 的低 5 位,高三位未用。 13 位定时计数器计到 0x1FFF (全 1 )后再计一次将发生溢出, 使计数值回到 0x0000 ,计数值为 8191. 定时器 0与定时器 1需要配置三个寄存器 TMOD TCON CKCON 选择计数器/ 定时器的时钟源。当被 C/T0 位(( ) 设置为逻辑 1 时,出现在所选定时器 0 输入引脚( T0 )上的负跳变使定时器寄存器加 1,该功能可用于检测外部计数脉冲的个数。方式 1— 16位计数器/定时器(与方式 0基本一样) 方式 2—自动重装载的 8位计数器/定时器 TL0 保持计数值,而 TH0 保持重载值,当 TL0 中的计数值发生溢出(从全 1到 0x00 )时,定时器溢出标志 TF0 ( )被置位, TH0 中的重载值被重新装入到 TL0 。当工作于方式 2时, 定时器 1的操作与定时器 0完全相同。方式 3—两个 8位计数器/定时器(仅定时器 0) 下面介绍一个采用定时计数器编写的延时 10ms 的子程序,在任何一个主函数中,可调用这个子函数来获得精确地延时,要想获得精确地长时间的延时只需修改这其中的参数即可,本程序为本人所写,亲测通过。#include "" #define uint unsigned int #define uchar unsigned char sbit P22=P2^2; sbit P23=P2^3; uint xdata time,x; void Timer_Init() { TMOD = 0x01; TL0 = 0x18; TH0 = 0xFC; } Void Port_IO_Init() { P2MDOUT = 0x0C; XBR1 = 0x40; } Void Oscillator_Init() { = 0x83; } Void Init_Device(void)

C8051F340学习笔记—Timer0_and_Timer1_利用多余的定时计数器实现精确地延时 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数8
  • 收藏数0 收藏
  • 顶次数0
  • 上传人63229029
  • 文件大小462 KB
  • 时间2017-01-12