最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

貼一個(gè)很好的頻率計(jì)程序

作者:wanglele 欄目:單片機(jī)
貼一個(gè)很好的頻率計(jì)程序
//能測(cè)1~20KHz的頻率
#include "iom8515v.h"
#include "macros.h"
#include "stdio.h"
#pragma interrupt_handler timer1:4
#pragma interrupt_handler timer0:8
void delay(unsigned int t);    
/*顯示7段數(shù)碼管的字表0~9*/
#pragma data:code        
const unsigned CHAR
digit[]={0x01,0x4f,0x12,0x06,0x4c,0x24,0x20,0x0f,0x00,0x04,0x08,0x60,0x31,0x42,0x30,0x38};
           //const表示這個(gè)量在程序執(zhí)行的過(guò)程中不可變
/*顯示緩沖區(qū)*/
#pragma data:data      

unsigned CHAR ledbuff[]={0x01,0x01,0x01,0x01};
unsigned int count;                 //頻率測(cè)量計(jì)數(shù)變量
unsigned int timecount=20;         //頻率測(cè)量閘門(mén)控制變量

void port_init(void);
void delay(unsigned int t);
void DISPLAY(void);
void hextobcd(void);

/*********************
       初始化
**********************/
void port_init(void)
{
DDRA=0XFF;
DDRB=0X1F;
PORTA=0XFF;
PORTB=0XFF;
MCUCR=0X00;
SREG|=0X80;                   //開(kāi)全局中斷
TIMSK=0X0a;                   //開(kāi)放T0溢出中斷和T1捕捉中斷
TCCR0=0X05;                   //CK/1024                 
TCCR1A=0X00;
TCCR1B=0X80;                  //下降沿觸發(fā)                
TCNT0=0X3D;                   //(4M/1024)/195=50ms
timecount=20;               
}
/************************
     延遲時(shí)間函數(shù)
*************************/
void delay(unsigned int t)
{
unsigned int i,j;
for(i=0;i<t;i++)
  for(j=0;j<10;j++);
}
/*************************
五路動(dòng)態(tài)顯示掃描電路
**************************/
void DISPLAY(void)
{
unsigned CHAR i;
for(i=0;i<5;i++)
{
  PORTA=ledbuff[i];      //將顯示緩沖區(qū)數(shù)據(jù)送PORTA口
  PORTB=(0x01<<i);         //開(kāi)始顯示
  delay(10);
  PORTB&=~(1<<i);         //關(guān)閉顯示
  }
}

/**************************
將數(shù)據(jù)轉(zhuǎn)換成LED七段碼
***************************/

void hextobcd(void)
{
  if(count<20000)
  {
  unsigned CHAR i,TEMP;
  for(i=0;i<5;i++)
   {
    TEMP=count%10;
    ledbuff[i]=digit[TEMP];
    count=count/10;
   }
}
else ;
}
/**************************
       主程序
***************************/
void main(void)
{
  port_init();           //初始化
  count=0;
  do
  {
  DISPLAY();
} while(1);
}
/***************************************
T0溢出中斷,完成測(cè)量閘門(mén)控制和數(shù)字轉(zhuǎn)換
****************************************/
timer0(void)
{
if(--timecount==0)
{
  TIMSK=0X00;          //stop interrupt
  hextobcd();
  count=0;
  TIMSK=0X0a;          //start interrupt
  timecount=20;
  }
  TCNT0=0X3D;
}

/****************************
  T1捕捉中斷,完成脈沖計(jì)數(shù)
*****************************/
timer1(void)
{
count++;
}


2樓: >>參與討論
coke
收藏!
 
3樓: >>參與討論
音樂(lè)樂(lè)樂(lè)
程序很粗糙,不過(guò)還是鼓勵(lì)一下,呵呵
 
4樓: >>參與討論
minghua
你的測(cè)頻精度有問(wèn)題
只能測(cè)到1赫茲啊
我的能測(cè)到0.01赫茲


5樓: >>參與討論
yanyuliang
只是通用的程序
沒(méi)有用到avr 8515的icp 低頻精度不高
avr  計(jì)數(shù)可以測(cè)到 頻率的上限是clk/2 

6樓: >>參與討論
longwmy
怎么現(xiàn)在才貼?
我們上學(xué)期MCU課考試就考這個(gè),早貼就好了

7樓: >>參與討論
xky183
minghua   那把你0.01的帖出來(lái)大家學(xué)習(xí)一下啊 期待中
 
8樓: >>參與討論
音樂(lè)樂(lè)樂(lè)
minghua:你的時(shí)間需要多長(zhǎng)?
 
9樓: >>參與討論
瘋子

頂呀!!!!!!!!太強(qiáng)了

 

 

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請(qǐng)問(wèn)各位老大:那里有便宜的AVR C語(yǔ)言?
code avr 的看門(mén)狗清零命令是否 WDTCR?
俺買(mǎi)的mega16l有一條腿有問(wèn)題,pb4(43腳)老耿能否給個(gè)解釋
大家?guī)兔纯次业牡谝粋(gè)C測(cè)試程序怎么了?
一個(gè)簡(jiǎn)單的問(wèn)題
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào)