|
1、 項(xiàng)目名稱:設(shè)計(jì)制作數(shù)字頻率計(jì)
2、 項(xiàng)目要求:
(1) 用KEILC51、Proteus仿真設(shè)計(jì)數(shù)字頻率計(jì)
(2) AT89C51單片機(jī)作為主控制器;
(3) 用數(shù)碼管顯示頻率;
(4) 能測試1-100Hz信號(hào)頻率;
3、 設(shè)計(jì)制作任務(wù)
(1) 擬定總體設(shè)計(jì)制作方案;
(2) 設(shè)計(jì)硬件仿真電路;
(3) 繪制軟件設(shè)計(jì)流程圖及編寫軟件控制程序;
(4) 仿真調(diào)試;
(5) 完成項(xiàng)目文檔;
4、 總體設(shè)計(jì)思路
基本功能能實(shí)現(xiàn)思路是用51單片機(jī)做控制采用12Mhz時(shí)鐘;定時(shí)器在技數(shù)狀態(tài)下最大計(jì)數(shù)值為fosc/24最大計(jì)數(shù)頻率達(dá)250khz用AT89C51內(nèi)的一個(gè)定時(shí)器做定時(shí)器另一個(gè)定時(shí)器做計(jì)數(shù)器為所測試的信號(hào)的周期進(jìn)行計(jì)數(shù),定時(shí)1s讀出的計(jì)數(shù)值就是頻率頻率值經(jīng)數(shù)據(jù)處理后用數(shù)碼管顯示
5、 硬件電路設(shè)計(jì)
用AT89C51單片機(jī)做控制采用系統(tǒng)時(shí)鐘12Mhz采用上電復(fù)位方式三位一體的共陰極數(shù)碼管作為顯示AT89C51的一個(gè)I/O口作為顯示數(shù)據(jù)輸出的端口一個(gè)i/o口作為數(shù)碼管位選控制端口T0做為頻率測試輸入端。
1.png (83.79 KB, 下載次數(shù): 43)
下載附件
2022-5-24 17:52 上傳
6、 C語言主控程序設(shè)計(jì)(程序設(shè)計(jì)思路及流程圖)
#include<reg51.h>
unsigned char frequency;
unsigned char count_t1;
unsigned char segselect[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
unsigned char bitselect[]={0x01,0x02,0x04};
unsigned char dat_display[3];
void delay(unsigned int time)
{
unsigned int i;
unsigned char j;
for (i=0;i<time;i++)
for(j=0; j<120;j++)
;
}
void INT1init()
{
TMOD|=0x10;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
TR1=1;
}
void INT0init()
{
TMOD|=0x05;
TH0=0;
TL0=0;
TR0=1;
}
void int_init()
{
EA=1;
ET1=1;
}
void display_1bit(unsigned char dat,unsigned char segsel)
{
P2=0x00;
P1=dat;
P2=segsel;
代碼不全:
|
|