|
0.png (271.74 KB, 下載次數: 133)
下載附件
2016-9-8 21:03 上傳
基于avr單片機的頻率計的仿真原理圖
0.png (224.54 KB, 下載次數: 140)
下載附件
2016-9-8 21:05 上傳
俺畢業設計的小玩意.也許有人可以拿去玩.
當時剛出畢業選題就趕緊的選了這個簡單的.免得以后為畢業設計費神.
這是最初的,后來給學校也是交的這個. 花了三天時間.
//*********************11月29日開始畢業選題
讀了一點頻率計原理,高頻記數,低頻測周期 規劃了一下大體,堅決不用老師指定的51,
//*********************11月30日開始寫代碼
湊合著開始了,偏差很大,很無聊,晚上跟123JJ在51hei灌水,灌了陣找到思維了,繼續寫,基本完成
//*********************12月1日調試
寫了個串口上位機對數據進行分析和記錄,方便多了.仔細的調了下.不管他效率和規范了,出結果了就要得,馬虎的收工了.
16MHz晶振,范圍1Hz--5MHz,軟件仿真測周期誤差<1/8us.計數誤差最大可能1hz. 當然液晶顯示誤差就大多了.顯示位數有限.隨便忽悠一下, 可以給老師交差了.前端信號處理和pcb以后再弄.
后來前端處理參照冬瓜哥的精華帖和建議,把CD4069作運放用.
感謝冬瓜哥給我打板,搭順路車.
后來在寒假發神經又琢磨了一下,修改下代碼,加上些別的東西,反正資源還足夠,有些作了測試,有些只是空想,規劃和寫代碼,沒有測試.脈寬和占空比,電壓表,示波器,歐姆表,信號發生器,溫度計,電容表,電感表,邏輯儀,紅外分析,弄了5,6天又停了,人太懶.再后來又忘干凈了,只記得電容表是測充電時間.
再后來,寫畢業論文,網上下了n多資料和論文用來copy,弄的電腦很亂,寫到一半,實在太亂,文件整理中,大把的刪文件夾,一不小心把軟件都刪了,還好在qq群共享里留下了這個最初版本.好險.差點作無用功.
0.png (115.09 KB, 下載次數: 136)
下載附件
2016-9-8 21:05 上傳
0.png (20.23 KB, 下載次數: 139)
下載附件
2016-9-8 21:07 上傳
下面是智能頻率計的原理圖是用ad畫的.
0.png (50.64 KB, 下載次數: 132)
下載附件
2016-9-8 21:07 上傳
下面是主程序的源程序:
- #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;
- }
復制代碼 cale.c
0.png (75.23 KB, 下載次數: 114)
下載附件
2016-9-8 21:09 上傳
所有資料下載:
一種智能頻率計的設計與制作(AVR).rar
(132.94 KB, 下載次數: 59)
2016-9-8 21:12 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|
|