国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于DVCC環(huán)境的LED與數(shù)碼管的協(xié)同控制

2013-04-29 23:33:38吳昂
大觀周刊 2013年8期
關(guān)鍵詞:數(shù)碼管寄存器字形

吳昂

摘要:本文主要探討和講述了在DVCC環(huán)境下,通過8255并行I/O端口擴展,將LED的流水式顯示與數(shù)碼管的跑馬燈應(yīng)用結(jié)合,同時通過程序加以協(xié)同控制,達(dá)到了LED與數(shù)碼管同時輪轉(zhuǎn)點亮的效果。硬件電路設(shè)計上采用了與數(shù)碼管數(shù)量相對應(yīng)的“6位分組控制”的形式,簡化了程序設(shè)計;延時程序采用了寄存器控制可變延時的模式,可靈活同步控制LED與數(shù)碼管的輪轉(zhuǎn)點亮速率。本文的整體設(shè)計已在單片機課程的教學(xué)實驗環(huán)節(jié)中多次使用,教學(xué)效果反映良好。

關(guān)鍵詞:DVCC 8255 延時程序 6位分組控制

一、DVCC系列單片機仿真實驗系統(tǒng)簡介

DVCC系列單片機仿真實驗系統(tǒng)由仿真技術(shù)及模塊化實驗電路結(jié)合而成,可用于MCS-51、MCS-96系列單片機的教學(xué)實驗與仿真開發(fā)。該系統(tǒng)模擬用戶開發(fā)環(huán)境,可與PC機聯(lián)機,實現(xiàn)用戶程序的編輯、編譯與調(diào)試運行。DVCC仿真實驗系統(tǒng)配備有8255、8251、8155等單片機常用接口芯片,脈沖發(fā)生器,步進(jìn)電機,繼電器,EPROM編程器等多種單片機應(yīng)用設(shè)計輔助單元。本文主要涉及到數(shù)碼管控制與8255并行I/O端口擴展對LED的控制。

二、詳細(xì)設(shè)計

1.數(shù)碼管控制

DVCC實驗箱提供了6個數(shù)碼管,其電路連接封裝于實驗箱內(nèi)部,無需手動連線,使用極為簡單。6個數(shù)碼管的字形口地址為0FF22H,位選口地址為0FF21H;由16位寄存器DPTR或8位寄存器R0、R1控制皆可。

2.8255并行I/O端口擴展對LED的控制

DVCC實驗箱提供了共12個LED,可直接通過MCS-51單片機I/O口(如P1)控制,也可由外圍芯片(如8255)擴展控制,需通過插針線手動連接。在基本LED的流水式顯示實驗中,可選擇MCS-51單片機P1口控制8個LED由進(jìn)行;若需要控制所有12個LED,則需要由P1口和P2口共同控制。但是,如果將12個LED的流水式顯示與數(shù)碼管的跑馬燈應(yīng)用結(jié)合,則P2口必須用作數(shù)碼管等外圍設(shè)備的高8位地址位,無法和P1口共同控制LED,所以需要將12個LED的控制交由擴展芯片(如8255)完成。此時,需要合理分配使用3個地址寄存器(即DPTR、R0和R1),才能有效同時控制12個LED與6個數(shù)碼管。本文選取DPTR動態(tài)控制8255的控制口、數(shù)碼管的字形口與位選口,R0和R1分別控制8255的A口和B口(默認(rèn)地址高8位為0FFH)。

3.六位分組控制

在確定8255的A口和B口控制LED后,需要從A口和B口共16位中選取12位逐一控制12個LED,本文選取了PA0~PA5和PB0~PB5共12位分別控制LED1~LED12,即“六位分組控制”。

將12個LED“六位分組控制”,分成2組,正好與6個數(shù)碼管在數(shù)量上對應(yīng)。這種分配方案的最大好處是可用1個寄存器(如累加器)同時控制一組LED與6個數(shù)碼管,然后再用該寄存器控制另一組LED與6個數(shù)碼管。反映在程序中則以對稱的形式表現(xiàn),代碼的兩部分完全對應(yīng),簡潔易懂(可參見本文最后的程序清單)。

4.8255的A口與B口切換控制

將12個LED“六位分組控制”形成兩組后,由于在流水式顯示中任意時刻只使用兩組中的某一組,所以用一個寄存器控制即可。不過,這里需要有一個切換開關(guān),指示寄存器當(dāng)前控制的是兩組寄存器中的哪一組,即選用PA口連接還是PB口連接的LED。比較直觀的解決方法是設(shè)置一個標(biāo)志位作為開關(guān),本文選取的程序狀態(tài)字PSW中的用戶自定義標(biāo)志F0。

三、程序清單

ORG 0000H

MOV SP,#60H

CLR F0

MOV DPTR,#0FF2BH ;設(shè)置8255控制口地址

MOV A,#80H

MOVX @DPTR,A ;設(shè)置8255工作方式

MOV DPTR,#0FF22H ;設(shè)置數(shù)碼管字形口地址

MOV A,#80H

MOVX @DPTR,A ;選定字形為數(shù)字"8"

MOV DPTR,#0FF21H ;設(shè)置數(shù)碼管位選口地址

MOV R0,#29H ;設(shè)置A口地址

MOV R1,#2AH ;設(shè)置B口地址

ST:MOV A,#01H

CPL F0 ;置換開關(guān)F0

NEXT:JNB F0,L1

MOVX @DPTR,A ;選定數(shù)碼管字位

MOVX @R0,A ;選定A口使用位

PUSH ACC ;保存A口使用位

CLR A

MOVX @R1,A ;將B口清零

POP ACC ;載入A口使用位

MOV R7,#25H

LCALL DELAY ;調(diào)用延時

AJMP L2

L1:MOVX @DPTR,A ;選定數(shù)碼管字位

MOVX @R1,A ;選定B口使用位

PUSH ACC ;保存B口使用位

CLR A

MOVX @R0,A ;將A口清零

POP ACC ;載入B口使用位

MOV R7,#25H

LCALL DELAY ;調(diào)用延時

L2:RL A

JB ACC.6,ST

AJMP NEXT

DELAY: PUSH 07H

DELAY1: PUSH 07H

DELAY2: PUSH 07H

DELAY3: DJNZ R7,DELAY3

POP 07H

DJNZ R7,DELAY2

POP 07H

DJNZ R7,DELAY1

POP 07H

DJNZ R7,DELAY

RET

END

參考文獻(xiàn):

[1]胡輝.單片機原理與應(yīng)用[M].中國水利水電出版社,2011-02.

[2]東南大學(xué)計算機科學(xué)與工程系.DVCC系列單片機微機仿真實驗系統(tǒng)[M].啟動計算機廠有限公司

猜你喜歡
數(shù)碼管寄存器字形
Lite寄存器模型的設(shè)計與實現(xiàn)
Arduino編程
電腦報(2019年2期)2019-09-10 07:22:44
MC9S08FL16單片機數(shù)碼管靜態(tài)顯示分析
甲骨文“黍”字形義考
單片機控制的四位數(shù)碼管動態(tài)顯示編程
甲骨文中的字形直立化二則
基于Qt的數(shù)碼管數(shù)字編碼系統(tǒng)的設(shè)計與實現(xiàn)
復(fù)習(xí)生字字形的方法
分簇結(jié)構(gòu)向量寄存器分配策略研究*
添一筆變個字
瑞丽市| 阿瓦提县| 高陵县| 长白| 永靖县| 平塘县| 常山县| 白河县| 博兴县| 文成县| 阳春市| 印江| 吉林市| 金溪县| 革吉县| 黄大仙区| 沭阳县| 寿宁县| 竹山县| 舟曲县| 深州市| 乌恰县| 宁国市| 丰县| 平阴县| 淮南市| 三江| 襄樊市| 垣曲县| 水城县| 锡林浩特市| 鄂托克前旗| 贵德县| 民县| 德江县| 新巴尔虎左旗| 比如县| 崇明县| 亚东县| 临潭县| 尖扎县|