具有放大整形電路的簡易數(shù)字頻率計(jì),有protues仿真代碼和Word版實(shí)驗(yàn)報(bào)告
課程設(shè)計(jì)報(bào)告目錄 摘要. I 關(guān)鍵詞語. I Abstract I Key words I 前言. 1 第一章 頻率計(jì)設(shè)計(jì). 1 1.1頻率計(jì)概要. 1 1.2發(fā)展動(dòng)態(tài). 1 1.3設(shè)計(jì)任務(wù). 1 第二章 系統(tǒng)模塊設(shè)計(jì). 1 2.1整體設(shè)計(jì). 1 2.2測(cè)頻思路. 1 2.3模塊分析. 1 第三章 硬件設(shè)計(jì). 1 3.1主控模塊. 1 3.2放大整形電路. 1 3.3分頻設(shè)計(jì). 1 3.4驅(qū)動(dòng)顯示. 1 第四章 軟件設(shè)計(jì). 1 4.1模塊設(shè)計(jì). 1 4.2中斷服務(wù). 1 4.3顯示實(shí)現(xiàn)過程. 1 4.4量程轉(zhuǎn)換. 1 4.5軟件概述. 1 第五章 系統(tǒng)調(diào)試. 1 5.1硬件調(diào)試. 1 5.2軟件調(diào)試. 1 5.3系統(tǒng)調(diào)試. 1 5.4誤差分析. 1 第六章 總結(jié). 1 參考資料. 1 致 謝. 1 附錄. 1 設(shè)計(jì)任務(wù)
1.3.1任務(wù)
設(shè)計(jì)一個(gè)以單片機(jī)為主要控制模塊的簡易數(shù)字頻率計(jì)。
1.3.2設(shè)計(jì)要求
(1)基本要求
實(shí)現(xiàn)對(duì)周期信號(hào)的頻率進(jìn)行測(cè)量。
測(cè)量范圍:
信號(hào):三角波、正弦波、方波;
幅度:0.5V~5V;
頻率:1Hz~1MHz;
測(cè)量誤差≤0.1%。
(2)驅(qū)動(dòng)顯示部分
用74LS245驅(qū)動(dòng)4位共陽極數(shù)碼管,以十進(jìn)制數(shù)字顯示測(cè)量的數(shù)據(jù)。電源用電池代替。
第二章 系統(tǒng)模塊設(shè)計(jì)
2.1整體設(shè)計(jì)
在單位時(shí)間內(nèi)對(duì)待測(cè)信號(hào)進(jìn)行計(jì)數(shù),計(jì)數(shù)值作為信號(hào)頻率顯示在數(shù)碼管上。本設(shè)計(jì)用單片機(jī)STC80C51制作簡易數(shù)字頻率計(jì),高頻段采用外部10分頻,低頻段直接用單片機(jī)計(jì)數(shù),實(shí)現(xiàn)對(duì)1HZ-1MHZ范圍的頻率測(cè)量。顯示部分用74LS245驅(qū)動(dòng)四位共陽極數(shù)碼管,顯示測(cè)量出來的頻率結(jié)果?梢詼y(cè)量正弦波、三角波及方波的頻率值。
設(shè)計(jì)的原理框圖如圖2.1所示。
仿真電路圖及結(jié)果:
單片機(jī)源程序如下:
- /*=======================================================
- <<<<<<<<<<<<<<<<<<< 愛普雷德技術(shù)團(tuán)隊(duì) >>>>>>>>>>>>>>>>>>>>
- <<<<<<<<<<<<<<<<<<< 我們一起追求卓越 >>>>>>>>>>>>>>>>>>>>
- ---------------------------------------------------------
- ---------------------------------------------------------
- All right reserved.2013.01
- ---------------------------------------------------------
- 文件名: digitron_drv.c
- 描述: 數(shù)碼管模塊c文件
- 作者:
- =========================================================
- -----------------------------------------------------------------------------------------------------------*/
- #include "digitron_drv.h"
- code uint8 Segment[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- code uint8 Select[] = {0xff,0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
- /**********************************************
- 功能:
- 輸出位選字節(jié)和段碼字節(jié)
- 輸入?yún)?shù):
- SelectByte: 位選字節(jié)
- SegmentByte: 段碼字節(jié)
- 輸出參數(shù):
- 無
- 返回值:
- **********************************************/
- static void DigOutput(uint8 SelectByte, uint8 SegmentByte)
- {
- uint8 i;
-
- DIG_SHCP = 0;
- DIG_STCP = 0;
- for(i=0; i<8; i++)
- {
- if(SegmentByte&0x80)
- {
- DIG_DATA = 1;
- }
- else
- {
- DIG_DATA = 0;
- }
- _nop_();
- DIG_SHCP = 1;
- _nop_();
- DIG_SHCP = 0;
- _nop_();
- SegmentByte <<= 1;
- }
- for(i=0; i<8; i++)
- {
- if(SelectByte&0x80)
- DIG_DATA = 1;
- else
- DIG_DATA = 0;
- _nop_();
- DIG_SHCP = 1;
- _nop_();
- DIG_SHCP = 0;
- _nop_();
- SelectByte <<= 1;
- }
- DIG_STCP = 1;
- _nop_();
- DIG_STCP = 0;
- _nop_();
- }
- /**********************************************
- 功能:
- 在某位顯示自定義段碼
- 輸入?yún)?shù):
- DigSelect: 數(shù)碼管位選擇(1——8,即最右到最左)
- CustomSeg: 自定義段碼值
- 輸出參數(shù):
- 無
- 返回值:
- **********************************************/
- void DigShowCustom(uint8 DigSelect, uint8 CustomSeg)
- {
- if(0<DigSelect<9)
- {
- DigOutput(Select[DigSelect],CustomSeg);
- }
- }
- /**********************************************
- 功能:
- 在某位顯示數(shù)字
- 輸入?yún)?shù):
- DigSelect: 數(shù)碼管位選擇(1——8,即最右到最左)
- Number: 數(shù)字(0——9)
- Dp: 小數(shù)點(diǎn)(1:顯示;0:不顯示)
- 輸出參數(shù):
- 無
- 返回值:
- **********************************************/
- void DigShowNumber(uint8 DigSelect, uint8 Number, bit Dp)
- {
- if((0<DigSelect<9)&&(Number<10))
- {
- if(Dp)
- {
- DigOutput(Select[DigSelect],(Segment[Number]&~0x80));
- }
- else
- {
- DigOutput(Select[DigSelect],(Segment[Number]|0x80));
- }
- }
- }
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
簡易數(shù)字頻率計(jì)(單片機(jī)課程設(shè)計(jì)).zip
(4.92 MB, 下載次數(shù): 267)
2017-12-26 10:07 上傳
點(diǎn)擊文件名下載附件
簡易數(shù)字頻率計(jì)
|