單片機(jī)串行口與PC機(jī)通訊設(shè)計(jì)_第1頁(yè)
單片機(jī)串行口與PC機(jī)通訊設(shè)計(jì)_第2頁(yè)
單片機(jī)串行口與PC機(jī)通訊設(shè)計(jì)_第3頁(yè)
單片機(jī)串行口與PC機(jī)通訊設(shè)計(jì)_第4頁(yè)
單片機(jī)串行口與PC機(jī)通訊設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩5頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

單片機(jī)串行口與PC機(jī)通訊(一)第1節(jié)

單片機(jī)應(yīng)用中,串口通信是不可缺少的部分。如何編寫有效的串口通信程序?qū)Τ绦虻慕Y(jié)構(gòu)、可靠性都有很大的影響。串口控制程序一般分為查詢和中斷兩者方式。查詢方式適用于簡(jiǎn)單的應(yīng)用,簡(jiǎn)單可靠,但是缺點(diǎn)是需要占用處理器資源,在發(fā)送或者接收數(shù)據(jù)的時(shí)候不能做其它的事情,處理器利用率低。中斷方式下,在發(fā)送或者接受數(shù)據(jù)的時(shí)候處理器還可以做其它的工作,效率較高。

1.1

單片機(jī)串行口與PC機(jī)通訊概述

目前,計(jì)算機(jī)控制系統(tǒng)已逐步從單機(jī)控制發(fā)展成為多機(jī)控制并出現(xiàn)了以計(jì)算機(jī)技術(shù)為核心,與數(shù)據(jù)通訊技術(shù)相結(jié)合的集檢測(cè)、控制和管理為一體的計(jì)算機(jī)網(wǎng)絡(luò),即集中分布式測(cè)控系統(tǒng)。其中單片機(jī)作為從機(jī),負(fù)責(zé)現(xiàn)場(chǎng)控制和實(shí)時(shí)數(shù)據(jù)的采集;PC機(jī)作為主機(jī),負(fù)責(zé)對(duì)各從機(jī)發(fā)來的數(shù)據(jù)進(jìn)行分析、處理,并向各從機(jī)發(fā)布命令,以實(shí)現(xiàn)對(duì)工業(yè)現(xiàn)場(chǎng)的集中監(jiān)控與管理。由于主從機(jī)需不斷進(jìn)行信息交流,因此通信成為分布式測(cè)控系統(tǒng)重要而基本的功能。

基本原理PC機(jī)與單片機(jī)之間通常采用2種通信方式:并行通信和串行通信。并行通信是指將待發(fā)送數(shù)據(jù)的各位同時(shí)傳送,串行通信則將數(shù)據(jù)一位一位地按順序傳送。并行通信雖然傳輸效率高,由于所需硬件設(shè)備復(fù)雜,不適于長(zhǎng)距離通信,所以一般只適用于要求實(shí)時(shí)性強(qiáng),傳送速率較高的控制系統(tǒng)中,實(shí)用面較窄;相比之下,串行通信簡(jiǎn)單易實(shí)現(xiàn),傳輸距離較長(zhǎng),所以已被廣泛應(yīng)用于各種工控系統(tǒng)中。串行通信分為同步通信和異步通信2種方式。同步通信是指通過在每個(gè)數(shù)據(jù)塊開始時(shí)的同步字符來實(shí)現(xiàn)收/發(fā)雙方同步的一種數(shù)據(jù)傳輸方法,常用于信息量大,速度要求高的場(chǎng)合;異步通信則規(guī)定了標(biāo)準(zhǔn)的字符數(shù)據(jù)傳輸格式,即每一幀信息由起始位、數(shù)據(jù)位、奇偶校驗(yàn)位和停止位組成。由于有冗余位,所以傳送效率不高,常用于信息量不大,速度較低的場(chǎng)合。在計(jì)算機(jī)測(cè)控系統(tǒng)中,由于串行接口的標(biāo)準(zhǔn)化,一般采用異步串行通信方式,以提高其通用性。由于各種接口的機(jī)械和電器特性有所差異,串行通信分為近程通信和遠(yuǎn)程通信。2接口電路的設(shè)計(jì)2.1近程通信目前,PC機(jī)是利用異步通訊控制器來實(shí)現(xiàn)串行通訊的,其核心是8250通訊芯片加上一些收發(fā)邏輯電路。接口標(biāo)準(zhǔn)大多是RS232標(biāo)準(zhǔn),其通訊距離小于15m,傳輸速率小于20kb/s。RS232標(biāo)準(zhǔn)是按負(fù)邏輯定義的,他的“1”電平在-5~-15V之間,“0”電平在+5~+15V之間。由于PC機(jī)使用的是TTL電平信號(hào),因此數(shù)據(jù)輸出時(shí)必須把TTL電平信號(hào)轉(zhuǎn)換成驅(qū)動(dòng)器MC1488和接收器MC1489,其作用除了電平轉(zhuǎn)換外,還實(shí)現(xiàn)正負(fù)邏輯電平轉(zhuǎn)換。

1.2

系統(tǒng)主要功能

本實(shí)驗(yàn)實(shí)現(xiàn)以下功能,將從實(shí)驗(yàn)機(jī)鍵盤上鍵入的數(shù)字,字母顯示到PC機(jī)顯示器上,將PC機(jī)鍵盤輸入的字符(0-F)顯示到實(shí)驗(yàn)機(jī)的數(shù)碼管上。

第2節(jié)

單片機(jī)串行口與PC機(jī)通訊硬件設(shè)計(jì)

2.1

系統(tǒng)的硬件構(gòu)成

利用8031單片機(jī)串行口,實(shí)現(xiàn)與PC機(jī)通訊。CS8279接8700H。模塊中的十個(gè)短路套都套在8279側(cè)。

8279狀態(tài)口地址為8701H;8279數(shù)據(jù)口地址為8700H

2.2

設(shè)計(jì)說明

1.當(dāng)用GR命令執(zhí)行程序時(shí),實(shí)驗(yàn)機(jī)內(nèi)部會(huì)將8031串行口電路切換與PC機(jī)通訊,無須連線。

2.程序執(zhí)行前,進(jìn)入LCA51,加載程序后,才進(jìn)入調(diào)試菜單工具中的對(duì)話窗口,然后執(zhí)行GR0,就可實(shí)行單片機(jī)串行口與PC機(jī)通信實(shí)驗(yàn)

2.3

系統(tǒng)電路圖圖1

系統(tǒng)電路圖2.4

8031單片機(jī)及其引腳說明

單片機(jī)有許多種類,從生產(chǎn)廠家看,有Intel、Motorola、Epson、NEC、Phlips等公司;按位數(shù)分有四位機(jī)、八位機(jī)、十六位機(jī)----也就是可以同時(shí)對(duì)四位、八位或十六位二進(jìn)制碼進(jìn)行運(yùn)算;從用途上又可以分為通用和專用。

Intel公司的MCS-51系列屬于8位機(jī)的系列,性能可能滿足大多數(shù)應(yīng)用的需要。它應(yīng)用廣泛、價(jià)格便宜、技術(shù)成熟,適于初學(xué)者學(xué)習(xí)。在MCS-51系列中又有許多型號(hào),包括8031、8051、8751等。其中8051的程序已經(jīng)由工廠做在單片機(jī)內(nèi)部(稱做掩膜),是為批量用戶定制的,對(duì)于我們學(xué)習(xí)不適用。8751是在芯片內(nèi)有可擦寫的程序存儲(chǔ)器,這種芯片是為做掩膜前驗(yàn)證電路用的,也用于一些有特殊要求的場(chǎng)所。8031內(nèi)部沒有程序存儲(chǔ)器,它的程序存儲(chǔ)器接在芯片外面,這樣恰好便于在開發(fā)過程中對(duì)程序存儲(chǔ)器進(jìn)行控制,因此選8031學(xué)習(xí)是比較適宜的。其實(shí)這幾種型號(hào)的原理完全一樣,學(xué)會(huì)8031其它型號(hào)也就掌握了

圖28031引腳配置

8031芯片的40條引腳功能為:

1、主電源引腳VCC和VSS

VCC——(40腳)接+5V電壓;

VSS——(20腳)接地。2、外接晶體引腳XTAL1和XTAL2

XTAL1(19腳)接外部晶體的一個(gè)引腳。在單片機(jī)內(nèi)部,它是一個(gè)反相放大器的輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。當(dāng)采用外部振蕩器時(shí),對(duì)HMOS單片機(jī),此引腳應(yīng)接地;對(duì)CHMOS單片機(jī),此引腳作為驅(qū)動(dòng)端。

XTAL2(18腳)接外晶體的另一端。在單片機(jī)內(nèi)部,接至上述振蕩器的反相放大器的輸出端。采用外部振蕩器時(shí),對(duì)HMOS單片機(jī),該引腳接外部振蕩器的信號(hào),即把外部振蕩器的信號(hào)直接接到內(nèi)部時(shí)鐘發(fā)生器的輸入端;對(duì)XHMOS,此引腳應(yīng)懸浮。

3、控制或與其它電源復(fù)用引腳RST/VPD、ALE/PROG、PSEN和EA/VPP

①RST/VPD(9腳)當(dāng)振蕩器運(yùn)行時(shí),在此腳上出現(xiàn)兩個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。推薦在此引腳與VSS引腳之間連接一個(gè)約8.2k的下拉電阻,與VCC引腳之間連接一個(gè)約10μF的電容,以保證可靠地復(fù)位。

VCC掉電期間,此引腳可接上備用電源,以保證內(nèi)部RAM的數(shù)據(jù)不丟失。當(dāng)VCC主電源下掉到低于規(guī)定的電平,而VPD在其規(guī)定的電壓范圍(5±0.5V)內(nèi),VPD就向內(nèi)部RAM提供備用電源。

②ALE/PROG(30腳):當(dāng)訪問外部存貯器時(shí),ALE(允許地址鎖存)的輸出用于鎖存地址的低位字節(jié)。即使不訪問外部存儲(chǔ)器,ALE端仍以不變的頻率周期性地出現(xiàn)正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此,它可用作對(duì)外輸出的時(shí)鐘,或用于定時(shí)目的。然而要注意的是,每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過一個(gè)ALE脈沖。ALE端可以驅(qū)動(dòng)(吸收或輸出電流)8個(gè)LS型的TTL輸入電路。

對(duì)于EPROM單片機(jī)(如8751),在EPROM編程期間,此引腳用于輸入編程脈沖(PROG)。

③PSEN(29腳):此腳的輸出是外部程序存儲(chǔ)器的讀選通信號(hào)。在從外部程序存儲(chǔ)器取指令(或常數(shù))期間,每個(gè)機(jī)器周期兩次PSEN有效。但在此期間,每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN信號(hào)將不出現(xiàn)。PSEN同樣可以驅(qū)動(dòng)(吸收或輸出)8個(gè)LS型的TTL輸入。

④EA/VPP(引腳):當(dāng)EA端保持高電平時(shí),訪問內(nèi)部程序存儲(chǔ)器,但在PC(程序計(jì)數(shù)器)值超過0FFFH(對(duì)851/8751/80C51)或1FFFH(對(duì)8052)時(shí),將自動(dòng)轉(zhuǎn)向執(zhí)行外部程序存儲(chǔ)器內(nèi)的程序。當(dāng)EA保持低電平時(shí),則只訪問外部程序存儲(chǔ)器,不管是否有內(nèi)部程序存儲(chǔ)器。對(duì)于常用的8031來說,無內(nèi)部程序存儲(chǔ)器,所以EA腳必須常接地,這樣才能只選擇外部程序存儲(chǔ)器。

對(duì)于EPROM型的單片機(jī)(如8751),在EPROM編程期間,此引腳也用于施加21V的編程電源(VPP)。4、輸入/輸出(I/O)引腳P0、P1、P2、P3(共32根)

①P0口(39腳至32腳):是雙向8位三態(tài)I/O口,在外接存儲(chǔ)器時(shí),與地址總線的低8位及數(shù)據(jù)總線復(fù)用,能以吸收電流的方式驅(qū)動(dòng)8個(gè)LS型的TTL負(fù)載。

②P1口(1腳至8腳):是準(zhǔn)雙向8位I/O口。由于這種接口輸出沒有高阻狀態(tài),輸入也不能鎖存,故不是真正的雙向I/O口。P1口能驅(qū)動(dòng)(吸收或輸出電流)4個(gè)LS型的TTL負(fù)載。對(duì)8052、8032,P1.0引腳的第二功能為T2定時(shí)/計(jì)數(shù)器的外部輸入,P1.1引腳的第二功能為T2EX捕捉、重裝觸發(fā),即T2的外部控制端。對(duì)EPROM編程和程序驗(yàn)證時(shí),它接收低8位地址。

③P2口(21腳至28腳):是準(zhǔn)雙向8位I/O口。在訪問外部存儲(chǔ)器時(shí),它可以作為擴(kuò)展電路高8位地址總線送出高8位地址。在對(duì)EPROM編程和程序驗(yàn)證期間,它接收高8位地址。P2可以驅(qū)動(dòng)(吸收或輸出電流)4個(gè)LS型的TTL負(fù)載。

④P3口(10腳至17腳):是準(zhǔn)雙向8位I/O口,在MCS-51中,這8個(gè)引腳還用于專門功能,是復(fù)用雙功能口。P3能驅(qū)動(dòng)(吸收或輸出電流)4個(gè)LS型的TTL負(fù)載。

作為第一功能使用時(shí),就作為普通I/O口用,功能和操作方法與P1口相同。

作為第二功能使用時(shí),各引腳的定義如表所示。

值得強(qiáng)調(diào)的是,P3口的每一條引腳均可獨(dú)立定義為第一功能的輸入輸出或第二功能。

圖3

系統(tǒng)主程序流程圖

2.5顯示接口8279的功能及其引腳說明

可編程鍵盤/顯示接口8279可編程鍵盤/顯示接口8279的引腳功能

8279采用單一+5V電源供電,40腳封裝。

DB0~DB7:雙向數(shù)據(jù)總線,用來傳送8279與CPU之間的數(shù)據(jù)和命令。

CLK:時(shí)鐘輸入線,用以產(chǎn)生內(nèi)部定時(shí)的時(shí)鐘脈沖。

RESET:復(fù)位輸入線,8279復(fù)位后被置為字符顯示左端輸入,二鍵閉鎖的觸點(diǎn)回彈型式,程序時(shí)鐘前置分頻器被置為31,RESET信號(hào)為高電平有效。

CS:片選輸入線,低電平有效,單片機(jī)在CS端為低時(shí)可以對(duì)8279讀/寫操作。

A0:緩沖器低位地址,當(dāng)A0為高電平時(shí),表示數(shù)據(jù)總線上為命令或狀態(tài),當(dāng)為低電平時(shí),表示數(shù)據(jù)總線上為命令或狀態(tài),當(dāng)為低電平時(shí),表示數(shù)據(jù)總線上為數(shù)據(jù)。

RD:讀信號(hào)輸入線,低電平有效,將緩沖器讀出,數(shù)據(jù)送往外部總線。

WR:寫信號(hào)輸入線,低電平有效,將緩立器讀出,將數(shù)據(jù)從外部數(shù)據(jù)總線寫入8279的緩沖器。

RL2--140--VCC

RL3--239--RL1

CLK--338--RL0

IRQ--437--CNTL/STB

RL4--536--SHIFT

RL5--635--SL3

RL6--734--SL2

RL7--833--SL1

RESRT--932--SL0

RD--1031--OUTB0

WR--1130--OUTB1

DB0--1229--OUTB2

DB1--1328--OUTB3

DB2--1427--OUTA0

DB3--1526--OUTA1

DB4--1625--OUTA2

DB5--1724--OUTA3

DB6--1823--BD

DB7--1922--CS

VSS--2021--A0

IRQ:中斷請(qǐng)求輸出線,高電平有效,在鍵盤工作方式下,當(dāng)FIFO/傳感器RAM中有數(shù)據(jù)時(shí),此中斷線變?yōu)楦唠娖?,在FIFO/傳感器RAM每次讀出時(shí),中斷線就下降為低電平,若在RAM中還有信息,則此線重又變?yōu)楦唠娖?。在傳感器工作方式中,每?dāng)探測(cè)到傳感器信號(hào)變化時(shí),中斷線就變?yōu)楦唠娖健?/p>

SL0~SL3:掃描線,用來掃描按鍵開關(guān),傳感器陣列和顯示數(shù)字,這些可被編程或被譯碼。

RL0~RL7:回送線,經(jīng)過按鍵或傳感器開關(guān)與掃描線聯(lián)接,這些回送線內(nèi)部設(shè)置有上拉電路,使之保持為高電平,只有當(dāng)一個(gè)按閉合時(shí),對(duì)應(yīng)的返回線變?yōu)榈碗娖?;無按鍵閉合時(shí),均保持高電平。

SHIFT:換位功能,當(dāng)有開關(guān)閉合時(shí)被拉為低電平,沒有按下SHIFT開關(guān)時(shí),SHIFT輸入端保持高電平,在鍵盤掃描方式中,按鍵一閉合,按鍵位置和換位輸入狀態(tài)一起被存貯起來。

CNTL/STB:當(dāng)CNTL/STB開關(guān)閉合時(shí)將其拉到低電平,否則始終保持高電平,對(duì)于鍵盤輸入方式,此線用作控制輸入端,當(dāng)鍵被按下時(shí),按鍵位置就和控制輸入狀態(tài)一起被存貯起來,在選通輸入方式中,作選通用,把數(shù)據(jù)存入FIFORAM中。

OUTA3~OUTA0及OUTB3~OUTB0:顯示輸出A口及B口,這兩個(gè)口是16×4切換的數(shù)字顯示。這兩個(gè)端口可被獨(dú)立控制,也可看成一個(gè)8位端口。

BD:空格顯示,此輸出端信號(hào)用于在數(shù)字轉(zhuǎn)換時(shí)將顯示空格或者用顯示空格命令控制其顯示空格字符。

VCC:+5V電源輸入線。

VSS:地線輸入線。

2.6數(shù)據(jù)格式和數(shù)據(jù)交換的協(xié)議

Max232產(chǎn)品是由德州儀器公司(TI)推出的一款兼容RS232標(biāo)準(zhǔn)的芯片。該器件包含2驅(qū)動(dòng)器、2接收器和一個(gè)電壓發(fā)生器電路提供TIA/EIA-232-F電平。

該器件符合TIA/EIA-232-F標(biāo)準(zhǔn),每一個(gè)接收器將TIA/EIA-232-F電平轉(zhuǎn)換成5-VTTL/CMOS電平。每一個(gè)發(fā)送器將TTL/CMOS電平轉(zhuǎn)換成TIA/EIA-232-F電平。

圖4

系統(tǒng)主程序流程圖

計(jì)算機(jī)與計(jì)算機(jī)或計(jì)算機(jī)與終端之間的數(shù)據(jù)傳送可以采用串行通訊和并行通訊二種方式。由于串行通訊方式具有使用線路少、成本低,特別是在遠(yuǎn)程傳輸時(shí),避免了多條線路特性的不一致而被廣泛采用。在串行通訊時(shí),要求通訊雙方都采用一個(gè)標(biāo)準(zhǔn)接口,使不同的設(shè)備可以方便地連接起來進(jìn)行通訊。RS-232-C接口(又稱EIARS-232-C)是目前最常用的一種串行通訊接口。它是在1970年由美國(guó)電子工業(yè)協(xié)會(huì)(EIA)聯(lián)合貝爾系統(tǒng)、調(diào)制解調(diào)器廠家及計(jì)算機(jī)終端生產(chǎn)廠家共同制定的用于串行通訊的標(biāo)準(zhǔn)。它的全名是"數(shù)據(jù)終端設(shè)備(DTE)和數(shù)據(jù)通訊設(shè)備(DCE)之間串行二進(jìn)制數(shù)據(jù)交換接口技術(shù)標(biāo)準(zhǔn)"該標(biāo)準(zhǔn)規(guī)定采用一個(gè)25個(gè)腳的DB25連接器,對(duì)連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī)定,還對(duì)各種信號(hào)的電平加以規(guī)定。一般只使用3-9條引線。

第3節(jié)

系統(tǒng)的軟件設(shè)計(jì)

本系統(tǒng)的軟件系統(tǒng)主要可分為主程序、串口收發(fā)程序,讀取鍵盤子程序,顯示字符子程序四大模塊。

3.1

系統(tǒng)主程序設(shè)計(jì)圖5

系統(tǒng)主程序流程圖

圖6

INIT8279子程序框圖

主要程序

Z8279EQU8701H

;8279狀態(tài)/命令口地址

D8279EQU8700H

;8279數(shù)據(jù)口地址

LEDMODEQU00H

;左邊輸入八位字符顯示

;外部譯碼鍵掃描方式,雙鍵互鎖

LEDFEQEQU2FH

;掃描速率

LEDCLSEQU0C1H

;清除顯示RAM

LEDWR0EQU80H

;設(shè)定的將要寫入的顯示RAM地址

READKBEQU40H

;讀FIFORAM地址0的命令字

ORG0000H

AJMPSTART

ORG0040H

START:

MOVSP,#60H

LCALLINIT8279

;初始化8279

MOVSCON,#50H

;串口方式1

MOVTMOD,#20H

;T1方式1

MOVTL1,#0FDH

;波特率9600的常數(shù)

MOVTH1,#0FDH

SETBTR1

;開中斷

SETBET1

SETBEA

WAIT:

JBCRI,DIS_REC

;是否接收到數(shù)據(jù)

LCALLGETKEY

;讀鍵盤

CJNEA,#0FFH,WAIT

;是否有鍵輸入

MOVSBUF,B

;串口輸出鍵盤輸入的值

NOP

SS:JBCTI,WAIT

;是否發(fā)送完畢

SJMPSS

DIS_REC:

MOVA,SBUF

;讀串口接收到的數(shù)據(jù)

CLRC

SUBBA,#30H

;以下判定輸入是否在0-F

JCERROR

SUBBA,#0AH

JNCDIS_REC1

ADDA,#0AH

SJMPDIS_REC2

DIS_REC1:

SUBBA,#7H

JCERROR

SUBBA,#6H

JNCERROR

ADDA,#10H

DIS_REC2:

MOVR4,#00H

MOVR5,A

LCALLDISLED

;顯示輸入的數(shù)字(0-F)

ERROR:AJMPWAIT

INIT8279:

;8279初始化子程序

PUSHDPH

;保存現(xiàn)場(chǎng)

PUSHDPL

PUSHACC

LCALLDELAY

;延時(shí)

MOVDPTR,#Z8279

MOVA,#LEDMOD

 

;置8279工作方式

MOVX@DPTR,A

MOVA,#LEDFEQ

;置鍵盤掃描速率

MOVX@DPTR,A

MOVA,#LEDCLS

;清除LED顯示

MOVX@DPTR,A

POPACC

;恢復(fù)現(xiàn)場(chǎng)

POPDPL

POPDPH

RET

;讀取鍵盤子程序

;輸入:無;輸出:B:讀到的鍵碼A:按鍵的標(biāo)志

GETKEY:PUSHDPH

;保存現(xiàn)場(chǎng)

PUSHDPL

PUSHPSW

MOVDPTR,#Z8279

MOVXA,@DPTR

;讀8279狀態(tài)

ANLA,#07H

;屏蔽D7-D3

JNZGETVAL

;判斷是否有鍵輸入

MOVA,#0H

;置標(biāo)志(無鍵輸入)

SJMPNKBHIT

GETVAL:

MOVA,#READKB

;讀FIFORAM命令

MOVX@DPTR,A

MOVDPTR,#D8279

MOVXA,@DPTR

;讀鍵

ANLA,#0FH

;屏蔽SHIFT和CTRL鍵

MOVDPTR,#KEYCODE

;鍵碼表起始地址

MOVCA,@A+DPTR

;查表

MOVB,A

;置返回鍵值

MOVA,#0FFH

;置標(biāo)志(有鍵輸入)

NKBHIT:

POPPSW

;恢復(fù)現(xiàn)場(chǎng)

POPDPL

POPDPH

RET

;顯示字符子程序

輸入:R4,位置R5,值

DISLED:PUSHDPH

;保存現(xiàn)場(chǎng)

PUSHDPL

PUSHACC

MOVA,#LEDWR0

;置顯示起始地址

ADDA,R4

;加位置偏移量

MOVDPTR,#Z8279

MOVX@DPTR,A

;設(shè)定顯示位置

MOVDPTR,#LEDSEG

;置顯示常數(shù)表起始位置

MOVA,R5

MOVCA,@A+DPTR

;查表

MOVDPTR,#D8279

MOVX@DPTR,A

;顯示數(shù)據(jù)

POPACC

;恢復(fù)現(xiàn)場(chǎng)

POPDPL

POPDPH

RET

DELAY:

 

;延時(shí)子程序

PUSH0

;保存現(xiàn)場(chǎng)

PUSH1

MOV0,#0H

DELAY1:MOV1,#0H

DJNZ1,$

DJNZ0,DELAY1

POP1

;恢復(fù)現(xiàn)場(chǎng)

POP0

RET

;LED顯示常數(shù)表

LEDSEG:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H;'0,1,2,3,4,5,6,7'

DB7FH,6FH,77H,7CH,39H,5EH,79H,71H;'8,9,A,B,C,D,E,F'

DB0BFH,086H,0DBH,0CFH,0E6H,0EDH,0FDH,087H;'0.,1.,2.,3.,4.,5.,6.,7.'

DB0FFH,0EFH,0F7H,0FCH,0B9H,0DEH,0F9H,0F1H;'8.,9.,A.,B.,C.,D.,E.,F.'

DB6DH,02H,08H,00H,59H,0FH

溫馨提示

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

評(píng)論

0/150

提交評(píng)論