資源簡介
51單片機(jī)測量方波頻率proteus仿真

代碼片段和文件信息
#include
#define?uchar?unsigned?char
#define?uint??unsigned?int
uchar?code?table[11]?=?{0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f};
long?uint?pulse=0;//計(jì)數(shù)輸入的方波的個(gè)數(shù);
long?uint?freq=0;//頻率
uchar?temp=0;?//臨時(shí)變量
void?delay_1ms(uint?i)?//延時(shí)函數(shù),約1ms
{
uint?xj;
for(j=0;j for(x=0;x<=148;x++);
}
void?Time0_Init()//定時(shí)器和計(jì)數(shù)器的初始化函數(shù)
{
EA=1;?//打開全局中斷
TMOD?=?0x15;//設(shè)定定時(shí)器1和計(jì)數(shù)器0的工作方式為方式1
TH0??=?0xff;//計(jì)數(shù)器0的初值
TL0??=?0xff;//計(jì)數(shù)器0的初值
ET0=1;?//允許計(jì)數(shù)器0中斷
TR0=1;?//打開計(jì)數(shù)器0,開始計(jì)數(shù)
TH1??=?0x3c;//定時(shí)器1的初值
TL1??=?0xb0;//定時(shí)器1的初值
ET1=1; //允許定時(shí)器1中斷
TR1?=?1;//打開定時(shí)器1,開始計(jì)數(shù)
}
void?main()
{
Time0_Init();?//初始化定時(shí)器和計(jì)數(shù)器
while(1)
{
P2=0xfe;??//以下為數(shù)碼管顯示函數(shù)
P0=0;
P0=table[freq/100000];
delay_1ms(1);
P0=0;
P2=0xfd;
P0=table[freq/10000%10];
delay_1ms(1);
P0=0;
P2=0xfb;
P0=table[freq/1000%10];
delay_1ms(1);
P0=0;
P2=0xf7;
P0=table[freq/100%10];
delay_1ms(1);
P0=0;
P2=0xef;
P0=table[freq/10%10];
delay_1ms(1);
P0=0;
P2=0xdf;
P0=table[freq%10];
delay_1ms(1);
}
}
void?ISQ_timer0(void)?interrupt?1?//用來計(jì)數(shù)脈沖數(shù),每一個(gè)方波脈沖,計(jì)數(shù)器進(jìn)入中斷,脈沖數(shù)加一
{
TR0?=?0;
pulse++;
TH0??=?0xff;
TL0??=?0xff;
TR0?=?1;
}
/****************************************************************
用來設(shè)定時(shí)間,定時(shí)器的周期為50ms,當(dāng)經(jīng)過20次后,
也即1s后,關(guān)斷定時(shí)器和計(jì)數(shù)器,將一秒內(nèi)計(jì)數(shù)的脈沖數(shù)賦給頻率pulse
一秒內(nèi)采集的脈沖數(shù)即為輸入方波的頻率
****************************************************************/
void?ISQ_time1()?interrupt?3??
{
TH1??=?0x3c;
TL1??=?0xb0;
temp++;
if(temp==20)
{
TR0?=?0;
TR1?=?0;
temp=0;
freq=pulse;
pulse=0;//將脈沖數(shù)清零,重新計(jì)數(shù)
TR0?=?1;//打開計(jì)數(shù)器0,進(jìn)入下一個(gè)循環(huán)
TR1?=?1;//打開定時(shí)器1,進(jìn)入下一個(gè)循環(huán)
}
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2014-05-07?23:18??51單片機(jī)測量方波頻率資料\
?????文件??????114016??2014-05-07?23:18??51單片機(jī)測量方波頻率資料\Last?Loaded?proteus仿真電路圖.DBK
?????文件??????114016??2014-05-08?07:10??51單片機(jī)測量方波頻率資料\proteus仿真電路圖.DSN
?????文件?????????792??2014-05-08?07:10??51單片機(jī)測量方波頻率資料\proteus仿真電路圖.PWI
?????目錄???????????0??2014-05-07?18:37??51單片機(jī)測量方波頻率資料\程序\
?????文件????????5055??2014-05-08?07:09??51單片機(jī)測量方波頻率資料\程序\cx
?????文件????????4864??2014-05-08?07:09??51單片機(jī)測量方波頻率資料\程序\cx.LST
?????文件????????7459??2014-05-08?07:09??51單片機(jī)測量方波頻率資料\程序\cx.M51
?????文件????????5567??2014-05-08?07:09??51單片機(jī)測量方波頻率資料\程序\cx.OBJ
?????文件?????????974??2014-05-08?07:09??51單片機(jī)測量方波頻率資料\程序\cx.Opt
?????文件????????2129??2014-05-07?21:50??51單片機(jī)測量方波頻率資料\程序\cx.Uv2
?????文件????????1961??2014-05-08?07:09??51單片機(jī)測量方波頻率資料\程序\cx.c
?????文件????????2041??2014-05-08?07:09??51單片機(jī)測量方波頻率資料\程序\cx.hex
?????文件??????????36??2014-05-08?07:09??51單片機(jī)測量方波頻率資料\程序\cx.lnp
?????文件????????1137??2014-05-08?07:09??51單片機(jī)測量方波頻率資料\程序\cx.plg
?????文件?????????973??2014-05-07?23:17??51單片機(jī)測量方波頻率資料\程序\cx_Opt.Bak
?????文件???????????0??2014-05-07?18:37??51單片機(jī)測量方波頻率資料\程序\cx_Uv2.Bak
評(píng)論
共有 條評(píng)論