智能儀器課程設計——智能頻率計設計_第1頁
已閱讀1頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p>  電子儀器綜合課程設計報告</p><p>  題 目 智能數(shù)字頻率計 </p><p>  學院(部) 信 息 工 程 學 院 </p><p>  專 業(yè) 電 子 信 息 工 程 </p><p>  班 級

2、 </p><p>  學生姓名 </p><p>  學 號 </p><p>  一、課設題目:智能頻率計設計</p><p>  二.技術指標: 測頻的范圍是1Hz~1MHz</p>&l

3、t;p><b>  三.設計內容</b></p><p>  本次設計的基于單片機的數(shù)字式頻率計包括波形整形電路、分頻電路、多路數(shù)據(jù)選擇器、單片機和顯示電路等幾個模塊。所以本次設計的數(shù)字式頻率計的電路由以下幾塊構成:由施密特觸發(fā)器構成的波形整形放大電路、由74LS90構成的分頻電路、由74LS153四選一電路構成的四選一電路、AT89C51單片機以及由74LS138譯碼電路、74LS2

4、45上拉電路和八段數(shù)碼管顯示電路構成的數(shù)碼顯示電路構。其原理圖如圖1所示:</p><p>  圖1 系統(tǒng)框圖 </p><p>  控制電路在數(shù)字頻率計中起至關重要的作用。采用什么樣的控制電路,直接決定了數(shù)字頻率計的性能。為了得到一個高性能的數(shù)字頻率計,本次設計采用單片機來做為數(shù)字頻率計的核心控制電路,輔之于少數(shù)的外部控制電路。本系統(tǒng)讓被測信號經過放大整形后,進入單片機開始計數(shù),利用

5、單片機內部定時計數(shù)器定時,在把所記得的數(shù)經過相關處理后送到顯示電路中顯示。</p><p><b>  1.硬件設計</b></p><p>  基于單片機的數(shù)字頻率計的設計,包括一個由放大整形電路、分頻電路、多路數(shù)據(jù)選擇器、AT89C51以及顯示電路,其系統(tǒng)總電路圖如圖2所示:</p><p><b>  圖2 總電路圖</

6、b></p><p><b>  1.1放大整形電路</b></p><p>  因為在單片機計數(shù)中只能對脈沖波進行計數(shù),而實際中需要測量頻率的信號是多種多樣的,有脈沖波、還有可能有正弦波、三角波等,所以需要一個電路。把待測信號轉化為可以進行計數(shù)的脈沖波。</p><p>  矩形脈沖波的整形電路有兩種:施密特觸發(fā)器、單穩(wěn)態(tài)觸發(fā)器。而這兩

7、種電路都可以有門電路或是555定時器構成。由于本次設計的基于單片機的數(shù)字頻率計的放大整形電路部分需求比較簡單,所以我們選擇由555定時器構成的施密特觸發(fā)器來作為信號波形整形電路,</p><p>  施密特觸發(fā)器常見的邏輯符號如圖3所示。</p><p>  圖3 施密特觸發(fā)器的邏輯符號</p><p>  集成施密特觸發(fā)器,常用TTL電路集成施密特觸發(fā)器有7413

8、等。常用CMOS電路集成施密特觸發(fā)器有CC40106等。</p><p><b>  1.2分頻電路</b></p><p>  本次設計采用的是脈沖定時測頻法,由于考慮到單片機的定時計數(shù)器得計數(shù)能力有限,無法對過高頻進行測量,所以我們對待測信號進行了分頻,這樣能提高測量頻率的范圍,還能相應的提高頻率測量的精度。所以我們需要把待測信號進行分頻。在本次設計中,因為我們要

9、進行的是十分頻、一百分頻和一千分頻,所以我們選用74LS90電路,經過正確的連接后就可以進行十分頻,進行三次十分頻就可以得到分頻一千次的信號。其引腳圖和功能表分別如圖4和表1所示。 </p><p>  圖4 74LS90引腳圖</p><p>  表1 74LS90功能表</p><p>  信號經過分頻電路

10、74LS90,其頻率將減小到原信號的十分之一。</p><p><b>  1.3.四選一電路</b></p><p>  本次設計需要用到一個四選一電路,用來選擇輸入單片機進行計數(shù)的待測信號。74LS153就是其中比較好用和常用的一種四選一電路元件。所以這次采用很常見的74LS153集成電路,其電路圖如下圖5所示:</p><p>  圖5

11、 74LS153電路原理圖</p><p>  數(shù)據(jù)選擇器有多個輸入,一個輸出。其功能類似于單刀多擲開關,故又稱為多路開關(MUX)。在控制端的作用下可從多路并行數(shù)據(jù)中選擇一路送輸出端。</p><p>  TTL中規(guī)模數(shù)據(jù)選擇器是根據(jù)多位數(shù)據(jù)的編碼情況將其中一路數(shù)據(jù)由輸出端 送出的電路,74LS153是雙四選一數(shù)據(jù)選擇器,其中有兩個四選一數(shù)據(jù)選

12、擇器,它們各有四個數(shù)據(jù)輸入端:1D3、1D2、1D1、1D0和2D3、2D2、2D1、2D0。一個輸出端1Y、2Y和一個控制許可端S。系統(tǒng)控制端S為低電平有效。當控制許可端S=1時,傳輸通道被封鎖,芯片被禁止,Y=0,輸入的數(shù)據(jù)不能傳送出去;當控制許可端S=0時,傳輸通道打開,芯片被選中,處于工作狀態(tài),輸入的數(shù)據(jù)被傳送出去A1、A0是地址選擇端,兩路選擇器共用。</p><p>  74LS153邏輯功能見表。從

13、功能表可看出,當S端輸入為低電平時,四選一數(shù)據(jù)選擇器處于工作狀態(tài),它有4位并行數(shù)據(jù)輸入D0~D3,單選擇地址輸入A1、A0的二進制碼依次由00遞增至11時,4個通道的并行數(shù)據(jù)便依次傳送到輸出端W。</p><p>  表2 74LS153的功能表</p><p><b>  1.4.單片機</b></p><p>  單片機作為控制系統(tǒng)和計數(shù)

14、器,是本次設計的最重要的部分,AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS8位微處理器,俗稱單片機。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業(yè)標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微

15、控制器,為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價廉的方案。所以本次設計采用AT89C51單片機。</p><p>  本次設計采用的是89C51單片機, 89C51是一種高性能低功耗的采用CMOS工藝制造的8位微控制器,它提供下列標準特征:4K字節(jié)的程序存儲器,128字節(jié)的RAM,32條I/O線,2個16位定時器/計數(shù)器,,一個5中斷源兩個優(yōu)先級的中斷結構,一個雙工的串行口,片上震蕩器和時鐘電路。</p&

16、gt;<p><b>  1.5.顯示電路</b></p><p>  我們測量的頻率最終要顯示出來。八段LED數(shù)碼管顯示器基本電路如圖6所示。</p><p>  圖6 八段LED數(shù)碼管顯示器</p><p>  八段LED數(shù)碼管顯示器由8個發(fā)光二極管組成?;?個長條形的發(fā)光管排列成“日”字形,另一個圓點形的發(fā)光管在數(shù)碼管

17、顯示器的右下角作為顯示小數(shù)點用,它能顯示各種數(shù)字及部份英文字母。LED數(shù)碼管顯示器有兩種形式:一種是8個發(fā)光二極管的陽極都連在一起的,稱之為共陽極LED數(shù)碼管顯示器;另一種是8個發(fā)光二極管的陰極都連在一起的,稱之為共陰極LED數(shù)碼管顯示器。如下圖所示。共陰和共陽結構的LED數(shù)碼管顯示器各筆劃段名和安排位置是相同的。當二極管導通時,對應的筆劃段發(fā)亮,由發(fā)亮的筆劃段組合而顯示的各種字符。8個筆劃段hgfedcba對應于一個字節(jié)(8位)的D7

18、、D6、D5、D4、D3、D2、D1、D0,于是用8位二進制碼就能表示欲顯示字符的字形代碼。</p><p>  在單片機應用系統(tǒng)中,數(shù)碼管顯示器顯示常用兩種辦法:靜態(tài)顯示和動態(tài)掃描顯示。所謂靜態(tài)顯示,就是每一個數(shù)碼管顯示器都要占用單獨的具有鎖存功能的I/O接口用于筆劃段字形代碼。這樣單片機只要把要顯示的字形代碼發(fā)送到接口電路,就不用管它了,直到要顯示新的數(shù)據(jù)時,再發(fā)送新的字形碼,因此,使用這種辦法單片機中CPU

19、的開銷小,能供給單獨鎖存的I/O接口電路很多。在單片機系統(tǒng)中動態(tài)掃描顯示接口是單片機中應用最為廣泛的一種顯示方式之一。其接口電路是把所有顯示器的8個筆劃段a-h同名端連在一起,而每一個顯示器的公共極COM是各自獨立地受I/O線控制。CPU向字段輸出口送出字形碼時,所有顯示器接收到相同的字形碼,但究竟是那個顯示器亮,則取決于COM端,而這一端是由I/O控制的,所以我們就能自行決定何時顯示哪一位了。而所謂動態(tài)掃描就是指我們采用分時的辦法,輪

20、流控制各個顯示器的COM端,使各個顯示器輪流點亮。 在輪流點亮掃描過程中,每位顯示器的點亮時間是極為短暫的(約1ms),但由于人的視覺暫留現(xiàn)象及發(fā)光二極管的余輝效應,盡管實際上各位顯示器并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩(wěn)定的顯示數(shù)據(jù),</p><p>  綜合以上內容,我們在這次設計中采用LED數(shù)碼管,采用單片機靜態(tài)顯示計數(shù)來顯示。采用一個74LS138譯碼器來控制各個數(shù)碼管,采用一個74

21、LS245來做上拉電路,使數(shù)碼顯示管有足夠的電壓進行顯示。</p><p>  顯示電路由數(shù)碼管和74LS138組成,數(shù)碼管已經介紹過了,現(xiàn)在介紹顯示電路組成的另一重要電路:74LS138。在本次設計中,由74LS138連接數(shù)碼管的接地端,由此來控制數(shù)碼管的亮和滅。其引腳圖和功能表分別如圖7和表3所示。</p><p>  圖7 74LS153引腳圖</p><p

22、>  表3 74LS138功能表</p><p>  由圖和功能表可以看出,74LS138譯碼器有三個地址輸入端A、B、C和八個譯碼輸出端Y0~Y7,當輸入為000時,Y0輸出端為0,其他輸出端都為1;同理可推出其他輸出狀態(tài),即只有輸出變量下標對應的二進制代碼與輸入代碼相等的輸出端為0,其他的輸出端都為1。另外,該譯碼器還有三個使能端:G1、/G2A、/G2B,只有當G1=1、/G2A=0、/G2B

23、=0同時滿足,才能譯碼。三個條件中任何一個不滿足就禁止譯碼。其中譯碼選通端/G2B也被稱作數(shù)據(jù)輸入端,主要指它用于數(shù)據(jù)分配時所起的作用。設置多個使能端使得該譯碼器能被靈活組成各種電路。</p><p>  由于單片機輸出的顯示數(shù)據(jù)電壓不夠高,無法直接送到數(shù)碼管上直接顯示,因此需要用一個上拉電路來提高輸出數(shù)據(jù)的電壓值,以便送到數(shù)碼管顯示。在本次設計中我們選用DM74LS245N。其電路圖如圖8所示。</p&g

24、t;<p>  圖8 DM74LS245N</p><p><b>  2.軟件設計</b></p><p><b>  測頻軟件實現(xiàn)原理</b></p><p>  測頻軟件的實現(xiàn)是基于電路系統(tǒng)來進行設計的。本次設計采用的是脈沖定時測頻法,所以在軟件實現(xiàn)上基本遵照系統(tǒng)的設計原理,進行測頻。本次軟件設

25、計語言采用匯編語言,在電腦上編譯通過后即可下載到電路上的實際電路中,即可實現(xiàn)頻率的測量。</p><p>  軟件設計的基本思路是:1、把要用到的內部存儲器的地址運用偽指令標號,方便后面設計中運用;2、跳轉到中斷程序進行初步數(shù)據(jù)采集;3、開始主程序,首先判斷是否有待測信號,無信號就等待信號,有信號則進行下一步;4、判斷是否定時到1S,若沒有到達1S定時,則執(zhí)行下面的5和6步得操作,若達到1S,則執(zhí)行第6步以后的操

26、作;5、判斷是否第一次,若是,則判斷當前的檔位是否設置合適,若合適則直接跳轉到返回主程序,若不合適,則進入第6步;6、調整檔位,重新進入中斷開始初步計數(shù);7、判斷檔位是否合適,合適則把測得的數(shù)據(jù)轉換為十進制數(shù)據(jù),根據(jù)當前的檔位相應的調整數(shù)位,并取表找到相應的顯示數(shù)據(jù),然后執(zhí)行第10步操作;8、若上一步中判斷出檔位不合適,則根據(jù)頻率進行相應的檔位調整。9、恢復初值,重新開始計數(shù);10、返回主程序。</p><p>

27、<b>  2.1.軟件流程圖</b></p><p><b>  2.2.重要的程序</b></p><p>  1、控制程序:本文設計的是基于單片機的數(shù)字頻率計的設計,用單片機來做為數(shù)字頻率計的控制部分。因此,單片機的控制程序在本次設計中顯得非常重要。經過設計,我們得到了如下的控制程序。</p><p>  ;****

28、******************************************************************</p><p>  ;------------------------------- MAIN --------------------------------------------------------</p><p>  ;********

29、**************************************************************</p><p>  MAIN: NOP</p><p>  CALL DISPLAY0;LED動態(tài)顯示刷新</p><p>  CALL DELAY100</p><p>  JNB B_T1IF,MAIN;每50

30、ms處理一次。</p><p>  ;======================================</p><p>  CLR B_T1IF</p><p>  MOV A,TIMES_50MS</p><p>  CJNE A,#20,NO_1S</p><p>  JMP YES_1S; 滿20

31、次即為一秒鐘</p><p>  ;=====================================</p><p><b>  NO_1S:</b></p><p>  MOV A,TIMES_50MS</p><p>  CJNE A,#1,NO_1S_END ;TIMES_50MS不為1,返回</p

32、><p>  ;當TIMES_50MS為1時,判斷當前所選檔位是否過高或者過低</p><p>  ;若計數(shù)器BUF大于100,則說明滿1秒時必然大于2000,則提前調高頻率衰減檔位,</p><p>  ;并清零各計數(shù)值,重新在新檔位測量</p><p>  MOV A,COUNTER_BUF_H</p><p>  J

33、NZ NO_1S_1;計數(shù)器高位不為0,說明超100</p><p>  MOV A,COUNTER_BUF_L</p><p>  CJNE A,#100,NO_1S_0</p><p>  NO_1S_0:JC NO_1S_LOW;計數(shù)器BUF小于100,繼續(xù)跳轉到NO_1S_LOW判斷是否需要調低檔位</p><p><b>

34、  NO_1S_1:</b></p><p>  MOV A,FREQ_LOSS;超量程,判斷當前頻率衰減檔位,若小于3則加一檔</p><p>  CJNE A,#3,NO_1S_2</p><p>  JMP NO_1S_END</p><p>  NO_1S_2:JC NO_1S_3</p><p>

35、;<b>  MOV A,#3</b></p><p>  MOV FREQ_LOSS,A;檔位大于3,則修正為3</p><p><b>  NO_1S_3:</b></p><p>  INC FREQ_LOSS;頻率衰減檔位加1</p><p>  MOV A,FREQ_LOSS</p&

36、gt;<p>  CJNE A,#1,NO_1S_4</p><p>  SETB P153_B;FREQ_LOSS=1</p><p>  CLR P153_A</p><p>  JMP NO_1S_20</p><p>  NO_1S_4:CJNE A,#2,NO_1S_5</p><p>  CL

37、R P153_B;FREQ_LOSS=2</p><p>  SETB P153_A</p><p>  JMP NO_1S_20</p><p><b>  NO_1S_5:</b></p><p>  CLR P153_B;FREQ_LOSS=3</p><p>  CLR P153_A<

38、;/p><p>  JMP NO_1S_20</p><p>  ;========================================</p><p>  NO_1S_LOW:</p><p>  MOV A,COUNTER_BUF_L</p><p>  CJNE A,#10,NO_1S_10</p&

39、gt;<p>  NO_1S_10:JNC NO_1S_END</p><p>  ;偏低,則判斷是否需要降低頻率衰減檔位</p><p>  MOV A,FREQ_LOSS;</p><p>  JZ NO_1S_END;已經是最低檔,無需調整</p><p>  DEC FREQ_LOSS;減一檔</p>&l

40、t;p>  MOV A,FREQ_LOSS</p><p>  CJNE A,#0,NO_1S_11</p><p>  SETB P153_B;FREQ_LOSS=0</p><p>  SETB P153_A</p><p>  JMP NO_1S_20</p><p>  NO_1S_11:CJNE A,#

41、1,NO_1S_12</p><p>  SETB P153_B;FREQ_LOSS=1</p><p>  CLR P153_A</p><p>  JMP NO_1S_20</p><p><b>  NO_1S_12:</b></p><p>  CLR P153_B;FREQ_LOSS=2

42、</p><p>  SETB P153_A</p><p>  JMP NO_1S_20</p><p>  NO_1S_20:;調整檔位后,重新計數(shù)</p><p><b>  CLR A</b></p><p>  MOV TIMES_50MS,A</p><p> 

43、 MOV COUNTER_BUF_L,A</p><p>  MOV COUNTER_BUF_H,A</p><p>  NO_1S_END:JMP MAIN</p><p>  ;===================================</p><p>  ;==================================

44、</p><p><b>  YES_1S:</b></p><p>  ;把計數(shù)器的數(shù)轉換成10進制,并根據(jù)當前檔位設定好要顯示的6個數(shù)字,</p><p>  ;存放在DISPLAY_DATA1-DISPLAY_DATA6中。</p><p>  MOV A,COUNTER_BUF_H</p><

45、p><b>  MOV R7,A</b></p><p>  MOV A,COUNTER_BUF_L</p><p><b>  MOV R6,A</b></p><p>  CALL CHANGE16_10</p><p>  ;===============================

46、=====</p><p>  ;在頻率衰減控制下,計數(shù)器數(shù)據(jù)不會超出2000多少,因此只取轉換后的低4位轉換成數(shù)據(jù)顯示</p><p><b>  MOV A,R3</b></p><p>  ANL A,#0FH</p><p>  MOV TEMP1,A</p><p><b> 

47、 MOV A,R3</b></p><p>  ANL A,#0F0H</p><p><b>  SWAP A</b></p><p>  MOV TEMP2,A</p><p><b>  MOV A,R4</b></p><p>  ANL A,#0FH&l

48、t;/p><p>  MOV TEMP3,A</p><p><b>  MOV A,R4</b></p><p>  ANL A,#0F0H</p><p><b>  SWAP A</b></p><p>  MOV TEMP4,A</p><p> 

49、 ;====================================</p><p>  ;根據(jù)頻率衰減檔位調整數(shù)位</p><p>  MOV A,FREQ_LOSS</p><p>  CJNE A,#0,LOSS_1</p><p><b>  CLR A</b></p><p> 

50、 MOV DATA4,A</p><p>  MOV DATA5,A</p><p>  JMP LOSS_END</p><p><b>  LOSS_1:</b></p><p>  CJNE A,#1,LOSS_2</p><p>  MOV A,DATA3</p><p

51、>  MOV DATA4,A</p><p>  MOV A,DATA2</p><p>  MOV DATA3,A</p><p>  MOV A,DATA1</p><p>  MOV DATA2,A</p><p>  MOV A,DATA0</p><p>  MOV DATA1,

52、A</p><p><b>  CLR A</b></p><p>  MOV DATA0,A</p><p>  MOV DATA5,A</p><p>  JMP LOSS_END</p><p><b>  LOSS_2:</b></p><p>

53、;  CJNE A,#2,LOSS_3</p><p>  MOV A,DATA3</p><p>  MOV DATA5,A</p><p>  MOV A,DATA2</p><p>  MOV DATA4,A</p><p>  MOV A,DATA1</p><p>  MOV DATA

54、3,A</p><p>  MOV A,DATA0</p><p>  MOV DATA2,A</p><p><b>  CLR A</b></p><p>  MOV DATA0,A</p><p>  MOV DATA1,A</p><p>  JMP LOSS_EN

55、D</p><p><b>  LOSS_3:</b></p><p>  MOV A,DATA2</p><p>  MOV DATA5,A</p><p>  MOV A,DATA1</p><p>  MOV DATA4,A</p><p>  MOV A,DATA0

56、</p><p>  MOV DATA3,A</p><p><b>  CLR A</b></p><p>  MOV DATA0,A</p><p>  MOV DATA1,A</p><p>  MOV DATA2,A</p><p><b>  LOSS_

57、END:</b></p><p>  ;高位若為0,則置為11,取出顯示代碼為LED全滅</p><p>  MOV R0,#DATA5;取最高位數(shù)據(jù)地址</p><p><b>  MOV R2,#5</b></p><p><b>  LOOP_CLR:</b></p>

58、<p><b>  MOV A,@R0</b></p><p><b>  JNZ DISCD</b></p><p><b>  MOV A,#11</b></p><p><b>  MOV @R0,A</b></p><p><b&

59、gt;  DEC R0</b></p><p>  DJNZ R2,LOOP_CLR</p><p>  ;====================================</p><p>  ;取表找相應顯示代碼</p><p><b>  DISCD:</b></p><p&g

60、t;  MOV R0,#DATA_ADDR;</p><p>  MOV R1,#DISPLAY_DATA_ADDR;</p><p>  MOV R2,#6;</p><p>  MOV DPTR,#TAB</p><p>  DILP:MOV A,@R0</p><p>  MOVC A,@A+DPTR</

61、p><p><b>  MOV @R1,A</b></p><p><b>  INC R0</b></p><p><b>  INC R1</b></p><p>  DJNZ R2,DILP</p><p>  ;===================

62、====================</p><p><b>  ;重新計數(shù)</b></p><p><b>  CLR A</b></p><p>  MOV TIMES_50MS,A</p><p>  MOV COUNTER_BUF_L,A</p><p>  MO

63、V COUNTER_BUF_H,A</p><p><b>  JMP MAIN</b></p><p>  TAB: ;/顯示碼碼表/</p><p>  DB 3FH,06H,5BH,4FH,66H;</p><p>  DB 6DH,7DH,07H,7FH,6FH,0FFH

64、;</p><p>  2、數(shù)碼轉化程序:在本次設計中,單片機計數(shù)器所計得的數(shù)是二進制,以十六進制數(shù)的形式存放在寄存器中,而我們需要顯示的是十進制數(shù)的頻率,因此需要進行轉化才能顯示。</p><p>  數(shù)碼轉化程序設計的原理:本次設計的單片機數(shù)碼轉換是通過單片機的移位乘二特性和單片機的十進制調整功能來實現(xiàn)的。先把雙字節(jié)的十六進制數(shù)轉換為8421BCD碼,在控制顯示的時候通過位調整就可以得

65、到計數(shù)所得頻率的十進制數(shù)據(jù),供給顯示。其具體的轉換程序如下。</p><p>  ;******************************************************************</p><p>  ; ------------------------------- 16進制轉10進制 --------------------------------

66、--------</p><p>  ;******************************************************************</p><p>  ;雙字節(jié)十六進制整數(shù)轉換成雙字節(jié)BCD碼整數(shù)</p><p>  ;入口條件:待轉換的雙字節(jié)十六進制整數(shù)在R6、R7中。</p><p>  ;出口信

67、息:轉換后的三字節(jié)BCD碼整數(shù)在R3、R4、R5中。</p><p>  ;影響資源:PSW、A、R2~R7 堆棧需求: 2字節(jié)</p><p>  CHANGE16_10:</p><p>  CLR A ;BCD碼初始化</p><p>  MOV R3, A</p><p>  MO

68、V R4, A</p><p>  MOV R5, A</p><p>  MOV R2, #10H ;轉換雙字節(jié)十六進制整數(shù)</p><p><b>  CHANG_1:</b></p><p>  MOV A, R7 ;從高端移出待轉換數(shù)的一位到CY中</p>&

69、lt;p><b>  RLC A</b></p><p>  MOV R7, A</p><p>  MOV A, R6</p><p><b>  RLC A</b></p><p>  MOV R6, A</p><p>  MOV

70、 A, R5 ;BCD碼帶進位自身相加,相當于乘2</p><p>  ADDC A, R5</p><p>  DA A ;十進制調整</p><p>  MOV R5, A</p><p>  MOV A, R4</p><p>  ADDC A

71、, R4</p><p><b>  DA A</b></p><p>  MOV R4, A</p><p>  MOV A, R3</p><p>  ADDC A, R3</p><p>  MOV R3, A ;雙字節(jié)十六進制數(shù)的萬位數(shù)

72、不超過6,不用調整</p><p>  DJNZ R2, CHANG_1 ;處理完16bit</p><p><b>  RET</b></p><p>  數(shù)碼顯示程序:單片機控制其內部計數(shù)器得到的數(shù)據(jù)要送到8位數(shù)碼顯示管中顯示出來,才能被我們所看到,直接得到我們所測量的頻率。</p><p>  我們本次設

73、計所采用的是數(shù)碼管靜態(tài)顯示,所以我們要把數(shù)據(jù)循環(huán)的送入數(shù)碼管顯示。因為我們經過轉換程序把所得的數(shù)據(jù)存儲在40H~45H中,因此,數(shù)碼顯示的基本原理就是把40H~45H中的數(shù)據(jù)分時的通過P1口送到數(shù)碼管,再通過74LS138來控制各個數(shù)碼管的亮和滅。對于控制,我們在控制軟件里。其流程圖如圖所示。</p><p>  由此,可以寫出顯示程序如下:</p><p>  ;************

74、******************************************************</p><p>  ; ------------------------------- 顯示子程序 -------------------------------</p><p>  ;***********************************************

75、*****************</p><p><b>  DISPLAY0:</b></p><p>  MOV A,COUNTER_DISPLAY;</p><p>  CJNE A,#6,DISPLAY1</p><p>  JMP DISPLAY2;/當前顯示位數(shù)等于6/</p><p&g

76、t;<b>  DISPLAY1:</b></p><p>  JNC DISPLAY2;/當前顯示位數(shù)大于6/</p><p>  JMP DISPLAY3</p><p><b>  DISPLAY2:</b></p><p><b>  CLR A</b></p&g

77、t;<p>  MOV COUNTER_DISPLAY,A;/當前顯示位數(shù)大于等于6,清零/</p><p><b>  DISPLAY3:</b></p><p>  MOV A,#0FFH</p><p>  MOV PORT_LED,A;/變換數(shù)據(jù)前先滅LED,以消除閃動/</p><p>  MOV

78、 A,COUNTER_DISPLAY</p><p>  MOV PORT_LED_138,A</p><p>  MOV R1,#DISPLAY_DATA_ADDR</p><p>  ADD A,#DISPLAY_DATA_ADDR;/計算當前要顯示數(shù)據(jù)的地址,初始地址+相應位數(shù)/</p><p><b>  MOV R1,A&

79、lt;/b></p><p>  MOV A,@R1;/取出要顯示的相應位的數(shù)據(jù)/</p><p>  MOV PORT_LED,A;/送出顯示數(shù)據(jù)/</p><p>  MOV A,COUNTER_DISPLAY</p><p><b>  INC A</b></p><p>  MOV

80、COUNTER_DISPLAY,A;/顯示位加1/</p><p><b>  RETI</b></p><p><b>  四、 參考文獻</b></p><p>  【1】王化祥,張淑英。傳感器原理及應用[M]。天津:天津大學出版社,2005年;</p><p>  【2】張俊謨。單片機中級教程

81、[M]。北京:北京航空航天大學出版社,2006年;</p><p>  【3】李志全等。智能儀表設計原理及應用[M]。國防工業(yè)出版社,1998年;</p><p>  【4】鄭建國。一種高精度的鉑電阻溫度測量方案,自動化儀表[M],1997年;</p><p>  【5】楊振江等.智能儀器與數(shù)據(jù)采集系統(tǒng)中的新器件及應用[M],西安電子科技大學出版社,2001年;&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論