智能頻率計仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png (16.3 KB, 下載次數: 84)
下載附件
2019-9-11 02:19 上傳
51hei瀏覽器截圖20190910112633.png (6.72 KB, 下載次數: 79)
下載附件
2019-9-10 11:27 上傳
單片機源程序如下:
- #ifndef main_c //test ok
- #define main_c
- #endif
- #include "main.h"
- //************************全局變量
- volatile uint t0_cont;
- volatile uint t1_cont;
- volatile uchar flg1; //
- //-------------------------------------------------------------------------
- // 測試函數 用來初始化
- //-------------------------------------------------------------------------
- void test()
- {
- send_str( "pinlvji" ); //完成后把所有串口去掉
- showstr( "cymometer", 1, 1, 9 ); //液晶顯示
- // showstr( "1KHz", 12, 1, 4 );
- showstr( "Hz", 14, 2, 2 );
- }
- //-------------------------------------------------------------------------
- //mcu初始化 端口 定時器 中斷 外中斷 變量
- //-------------------------------------------------------------------------
- void mcu_init()
- {
- //******************端口
- data_direc = out; //輸出
- DDRB = out; //輸出
- DDRC = out; //輸出
- PORTC = 0X00; //輸出0
- DDRB=0XE0; //輸入口
- PORTB=0XE9;
- //********************定時器
- TIMSK |= 0x12; //定時中斷允許位 只允許兩個匹配
- }
- //-------------------------------------------------------------------------
- // 主函數
- //-------------------------------------------------------------------------
- int main()
- {
- uchar f_t; //用測頻還是測周
- //******************
- mcu_init(); //初始化
- usart_init( 57600 ); //初始化
- send_str( "com ok" ); //完成后把所有串口去掉
- yj_set( 0x38, 0x0f, 0x06 ); //初始化
- clearall(); //初始化
- mzd_on(); //開中斷
- #if debug
- test();
- #endif
- while ( 1 )
- {
- if ( !( PINB& ( 1 << 3 )))
- {
- refish(); //刷新所有的東西
- f_t = hz_try(); //估計范圍 1k
- if ( f_t )
- {
- cl_f(); //頻率法
- }
- else
- {
- cl_t(); //周期法
- }
- }
- }
- return 1;
- }
復制代碼
所有資料51hei提供下載:
一種智能頻率計的設計與制作(AVR)proteus仿真 程序資料.rar
(89.88 KB, 下載次數: 43)
2019-9-10 11:22 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|