www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 單片機 > 單片機
[導讀]   8031單片微機因具有體積小,資源豐富,性能價格比優(yōu)等特點,近十年來在我國獲得了極其廣泛的應用。它內(nèi)部的可編程全雙工串行通訊口具有軟件編程方便,使用可靠的特點。  在數(shù)據(jù)傳送和數(shù)據(jù)通訊中受

  8031單片微機因具有體積小,資源豐富,性能價格比優(yōu)等特點,近十年來在我國獲得了極其廣泛的應用。它內(nèi)部的可編程全雙工串行通訊口具有軟件編程方便,使用可靠的特點。

  在數(shù)據(jù)傳送和數(shù)據(jù)通訊中受到用戶的親睞。本文就8031串行口的應用作一介紹。

  一、利用8031串行口控制鍵盤和顯示器

  8031串行口的方式0(移位寄存器輸入/輸出方式)可用于鍵盤和顯示器控制,其硬件結(jié)構(gòu)如圖1所示。

  圖中外接8片8位串入/并出移位寄存器74LS164作為8位LED顯示器的靜態(tài)控制端口。由于顯示器工作是靜態(tài)的,因而主程序可不必掃描顯示器,從而使CPU有更多的時間處理其它事務。這類應用常見于小型測量儀表的顯示中。

  下面給出更新顯示器顯示的子程序和鍵盤掃描子程序的清單及其簡單說明。

  顯示子程序:

  DIR: SETB P3.3 l開放顯示器傳送控制

  MOV R7,# 08H

  MOV RO.#5FH ;5FH~58H為顯示緩沖器

  DLO: MOVA,@RO ;取出要顯示的數(shù)據(jù)

  ADD A,#ODH ;加上偏移量

  MOVC A,@A+PC ;取出字形

  MOV SBUF,A ;送出顯示

  DLI: JNB TI,DL1 ;輸出完否?

  CLR TI ;完,清中斷標志

  DEC RO ;再取下一個數(shù)

  DJNZ R7,DLO ;8位顯示數(shù)據(jù)輸出完否?

  CLR P3.3 ;輸出完,關(guān)閉顯示器傳送

  RET ;返回

  SEGTAB;co“O” ;字形代碼表

  F9 “1"

  A4“2”

  BD “3”

  99“4”

  92“5”

  82 “6”

  F8 “7”

  80 “8”

  90 “9”

  88 “A”

  83 “B”

  C6“C”

  Al“D”

  86 “E”

  8F “F”

  BF“一”

  8C “P”

  9l “Y”

  鍵盤掃描子程序

  KEY: MOV A.#OOH ;向164輸出OOH,對鍵盤掃描

  MOV SBUF,A

  KLO:JNB T1,KLO ;輸出完否?

  CLRTI ;清0中斷標志

  KL1: JNB P3.4,PK1 ;第一捧鍵中有鍵閉合否?

  JB P3.5,KLI ;第二排鍵中有鍵閉合否?

  PKl: ACALLDI0 ;有鍵按下

  JNB P3.4,PK2 ;是否抖動引起

  JB P3.5.KL1 ;不是抖動引起

  PK2: MOV R7,#08H ;判斷那一個健被按下

  MOV R6,# OFEH

  MOV R3,# ODH

  KL5: MOV A,R6

  MOV SBUF,A ;對列線逐個掃描

  KL2: JNB TI,KL2

  CLR TI

  LNBP3.4.PKONE ;是第一捧某鍵杏?

  JB P3.5,NEXT ;是第二排某鍵否?

  MOV R4,#08H ;是第二排中有鍵被接下

  AJMP PK3

  PKONE: MOV R4,#OOH ;是第一排中有鍵被按下

  PK3: MOV A,#OOH ;等待鍵釋放

  MOV SUBF,A

  KL3: JNB TI,KL3

  CLR TI

  KL4: JNBP3.4,KL4JNBP3.5,KL4

  MOV A,R4 ;鍵釋放,取出鍵碼

  ADD A,R3

  RET ;返回

  NEXT: MOV A,R6 ;判下一列是否按下

  RLA

  MOV R6,A

  INC R3

  DJNZ R7,KL5 ;八列鍵都檢查完否?

  AJMP KEY ;完了,開始下一個掃描周期

  Dl0: MOV R7,#OAH ;延時10ms子程序

  DL: MOV R6,# OFFH

  DL6: DJNZ R6,DL6

  DJNZ R7,DL

  RET

  二、利用8031串行口實現(xiàn)主從機通訊

  8031串行口工作方式3(或方式2)可用于實現(xiàn)單片機之

  間的主從機通訊,具體電路結(jié)構(gòu)如圖2。方式2和方式3都是

  被定義為9位異步通訊接口,只是波特率選取有所不同。

  利用串行口方式3實現(xiàn)多機通訊的軟件“協(xié)議”如下:

  1.主機

  設(shè)置為串行口工作方式3,允許接收,第一次發(fā)送時設(shè)置

  TB8=1,以后發(fā)送時設(shè)置TB8=0。TB8=1(圭機發(fā)送的第九

  位數(shù)據(jù))表示這組數(shù)是地址,TB8-o表示這組數(shù)是數(shù)據(jù)。

  2.從機

  設(shè)置為串行口工作方式3,允許接收。第一次接收設(shè)置

  SM2-1,只有當接收到的第九位數(shù)據(jù)RB8=1時才產(chǎn)生接收

  中斷,這時接收到的這組數(shù)是地址。在程序中置位PSW. 1=1

  表示接收的是地址,PSW. 1=0表示接收的是數(shù)據(jù)。

  下面給出主從機之間通信的程序和說明。主機要發(fā)送的

  數(shù)據(jù)或控制命令放在片內(nèi)RAM中,數(shù)據(jù)塊首址為31H, 30H

  中的內(nèi)容為數(shù)據(jù)塊長度。

  ORG OOOOH

  LJMP MAIN

  ORG 0023H ;串行口中斷程序入口

  SJMP SERVE

  ORG 0040H ;發(fā)送子程序人口

  TRANSFER: MOV TMOD,#20H ;設(shè)置T1為定時方式2

  MOV TH1,#0F3H ;Tl置初值,產(chǎn)生1200波特率

  MOV TLl,# 0F3H

  MOV SCON,#OD8H ;設(shè)置串行日工作方式3允許接收,TB8=1

  SETB TR1 ;啟動Tl

  'SET EA ;開中斷

  CLR ES ;禁止串行口中斷

  START: MOV SBUF,#OOH .發(fā)0#從機地址

  WAIT1: JNB TI,WAITI ;等待發(fā)送完畢

  CIR TI ;完畢清發(fā)送中斷標志T1

  WAIT2': JNB R1,WAlTZ ;等待0#從機應答

  CLRRl

  MOV A,SBUF ;判斷是否為O#從機的應答信號

  JNZ START

  CIR TB8 ;是應答信號,清TB8表示以后是效據(jù)

  SETB ES ;允許串行口中斷

  MOV 2FH,# 31H

  MOV SBUF,30H .發(fā)送數(shù)據(jù)塊長度

  RET ;子程序返回

  SERVE: CLR TI ;清發(fā)迭中斷標志T1

  PUSH A ;現(xiàn)場保護

  MOV A,RO

  PUSH A

  DJNZ 30H.TRAN; ;數(shù)據(jù)發(fā)送完否?

  CLR ES ;完畢,關(guān)串行口中斷

  CLR TR1 ;關(guān)T1

  SJMP RETUNE

  TRAN: MOV RO,2FH ;取數(shù)據(jù)地址

  MOV SBUF.@RO ;發(fā)送數(shù)據(jù)

  INC 2FH ;數(shù)據(jù)地址加1

  RETUNE:POP A ;恢復現(xiàn)場

  MOV RO,A

  POP A

  RETI ;中斷返回

  MAIN, NOP 注程序(未給出)

  0#從機首先接收主機發(fā)來的數(shù)據(jù)塊長度,并將它存入片

  內(nèi)RAM30H單元中,然后接收數(shù)據(jù)或控制命令,并將它們存

  放到片內(nèi)RAM中,起始地址為30H。0#從機接收程序清單如

  下;

  ORG 0023H ;串行口中斷程序入口

  SJMP SERVE.

  ORG 0040H ;初始化程序入日

  RECEIVE:MOV TMOD.#20H ;設(shè)置T1為定時方式2

  MOV TH1,# OF3H ;T1置初值,產(chǎn)生1200波特率

  MOV SCON,#OFOH ;設(shè)置串行口工作方式3,允許接收且SM2=1

  SETB TR1 ;啟動T1

  SETB EA ;開中斷

  SETB ES ;允許串行口中斷

  SETB PSW.1 ;PSW.1=1是地址

  LJMP MAIN ;轉(zhuǎn)主程序(未給出)等待串行口中斷

  SERVE: CLR RI ;清串行口發(fā)送標志Rl

  PUSH A ;現(xiàn)場保護

  MOV A,RO

  PUSH A

  HOV A,R0

  PUSHA

  JBPSW.1,HELLO ;是地址否?

  DATA: MOV R0,2FH ;是數(shù)據(jù),建立數(shù)據(jù)地址指針

  MOV A,SBUF ;取接收到的數(shù)據(jù)

  MOV @RO,A ;轉(zhuǎn)存到存貯器中

  INC 2FH ;數(shù)據(jù)地址加1

  DJNZ 30H,RETUNE ;躺數(shù)據(jù)接收完否?

  SETB PSW.1 ;置位PSW.1,表示接收

  SJMP RETUNE ;數(shù)據(jù)完畢

  HELLO: MOV A,SBUF ;是地址,判斷與本機地址是否相等

  JNZ RETUNE ;不相等返回

  MOV SBUF,# OOH .相符,發(fā)本機地址作為應答

  CLR PSW.1 ;清PSW.1表示以后為數(shù)據(jù) ’

  CLR SM2 ;清SM2準備接收數(shù)據(jù).

  MOV 2FH,#30H

  WAIT: JNBTI,WAIT ;等待應答信號發(fā)送完畢

  CLR T1

  RETUNE, POP A ;恢復現(xiàn)場

  MOV RO,A

  POP A

  RETI ;中斷返回

  三、8031串行口與IBM-PC機組成二級通訊系統(tǒng) IBM-PC機的串行通訊適配器是采用可編程通訊用異步收發(fā)器UART8250芯片。我們可以使用宏匯編語言設(shè)計程序直接操作UART各寄存器,以中斷方式與8031串行口進行通訊。

  1.硬件結(jié)構(gòu)

  IBM-PC機的串行通訊適配器與8031的串行口組成的兩級系統(tǒng)如圖3所示。由于串行輸出芯片1488無高阻態(tài),必須經(jīng)二極管隔離后再并聯(lián)。

  2.通訊協(xié)議

  a.數(shù)據(jù)代碼程和功能代碼

  數(shù)據(jù)代碼是通訊過程必須傳送的目的代碼,功能代碼是通訊過程中的應答信號,以及表征數(shù)據(jù)特征和數(shù)量的代碼。

  每組數(shù)據(jù)的結(jié)構(gòu)見表l,協(xié)議規(guī)定數(shù)據(jù)的數(shù)量和特征代碼放在數(shù)據(jù)代碼的前端,代碼和字節(jié)提供給對方檢驗通訊過程是否有誤碼。

  b.具體規(guī)定;

  我們規(guī)定通訊過程為PC機發(fā)出“向8031發(fā)數(shù)”的發(fā)數(shù)令牌(該令牌中包含某- 8031的地址)。收到應答碼后開始發(fā)送過程,并由8031機回送“是否誤碼”的代碼。PC機發(fā)出“允許8031機發(fā)效的收數(shù)令牌(該令牌包含某- 8031的地址),收數(shù)令牌按機號順序定時發(fā)出,使每臺8031有平等的發(fā)數(shù)機會。令牌中的地址和機號相同的8031機取得通訊權(quán)。為使發(fā)數(shù)比收數(shù)有更高的優(yōu)先權(quán),只在無數(shù)據(jù)發(fā)送時才發(fā)“收數(shù)令牌”。

  3.軟件設(shè)計

  a.對lBM-PC通訊程序的要求

  為使IBM-PC機和多臺8031機的通訊有條不紊的進行,IBM-PC機應有完善的調(diào)度能力,我們可以編制一段調(diào)度程序,它的功能是;①處理數(shù)據(jù)輸入和輸出緩沖區(qū);②進行串行口資源調(diào)度,確定是收數(shù)還是發(fā)數(shù);③能使串行中斷服務程序執(zhí)行發(fā)數(shù)任務和收數(shù)任務。發(fā)數(shù)任務和收數(shù)任務分別由各自的中斷服務程序來完成;④調(diào)度程序以令牌方式分配通訊權(quán)。只有取得通訊權(quán)的某臺8031才能接收和發(fā)送數(shù)據(jù)(程序從略)。

  b.8031機通訊程序

  8031機系統(tǒng)主程序完成串行口初始化,準備輸出數(shù)據(jù)和處理輸入數(shù)據(jù)等與通訊有關(guān)的工作。它定義串行口為工作方式3,允許串行中斷,允許接收,置位多機通訊位及設(shè)置與PC機UART(異步通訊收發(fā)器)相同的波特率等。

8031機與PC機的數(shù)據(jù)通訊串行中斷服務程序框圖見圖d。該中斷服務程序由“令牌激活”,在一次中斷服務過程中完成整組數(shù)據(jù)的接

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉