![單片機(jī)串行口與PC機(jī)通訊設(shè)計(jì)_第1頁(yè)](http://file4.renrendoc.com/view/7c201ac065c57f5cabec90715a604640/7c201ac065c57f5cabec90715a6046401.gif)
![單片機(jī)串行口與PC機(jī)通訊設(shè)計(jì)_第2頁(yè)](http://file4.renrendoc.com/view/7c201ac065c57f5cabec90715a604640/7c201ac065c57f5cabec90715a6046402.gif)
![單片機(jī)串行口與PC機(jī)通訊設(shè)計(jì)_第3頁(yè)](http://file4.renrendoc.com/view/7c201ac065c57f5cabec90715a604640/7c201ac065c57f5cabec90715a6046403.gif)
![單片機(jī)串行口與PC機(jī)通訊設(shè)計(jì)_第4頁(yè)](http://file4.renrendoc.com/view/7c201ac065c57f5cabec90715a604640/7c201ac065c57f5cabec90715a6046404.gif)
![單片機(jī)串行口與PC機(jī)通訊設(shè)計(jì)_第5頁(yè)](http://file4.renrendoc.com/view/7c201ac065c57f5cabec90715a604640/7c201ac065c57f5cabec90715a6046405.gif)
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版八年級(jí)數(shù)學(xué)上冊(cè)13.3.1《等腰三角形(2)》聽評(píng)課記錄
- 蘇教版一年級(jí)數(shù)學(xué)上冊(cè)口算練習(xí)題三
- 法人股東對(duì)外-股權(quán)轉(zhuǎn)讓協(xié)議書范本
- 綠地租賃合同范本
- 資產(chǎn)委托經(jīng)營(yíng)管理合同范本
- 汽車租賃業(yè)務(wù)合作協(xié)議書范本
- 宿遷房屋租賃合同范本
- 人力資源戰(zhàn)略合作框架協(xié)議書范本
- 2025年度年度單位向單位教育項(xiàng)目借款合同
- 醫(yī)療服務(wù)協(xié)議書范本
- 《工作場(chǎng)所安全使用化學(xué)品規(guī)定》
- 裝飾圖案設(shè)計(jì)-裝飾圖案的形式課件
- 2022年菏澤醫(yī)學(xué)??茖W(xué)校單招綜合素質(zhì)考試筆試試題及答案解析
- 護(hù)理學(xué)基礎(chǔ)教案導(dǎo)尿術(shù)catheterization
- ICU護(hù)理工作流程
- 廣東版高中信息技術(shù)教案(全套)
- 市政工程設(shè)施養(yǎng)護(hù)維修估算指標(biāo)
- 短視頻:策劃+拍攝+制作+運(yùn)營(yíng)課件(完整版)
- 石家莊鐵道大學(xué)四方學(xué)院畢業(yè)設(shè)計(jì)46
- 分布式光伏屋頂調(diào)查表
- 部編版五年級(jí)語(yǔ)文下冊(cè)第四單元課時(shí)作業(yè)本有答案
評(píng)論
0/150
提交評(píng)論