久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4056|回復: 1
打印 上一主題 下一主題
收起左側

51單片機頻率測量儀設計論文

[復制鏈接]
跳轉到指定樓層
樓主
ID:377541 發表于 2018-7-22 20:51 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
目錄
摘 要
1 引言
1.1數字頻率計概述
1.2頻率測量儀的設計思路與頻率的計算
1.3 基本設計原理
2 數字頻率計(低頻)的硬件結構設計
2.1 系統硬件的構成
2.2 系統工作原理圖
2.3 AT89C51單片機及其引腳說明
2.4 信號調理及放大整形模塊
2.5 時基信號產生電路
2.6顯示模塊
3軟件設計
3.1量程轉換
3.2 BCD轉換
3.3 LCD顯示的功能
4模塊電路仿真
5 結束語
參考文獻
附錄 匯編源程序代碼

1 引言
本應用系統設計的目的是通過在“單片機原理及應用”課堂上學習的知識,以及查閱資料,培養一種自學的能力。并且引導一種創新的思維,把學到的知識應用到日常生活當中。在設計的過程中,不斷的學習,思考和同學間的相互討論,運用科學的分析問題的方法解決遇到的困難,掌握單片機系統一般的開發流程,學會對常見問題的處理方法,積累設計系統的經驗,充分發揮教學與實踐的結合。全能提高個人系統開發的綜合能力,開拓了思維,為今后能在相應工作崗位上的工作打下了堅實的基礎。
1.1數字頻率計概述
數字頻率計是計算機、通訊設備、音頻視頻等科研生產領域不可缺少的測量儀器。它是一種用十進制數字顯示被測信號頻率的數字測量儀器。它的基本功能是測量正弦信號,方波信號及其他各種單位時間內變化的物理量。在進行模擬、數字電路的設計、安裝、調試過程中,由于其使用十進制數顯示,測量迅速,精確度高,顯示直觀,經常要用到頻率計。
本數字頻率計將采用定時、計數的方法測量頻率,采用一個1602A LCD顯示器動態顯示6位數。測量范圍從1Hz—10kHz的正弦波、方波、三角波,時基寬度為1us,10us,100us,1ms。用單片機實現自動測量功能。
基本設計原理是直接用十進制數字顯示被測信號頻率的一種測量裝置。它以測量周期的方法對正弦波、方波、三角波的頻率進行自動的測量。
1.2頻率測量儀的設計思路與頻率的計算
頻率測量儀的設計思路主要是:對信號分頻,測量一個或幾個被測量信號周期中已知標準頻率信號的周期個數,進而測量出該信號頻率的大小,其原理如右圖1.1所示。

若被測量信號的周期為,分頻數m1,分頻后信號的周期為T,則:T=m1Tx 。由圖可知: T=NTo    (注:To為標準信號的周期,所以T為分頻后信號的周期,則可以算出被測量信號的頻率f。)
由于單片機系統的標準頻率比較穩定,而是系統標準信號頻率的誤差,通常情況下很;而系統的量化誤差小于1,所以由式T=NTo可知,頻率測量的誤差主要取決于N值的大小,N值越大,誤差越小,測量的精度越高。
1.3 基本設計原理
基本設計原理是直接用十進制數字顯示被測信號頻率的一種測量裝置。它以測量周期的方法對正弦波、方波、三角波的頻率進行自動的測量。
所謂“頻率”,就是周期性信號在單位時間(1s)內變化的次數。若在一定時間間隔T內測得這個周期性信號的重復變化次數N,則其頻率可表示為f=N/T。其中脈沖形成電路的作用是將被測信號變成脈沖信號,其重復頻率等于被測頻率fx。時間基準信號發生器提供標準的時間脈沖信號,若其周期為1s,則門控電路的輸出信號持續時間亦準確地等于1s。閘門電路由標準秒信號進行控制,當秒信號來到時,閘門開通,被測脈沖信號通過閘門送到計數譯碼顯示電路。秒信號結束時閘門關閉,計數器停止計數。由于計數器計得的脈沖數N是在1秒時間內的累計數,所以被測頻率fx=NHz。

2 數字頻率計(低頻)的硬件結構設計
2.1 系統硬件的構成
本頻率計的數據采集系統主要元器件是單片機AT89C51,由它完成對待測信號頻率的計數和結果顯示等功能,外部還要有分頻器、顯示器等器件?煞譃橐韵聨讉模塊:放大整形模塊、秒脈沖產生模塊、換檔模擬轉換模塊、單片機系統、LCD顯示模塊。各模塊關系圖如圖2.1所示:

圖2.1  數字頻率計功能模塊
2.2 系統工作原理圖

該系統工作的總原理圖如圖2.2所示:
圖2.2 數字頻率計系統工作原理圖
2.3 AT89C51單片機及其引腳說明
AT89C51是一種高性能低功耗的采用CMOS工藝制造的8位微控制器,它提供下列標準特征:4K字節的程序存儲器,128字節的RAM,32條I/O線,2個16位定時器/計數器, 一個5中斷源兩個優先級的中斷結構,一個雙工的串行口,  片上震蕩器和時鐘電路。
引腳說明:
·VCC:電源電壓
·GND:地
·P0口:P0口是一組8位漏極開路型雙向I/O口,作為輸出口用時,每個引腳能驅動8個TTL邏輯門電路。當對0端口寫入1時,可以作為高阻抗輸入端使用。
當P0口訪問外部程序存儲器或數據存儲器時,它還可設定成地址數據總線復用的形式。在這種模式下,P0口具有內部上拉電阻。
在EPROM編程時,P0口接收指令字節,同時輸出指令字節在程序校驗時。程序校驗時需要外接上拉電阻。
·P1口:P1口是一帶有內部上拉電阻的8位雙向I/O口。P1口的輸出緩沖能接受或輸出4個TTL邏輯門電路。當對P1口寫1時,它們被內部的上拉電阻拉升為高電平,此時可以作為輸入端使用。當作為輸入端使用時,P1口因為內部存在上拉電阻,所以當外部被拉低時會輸出一個低電流(IIL)。
·P2口:P2是一帶有內部上拉電阻的8位雙向的I/O端口。P2口的輸出緩沖能驅動4個TTL邏輯門電路。當向P2口寫1時,通過內部上拉電阻把端口拉到高電平,此時可以用作輸入口。作為輸入口,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(IIL)。
P2口在訪問外部程序存儲器或16位地址的外部數據存儲器(例如MOVX @ DPTR)時,P2口送出高8位地址數據。在這種情況下,P2口使用強大的內部上拉電阻功能當輸出1時。當利用8位地址線訪問外部數據存儲器時(例MOVX @R1),P2口輸出特殊功能寄存器的內容。
當EPROM編程或校驗時,P2口同時接收高8位地址和一些控制信號。
·P3口:P3是一帶有內部上拉電阻的8位雙向的I/O端口。P3口的輸出緩沖能驅動4個TTL邏輯門電路。當向P3口寫1時,通過內部上拉電阻把端口拉到高電平,此時可以用作輸入口。作為輸入口,因為內部存在上拉電阻,某個引腳被外部信號拉低時會輸出電流(IIL)。
P3口同時具有AT89C51的多種特殊功能,具體如下表2.1所示:
端口引腳
第二功能
P3.0
RXD (串行輸入口)
P3.1
TXD(串行輸出口)
P3.2
(外部中斷0)
P3.3
(外部中斷1)
P3.4
T0(定時器0)
P3.5
T1(定時器1)
P3.6
(外部數據存儲器寫選通)
P3.7
(外部數據存儲器都選通)
表2.1  P3口的第二功能
·RST:復位輸入。當振蕩器工作時,RST引腳出現兩個機器周期的高電平將使單片機復位。
·ALE/:當訪問外部存儲器時,地址鎖存允許是一輸出脈沖,用以鎖存地址的低8位字節。當在Flash編程時還可以作為編程脈沖輸出()。
一般情況下,ALE是以晶振頻率的1/6輸出,可以用作外部時鐘或定時目的。但也要注意,每當訪問外部數據存儲器時將跳過一個ALE脈沖。
·:程序存儲允許時外部程序存儲器的讀選通信號。當AT89C51執行外部程序存儲器的指令時,每個機器周期兩次有效,除了當訪問外部數據存儲器時,將跳過兩個信號。
·/VPP:外部訪問允許。為了使單片機能夠有效的傳送外部數據存儲器從0000H到FFFH單元的指令,必須同GND相連接。需要主要的是,如果加密位1被編程,復位時EA端會自動內部鎖存。
當執行內部編程指令時,應該接到VCC端。
·XTAL1:振蕩器反相放大器以及內部時鐘電路的輸入端。
·XTAL2:振蕩器反相放大器的輸出端。
在本次設計中,采用AT89C51作為CPU處理器,充分利用其硬件資源,結合D觸發器CD4013,分頻器CD4060,模擬轉換開關CD4051,計數器74LS90等數字處理芯片,主要控制兩大硬件模塊,量程切換以及顯示模塊。下面還將詳細說明。


2.4 信號調理及放大整形模塊
放大整形系統包括衰減器、跟隨器、放大器、施密特觸發器。它將正弦輸入信號Vx整形成同頻率方波Vo,幅值過大的被測信號經過分壓器分壓送入后級放大器,以避免波形失真。由運算放大器構成的射級跟隨器起阻抗變換作用,使輸入阻抗提高。同相輸入的運算放大器的放大倍數為(R1+R2)/R1,改變R1的大小可以改變放大倍數。系統的整形電路由施密特觸發器組成,整形后的方波送到閘門以便計數。

由于輸入的信號幅度是不確定、可能很大也有可能很小,這樣對于輸入信號的測量就不方便了,過大可能會把器件燒毀,過小可能器件檢測不到,所以在設計中采用了這個信號調理電路對輸入的波形進行阻抗變換、放大限幅和整形,信號調理部分電路具體實現電路原理圖和參數如下圖2.3所示:
圖2.3 信號調理電路
2.5 時基信號產生電路
CD4013------雙上升沿D觸發器 ,引腳及功能見如下圖2.4:
CD4013 由兩個相同的、相互獨立的數據型觸發器構成。每個觸發器有獨立的數據置位復位時鐘輸入和 Q及Q非輸出。此器件可用作移位寄存器,且通過將Q非輸出連接到數據輸入,可用作計數器和觸發器。在時鐘上升沿觸發時,加在D 輸入端的邏輯電平傳送到Q輸出端。置位和復位或復位線上的高電平完成。


圖2.4  CD4013芯片引腳用功能圖

CD4060------14位二進制串行計數器,引腳及功能見如下圖2.5:
CD4060 由一震蕩器和14極二進制串行計數器位組成,震蕩器的結構可以是RC或晶振電路。CR為高電平時,計數器清零且振蕩器使用無效,所有的計數器位均為主從觸發器 CP1非(和 CP0)的下降沿計數器以二進制進行計數,在時鐘脈沖線上使用施密特觸發器對時鐘上升和下降時間無限制。

            
圖2.5  CD4060芯片引腳用功能圖
時基信號的產生原理:
本電路采用32768Hz晶體震蕩器,利用CD4060芯片經過14級分頻得到2Hz的信號(32768/214),在經過CD4013雙D觸發器經過二分頻得到0.5Hz的方波,即輸出秒脈沖信號使單片機進行計數。


圖2.6 秒脈沖產生電路原理圖


2.6顯示模塊
1602基本技術:
1)、主要功能
A、40通道點陣LCD 驅動;
B、可選擇當作行驅動或列驅動;
C、輸入/輸出信號:輸出,能產生20×2個LCD驅動波形;輸入,接受控制器送出的串行數據和控制信號,偏壓(V1~V6);
D、通過單片機控制將所測的頻率信號讀數顯示出來。
2)、技術參數
2.1)極限參數表
名 稱
符 號
標  準  值
單 位
MIN
TYPE
MAX
電路電源
VDD - VSS
-0.3

7.0
V
LCD驅動電壓
VDD - VEE
VDD - 13.5

VDD + 0.3
V
輸入電壓
VIN
-0.3

VDD + 0.3
V
靜電電壓

-
-
100
V
工作溫度

-20

+70
°C
儲存溫度

-30

+80
°C

2.2) 電參數表
名 稱
符 號
測 試 條 件
標 準 值
單位
MIN
TYPE
MAX
輸入高電平
VIH
-
2.2

VDD
V
輸入低電平
VIL
-
-0.3

0.6
V
輸出高電平
VOH
IOH = 0.2mA
2.4

-
V
輸出低電平
VOL
IOL = 1.2mA
-

0.4
V
工作電流
IDD
VDD = 5.0V

2.0

mA

液晶驅動電壓

VDD-VEE
Ta = 0°C

4.9


V
Ta = 25°C

4.7

Ta = 50°C

4.5



3)、時序特性表
項 目
符 號
測試條件
標 準 值
單位
MIN
TYPE
MAX
允許時間周期
TCYCE



5.1a5.1b
1000


ns
允許脈沖寬度,高電平
PWEH
450
--
--
ns
允許上升和下降時間
tEr tEf
--
--
25
ns
地址建立時間
tAS
140
--
--
ns
數據延遲時間
tDDR
--
--
320
ns
數據建立時間
tDSW
195
--
--
ns
數據保持時間
tH
10
--
--
ns
DATA HOLD TIME
tDHR
20
--
--
ns
地址保持時間
tAH
10
--
--
ns

4)、引腳和指令功能
4.1)模塊引腳功能表
引 線 號
符 號
名 稱
功 能
1
Vss
接地
0V
2
VDD
電路電源
5V±10%
3
VEE
液晶驅動電壓
保證VDD-VEE=4.5~5V電壓差
4
RS
寄存器選擇信號
H:數據寄存器 L:指令寄存器
5
R/W
讀/寫信號
H:讀        L:寫
6
E
片選信號
下降沿觸發,鎖存數據
7
|
14
DB0
|
DB7

數據線

數據傳輸

4.2)寄存器選擇功能表
RS
R/W
操  作
0
0
指令寄存器(IR)寫入
0
1
忙標志和地址計數器讀出
1
0
數據寄存器(DR)寫入
1
1
數據寄存器讀出
(注:忙標志為"1"時,表明正在進行內部操作,此時不能輸入指令或數據,要等內部操作結束,即忙標志為"0"時。)
4.3) 指令功能
格式:RS  R/W  DB7  DB6  DB5  DB4  DB3  DB2  DB1  DB0
共11種指令:清除,返回,輸入方式設置,顯示開關,控制,移位,功能設置,CGRAM地址設置,DDRAM地址設置,讀忙標志,寫數據到CG/DDRAM,讀數據由CG/DDRAM。
5)、顯示位與DD RAM 地址的對應關系
顯 示 位 序 號
1    2    3     4    5  ……………  40
DD RAM
地址(HEX)
第 一 行
00   01   02   03   04  ..…………..  27
第 二 行
40   41   42   43   44  ……………  67
6)、初始化方法
用戶所編的顯示程序,開始必須進行初始化,否則模塊無法正常顯示,下面介紹兩種初始化方法;
6.1)利用內部復位電路進行初始化
下面指令是在初始化過程中執行的。
(1)清屏(DISPLAY CLEAR);
(2)功能設置(FUNCTION SET);
DL = 1: 8Bit 接口數據;
N = 0: 1行顯示; F = 0:5×7dot字形;
(3)顯示開/關控制(DISPLAY ON/OFF CONTROL)
D = 0: 顯示關; C = 0: 光標關; B = 0: 消隱關
(4)輸入方式設置(ENTRY MODE SET )
I/D = 1:(增量):     S = 0: 無移位:
6.2) 軟件復位
如果電路電源不能滿足復位電路的要求的話,那么初始化就要用軟件來實現,過程如下:

八位接口初始化流程圖:

                                      ↓

                                      ↓

                                       ↓等待>4.1ms

                                      ↓等待>100us

                           ↓檢查忙標志或延時40us


                      ↓檢查忙標志或延時40us

↓檢查忙標志或延時40 us

↓檢查忙標志或延時1.64us


                      ↓檢查忙標志或延時40us


3軟件設計
3.1量程轉換
從計數器采集到的頻率數據是十六進制的,如果直接把這些數據送給數碼管顯示顯然很不直觀,因此需要把這些數據向十進制轉換。
3.2 BCD轉換
這種測量方法是先通過F/V變換,把頻率信號轉換成電壓信號;然后再通過A/D轉換把電壓信號轉換成數字信號,在對數字信號進行計數,從而得到測量信號的頻率。
根據性能與技術指標的要求,首先需要確定能滿足這些指標的頻率測量方法,根據上述頻率測量原理與方法的討論,本設計采用測頻法。由于測頻法的測量誤差與信號頻率成反比:信號頻率越低,測量誤差越大,信號頻率越高,測量誤差越小。用測頻發所獲得的測量數據,在閘門時間為1S時,不需要進行任何換算,計數器所計數據就是信號頻率,另外,在信號頻率較低時,可以通過增大閘門時間來提高測量精。
3.3 LCD顯示的功能
單片機當C/T=1時為計數方式,多路開關與定時器的外部引腳連通,外部計數脈沖由引腳輸入。當外部信號由1至0跳變時,計數器加1,此時T0成為外部事件的計數器。由于確認一次由1至0的跳變要用24個振蕩器周期,所以計數器的計數頻率為單片機內部計數器頻率的1/24。
當C/T=0時為定時方式,對單片機內部計數器進行m2分頻后,計數器的實際計數頻率為單片機內部頻率凡的1/m2。
當GATE=0時,反相器輸出為1,或門輸出為1,打開與門,使定時器的啟動僅受TRO端信號電平的控制。
在此種情況下,INT0引腳的電平變化對或門不起作用。TRO=1時接通控制開關,計數脈沖加到計數器上,每來一個計數脈沖,計數器加1,只有當TRO=0時,控制開關斷開,計數器停止計數。
當GATA=0時,若TRO=1,或門、與門全部打開,外部信號電平通過INTO引腳直接控制定時器的啟動和關閉。輸人高電平時允許計數,否則停止計數。
根據定時器的結構原理,若我們將GATE位、TR0均設為‘1’,INT0端輸人被測頻率信號,當被測信號的高電平到來時,開始計數;當被測信號的低電平到來時,計數器停止計數,此時TL0、TH0的數據就是相應的N值。
4模塊電路仿真  
PROTEUS軟件自帶編輯器,可以實現對匯編程序的編譯,其操作步驟是:
  • 新建源文件點菜單Source→Add/Remove source Files在出現的對話框中,選擇ASEM51編輯器,新建JIE.asm 源文件
  • 程序設計點菜單Source→JIE.asm打開源文件編輯器將將附錄程序輸入到文本中。
  • 源程序編譯:點菜單Source→Build ALL編譯匯編源程序,生成目標代碼文件PMD.HEX,若編譯失敗,可對程序進行修改調試直至編譯成功
  • 目標代碼加載:在PROTEUS編輯環境雙擊AT89C51彈出如圖4.6所示的對話框,PROGRAM FILE一欄中單擊打開按鈕,選中JIE.HEX文件。在CLOCK FREQUENCY欄中設置系統工作頻率為12MHz,單擊OK完成目標代碼加載。

圖4.1 程序代碼加載


最后,點擊運行按鈕,啟動系統仿真,啟動前圖中輸入信號、LCD處于初始化狀態。仿真結果如圖4.2所示。

圖4.2 仿真結果

5 結束語

數字頻率計是計算機、通訊設備、音頻視頻等科研生產領域不可缺少的測量儀器。在進行模擬、數字電路的設計、安裝、調試過程中,由于其使用十進制數顯示,測量迅速,精確度高,顯示直觀,會被經常使用到。
通過本次課程的設計,不但加深我對在課程上所學到的單片機理論知識的認識和理解,重新讓自己認識到了這門學科的在應用方面的廣闊前景,并且通過知識與應用于實踐的結合更加豐富了自己的知識。擴展了知識面,不但掌握了本專業的相關知識,而且對其他專業的知識也有所了解,而且較系統的掌握單片機應用系統的開發過程,因而自身的綜合素質有了全面的提高 。
經過這次一個較完整的產品設計和制作過程,對于認識到自己在知識方面存在的不足,明確今后的學習方向是非常有益的,為將來的的就業提前打了下堅實的基礎。在設計過程中,得到了我的指導老師的悉心指導與幫助,還有其他老師和同學的大力支持和協助,在此一并表示衷心的感謝。

  1. RS     BIT     P2.0  ;P3.4腳接RS端
  2.         RW     BIT     P2.1  ;P3.5腳接R_W端
  3.        E      BIT     P2.2   ;P3.3腳接E端
  4.         ORG 0000H
  5.         LJMP MAIN
  6.         ORG 002BH
  7.         LJMP IT1
  8. MAIN:
  9.         MOV    P0,#01H   ;清除屏幕
  10.          ACALL  ENABLE
  11.         MOV    P0,#01H    ;清除屏幕
  12.          ACALL  ENABLE
  13.          MOV    P0,#01H    ;清除屏幕
  14.          ACALL  ENABLE
  15.         MOV    P0,#38H    ;8位點陣方式
  16.         ACALL  ENABLE
  17.          MOV    P0,#0cH    ;開顯示
  18.          ACALL  ENABLE
  19.         MOV    P0,#06H    ;移動光標
  20.          ACALL  ENABLE
  21.          MOV    P0,#80H    ;顯示位置
  22.         ACALL  ENABLE
  23.          mov    p0,#80h   ;第一行的位置
  24.          call   enable
  25.          mov    dptr,#date
  26.         call   write3
  27.          mov    p0,#0c0h  ;第二行的位置
  28.          call   enable
  29.       MOV SP,#7FH
  30.        CLR CY
  31.        mov r6,#00
  32.        mov r2,#00
  33.        MOV R3,#00
  34.        MOV TMOD,#15H
  35.        MOV TL0,#00H
  36.        MOV TH0,#00H
  37.        mov th1,#high(65536-50000)
  38.        mov tl1,#low(65536-50000)     ;setb ET1
  39. cha1: SETB TR1                    ;
  40. LCALL    XIANSHI
  41.        SETB TR0
  42.        mov  27h,#00h
  43.        CLR  C
  44.        MOV  C,P1.6
  45.        MOV  27H.0,C
  46.        CLR  C
  47.        MOV  C,P1.7
  48.        MOV  27H.1,C
  49.        mov  a,27h
  50.        ANL  A,#03H
  51.        MOV  17H,A
  52. CHA:   JBC  TF1,JINWEI    ;益處進位
  53.        JMP  CHA
  54. JINWEI:CLR TR1
  55.        mov th1,#high(65536-50000)
  56.        mov tl1,#low(65536-50000)
  57.        SETB TR1
  58.        INC R3
  59.        MOV A,R3                            ;JNB P3.2,$
  60.        CJNE A,#20,CHA
  61.        CLR TR0
  62.        CLR TR1
  63.        MOV R3,#00
  64.        MOV R2,TH0
  65.        MOV R6,TL0
  66.        lcall zhuan
  67.        LCALL write1
  68.        MOV TL0,#00H
  69.        MOV TH0,#00H
  70.        jmp  cha1
  71. ZHUAN:
  72. MOV A,R2
  73. CLR C
  74. MOV 20H,#00H
  75. MOV 21H,#00H
  76. MOV 22H,#00H
  77. MOV 24H,#00H
  78. MOV 25H,#00H
  79. MOV R3,#10H
  80. NEXT: RLC A
  81. MOV R2,A
  82. MOV A,20H
  83. ADDC A,20H
  84. DA A
  85. MOV 20H,A
  86. MOV A,21H
  87. ADDC A,21H
  88. DA A
  89. MOV 21H,A
  90. MOV A,22H
  91. ADDC A,22H
  92. DA A
  93. MOV 22H,A
  94. MOV A,R2
  95. DJNZ R3,NEXT
  96. MOV A,R6
  97. clr c
  98. MOV R3,#08H
  99. NEXT1: RLC A
  100. MOV R6,A
  101. MOV A,24H
  102. ADDC A,24H
  103. DA A
  104. MOV 24H,A
  105. MOV A,25H
  106. ADDC A,25H
  107. DA A
  108. MOV 25H,A
  109. mov a,r6
  110. DJNZ R3,NEXT1
  111. clr c
  112. mov a,24h
  113. addc a,20h
  114. da a
  115. mov 20h,a
  116. mov a,25h
  117. addc a,21h
  118. da a
  119. mov 21h,a
  120. mov a,22h
  121. addc a,#00h
  122. da a
  123. mov 22h,a
  124. mov a,22h
  125. anl a,#0fh
  126. mov 31h,a
  127. mov a,22h
  128. anl a,#0f0h
  129. swap a
  130. mov 30h,a
  131. mov a,21h
  132. anl a,#0f0h
  133. swap a
  134. mov 32h,a
  135. mov a,21h
  136. anl a,#0fh
  137. mov 33h,a
  138. mov a,20h
  139. anl a,#0f0h
  140. swap a
  141. mov 34h,a
  142. mov a,20h
  143. anl a,#0fh
  144. mov 35h,a
  145. ret
  146. ;**************
  147. ;LCD顯示
  148. ;**************
  149.   ENABLE:
  150.          CLR     RS
  151.          CLR     RW
  152.          CLR     E
  153.          ACALL   DELAY
  154.          SETB    E
  155.         RET
  156.    write1:                 ;寫數據
  157.        MOV    10H,#00H
  158.        MOV    11H,#00H
  159.        MOV    12H,#00H
  160.        MOV    13H,#00H
  161.        MOV    14H,#00H
  162.        MOV    15H,#00H
  163.        MOV    16H,#00H     
  164.        mov    p0,#0ch
  165.        call   enable
  166.        mov    p0,#0c0h  ;第二行的位置
  167.        call    enable
  168.        MOV     A,17H
  169.        XRL     A,#02H
  170.        JNZ      XIAN1
  171.        MOV     40H,#00H
  172.        MOV     41H,#00H
  173.        MOV     42H,#00H
  174.        MOV     43H,30H
  175.        MOV     44H,31H
  176.        MOV     45H,32H
  177.        JMP     XIAN

  178. XIAN1:MOV     A,17H
  179.        XRL     A,#01H
  180.        JNZ      XIAN2
  181.        MOV     40H,#00H
  182.        MOV     41H,#00H
  183.        MOV     42H,30H
  184.        MOV     43H,31H
  185.        MOV     44H,32H
  186.        MOV     45H,33H
  187.        JMP     XIAN

  188. XIAN2:MOV     A,17H
  189.        XRL     A,#00H
  190.        JNZ      XIAN3
  191.        MOV     40H,#00H
  192.        MOV     41H,30H
  193.        MOV     42H,31H
  194.        MOV     43H,32H
  195.        MOV     44H,33H
  196.        MOV     45H,34H
  197.        JMP     XIAN

  198. XIAN3:MOV     A,17H
  199.        XRL     A,#03H
  200.        JNZ      XIAN
  201.        MOV     40H,30H
  202.        MOV     41H,31H
  203.        MOV     42H,32H
  204.        MOV     43H,33H
  205.        MOV     44H,34H
  206.        MOV     45H,35H
  207.   XIAN:mov    r0,#40h
  208.        mov     a,   @r0
  209.        JZ      L20
  210.        MOV     10H,#0FFH
  211.        MOV     15H,#0FFH
  212.        mov     dptr,#date1
  213.        movc    a,@a+dptr
  214.        call    write2
  215.    L20:INC     R0
  216.        MOV     A, 10H
  217.        CJNE    A, #00H,PP
  218.        mov     a,   @r0         
  219.        JZ      L21
  220.    PP: MOV     11H,#0FFH  
  221.        MOV     15H,#0FFH
  222.        mov     a,   @r0
  223.        mov     dptr,#date1
  224.        movc    a,@a+dptr
  225.        call    write2
  226.    L21:INC     R0
  227.        MOV     A, 11H
  228.        CJNE    A, #00H,PP2
  229.        mov     a,   @r0      
  230.        JZ      L22
  231.   PP2: MOV     12H,#0FFH
  232.        MOV     15H,#0FFH
  233.        mov     a,   @r0
  234.        mov     dptr,#date1
  235.        movc    a,@a+dptr
  236.        call    write2
  237.        MOV      A, 15H
  238.        CJNE     A,#0FFH,L22      
  239.        MOV      A,#00H
  240.        mov      dptr,#XIAOSHUDIAN
  241.        movc     a,@a+dptr
  242.       call      write2
  243.    L22:
  244.        INC     R0
  245.        MOV     A, 12H
  246.        CJNE    A, #00H,PP3
  247.        mov     a,   @r0      
  248.        JZ      L23
  249.    PP3: MOV     13H,#0FFH
  250.        mov     a,   @r0     
  251.        mov     dptr,#date1
  252.        movc    a,@a+dptr     
  253.        call    write2

  254.    L23:INC     R0
  255.        MOV     A, 13H
  256.        CJNE    A, #00H,PP4
  257.        mov     a,   @r0      
  258.        JZ      L24
  259.   PP4:  MOV     14H,#0FFH
  260.        mov     a,   @r0   
  261.        mov     dptr,#date1
  262.        movc    a,@a+dptr     
  263.        call    write2

  264.     L24:INC     R0      
  265.         mov     a,   @r0
  266.         mov     dptr,#date1
  267.         movc    a,@a+dptr      
  268.         call    write2      
  269.         MOV     A,15H
  270.         CJNE    A, #00H,KHZ      
  271.         MOV     A,#00H      
  272.         MOV     dptr,#DANWEI1
  273.         JMP     QUSHU
  274.     KHZ:MOV     dptr,#DANWEI2   
  275.    QUSHU:movc    a,@a+dptr      
  276.          call    write3
  277.        mov     r5,#4
  278.     l3:mov     a,#20h
  279.        call    write2
  280.        djnz    r5,l3
  281.        ret

  282.    write2:
  283.            mov    p0,  a
  284.            setb   rs
  285.            CLR    rw
  286.            clr    e
  287.            call   delay
  288.            setb   e
  289.            ret

  290.   write3:  mov     r1,#00h    ;寫數據
  291.       a2: mov     a,   r1
  292.            movc    a,   @a+dptr
  293.            call    write2
  294.            inc     r1
  295.            cjne    a,#00h,a2
  296.            ret
  297.     delay:
  298.            mov    r7,    #255
  299.        d1: mov    r6,    #255
  300.        d2: djnz   r6,    d2
  301.            djnz   r7,    d1
  302.            ret
  303.    date:  db "the frequency is",00h
  304.    date1: db 30h,31h,32h,33h,34h,35h,36h,37h,38h,39h
  305.    DANWEI1: DB "HZ             ",00h
  306.    DANWEI2: DB "KHZ            ",00h
  307.    XIAOSHUDIAN: DB ".",00h
復制代碼
完整的Word格式文檔51黑下載地址:
數字頻率計.doc (366.5 KB, 下載次數: 21)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:841577 發表于 2020-11-23 13:42 | 只看該作者
有沒有c語言的代碼啊
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品久久区二区三区蜜桃臀 | 午夜视频在线免费观看 | 一级一级毛片免费看 | 欧美一区二区久久 | av在线播放一区二区 | 狠狠操你 | 精品中文字幕在线观看 | 在线播放精品视频 | 国产一区二区a | 久久精品国产亚洲一区二区三区 | 黄色小视频大全 | 国产日产欧产精品精品推荐蛮挑 | 国产精品毛片无码 | 日韩欧美精品一区 | 国产欧美一区二区三区国产幕精品 | 欧美一级网站 | 伊人久久综合影院 | 久久久久免费精品国产小说色大师 | 一区二区三区在线免费观看 | 成人精品国产 | 亚洲欧洲一区二区 | 亚洲欧洲日韩 | 国产伦精品一区二区三区高清 | 欧美精品一区二区三区在线播放 | 久久久久久国产精品免费免费狐狸 | 91精品国产色综合久久 | 国产特级毛片 | 国产午夜精品久久久 | 亚洲啊v在线 | 国产九九九 | 久久久99精品免费观看 | 中文字幕一区在线观看视频 | 日韩精品一区二区三区在线观看 | 国产一级片免费看 | 国产在线一区二区三区 | 国产婷婷精品 | 国产精品黄视频 | 成人h视频 | 久久精品亚洲精品国产欧美 | 欧美全黄 | 日韩精品一区二区三区中文在线 |