⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pulse_time._c

📁 单片机开发资料光盘-双龙-686M.zip
💻 _C
字号:
/******************************************/
/*           广州天河双龙电子公司         */
/*           http://www.sl.com.cn         */
/*                 测脉宽程序             */
/*   用跳线将PD6依次与PA0~PA7相连         */
/*           作者:lpf@sl.com.cn           */
/*             2003年8月28日              */
/*  目标MCU:MEGA16   晶振:外部(EXT) 8MHZ  */
/******************************************/


#include<iom16v.h>
#pragma interrupt_handler Icp_timer1:6
//ICP中断入口地址
#pragma interrupt_handler Timer0:10
//定时器T0中断入口地址
#pragma data:code
//设置数据区为程序存储器
//七段码译码字形表
const unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
#pragma data:data
//设置数据区回到数据存储器
unsigned char ledbuff[]={0x3f,0x3f,0x3f,0x3f,0x3f,0x3f};//显示缓冲区
unsigned int oldcount;
unsigned int newcount;
unsigned char i=0;
//1MS延时程序
void delay_1ms()
  {
  unsigned int i;
  for(i=1;i<1142;i++);
  }
//六路动态扫描显示  
void display()
  {
  unsigned char i;
  for(i=0;i<6;i++)
      {
      PORTB=ledbuff[i];
      PORTD=~(1<<i);
      delay_1ms();
      PORTD|=(1<<i);
      }
  }
//将COUNT十六进制数据转换为LED七段码
void hextobcd(unsigned int count)
  {
  unsigned char i,temp;
  for(i=0;i<6;i++)
      {
      temp=count%10;
      ledbuff[i]=table[temp];
      count=count/10;
      }
  }
//MCU初始化
void mcu_init()
  {
  DDRA=0XFF;
  PORTA=0XFF;
  DDRD=0X3F;
  DDRB=0XFF;
  PORTD=0XFF;
  PORTB=0XFF;//端口初始化
  TIMSK=0X21;//使能ICP捕捉中断;使能T/C0溢出中断
  TCCR0=0X02;
  TCCR1A=0X00;
  TCCR1B=0XC2;//8分频;捕捉最小单位1us
  TCNT0=0;
  ICR1=0;
  TCNT1=0;
  }
//主程序:测量ICP引脚上信号的周期
void main()
  {
  mcu_init();
  SREG|=0X80;
  for(;;)
      {
         if((newcount&0xfff8)!=(oldcount&0xfff8))
                {
                oldcount=newcount;
                }
         hextobcd(oldcount);
         display();
      }
  }
//捕捉中断处理程序
void Icp_timer1()
  {
  newcount=ICR1;
  ICR1=0;
  TCNT1=0;
  TCCR1B=0XC2;
  }
//方波产生中断程序
void Timer0()
  {
  i++;
  PORTA=i;
  //PORTA=~(PORTA);
  }
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -