C51定时器测脉冲宽度

发布者:daasddla最新更新时间:2016-10-14 来源: eefocus关键字:C51  定时器  脉冲宽度 手机看文章 扫描二维码
随时随地手机看文章
//当定时器的TMOD寄存器的GATE=1、TR=1时(以T0为例),INT0=1,T0启动,INT0=0,T0停止。即从INT0输入的正脉冲宽度可由T0计数值测出。

 

#include 
   unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 

//字码表,注意比较有无code,对同一脉冲显示结果。

void show(unsigned char x,unsigned char n);   

void counter(unsigned char x);//对计数值处理

void delay(unsigned int x);

sbit Ui=P3^2;         //脉冲输入

main()

{

unsigned char js;

TMOD=0x0a;

TL0=0;

TH0=0;

TR0=1;

while(1)

 {

  if(Ui==0)

//测量必须从Ui=0开始,否则不能保证从脉冲上升缘开始测量。
    {

  while(Ui==0)
       {}
      TL0=0;
      while(Ui==1)
      {}
     js=TL0;
     counter(js);
    }
  }
}
void show(unsigned char x,unsigned char n)
{
   switch(n)
   {
     case 0:P2=0xfe,P1=tab[x];break;
     case 1:P2=0xfd,P1=tab[x];break;
     case 2:P2=0xfb,P1=tab[x];break;
     default:break;
   }
}
void counter(unsigned char x)
{  unsigned char k,x1,x10,x100;
     x1=(x%100)%10;       //分离个位
  x10=(x%100)/10;    //分离十位
  x100=x/100;    //分离百位
  k=0;
  while(k<70)            //重复显示数据较稳定
   {
    show(x1,0);    //显示个位
   delay(100);

    show(x10,1);     //显示十位
  delay(100);

    show(x100,2);      //显示百位
   delay(100);
  k++;
  }

void delay(unsigned int x) //延时
{
  unsigned int i;
  for(i=0;i
    {}
}

关键字:C51  定时器  脉冲宽度 引用地址:C51定时器测脉冲宽度

上一篇:C51 INT0中断程序
下一篇:C51:24C02 写入、读出一个字节

推荐阅读最新更新时间:2024-03-16 15:15

单片机解码万能红外遥控器C51程序
使用方法:打开串口调试助手,设置为9600 bps 单片机这边用11.0592MHz的晶振,使用sm0038或者其他型号的红外接收头按下面的电路连接好,其中out直接与单片机的p3.2脚相连.按下遥控器,串口调试助手便会出现解码值. /******************************************************************/ /* 本程序的蓝本从网上搜集,经修改并注释,万能遥控器解码成功 */ /* 晶振:11.0592MHz */ /* 整理与测试:单片机教程网 http://www.51hei.com 胡琴 2012.5.15
[单片机]
单片机解码万能红外遥控器<font color='red'>C51</font>程序
步进电机加速-匀速-减速运行程序(C51源程序)
ME300系列单片机开发系统+步进电机模块演示程序 功能:步进电机以加速方式启动,转速达到程序规定的最快速度后保持一段时间匀速运转,又开始以减速 方式运行直到步进电机停止转动。由K1键控制演示程序运行。步进电机模块上D1-D4可以指示工作状态。 /******************************************************************/ /* */ /* ME300B单片机开发系统演示程序 - 步进电机加减速运行程序
[单片机]
步进电机加速-匀速-减速运行程序(<font color='red'>C51</font>源程序)
STM32如何设置定时器
STM32如何设置定时器 下面以stm32的TIM2作为实例一步步配置成为定时器: 第一种 对定时器的基本配置 TIM_TimeBaseStructure.TIM_Period = 1000; //设置自动装载寄存器 TIM_TimeBaseStructure.TIM_Prescaler = 35999; //分频计数 TIM_TimeBaseStructure.TIM_ClockDivision = 0; TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //选择向上计数 TIM_TimeBaseInit(TIM2, &TIM_TimeBase
[单片机]
AVR单片机Atmega16电子时钟程序+仿真,内部定时器实现
Atmega16电子时钟,内部定时器,有可调闹钟。 仿真原理图如下 单片机源程序如下: #include iom16v.h #include macros.h #define key_bz 0b00000111 char smg_zx ={0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f};// 全局变量 char hour=12; char min; char sec; char nz_hour=12; char nz_min=1; char mode=0; char set; void delay_ms(unsigned int k)
[单片机]
AVR单片机Atmega16电子时钟程序+仿真,内部<font color='red'>定时器</font>实现
STM32定时器中断-库函数
程序要求:通过定时器中断配置,每500ms中断一次,然后中断服务函数中控制LED实现LED1状态取反 下面给出几个主要文件的程序模板 timer.h: #ifndef __TIMER_H #define __TIMER_H #include sys.h void TIM3_init(u16 arr, u16 psc); #endif timer.c #include timer.h #include led.h //tim的相关函数去stm32f4xx_tim.h中去找 void TIM3_init(u16 arr, u16 psc) { TIM_TimeBaseInitTypeD
[单片机]
STM8L学习笔记一 TIM2定时器设定系统工作计时
//定时器2配置,1毫秒产生一次中断,用于系统计时 void TIM2_Init(void) { CLK_PeripheralClockConfig(CLK_Peripheral_TIM2,ENABLE);//将主时钟信号送给定时器4(L系列单片机必需) TIM2_TimeBaseInit(TIM2_Prescaler_16,TIM2_CounterMode_Up,0x7D); //定时器4,将主时钟16分频.自动装载FA=125 TIM2_SetCounter(0xFA); //设定计数值FA=125 TIM2_ITConfig(TIM2_IT_Update,ENABLE);
[单片机]
单片机定时器中断时间误差的原因分析及补偿
1 前言 单片机内部一般有若干个定时器。如8051单片机内部有定时器0和定时器1。在定时器计数溢出时,便向CPU发出中断请求。当CPU正在执行某指令或某中断服务程序时,它响应定时器溢出中断往往延迟一段时间。这种延时虽对单片机低频控制系统影响甚微,但对单片机高频控制系统的实时控制精度却有较大的影响,有时还可能造成控制事故。为扩大单片机的应用范围,本文介绍它的定时器溢出中断与CPU响应中断的时间误差、补偿误差的方法和实例。 2 误差原因、大小及特点 产生单片机定时器溢出中断与CPU响应中断的时间误差有两个原因。一是定时器溢出中断信号时,CPU正在执行某指令;二是定时器溢出中断信号时,CPU正在执行某中断服务程序。 2.1. CPU正
[单片机]
新型晶体管特性图示仪扫描信号发生器
  引 言   晶体管特性图示仪是电子 测量 常用仪器之一,日前通用的晶体管特性图示仪的扫描信号和阶梯信号由50 Hz工频市电变换而来,扫描频率低,显示的特性曲线闪烁严重,稳定性差;X轴扫描为正弦脉冲,线性度差,在显示晶体管特性曲线时亮度不均匀(前亮后暗),而且波形变换电路复杂。本文介绍一种基于555定时器的晶体管特性图示仪 扫描信号发生器 设计方法。通过555定时器产生同步的X轴扫描锯齿波和Y轴扫描阶梯波,其扫描频率不受工频市电限制,扫描信号同步性能好,显示波形稳定。   1 扫描信号发生器 设计   1.1 晶体管特性 测量 原理   图1为晶体管输出特性 测量 原理,需 测量 的2个物理量是晶体管的集电极电流Ic和集
[测试测量]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved