九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開(kāi)通VIP
基于STC89C51單片機(jī)的數(shù)據(jù)采集有效值測(cè)量系統(tǒng)

基于STC89C51單片機(jī)的數(shù)據(jù)采集有效值測(cè)量系統(tǒng)

1 前言

單片微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),又稱微控制器(MCU),它的出現(xiàn)是計(jì)算機(jī)發(fā)展史上的一個(gè)重要的里程碑,它以體積小、功能全、性價(jià)比高等諸多優(yōu)點(diǎn)獨(dú)具特色,在工業(yè)控制、尖端武器、通信設(shè)備、信息處理、家用電器等嵌入式應(yīng)用領(lǐng)域中獨(dú)占鰲頭。

本次課設(shè)采用的STC89C51單片機(jī)是51系列單片機(jī)的一種代表,目前51系列單片機(jī)是國(guó)內(nèi)目前應(yīng)用最廣泛的一種單片機(jī)之一。單片機(jī)以其系統(tǒng)硬件構(gòu)架完整、價(jià)格低廉、學(xué)生能動(dòng)手等特點(diǎn),成為工科學(xué)生硬件設(shè)計(jì)的基礎(chǔ)課。

2 單片機(jī)系統(tǒng)板的介紹

本次課設(shè)所使用的單片機(jī)最小系統(tǒng)板包括以下器件:電源端子(DC +5V),可以USB供電,也可獨(dú)立電源供電。通用異步串口,采用MAX232做電平轉(zhuǎn)換。STC89C51單片機(jī),支持串口下載和單步調(diào)試 ZLG7290管理芯片,是IIC總線通信的鍵盤掃描和數(shù)碼管顯示芯片,自帶8M晶振,最多可掃描64個(gè)鍵盤和8個(gè)數(shù)碼管。各種顏色的LED發(fā)光二極管共9個(gè),其中8個(gè)接于P1口做LED顯示,還有一個(gè)做電源燈顯示。TLC549,8位串行AD。TLC5615,10位串行DA。還有其他電阻電容若干,系統(tǒng)板一個(gè),大按鍵開(kāi)關(guān)兩個(gè),用于中斷控制和通信開(kāi)關(guān)。

利用STC51系列特有的ISP在線編程,方便我們初學(xué)者的二次開(kāi)發(fā),省去大量芯片燒寫時(shí)間。USB電源線供電和外接供電并存,方便學(xué)生在寢室使用。電源保護(hù)電路,有效防止電源接反對(duì)CPU造成的損害。增加專門的鍵盤掃描和數(shù)碼管顯示芯片,只占用2個(gè)I/O口和一個(gè)外部中斷就能完成8個(gè)數(shù)碼管顯示和最多64個(gè)鍵盤掃描。增加了I/O口鍵盤掃描,2種掃描方式可通過(guò)跳線由用戶自己選擇。所有I/O口均用引腳引出,方便用戶擴(kuò)展。外部中斷0和外部脈沖記數(shù)按鍵復(fù)用,通過(guò)跳線,用戶即可以進(jìn)行外部中斷實(shí)驗(yàn),也可以進(jìn)行外部T0記數(shù)實(shí)驗(yàn)。增加了串行的AD和DA芯片,可直接在開(kāi)發(fā)板上進(jìn)行AD和DA的實(shí)驗(yàn)。

3 有效值測(cè)量程序流程圖

本次課設(shè)的任務(wù)是利用自己親手做的單片機(jī)最小系統(tǒng),通過(guò)編程和調(diào)試,實(shí)現(xiàn)正弦波的有效值測(cè)量,并用數(shù)碼管將測(cè)量的有效值顯示出來(lái)。其過(guò)程是先通過(guò)A/D采樣取出最大值,然后根據(jù)定義計(jì)算出有效值,通過(guò)進(jìn)制轉(zhuǎn)換將16進(jìn)制轉(zhuǎn)換稱10進(jìn)制BCD碼,把查表得到的碼形值通過(guò)STC89C51單片機(jī)的IIC總線方式寫到ZLG7290中用數(shù)碼管顯示,流程圖如圖3.1所示。

圖3.1  有效值測(cè)量程序流程圖

4 A/D轉(zhuǎn)換部分

本次課設(shè)的任務(wù)是實(shí)現(xiàn)正弦波有效值的測(cè)量,一般有效值的測(cè)量主要有平均值法峰值法,真有效值轉(zhuǎn)換芯片測(cè)量等方法。本次課程設(shè)計(jì)采用TI公司的串行A/D轉(zhuǎn)換芯片TLC549測(cè)量交流信號(hào),再根據(jù)有效值的定義式求得其有效值。

4.1 TLC549功能簡(jiǎn)介

TLC549 是以8 位開(kāi)關(guān)電容逐次逼近A/D 轉(zhuǎn)換器為基礎(chǔ)而構(gòu)造的CMOS A/D 轉(zhuǎn)換器。它設(shè)計(jì)成能通過(guò)3 態(tài)數(shù)據(jù)輸出和模擬輸入與微處理器或外圍設(shè)備串行接口。TLC549 僅用輸入/輸出時(shí) 鐘 (I/O CLOCK )和芯片選擇 (CS )輸入作數(shù)據(jù)控制。TLC549 的I/O CLOCK 輸入頻率最高可達(dá) 1.1MHz。轉(zhuǎn)換結(jié)果有DOUT腳讀出。其外圍管腳如圖4.1所示。

圖4.1 TLC549的外圍管腳圖

當(dāng)輸入的模擬電壓大于REF+端電壓時(shí),TCL549輸出為FFH,當(dāng)輸入的模擬電壓小于REF-端電壓時(shí),TCL549輸出00H。使用時(shí)通常將REF-端與GND相連。TCL549的工作時(shí)序如圖4.2所示。

圖4.2 TCL549的工作時(shí)序圖

 端為高電平時(shí),DOUT端為高阻態(tài)。當(dāng)
 跳變?yōu)榈碗娖浇?jīng)過(guò)1.7us后,上次轉(zhuǎn)換結(jié)果的D7位被放置在DOUT端。在隨后的4個(gè)I/O CLOCK的下降沿,分別輸出D6、D5、D4、D3位。在輸出D3位的同時(shí),啟動(dòng)片內(nèi)采樣電路,對(duì)模擬輸入采樣,在其后的3個(gè)I/O CLOCK的下降沿,分別輸出D2、D1、D0位,第8個(gè)I/O CLOCK的下降沿啟動(dòng)片內(nèi)的保持電路,在DOUT端輸出的數(shù)據(jù)無(wú)效。此后,應(yīng)將
 端拉為高電平,并至少保持17us,以使TLC549完成一次A/D轉(zhuǎn)換。重復(fù)上述過(guò)程可讀出本次轉(zhuǎn)換的結(jié)果,其過(guò)程如圖4.3所示。


圖4.3  AD轉(zhuǎn)換原理框圖

若定義STC89C51單片機(jī)的P1.2口為片選信號(hào)控制,P1.3口為A/D轉(zhuǎn)換后輸出結(jié)果讀取端,P1.4口為TLC549的時(shí)鐘輸入端,則TCL549與單片機(jī)的硬件連接如圖4.4所示。

圖4.4 TCL549與單片機(jī)的硬件連接

4.2 A/D轉(zhuǎn)換的驅(qū)動(dòng)程序

AD:MOV  R2,#08H       ;第一次采樣CLOCK的8個(gè)脈沖

CLR   P1.2        ;CS變?yōu)榈碗娖?/p>

NOP

NOP

NOP

L 3:MOV C,P1.3           ;對(duì)模擬輸入采樣,讀出結(jié)果OUT

MOV A,20H

RLC A

MOV 20H,A

LCALL PULSE      ;調(diào)用產(chǎn)生CLK時(shí)鐘脈沖子程序

DJNZ R2,L3

MOV R2,#24H       ;A/D轉(zhuǎn)換的36個(gè)時(shí)鐘周期

SETB  P1.2         ;CS變?yōu)楦唠娖?開(kāi)始保持和轉(zhuǎn)換

L 4:LCALL  PULSE

DJNZ R2,L4

RET

PULSE:SETB  P1.4         ;p1.4輸出高電平,CLOCK時(shí)鐘

NOP

NOP

NOP

CLR   P1.4

RET

5 有效值的計(jì)算

根據(jù)有效值的定義,有效值等于最大值除以
 ,為了計(jì)算方便,程序中取
 為1.414,A/D轉(zhuǎn)換輸出的結(jié)果(設(shè)為M)是16進(jìn)制的數(shù),最大為#0FFH,對(duì)應(yīng)的是基準(zhǔn)電壓,約為4.2V,所以每個(gè)十六進(jìn)制的單位1對(duì)應(yīng)的電壓是
 ,有效值為                      。在實(shí)驗(yàn)程序中先取出采樣結(jié)果M,然后乘以12(即#0CH),再將所得的結(jié)果(也是十六進(jìn)制)轉(zhuǎn)換成十進(jìn)制BCD碼,其計(jì)算和轉(zhuǎn)換的流程圖如圖5.1所示。


圖5.1 有效值計(jì)算的流程圖

按照上面介紹的有效值近似計(jì)算方法和結(jié)果進(jìn)制轉(zhuǎn)換的過(guò)程,可以編寫出計(jì)算有效值的實(shí)驗(yàn)程序如下:

MOV A,21H      ;A/D轉(zhuǎn)換的結(jié)果存于21H中

MOV B,#0CH

MUL AB

MOV 39H,B     ;得到的新的16進(jìn)制數(shù)高字節(jié)放39H中,低字節(jié)放40H中

MOV 40H,A

HUAN:MOV A,39H    ;將存放于39H單元中待轉(zhuǎn)換的16進(jìn)制數(shù)高字節(jié)存于A

MOV B,#0AH   

DIV AB   

MOV 41H,A      ;商送41H單元暫存

MOV A,B       ;余數(shù)送回A

MOV 42H,40H   ;待變換16進(jìn)制數(shù)的低字節(jié)送42H單元暫存

ANL 42H,#0F0H  ;屏蔽低半字節(jié)

ADD A,42H      ;高字節(jié)除#0AH后余數(shù)與低字節(jié)的前半字節(jié)相加,

;后半字節(jié)換位使上次除法余數(shù)仍在高位

SWAP A   

MOV B,#0AH

DIV AB   

MOV 43H,A      ;商送43H單元暫存

MOV A,B         ;余數(shù)送到A

SWAP A         ;使余數(shù)處在高半字節(jié)位數(shù)

ANL 40H,#0FH   ;屏蔽待轉(zhuǎn)換數(shù)低字節(jié)的高半字節(jié)

ADD A,40H

MOV B,#0AH   

DIV AB   

MOV 7FH,B      ;得到待轉(zhuǎn)換的最低位的BCD碼值

MOV 44H,A      ;商送44H單元暫存

MOV A,41H

SWAP A   

ADD A,43H

MOV B,#0AH   

DIV AB   

MOV 41H,A

MOV A,B      

SWAP A   

ADD A,44H

MOV B,#0AH   

DIV AB   

MOV 42H,A         ;以上是將前面計(jì)算所得到的商再除以#0AH,

;以得到倒數(shù)第二位的BCD碼值

MOV 7EH,B

MOV A,41H

SWAP A   

ADD A,42H

MOV B,#0EH

DIV AB   

MOV 7DH,B

MOV 7CH,A

RET

6 顯示部分

6.1 ZLG7290介紹

本次課程設(shè)計(jì)的單片機(jī)系統(tǒng)板采用ZLG7290管理芯片來(lái)控制鍵盤和LED數(shù)碼管,ZLG7290芯片負(fù)責(zé)LED顯示及鍵盤掃描,它與單片機(jī)采用IIC總線方式進(jìn)行通信。ZLG7290的IIC接口傳輸速率可達(dá)32kbit/s, 容易與處理器接口,并提供鍵盤中斷信號(hào),提高主處理器時(shí)間效率.ZLG7290的從地址(slave address)為70H(01110000B).

ZLG7290 內(nèi)可通過(guò)IIC總線訪問(wèn)的寄存器地址范圍為 00H到17H,任一寄存器都可按字節(jié)直接讀寫,也可以通過(guò)命令接口間接讀寫或按位讀寫。它的控制和狀態(tài)查詢?nèi)慷际峭ㄟ^(guò)讀/寫寄存器實(shí)現(xiàn)的,用戶只需像讀24C02內(nèi)的單元一樣,即可實(shí)現(xiàn)對(duì)ZLG7290 的控制。ZLG7290與數(shù)碼管的連接如圖6.1所示。其中ZLG7290的引腳SCL和SDA分別與STC89C51單片機(jī)的P1.0和P1.1相連,實(shí)現(xiàn)IIC總線方式通信。


圖6.1 ZLG7290與數(shù)碼管的連接圖

6.2 IIC通信的原理

 通信總線是串行傳輸總線,通過(guò)定義單片機(jī)兩根引腳(串行時(shí)鐘線SCL和串行數(shù)據(jù)線SDA)能實(shí)現(xiàn)全雙工同步數(shù)據(jù)傳送。在數(shù)據(jù)傳輸時(shí),發(fā)送開(kāi)始后,主器件送出8位控制字節(jié),以選擇從器件并控制總線傳送方向,其后再傳送數(shù)據(jù)。每傳送完一個(gè)字節(jié)后,接收器都必須發(fā)一位應(yīng)答信號(hào)ACK,發(fā)送器確定后,再發(fā)下一數(shù)據(jù)。每一數(shù)據(jù)都是先發(fā)高位,再發(fā)低位,在全部數(shù)據(jù)傳送結(jié)束后主控制器發(fā)送停止信號(hào)。還要注意寫時(shí)鐘SCL和SDA的發(fā)送起始和停止條件程序時(shí),要根據(jù)單片機(jī)晶振來(lái)確定NOP指令條數(shù),由于我們用的外部時(shí)鐘晶振是11.0592M,需要四個(gè)NOP指令。
 通信程序設(shè)計(jì)流程圖如圖6.2所示。


圖6.2 

 通信程序設(shè)計(jì)流程圖

6.3 ZLG7290的驅(qū)動(dòng)程序

    ZLG7290與單片機(jī)是通過(guò)IIC總線方式通信的,所以只需要一根數(shù)據(jù)線和一根時(shí)鐘線即可完成通信。而在通信之前和之后需要編寫滿足起始和停止條件的程序,為保證數(shù)據(jù)成功傳輸,要有發(fā)送應(yīng)答位和非應(yīng)答位子程序。實(shí)驗(yàn)程序如下:


多個(gè)字節(jié)數(shù)據(jù)發(fā)送子程序:

WRNBYT:  PUSH  PSW

WRNBYT1: SETB RS0

     SETB RS1

     CALL STA

     MOV A,SLA

     CALL WRB

     CALL CACK

     JB  F0,WRNBYT

     MOV  R0,#MTD

     MOV  R5,NUMBYT

WRDA:  MOV  A,@R0

     LCALL  WRB

     LCALL    CACK

     JB  F0,WRNBYT1

     INC  R0

     DJNZ  R5,WRDA

     LCALL  STOP

     POP  PSW

     RET

發(fā)送一個(gè)字節(jié)子程序:

WRB:   MOV  R7,#8

WLP:   RLC  A

     JC  WR1

     CLR  SDA

     SETB  SCL

     NOP

     NOP

     NOP

     NOP

     CLR  SCL

     DJNZ  R7,WLP

     RET

WR1:   SETB  SDA

     SETB  SCL

     NOP

     NOP

     NOP

     NOP

     CLR  SCL

     CLR  SDA

     DJNZ  R7,WLP

     RET

應(yīng)答位檢查子程序:

CACK:  SETB  SDA

    SETB  SCL

    NOP

    NOP

    MOV  C,SDA

    MOV  F0,C

    CLR  SCL

    NOP

    NOP

    RET

發(fā)送起始位子程序:

STA:  SETB  SDA    

SETB  SCL

    NOP

    NOP

    NOP

    NOP

    CLR  SDA

    NOP

    NOP

    NOP

    NOP

    CLR  SCL

    RET

發(fā)送停止位子程序:

STOP: CLR  SDA 

    SETB  SCL

    NOP

    NOP

    NOP

    NOP

    SETB  SDA

    NOP

    NOP

    NOP

    NOP

    CLR  SCL

    RET


7 刷新頻率的計(jì)算

刷新頻率即數(shù)據(jù)更新一次所需要的時(shí)間,也就是一個(gè)完整的抽樣周期。在一個(gè)抽樣周期內(nèi)完成很多個(gè)A/D轉(zhuǎn)換的抽樣取值,抽樣的次數(shù)由R3和R4確定,程序中R3為#0AH,R4等于#0C8H,所以抽樣次數(shù)為2000次,即每進(jìn)行2000次A/D轉(zhuǎn)換之后取出最大值,并且計(jì)算出有效值加以顯示,然后進(jìn)行下一輪抽樣,也是取2000次/AD轉(zhuǎn)換的最大值,并且計(jì)算出有效值加以顯示(這樣顯示的數(shù)據(jù)就得到了更新)。

而這2000次的A/D轉(zhuǎn)換中每?jī)纱蜛/D轉(zhuǎn)換的之間的間隔時(shí)間由定時(shí)器決定,由于TH0為#0FFH,TL0為#0A4H,所以每次AD抽樣間隔約為100us,這樣每一輪AD轉(zhuǎn)換之后取最大值計(jì)算出有效值并顯示的時(shí)間間隔約為200ms。

8 誤差分析

通過(guò)單片機(jī)測(cè)量有效值的方法有多種,如利用有效值的定義式

 通過(guò)積分來(lái)求,以
 為采樣間隔對(duì)
 連續(xù)采樣轉(zhuǎn)換N次,且
 ,則有

式中

 為各采樣值的瞬時(shí)值,就其原理而言,在不考慮AD轉(zhuǎn)換精度的情況下,只要保證采樣時(shí)間間隔
 的準(zhǔn)確度,得到的有效值即具有較高的精度。但是此方法要求的程序比較復(fù)雜,而且計(jì)算轉(zhuǎn)換過(guò)程較多,為了使實(shí)驗(yàn)程序簡(jiǎn)單易懂而精度要求在允許的誤差范圍內(nèi),我們采用一種近似算法,也就是取最大值,然后除以
 得到有效值。

經(jīng)過(guò)反復(fù)實(shí)驗(yàn)采集數(shù)據(jù)分析,得到誤差分析如表1所示。

表1  測(cè)量差誤分析

單 位:V

一組

二組

三組

四組

五組

六組

七組

八組

九組

十組

輸入電壓

0.36

0.76

1.32

1.56

1.88

2.28

2.6

3.0

3.32

3.72

實(shí)際有效值

0.27

0.54

0.9

1.12

1.41

1.69

1.94

2.24

2.51

2.81

測(cè)量有效值

0.28

0.56

0.94

1.18

1.47

1.70

1.96

2.23

2.52

2.96

誤  差

3.6%

3.6%

4.3%

5.1%

4.1%

0.6%

1.0%

0.4%

0.4%

5.1%

本次實(shí)驗(yàn)的AD轉(zhuǎn)換芯片輸入的基準(zhǔn)電壓約為4.2V,測(cè)量的正弦波信號(hào)的最大值不得超過(guò)4V,由實(shí)驗(yàn)結(jié)果可知,當(dāng)輸入的信號(hào)的最大值越接近基準(zhǔn)電壓,其測(cè)量結(jié)果誤差越大。

9 小結(jié)與體會(huì)

通過(guò)這次單片機(jī)課程設(shè)計(jì),使我的編程能力得到了很大的提高,在大腦里面形成了初步的體系結(jié)構(gòu),以致于在編程時(shí)能夠靈活的運(yùn)用和變更?;仡櫿麄€(gè)設(shè)計(jì)過(guò)程,從硬件焊接到軟件編程,從小程序的編寫調(diào)試到整個(gè)單片機(jī)功能的了解,從分析到實(shí)際運(yùn)用,都經(jīng)過(guò)了許多思考過(guò)程。

剛開(kāi)始對(duì)整個(gè)系統(tǒng)板不是很熟悉,有很多芯片的用法都了解,以至于編程調(diào)試時(shí)遇到了很多的困難,失敗了很多次。后來(lái)上網(wǎng)查資料和一些技術(shù)文獻(xiàn),在圖書館借了很多有關(guān)單片機(jī)的書,慢慢分析調(diào)試,最后問(wèn)題都一一解決了??偨Y(jié)下來(lái),這三周學(xué)會(huì)了很多東西,例如知道了在編寫大程序的時(shí)候要把握一些原則,要不然很容易出錯(cuò),而且很難查出錯(cuò)在哪里,還學(xué)會(huì)了ZLG7290鍵盤和數(shù)碼管管理芯片的使用,以及A/D轉(zhuǎn)換芯片TLC549的使用和驅(qū)動(dòng)程序的編寫,覺(jué)得自己的專業(yè)知識(shí)又得到了豐富。

參考文獻(xiàn)

[1] 李群芳主編.單片微型計(jì)算機(jī)與接口技術(shù).北京:電子工業(yè)出版社,2005

[2] 宋  浩主編.單片機(jī)原理及應(yīng)用.北京:清華大學(xué)出版社,2005

[3] 凌玉華編著.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì).北京:中南大學(xué)出版社,2006

[4] 蔣力培編著.單片微機(jī)系統(tǒng)實(shí)用教程.北京:機(jī)械工業(yè)出版社,2004

[5] 潘  昊編著.單片機(jī)十六進(jìn)制數(shù)與BCD碼轉(zhuǎn)換新探討(摘要),1997

[6] 佟為明主編. TLC549在交流有效值測(cè)量中的應(yīng)用(摘要),2006

附錄一  設(shè)計(jì)總體電路圖


附錄二  設(shè)計(jì)總程序

NUMBYT  EQU  5DH      ;發(fā)送的個(gè)數(shù),包括第一位地址

SLA     EQU  5EH      ;控制字或7290的地址

MTD     EQU  5FH      ;7290存“顯示的數(shù)字”的寄存器的地址10H

SCL     EQU  P1.0     ;時(shí)鐘脈沖

SDA     EQU  P1.1     ;發(fā)送數(shù)據(jù)


ORG  0000H

AJMP  MAIN

ORG  0030H

MAIN:MOV SP,#30H

      MOV 21H,#0

         MOV R3,#0AH   

         MOV R4,#0C8H

      LCALL AD

      MOV TMOD,#01H

         MOV TH0,#0FFH

         MOV TL0,#0A4H

         SETB EA

         SETB ET0

SS:  SETB TR0

     JNB TF0,$

         CLR TF0

      LCALL AD

         MOV A,21H

         CJNE  A,20H,SS2

         JMP SS3

SS2: JNC SS3

     XCH A,20H

         MOV 21H,A

SS3: MOV TH0,#0FFH

        MOV TL0,#0A4H

     DJNZ R4,SS

        MOV  R4,#0C8H

        DJNZ R3,SS

        MOV A,21H

        MOV B,#0CH

        MUL AB

        MOV 39H,B           

        MOV 40H,A

     LCALL HUAN            

        LCALL MA            

        LCALL XIAN        

        MOV TH0,#0FFH

        MOV TL0,#0A4H

        MOV 21H,#0

        MOV R3,#0AH

        MOV R4,#0C8H

        SJMP SS

查表程序

MA: MOV DPTR,#TAB  

        MOV R0,#7FH

        MOV A,@R0

        MOVC A,@A+DPTR

        MOV 60H,A

        DEC R0

        MOV A,@R0

        MOVC A,@A+DPTR

        MOV 61H,A

        DEC R0

        MOV A,@R0

        MOVC A,@A+DPTR

        MOV 62H,A

        MOV DPTR,#TAB1

        DEC R0

        MOV A,@R0

        MOVC A,@A+DPTR

        MOV 63H,A

     RET

TAB:DB

0FCH,60H,0DAH,0F2H,66H,

0B6H,0BEH,0E0H,0FEH,0E6H

TAB1:DB 0FDH,61H,0DBH,0F3H,67H,0B7H,

0BFH,0E1H,0FFH,0E7H

進(jìn)制轉(zhuǎn)換程序

HUAN:MOV A,39H

MOV B,#0AH     

DIV AB        

MOV 41H,A 

MOV A,B            

MOV 42H,40H    

ANL 42H,#0F0H

ADD A,42H 

SWAP A        

MOV B,#0AH     

DIV AB        

MOV 43H,A 

MOV A,B            

SWAP A        

ANL 40H,#0FH

ADD A,40H 

MOV B,#0AH     

DIV AB        

MOV 7FH,B 

MOV 44H,A 

MOV A,41H 

SWAP A        

ADD A,43H 

MOV B,#0AH     

DIV AB        

MOV 41H,A 

MOV A,B            

SWAP A        

ADD A,44H 

MOV B,#0AH     

DIV AB        

MOV 42H,A 

MOV 7EH,B

MOV A,41H 

SWAP A        

ADD A,42H 

MOV B,#0AH     

DIV AB        

MOV 7DH,B

MOV 7CH,A

RET

單片機(jī)讀A/D轉(zhuǎn)換結(jié)果

AD: MOV  R2,#08H    

      CLR   P1.2    

      NOP

      NOP

      NOP

L3:MOV C,P1.3    

           MOV A,20H

           RLC A

           MOV 20H,A

           LCALL PULSE

           DJNZ R2,L3

           MOV R2,#24H   

           SETB  P1.2   

L4:    LCALL PULSE

           DJNZ R2,L4

           RET

PULSE:   SETB  P1.4 

           NOP

               NOP

               NOP

               CLR   P1.4

               RET

顯示子程序

XIAN::  MOV  MTD,#10H             

               MOV  NUMBYT,#05H

               MOV  SLA,#70H

            LCALL  WRNBYT

               RET

WRNBYT: PUSH  PSW

WRNBYT1:SETB RS0

           SETB RS1

           CALL STA

               MOV A,SLA

               CALL WRB

               CALL CACK

               JB  F0,WRNBYT

               MOV  R0,#MTD

               MOV  R5,NUMBYT

WRDA: MOV  A,@R0

           LCALL  WRB

           LCALL       CACK

              JB  F0,WRNBYT1

              INC  R0

              DJNZ  R5,WRDA

              LCALL  STOP

              POP  PSW

              RET

WRB:   MOV  R7,#8

WLP:   RLC  A

          JC  WR1

           CLR  SDA

           SETB  SCL

           NOP

           NOP

           NOP

           NOP

           CLR  SCL

           DJNZ  R7,WLP

           RET

WR1:  SETB  SDA

       SETB  SCL

          NOP

          NOP

          NOP

          NOP

          CLR  SCL

          CLR  SDA

          DJNZ  R7,WLP

          RET

CACK:SETB  SDA

      SETB  SCL

          NOP

          NOP

          MOV  C,SDA

          MOV  F0,C

          CLR  SCL

          NOP

          NOP

          RET

STA: SETB  SDA  發(fā)送起始位

      SETB  SCL

          NOP

          NOP

          NOP

          NOP

          CLR  SDA

          NOP

          NOP

          NOP

          NOP

          CLR  SCL

          RET

STOP:CLR  SDA  發(fā)送停止位

      SETB  SCL

          NOP

          NOP

          NOP

          NOP

          SETB  SDA

          NOP

          NOP

          NOP

          NOP

          CLR  SCL

          RET

END


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
24C02使用詳解
E2PROM芯片24C02的讀寫程序
iic
單片機(jī)和Pc機(jī)串口通信<轉(zhuǎn)>_飛鳥留痕
時(shí)鐘芯片PCF8583應(yīng)用
射頻卡讀寫源代碼
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服