單片機課程設(shè)計 頻率計數(shù)器
《單片機課程設(shè)計 頻率計數(shù)器》由會員分享,可在線閱讀,更多相關(guān)《單片機課程設(shè)計 頻率計數(shù)器(29頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、湖南工程學(xué)院 課 程 設(shè) 計 課程名稱 單片機課程設(shè)計 課題名稱 頻率計數(shù)器 專 業(yè) 電子科學(xué)與技術(shù) 班 級 0981 學(xué) 號 姓 名 指導(dǎo)教師 2012年 5 月 25 日 湖南工程學(xué)院 課 程 設(shè) 計 任 務(wù) 書 課程名稱 單片機課程設(shè)計
2、 課 題 頻率計數(shù)器 專業(yè)班級 電子科學(xué)與技術(shù)0981 學(xué)生姓名 學(xué) 號 指導(dǎo)老師 審 批 任務(wù)書下達(dá)日期 2012 年 5 月 14 日 任務(wù)完成日期 2012年 5 月 25 日 設(shè)計內(nèi)容與設(shè)計要求 設(shè)計內(nèi)容: 本課題以單片機為核
3、心,設(shè)計和制作一個頻率計數(shù)器,來完成對輸入的信號進行頻率計數(shù),計數(shù)的頻率結(jié)果通過6位動態(tài)數(shù)碼管顯示出來。要求能夠?qū)?-250KHZ的信號頻率進行準(zhǔn)確計數(shù),計數(shù)誤差不超過1HZ。 設(shè)計要求: 1. 設(shè)計方案要合理、正確; 2. 系統(tǒng)硬件設(shè)計; 3. 完成必要元器件選擇; 4. 系統(tǒng)軟件設(shè)計及調(diào)試; 5. 寫出設(shè)計報告。 主要設(shè)計條件 1. MCS-51單片機實驗操作臺1臺; 2. PC機及單片機調(diào)試軟件; 3. 單片機應(yīng)用系統(tǒng)板1套; 4. 制作工具1套; 5. 系統(tǒng)設(shè)計所需的元器件。 說 明 書 格 式 課程設(shè)計封面 課程設(shè)計任務(wù)書 目 錄 一、
4、設(shè)計的內(nèi)容、要求及目的 二、系統(tǒng)總體方案選擇與說明 三、系統(tǒng)方框圖與工作原理 四、各部分方案選定、功能及計算 五、器件說明 六、應(yīng)用系統(tǒng)的程序設(shè)計 七、調(diào)試說明、使用說明 八、設(shè)計總結(jié) 九、參考文獻(xiàn) 附錄:程序清單,設(shè)計電路原理圖 進 度 安 排 設(shè)計時間分為二周 第一周 星期一、上午:布置課題任務(wù),課題介紹及講課。 下午:借閱有關(guān)資料,總體方案討論。 星期二、確定總體方案,學(xué)習(xí)與設(shè)計相關(guān)內(nèi)容。 星期三、各部分方案設(shè)計。 星期四、各部分設(shè)計。 星期五、設(shè)計及上機調(diào)試。 第二周 星期一:設(shè)計及上機調(diào)試。 星期二
5、:調(diào)試,中期檢查。 星期三:調(diào)試、寫說明書。 星期四--星期五上午:寫說明書、完成電子版并打印成稿。 星期五下午:答辯。 參 考 文 獻(xiàn) 參考文獻(xiàn) 1、 《單片機原理與應(yīng)用》 王迎旭等編 機械工業(yè)出版社 2、 《51系列單片機設(shè)計實例》 樓然苗等編 北京航空航天大學(xué)出版社 3、 《計算機硬件技術(shù)基礎(chǔ)實驗教程》 黃勤等編 重慶大學(xué)出版社 4、 《微型計算機接口技術(shù)及應(yīng)用》 劉樂善主編 華中科技大學(xué)出版社 5、《單片微型計算機原理及接口技術(shù)》陳光東等 華中科技大學(xué)出版社 目錄 第一章.設(shè)計的內(nèi)容、要求及目的 1 1.1 設(shè)計任務(wù) 1 1.2 電路原理圖 1
6、 1.3 系統(tǒng)板上硬件連線 2 1.4 程序設(shè)計內(nèi)容 2 第二章.設(shè)計原理及總體方案 3 2.1頻率計數(shù)器的基本原理 3 2.2 方案的確定 4 第三章.各部分方案選定、功能及計算 5 3.1 主要控制模塊 5 3.2時鐘模塊 9 3.3 復(fù)位模塊 9 3.4顯示模塊 10 第四章.程序設(shè)計及調(diào)試 11 設(shè)計總結(jié) 14 參考文獻(xiàn) 15 附錄一:電路仿真圖 16 附錄二:仿真結(jié)果圖 17 附錄三:源程序 18 第一章.設(shè)計的內(nèi)容、要求及目的 1.1 設(shè)計任務(wù) 利用AT89S51單片機的T0、T1的定時計數(shù)器功能,來完成對輸入的信號進行頻率計數(shù),計數(shù)的頻率
7、結(jié)果通過8位動態(tài)數(shù)碼管顯示出來。要求能夠?qū)?-250KHZ的信號頻率進行準(zhǔn)確計數(shù),計數(shù)誤差不超過1HZ。 1.2 電路原理圖 1.3 系統(tǒng)板上硬件連線 1.3.1 把“單片機系統(tǒng)”區(qū)域中的P0.0-P0.7與“動態(tài)數(shù)碼顯示”區(qū)域中的ABCDEFGH端口用8芯排線連接。 1.3.2 把“單片機系統(tǒng)”區(qū)域中的P2.0-P2.7與“動態(tài)數(shù)碼顯示”區(qū)域中的S1S2S3S4S5S6S7S8端口用8芯排線連接。 1.3.3 把“單片機系統(tǒng)”區(qū)域中的P3.4(T0)端子用導(dǎo)線連接到“頻率產(chǎn)生器”區(qū)域中的WAVE端子上。 1.4 程序設(shè)計內(nèi)容 1.4.1 定時/計數(shù)器T
8、0和T1的工作方式設(shè)置,由圖可知,T0是工作在計數(shù)狀態(tài)下,對輸入的頻率信號進行計數(shù),但對工作在計數(shù)狀態(tài)下的T0,最大計數(shù)值為fOSC/24,由于fOSC=12MHz,因此:T0的最大計數(shù)頻率為250KHz。對于頻率的概念就是在一秒只數(shù)脈沖的個數(shù),即為頻率值。所以T1工作在定時狀態(tài)下,每定時1秒中到,就停止T0的計數(shù),而從T0的計數(shù)單元中讀取計數(shù)的數(shù)值,然后進行數(shù)據(jù)處理。送到數(shù)碼管顯示出來。 1.4.2 T1工作在定時狀態(tài)下,最大定時時間為65ms,達(dá)不到1秒的定時,所以采用定時50ms,共定時20次,即可完成1秒的定時功能。 第二章.設(shè)計原理及總體方案 2.1頻率計數(shù)器的基本原理
9、頻率源 頻率計的基本原理是用一個頻率穩(wěn)定度高的頻率源作為基準(zhǔn)時鐘,對比測量其他信號的頻率。通常情況下計算每秒內(nèi)待測信號的脈沖個數(shù),此時我們稱閘門時間為1秒。閘門時間也可以大于或小于一秒。閘門時間越長,得到的頻率值就越準(zhǔn)確,但閘門時間越長則每測一次頻率的間隔就越長。閘門時間越短,測的頻率值刷新就越快,但測得的頻率精度就受影響。測量一個信號的頻率有兩種方法:第一種是計時法,用基準(zhǔn)信號去測量被測信號的高電平持續(xù)的時間,然后轉(zhuǎn)換成被測信號的頻率。第二種是計數(shù)法,計算在基準(zhǔn)信號高電平期間通過的被測信號個數(shù)。根據(jù)設(shè)計要求測量0HZ~250KHZ的正弦信號,首先要將正弦信號通過過零比較轉(zhuǎn)換成方波信號,然后
10、變成測量方波信號。如果用第一種方法,當(dāng)信號頻率超過1KHZ的時候測量精度將超出測量精度要求,所以當(dāng)被測信號的頻率高于1KHZ的時候需要將被測信號進行分頻處理。如果被測信號頻率很高需要將被測信號進行多次分頻直到達(dá)到設(shè)計的精度要求。本課程設(shè)計采用AT89C51單片機為控制器件來制作一個0HZ~250KHZ的頻率計數(shù)器,并將所得到的頻率通過數(shù)碼管顯示出來。根據(jù)設(shè)計要求用單片機的內(nèi)部T0產(chǎn)生基準(zhǔn)信號,由INTO輸入被測信號,通過定時方式計算被測信號的持續(xù)時間。通過單片機計算得出結(jié)果,最后通過數(shù)碼管顯示測量結(jié)果。系統(tǒng)的原理框圖如下圖所示: 數(shù)顯碼示管 AT89C51 單片機
11、 2.2 方案的確定 系統(tǒng)采用AT89C51單片機作為控制核心,門控信號由AT89S51內(nèi)部的計數(shù)定時器產(chǎn)生,單位為1s。由于單片機的計數(shù)頻率上限較低(12MHZ晶振時約500KHZ),所以需對高頻被測信號進行硬件分頻處理,AT89S51則完成運算、控制及顯示功能。由于使用了單片機,使整個系統(tǒng)具有極為靈活的可編程性,能方便地對系統(tǒng)進行功能擴展與改進。原理圖如下圖: 信號輸 入 數(shù)碼管顯示 單片機處理 在本設(shè)計方案中,我通過程序設(shè)定T0工作在計數(shù)狀態(tài)下,T1工作在計時狀態(tài)下。T0計數(shù)器對輸入的信號經(jīng)行計數(shù),其最大計數(shù)值為fOSC/24,當(dāng)fO
12、SC=12MHz時,T0的最大計數(shù)頻率為500kHz。由于信號的頻率就是每秒鐘信號脈沖的個數(shù),于是我讓T1工作在定時狀態(tài)下,定時時間為1秒。每定時1秒鐘到,就停止T0的計數(shù),然后從T0的計數(shù)單元中讀取計數(shù)的數(shù)值,即完成了信號頻率的測量,最后通過六位數(shù)碼管顯示出頻率值。 第三章.各部分方案選定、功能及計算 3.1 主要控制模塊 主控模塊主要是AT89C51單片機系統(tǒng),采用12MHZ的晶振頻率。單片機的P3.2口接被處理后的被測信號,P0口接LED顯示器的數(shù)據(jù)輸入端,ALE,RD,WR,P0.0,P0.1通過外接控制電路接數(shù)碼管顯示器的控制端。單片機系統(tǒng)的電路如下圖所示:
13、 AT89C51是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含4k Bytes ISP(In-system programmable)的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。AT89S51具有如下特點:40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出
14、(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。此外,AT89S51設(shè)計和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式。空閑模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作,掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。 管腳說明: VCC:供電電壓。 GND:接地。 P0:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P1口的管腳第一
15、次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。 P1:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。 P2:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電
16、阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。 P3:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。P3.0 RXD(串
17、行輸入口)P3.1 TXD(串行輸出口)P3.2 /INT0(外部中斷0)P3.3 /INT1(外部中斷1)P3.4 T0(記時器0外部輸入)P3.5 T1(記時器1外部輸入)P3.6 /WR(外部數(shù)據(jù)存儲器寫選通)P3.7 /RD(外部數(shù)據(jù)存儲器讀選通)P3口同時為閃爍編程和編程校驗接收一些控制信號。I/O口作為輸入口時有兩種工作方式即所謂的讀端口與讀引腳讀端口時實際上并不從外部讀入數(shù)據(jù)而是把端口鎖存器的內(nèi)容讀入到內(nèi)部總線經(jīng)過某種運算或變換后再寫回到端口鎖存器只有讀端口時才真正地把外部的數(shù)據(jù)讀入到內(nèi)部總線上面圖中的兩個三角形表示的就是輸入緩沖器CPU將根據(jù)不同的指令分別發(fā)出讀端口或讀引腳信號
18、以完成不同的操作這是由硬件自動完成的不需要我們操心1然后再實行讀引腳操作否則就可能讀入出錯為什么看上面的圖如果不對端口置1端口鎖存器原來的狀態(tài)有可能為0Q端為0Q^為1加到場效應(yīng)管柵極的信號為1該場效應(yīng)管就導(dǎo)通對地呈現(xiàn)低阻抗,此時即使引腳上輸入的信號為1也會因端口的低阻抗而使信號變低使得外加的1信號讀入后不一定是1若先執(zhí)行置1操作則可以使場效應(yīng)管截止引腳信號直接加到三態(tài)緩沖器中實現(xiàn)正確的讀入由于在輸入操作時還必須附加一個準(zhǔn)備動作所以這類I/O口被稱為準(zhǔn)雙向口89C51的P0/P1/P2/P3口作為輸入時都是準(zhǔn)雙向口接下來讓我們再看另一個問題從圖中可以看出這四個端口還有一個差別除了P1口外P0P
19、2P3口都還有其他的功能 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機器周期的高電平時間。 ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止
20、,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的 3.2時鐘模塊 如圖所示是采用內(nèi)部
21、振蕩方式使8051單片機產(chǎn)生時鐘信號,在單片 機芯片的X1和X2引腳兩端跨接石英晶體振蕩器和兩個電容構(gòu)成穩(wěn)定的自激振蕩電路,其中電容對振蕩頻率起微調(diào)作用,晶振頻率為12MHZ。 3.3 復(fù)位模塊 復(fù)位是單片機的初始化操作,其功能是CPU從000H單元開始執(zhí)行程序,除了使系統(tǒng)正常初始化,當(dāng)程序運行出錯或操作錯誤使系統(tǒng)處于鎖死狀態(tài)時,為擺脫困境,也需要按復(fù)位鍵重新啟動。如圖為按鍵手動復(fù)位方式,通過復(fù)位端經(jīng)電阻和電源+5V接通實現(xiàn)復(fù)位功能。 3.4顯示模塊 本次設(shè)計中采用了LED顯示器,即數(shù)碼管。數(shù)碼管的每一個數(shù)碼段是一只發(fā)光二極管。當(dāng)發(fā)光二極管導(dǎo)通時,相應(yīng)的一個點或者
22、一個筆畫發(fā)光,控制發(fā)光二極管發(fā)光組合,可以顯示出所需字符。本電路采用的是共陰的數(shù)碼管,其編碼如下: 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40 0 1 2 3 4 5 6 7 8 9 熄滅 C語言程序為:unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};第四章.程序設(shè)計及調(diào)試 根據(jù)課程
23、設(shè)計所要求的功能,在KEIL51開發(fā)環(huán)境下編譯程序,首先要定義相關(guān)參量,然后初始化中斷,打開外中斷,T0是工作在計數(shù)狀態(tài)下,對輸入的頻率信號進行計數(shù),但對工作在計數(shù)狀態(tài)下的T0,最大的計數(shù)值為fOSC/24,由于fOSC=12MHz, 因此: T0的最大計數(shù)頻率為 250KHz。對于頻率的概念就是在一秒計數(shù)脈沖的個數(shù),即為頻率值。所以T1工作在定時狀態(tài)下,每定時1秒中到,就停止T0的計數(shù),而從T0的計數(shù)單元中讀取計數(shù)的數(shù)值,然后進行數(shù)據(jù)處理。送到數(shù)碼管顯示出來。T1工作在定時狀態(tài)下,最大定時時間為65ms,達(dá)不到1秒的定時,所以采用定時50ms,共定時20次,即可完成1秒的定時功能。參考相關(guān)
24、資料編譯實現(xiàn)相關(guān)功能程序,實現(xiàn)課程設(shè)計所要求的功能,程序流程圖如下: T1定時器 結(jié)束 計數(shù)顯示 是否達(dá)到1S 從P3*2接受外部中斷請求 初始化 T0/T1初始化(設(shè)置T0為外部脈沖計數(shù),T1為1S定時) 按照程序流程圖把編寫好的程序用KEIL-51單片機編譯系統(tǒng)編譯,編譯成功后,再把程序轉(zhuǎn)換為可執(zhí)行文件。在程序編寫過程中首先要考慮數(shù)碼管是共陰還是共陽的,不同的數(shù)碼管的結(jié)構(gòu)不一樣,所采用的編碼也不一樣,本電路采用的是共陰的數(shù)碼管,所以其編碼如下: 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40 0
25、 1 2 3 4 5 6 7 8 9 熄滅 所用C語言程序為:unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40}; 接下來要考慮哪個口做定時器哪個口做計數(shù)器接口,該電路的設(shè)計思路是用T1做定時器接口,而T0做計數(shù)器接口,并且還要考慮定時器/計數(shù)器的工作模式,根據(jù)設(shè)計思路來設(shè)計程序,故編寫出了如下的C語言程序:TMOD為8位寄存器,用于控制T0和T1的工作方
26、式和工作模式。低4位用于T0,高4位用于T1。我們要將T0口作為定時器那么低四位中的C/位的編碼應(yīng)該為1,而將T1口作為計數(shù)器接口那么高四位中的C/位的編碼應(yīng)該為0,并且要使T0和T1都工作在模式1方式,那么其編碼都應(yīng)該為01,所以就有編碼為00010101,轉(zhuǎn)化為十六進制編碼就是0x15。 所以有TMOD=0x15 TH0=0; //初始化計時器1的高位 TL0=0; //初始化計時器1的低位 TH1=(65536-4000)/256;//初始化計時器1的高位 TL1=(65536-4000)%256;//初始化計時器1的
27、低位 TR1=1; //開計時器1 TR0=1; //開計時器0 ET0=1; //開外部計時中斷0 ET1=1; //開外部計時中斷1 EA=1; //開總中斷 定義完了定時器和計數(shù)器以及中斷的內(nèi)容之后進入主程序的編寫(附錄三),編寫完所有程序之后進行編譯并將生成的可執(zhí)行文件后寫入AT89C51單片機。此時單片機上顯示6位全零(見附錄一),加入信號源時數(shù)碼管能顯示輸入信號的頻率(見附錄二)說明程序基本上沒有問題了。 設(shè)計總結(jié) 經(jīng)過本次課程設(shè)計使我受益匪淺,舊知識得到加強,程序的編寫調(diào)試,單片
28、機的應(yīng)用,LED顯示管等,增加了新知識,開闊了視野。從中我學(xué)到了相當(dāng)多的知識,從程序的編譯到電路圖的設(shè)計仿真,到調(diào)試出結(jié)果,整個過程雖然遇到了許多困難,但經(jīng)過本人的不懈努力和老師的辛勤指導(dǎo),以及在同學(xué)的熱心幫助下,不斷查找相關(guān)資料解決問題,以至最終實現(xiàn)了本次課程設(shè)計。并且通過這次課程設(shè)計的實踐,培養(yǎng)了自己對本專業(yè)學(xué)習(xí)的更為濃厚的興趣與愛好,提高了自己的動手能力,以及與同學(xué)團結(jié)協(xié)作的能力。更重要的是自身的自學(xué)能力和動手能力得到了很大的提高,做課程設(shè)計的過程就是一個不斷的學(xué)習(xí)和探索的過程,當(dāng)出現(xiàn)困難的時候能夠沉著、冷靜、正確的面對和處理困難。我相信有了這次課程設(shè)計的整個經(jīng)歷,為將來進行更高新知識的
29、學(xué)習(xí)帶來了很大的益處,也為走上社會奠定了堅實的基礎(chǔ)。 最后,感謝我的指導(dǎo)老師尋大勇老師,在本次課程設(shè)計中老師的指導(dǎo)給予了我很大的幫助,不但教會了我理論知識,還教會了我解決問題的能力,老師淵博的知識、精益求精的工作態(tài)度給我留下了深刻的印象,將使我終身受益。同時也感謝我的同學(xué)、室友對我的幫助與支持,沒有他們的幫助我是無法在短時間內(nèi)圓滿完成本次課程設(shè)計的,與他們一起學(xué)習(xí)生活,帶給我很多的歡笑與快樂。由于本人所掌握的知識和能力水平的限制,在本次設(shè)計中一定存在一些錯誤,懇請老師予以批評指正。 再次對幫助我的老師和同學(xué)表示衷心的感謝。 參考文獻(xiàn) 1.《單片機原理與應(yīng)用》 王迎旭等編 機
30、械工業(yè)出版社
2.《51系列單片機設(shè)計實例》 樓然苗等編 北京航空航天大學(xué)出版社
3.《計算機硬件技術(shù)基礎(chǔ)實驗教程》 黃勤等編 重慶大學(xué)出版社
4.《微型計算機接口技術(shù)及應(yīng)用》 劉樂善主編 華中科技大學(xué)出版社
5.《單片微型計算機原理及接口技術(shù)》陳光東等 華中科技大學(xué)出版社附錄一:電路仿真圖 附錄二:仿真結(jié)果圖
附錄三:源程序
#include
31、dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};//數(shù)碼管顯示的數(shù)字?jǐn)?shù)組 unsigned char dispbuf[8]={0,0,0,0,0,0,10,10};//數(shù)碼管顯示內(nèi)容數(shù)組 unsigned char temp[8];//數(shù)碼管顯示內(nèi)容緩沖數(shù)組 unsigned char dispcount;//顯示計數(shù) unsigned char T0count; //計時器0的計數(shù) unsigned char timecount; bi
32、t flag; //頻率計開始工作標(biāo)志位 unsigned long x; //八個數(shù)碼管顯示的數(shù) void main(void) { unsigned char i; TMOD=0x15;//設(shè)置兩個計時器模式 TH0=0; //初始化計時器1的高位 TL0=0; //初始化計時器1的低位 TH1=(65536-5000)/256;//初始化計時器1的高位 TL1=(65536-5000)%256;//初始化計時器1的低位 TR1=1; //開計時器1 TR0=1;
33、//開計時器0 ET0=1; //開外部計時中斷0 ET1=1; //開外部計時中斷1 EA=1; //開總中斷 while(1) { if(flag==1) { flag=0; x=T0count*65536+TH0*256+TL0; for(i=0;i<8;i++) // { temp[i]=0; //清緩沖數(shù)組內(nèi)容 }
34、 i=0; while(x/10) { temp[i]=x%10; //把個位數(shù)給緩沖區(qū) x=x/10; i++; } temp[i]=x; // 把十位數(shù)給緩沖 for(i=0;i<6;i++) { dispbuf[i]=temp[i];//把高六位的數(shù)給顯示緩沖區(qū) } ti
35、mecount=0;//清0 T0count=0; TH0=0; TL0=0; TR0=1; } } } void t0(void) interrupt 1 using 0 //中斷計時器0實行的函數(shù) { T0count++; } void t1(void) interrupt 3 using 0 //中斷計時器1的函數(shù) { TH1=(65536-5000)/256; TL1=(65536-5000)%256; timecount++;
36、 if(timecount==250) { TR0=0; timecount=0; flag=1; } P0=dispcode[dispbuf[dispcount]]; //數(shù)碼管顯示內(nèi)容 P2=dispbit[dispcount]; //數(shù)碼管選通 dispcount++; if(dispcount==8) { dispcount=0; } } 電氣信息學(xué)院課程設(shè)計評分表 項 目 評 價 優(yōu) 良 中 及格 差
37、 設(shè)計方案合理性與創(chuàng)造性(10%) 開發(fā)板焊接及其調(diào)試完成情況*(10%) 硬件設(shè)計或軟件編程完成情況(20%) 硬件測試或軟件調(diào)試結(jié)果*(10%) 設(shè)計說明書質(zhì)量(20%) 答辯情況(10%) 完成任務(wù)情況(10%) 獨立工作能力(10%) 出勤情況(10%) 綜 合 評 分 指導(dǎo)教師簽名:________________ 日 期:________________ 注:①表中標(biāo)*號項目是硬件制作或軟件編程類課題必填內(nèi)容; ②此表裝訂在課程設(shè)計說明書的最后一頁。課程設(shè)計說明書裝訂順序:封面、任務(wù)書、目錄、正文、評分表、附件(非16K大小的圖紙及程序清單)。 23
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識競賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識測試題庫及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測工種技術(shù)比武題庫含解析
- 1 礦山應(yīng)急救援安全知識競賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案