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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于proteus的簡單溫度測量系統設計論文

[復制鏈接]
跳轉到指定樓層
樓主
ID:304293 發表于 2018-4-9 16:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
課程設計二 基于proteus的簡單溫度測量系統設計
一、           課程設計要求
本課程設計的基本要求是使學生熟悉掌握51系列單片機的編程方法,學習應用proteus軟件進行單片機應用系統設計與仿真。要求同學們設計一款簡易的溫度測量裝置,設計要求溫度測量范圍為0-120度,測量精度為1度。有精力的同學可以將測溫通道擴展為8通道(不限測溫通道數目)。要求設計基于單片機的簡單溫度測量系統電路原理圖,實現溫度測量系統的仿真,并最終提交仿真結果。
設計的基本要求:(1)測量范圍為0℃~+120℃,精度為1℃;(2)利用溫度傳感器測量某一點環境溫度;(3)利用A/D轉換將溫度信號轉換成電壓信號;(4)在LED數碼管上顯示;(5)Proteus軟件進行仿真。
二、設計思路(僅供參考)
根據系統的設計要求,溫度傳感器TC1輸出信號經信號差動放大到0—5V,放大器的輸出送ADC80C51進行A/D轉換,A/D轉換結果送單片機進行處理,最后將所測的溫度在LED數碼管上顯示。
圖1 系統設計框圖
三、相關設計知識
(一)硬件設計部分
1、AT89C51單片機選擇及特點
由于此設計需要編寫程序,需要將程序載入單片機中,因此單片機必須具有
足夠多的存儲空間,其具有8K字節的Flash完全滿足要求。16位的定時計數器使得讀取數據變得更加簡單,同時其結構有利于晶振電路和復位電路的連接。最重要的是,能夠在掉電狀態下保存RAM內的數據。因此,對于本設計來說,選擇AT89C51是最有利的。
AT89C51是一種帶4K字節閃爍可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓,高性能CMOS 8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節閃爍可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除100次。該器件采用ATMEL高密度非易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C51單片機為很多嵌入式控制系統提供。
主要特性
(1) 與MCS-51兼容
 (2)  4K字節可編程閃爍存儲器
 (3)  32可編程I/O線
 (4) 128×8位內部RAM
(5)  全靜態工作:0Hz-24MHz
 (6)  5個中斷源
 (7) 數據保留時間:10年
 (8) 壽命:1000寫/擦循環
 (9) 兩個16位定時器/計數器
 (10)三級程序存儲器鎖定
 (11)可編程串行UART通道
 (12)低功耗的閑置和掉電模式
(13) 片內振蕩器和時鐘電路



   

管腳說明
圖2  AT89C51引腳電路圖
VCC:供電電壓。
  GND:接地。
  P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P1口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。
  P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。
  P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。
  P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。
P3口也可作為AT89C51的一些特殊功能口,如下:
  
端口引腳
      
第二功能
P3.0
   
RXD(串行輸入口)
P3.1
   
TXD(串行輸出口)
P3.2
   
/INT0(外部中斷0)
P3.3
   
/INT1(外部中斷1)
P3.4
   
T0(記時器0外部輸入)
P3.5
   
T1(記時器1外部輸入)
P3.6
   
/WR(外部數據存儲器寫選通)
P3.7
   
/RD(外部數據存儲器讀選通)
P3口同時為閃爍編程和編程校驗接收一些控制信號。
  RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。
  ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。
  /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。
  /EA/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。
  XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。
  XTAL2:來自反向振蕩器的輸出。
XTAL1和XTAL2分別為反向放大器的輸入和輸出。該反向放大器可以配置為片內振蕩器。石晶振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL2應不接。有余輸入至內部時鐘信號要通過一個二分頻觸發器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。
晶振電路
     所謂晶振電路即指單片機的時鐘電路。該電路通常有內部時鐘電路和外部時鐘電路。一般選用前者。單片機芯片內部有一個反相放大器構成的振蕩器。反相放大器的輸入端為XTAL1,輸出端為XTAL2,吧XTAL1和XTAL2與外部石英晶體及兩個電容連接起來可構成一個石英晶體振蕩器如圖3-4所示。時鐘發生器是一個2分頻電路。它把晶體振蕩器的頻率2分頻后供給片內其他電路。一般電容C1和C2起到


   

穩定振蕩頻率、快速起振的作用。
4 復位電路
單片機復位時RESET需保持96個晶振周期的高電平(即需8個機器周期)。復位以后P0-P3口輸出高電平,堆棧指針SP指向07H,其他特殊功能寄存器和程序計數器PC清零。只要RESET保持高電平,AT89C51就會循環復位。RESET當由高電平變為低電平以后,單片機從程序存儲器0地址開始執行程序。但單片機復位部RAM狀態,包括工作寄存器R0-R7。常見的復位電路有:上電復位電路和上電按鈕復位電路,在本設計中均采用上電按鈕復位電路,如圖所示:



   

2.4 復位電路
2模數轉換器的選擇
ADC0831 是美國國家半導體公司生產的一種 8 位分辨率、雙通道帶有串行接口的A/D轉換芯片。由于它體積小,兼容性強,性價比高而深受單片機愛好者及企業歡迎,其目前已經有很高的普及率。
工作原理
ADC0831的工作時序如下圖,ADC0831的工作過程如下:首先,將ADC0831的時鐘拉低,再將片選端CS置低,啟動A/D轉換。接下來在第一個時鐘的下降沿到來時,ADC0831的數據輸出端被拉低,準備輸出轉換數據。從時鐘的第二個下降沿到來開始,ADC0831開始輸出轉換數據,直到第九個下降沿為止,共8位,輸出的順序從最高位到最低位。
ADC0831啟動程序如下:
AD_CONV: SETB  CS
CLR   CLK
NOP
NOP
CLR   CS
NOP
NOP
SETB  CLK
NOP
NOP
CLR   CLK
NOP
NOP
SETB  CLK
NOP
NOP
MOV  R0, #08H
芯片接口說明
              
2.5  ADC0831引腳圖
·  CS :      片選使能,低電平芯片使能。
               ·  VREF:      參考電壓輸入端,接+5V。
               ·  GND:      芯片參考0電位。
               ·  CLK :     芯片時鐘輸入(復用)。
               ·  V(+):  接電源正極。
·  V(-):  接電源負極。
·  D0:     A/D轉換數據輸出端
技術指標:
             · 8位分辨率;
               · 一般功耗為15mW;
               · 轉換時間為32us
· 5V電源供電時輸入電壓為0~5V之間
四位一體LED
發光二極管簡稱為LED。由鎵(Ga)與砷(AS)、磷(P)的化合物制成的二極管,當電子與空穴復合時能輻射出可見光,因而可以用來制成發光二極管,在電路及儀器中作為指示燈,或者組成文字或數字顯示。磷砷化鎵二極管發紅光,磷化鎵二極管發綠光,碳化硅二極管發黃光。
它是半導體二極管的一種,可以把電能轉化成光能;常簡寫為LED。發光二極管與普通二極管一樣是由一個PN結組成,也具有單向導電性。當給發光二極管加上正向電壓后,從P區注入到N區的空穴和由N區注入到P區的電子,在PN結附近數微米內分別與N區的電子和P區的空穴復合,產生自發輻射的熒光。不同的半導體材料中電子和空穴所處的能量狀態不同。當電子和空穴復合時釋放出的能量多少不同,釋放出的能量越多,則發出的光的波長越短。常用的是發紅光、綠光或黃光的二極管。
發光二極管的核心部分是由P型半導體和由N型半導體組成的晶片,在P型半導體和N型半導體之間有一個過渡層,稱為PN結。在某些半導體材料的PN結中,注入的少數載流子與多數載流子復合時會把多余的能量以光的形式釋放出來,從而把電能直接轉換為光能。PN結加反向電壓,少數載流子難以注入,故不發光。這種利用注入式電致發光原理制作的二極管叫發光二極管,通稱LED。 當它處于正向工作狀態時(即兩端加上正向電壓),電流從LED陽極流向陰極時,半導體晶體就發出從紫外到紅外不同顏色的光線,光的強弱與電流有關。
本次設計選用的是四位一體共陽極數碼管。這類數碼管可以分為共陽極和共陰極,共陽極就是把所有LED的陽極連接到共同節點com,而每個LED的陰極非別為a、b、c、d、e、f、g及dp;共陰極則是把所有LED的陰極連接到共同接點com,而每個LED的陽極分別為a、b、c、d、e、f、g及dp,如下圖所示,圖中的8個LED分別圖中a~dp各段對應,通過控制各個LED的亮滅來顯示數字。
數碼管使用條件:
a、段及小數點上加限流電阻
b、使用電壓:段,小數點,根據發光顏色決定
c、使用電壓: 靜態:80mA
             動態:平均電流4—5mA
             峰值電流:100Ma
OP07放大器介紹
OP07是一種高精度單片運算放大器,具有極低的輸入失調電壓,極低的失調電壓溫漂,非常低的輸入噪聲電壓幅度及長期穩定等特點。可廣泛應用于穩定積分、精密絕對值電路、比較器及微弱信號的精確放大,尤其適應于宇航、軍工及要求微型化、高可靠的精密儀器儀表中。
OP07作為一種低噪聲高精度運算放大器,特別適合做前級放大器。
具有以下特點:
     1) 低的輸入噪聲電壓幅度—0.35 μVP-P (0.1Hz ~ 10Hz)
     2) 極低的輸入失調電壓—10 μV
     3) 極低的輸入失調電壓溫漂—0.2 μV/ ℃
     4) 具有長期的穩定性—0.2 μV/MO
     5) 低的輸入偏置電流—± 1nA
     6) 高的共模抑制比—126dB
     7) 寬的共模輸入電壓范圍—±14V
     8) 寬的電源電壓范圍—± 3V ~± 22V
     9) 可替代725、108A、741、AD510、1875 等電路

3溫度測量電路設計
溫度測量電路要實現的目標是:將0~120度通過傳感器測量,運算放大器放大的0~5V的電壓信號。
溫度傳感器選用Pa-t傳感器,放大器采用OP07E放大器,溫度信號輸入采用差動放大形式,放大器輸出為:
即放大倍數為100倍。
在Proteus中實測放大器輸出數據為:
  
溫度
      
0
   
10
   
20
   
30
   
40
   
50
   
60
   
70
   
80
   
90
   
100
   
110
   
120
電壓
   
0.00
   
0.43
   
0.83
   
1.24
   
1.66
   
2.07
   
2.49
   
2.91
   
3.33
   
3.75
   
4.17
   
4.58
   
5.00
從測試數據來看,本設計符合0~120對應輸出0~5V電壓要求。
溫度測量電路
A/D轉換電路設計
    A/D轉換的目標是將模擬量轉化成數字量,在本例中,選用ADC0831串行A/D轉換芯片做為溫度測試系統的A/D轉換芯片,設計電路如圖所示:
A/D轉換電路
由于設計誤差要求為1,1對應的輸入電壓為(1/120)×5=0.04167V,8位A/D轉換芯片的分辨率為×5=0.019531V,從而說明選用8位的A/D轉換器測量誤差要小于1。另外,之所以選擇串行的,理由是串行的電路設計簡單,在性能上符合要求。
LED顯示電路設計
LED顯示電路
報警電路設計
當溫度低于80度時,綠燈亮;當溫度高于80度時,紅燈亮。
報警電路
系統整體硬件電路設計
整體電路設計
(二)軟件部分設計
1 Proteus軟件介紹
Proteus軟件是英國Labcenterelectronics公司出版的EDA工具軟件(該軟件中國總代理為廣州風標電子技術有限公司)。它不僅具有其它EDA工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好者、從事單片機教學的教師、致力于單片機開發應用的科技工作者的青睞。Proteus是世界上著名的EDA工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電路協同仿真,一鍵切換到PCB設計,真正實現了從概念到產品的完整設計。是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,其處理器模型支持8051、HC11、AVR、ARM、8086 PIC10/12/16/18/24/30/DsPIC33和MSP430等,2010年即將增加Cortex和DSP系列處理器,并持續增加其他系列處理器模型。在編譯方面,它也支持IAR、Keil和MPLAB等多種編譯器。
Proteus與其他單片機仿真軟件不同的是,它不僅能仿真單片機CPU的工作情況,也能仿真單片機外圍電路或沒有單片機參與的其他電路的工作情況。因此在仿真和程序調用時,關心的不再是某些語句執行時單片機寄存器和儲存器內容的改變,而是從工程的角度直接看程序運行和電路工作過程和結果。
Proteus主要由ISIS和ARES兩部分組成,ISIS的主要功能是原理圖設計及與電路原理圖的交互仿真,ARES主要用于印制電路板的設計[8]。
本次設計主要用的是ISIS部分。Proteus ISIS是一種操作簡便而又功能強大的原理圖編譯工具,它運行于Windows操作系統上,可以仿真、分析各種模擬器件和集成電路,該軟件的特點有:
·實現了單片機仿真和SPICE電路仿真結合。具有模擬電路仿真、數字電路仿真、單片機及其外圍電路組成的系統仿真、RS232動態仿真、IC調試器、SPI調試器、鍵盤和LCD系統仿真等功能;有各種虛擬儀器。如示波器、邏輯分析儀、信號發生器等。
·支持主流單片機系統的仿真。目前支持的單片機類型有68000系列、8051系列、ARM系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、PIC24系列、BSTAMP系列、Z80系列、HC11系列以及各種外圍芯片。
·提供軟件調試功能。在硬件仿真系統中具有全速、單步、設置斷點等調試功能,同時可以觀察各種變量、寄存器等的當前狀態,因此在該軟件仿真系統中,也必須具有這些功能;同時支持第三方的軟件編譯和調試環境。如KeiluVision3等軟件。
·具有強大的原理圖繪制功能。
Proteus的工作過程
運行Proteus的ISIS程序后,進入該仿真軟件的主界面。在工作前,要設置VIEW菜單下的捕捉對齊和system下的顏色、圖形界面大小等項目。通過工作欄中的P(從庫中選擇元件命令)命令。在pick devices窗口中選擇電路所需的元件,放置元件并調整其相對位置,元件參數設置,元器件間連線,編寫程序;在source菜單的Define code generation tools 菜單命令下,選擇程序編譯的工具、路徑、擴展名的項目:在source菜單的Add/remove source files命令下,加入單片機硬件電路的對應程序:通過debug菜單的相應命令仿真程序和電路的運行情況。
Proteus提供了比較豐富的測試信號用于電路的測試。對于單片機硬件電路和軟件的調試,Proteus提供了兩種方法;一種是系統總執行效果,一種是對軟件的分部調試以看具體的執行情況。
對于總體執行效果的調試方法,只需要執行debug菜單下的execute菜單項或F12快捷鍵啟動執行,用debug菜單下的pause animation 菜單項或pause鍵暫停系統的運行。
對于軟件的分部調試,應先執行debug菜單下的start/restart debugging菜單項命令,此時可以選擇step over、stepinto和step out命令執行程序,執行的效果是單句執行、進入子程序執行和跳出子程序執行。在執行了start/restart debugging命令后,在debug菜單的下面要出現仿真中所涉及到的軟件列表和單片機的系統資源等,可供調劑時分析和查看。
2. Proteus仿真調試及結果
根據設計要求:分為顯示電路,報警電路,測溫電路和A/D轉換電路,按步驟完成電路圖的連接。
第一步 完成LED顯示電路的連接,如下圖所示:
第二步 繪制報警燈電路,如下圖:
第三步 完成晶振復位電路:如下圖示:
第四步 繪制A/D轉換電路,如圖:
最后完成核心部分溫度測量電路:
完成電路連接后,在Proteus ISIS界面中單擊Source(源程序),在彈出的下拉菜中單擊“Add/Remove Source Files”(添加/移開源程序)選項,如下圖:
單擊“Code Generation Tool”(目標代碼生成工具)選取ASEM51。
單擊“New”按鈕,彈出如圖所示對話框,在文件名框中輸入新建源程序
單擊打開,選擇“是”按鈕。
這樣將在Source下建立Tem.ASM文件,如下圖:
點擊新建成的“Tem.ASM”進入匯編語言編譯窗口
將程序敲入其中。如圖:
單擊Source下的“Build All”編譯結果在彈出的對話框中顯示。如果沒有錯誤便成功生成目標代碼” Tem.hex” 文件。這樣便成功的將目標代碼加載到單片機中。
點擊OK后,點擊左下角仿真按鈕進行仿真。
當給溫度傳感器輸入0度時,可以發現電壓表顯示0.03V,誤差在1度范圍內,電壓和溫度測量電路的輸出電壓成10倍關系,與此同時綠色報警燈亮說明符合設計要求,但LED顯示值為002,如果電路和程序均無錯誤LED顯示值應該為000,因此說明系統某部分仍存在錯誤。
給溫度傳感器設置10度時,電壓表顯示值為0.43V,綠燈亮,仍符合要求。LED顯示值為022。
以此類推當給溫度傳感器輸入20,30,40度時;
當改變溫度傳感器溫度值,使LED顯示為080時,綠燈亮。當LED顯示大于80度時,紅燈亮,此時報警指示電路工作正常。
4結果分析
根據仿真結果可以看出,溫度測量電路和A/D轉換電路以及報警燈電路均顯示正常,只有LED顯示結果與理論值有誤差,正常情況下LED上顯示值和溫度傳感器輸入值是一樣的,然而仿真時,0度對應的是002,1度對應的是004,10度對應的是022,顯示數以2為基準跳變。因此我首先想到的是程序問題,在程序中加一個除2的語句,但LED顯示仍無大變化。因此造成LED顯示錯誤可能有其他原因,經過分析造成誤差的原因可能有以下幾點:
1.
2.
3.
4.
四、結論
在工業生產和日常生活中,對溫度控制系統的要求,主要是保證溫度在一定溫度范圍內變化,穩定性好,不振蕩,對系統的快速性要求不高。在論文中簡單分析了單片機溫度控制系統設計過程及實現方法。本系統的測溫范圍為0℃~120℃,溫度檢測系統根據用戶設定的溫度范圍完成一定范圍的溫度控制。
本次設計的測溫系統主要有AT89C51和A/D轉換器及溫度傳感器來實現功能的并通過proteus軟件進行仿真。因此需要通過查閱資料來了解這些器件的基本結構,主要功能和注意事項等等。通過了解器件,在觸類旁通之下,能夠知道與所選器件相似的器件,比較彼此之間的優缺點,來確定設計選擇的器件是否合適,如何更好的利用器件的特點成為了本次設計重要的一方面。在確定了器材之后,如何利用使之最大限度的體現設計的功能,完成設計目標,這又是需要花大量時間去思考的。
在設計完成之后,設計合理的程序和通過仿真軟件模擬仿真,又再一次檢驗了設計的成果。整個設計從確定題目,到尋找相關資料,再到選擇合適的器件,接著對電路圖的繪制,程序的編寫,仿真的進行,最終調試。一步步走過來,一點點的進步,花了大量的時間和精力,而成果也是喜人的。
經過一段時間的方案論證、系統的硬件和軟件的設計、系統的調試。查閱了大量的關于傳感器、單片機及其接口電路、以及控制方面的理論。經過了一番特殊的體驗后,經歷了失敗的痛苦,也嘗到了成功的喜悅。第一次靠用所學的專業知識來解決問題。檢查了自己的知識水平,使我對自己有一個全新的認識。通過這次畢業設計,不僅鍛煉自己分析問題、處理問題的能力,還提高了自己的動手能力。
但由于時間有限,本次設計過于簡單,未能實現其他功能,如語音報警、鍵盤控制等。

[10] ZHANG Lei, ZHOU Fei. Develop of the Blast Furnace Soft Water TemperatureMeasurement System[J]. International Conference on Computer Science andSoftware Engineering, 2008,70-74
[11] Lin zhengbao .InstrumentTechnique and Sensor[J]. A kind of detecting method of more-dots temperature.2002, pp34
[12] 江世民. 基于Proteus的單片機應用技術[M]. 北京:電子工業出版社,2009
附錄
匯編語言程序
  
       CS  BIT P1.7
       CLK BIT  P1.0
       DO BIT  P1.1
       AD_TMP EQU  30H
       AD_TMP_1 EQU  31H
       AD_TMP_2 EQU  32H
       AD_TMP_3 EQU  33H
       AD_TMP1 EQU  34H
       ORG  0000H
       LJMP  MAIN
       ORG  0030H
MAIN:  CLR  P2.0
START:  LCALL AD_CONV
        LCALL DISPLAY
         LJMP  START
AD_CONV: SETB  CS
        CLR  CLK
        NOP
        NOP
        CLR  CS
        NOP
        NOP
        SETB CLK
        NOP
        NOP
        CLR  CLK
        NOP
        NOP
        SETB CLK
        NOP
        NOP
        MOV R0, #08H
AD_READ: CLR  CLK
        MOV  C,  DO
       RLC  A
        SETB CLK
        NOP
        NOP
        DJNZ R0, AD_READ
        SETB CS
        MOV AD_TMP, A
        RET
DISPLAY:  MOV A, AD_TMP
           MOV DPTR, #TAB1
          MOVC A, @A+DPTR
          CJNE  A, #80,  S1
          SJMP    S3
S1:  JNC  S2
          SJMP S4
S2:  CLR  P3.0
          SJMP S4
S3:  SETB  P3.0
S4:  MOV  B, #100
          DIV AB
          MOV AD_TMP_1, A
          MOV A, B
          MOV B, #10
          DIV  AB
          MOV AD_TMP_2, A
          MOV AD_TMP_3, B
          MOV  DPTR, #TAB
          MOV A, AD_TMP_1
          MOVC A, @A+DPTR
          MOV  P0, A
          SETB P2.1
          LCALL DLY
          CLR  P2.1
          MOV A, AD_TMP_2
          MOVC A, @A+DPTR
          MOV  P0,  A
          SETB  P2.2
          LCALL DLY
          CLR   P2.2
          MOV A, AD_TMP_3
          MOVC A, @A+DPTR
          MOV  P0,  A
          SETB P2.3
          LCALL DLY
          CLR   P2.3
          RET
TAB: DB0C0H, 0F9H, 0A4H, 0B0H, 99H, 92H, 82H, 0F8H
     DB 80H, 90H, 88H, 83H, 0C6H, 0A1H, 86H, 8EH
TAB1:DB 0, 1, 2,3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18
     DB 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,29 ,30, 31, 32, 33, 34
     DB 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,45, 46, 47, 48, 49
     DB 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,60, 61, 62, 63, 64, 65, 66
     DB 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,77, 78, 79, 80
     DB 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,91, 92, 93
DB94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106
DB107, 108, 109, 110, 111, 112, 113, 114, 115, 116
DB117, 118, 119, 120
DLY:  MOV R4, #2
D1:  MOVR3, #248
      DJNZ R3, $
      DJNZ R4, D1
      RET
      END

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品美女久久久 | 午夜视频免费网站 | 精品国产一区二区三区性色av | 亚洲欧美网| 黄色大片免费网站 | 视频精品一区 | www.天天干.com | 久久久国产精品网站 | 久久久久久国产精品mv | 成av在线 | 99re6在线视频精品免费 | 91电影| 成人精品一区二区户外勾搭野战 | 亚洲男人网 | 中文字幕av亚洲精品一部二部 | 亚洲精品小视频在线观看 | 在线观看国产精品一区二区 | 最近日韩中文字幕 | 亚洲成色777777在线观看影院 | 午夜精品一区二区三区免费视频 | 日韩激情免费 | 精品国产18久久久久久二百 | 人成在线视频 | 久久久久国产精品午夜一区 | 天天草草草 | 久久久久一区 | 综合久久99 | 香蕉二区 | 成人免费视频 | 中文字幕国产视频 | 久久久久91 | 国产成人精品一区二区三区网站观看 | 欧美久久一级特黄毛片 | 亚洲成av| 日本欧美国产在线观看 | 国产日韩欧美另类 | 亚洲免费视频一区 | 日本精品免费 | 青青激情网 | 国产丝袜一区二区三区免费视频 | 亚洲精品一区二区三区四区高清 |