版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
本文格式為Word版,下載可任意編輯——LED七段數(shù)碼管數(shù)字鐘目錄
一、設計任務書錯誤!未定義書簽。二、設計題目2三、設計方案2四、硬件原理錯誤!未定義書簽。
1.七段數(shù)碼管顯示22.鍵盤掃描顯示錯誤!未定義書簽。3.8253計數(shù)器和8259中斷錯誤!未定義書簽。4.硬件連接4五、程序流程圖及程序清單5
1.七段數(shù)碼管顯示62.鍵盤掃描顯示63.定時器設計84.總程序設計錯誤!未定義書簽。六、調(diào)試過程及結(jié)果19七、設計總結(jié)和體會19八、(1)七段數(shù)碼管顯示
(2)鍵盤掃描顯示
7.七段數(shù)碼管顯示子程序框圖圖
圖8.讀鍵輸入子程序框圖
(3)定時器設計
圖9.定時中斷服務子程序框圖
2.程序代碼
CONTROLequ0c003hCOUNT0equ0c000hCOUNT1equ0c001hCOUNT2equ0c002h
md8255equ82h;8255工作方式
PA8255equ8000h;8255PA口輸出地址CTL8255equ8003h;8255控制口地址IN_KEYequ08001h;鍵盤讀入口
OUTBITequ08002h;位控制口OUTSEGequ08004h;段控制口
ICW1equ00010011b;單片8259,上升沿中斷,要寫ICW4ICW2equ00100000b;中斷號為20H
ICW4equ00000001b;工作在8086/88方式OCW1equ11111110b;只響應INT0中斷CS8259Aequ0d000h;8259地址CS8259Bequ0d001h
datasegmentCNTdb0Hourdb0Minutedb0Seconddb0
LEDBufdb6dup(?);顯示緩沖Numdb1dup(?);顯示的數(shù)據(jù)DelayTdb1dup(?)dinglindb6dup(?)
LEDMAP:;八段管顯示碼
db3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hKeyTable:;鍵碼定義db16h,15h,14h,0ffhdb13h,12h,11h,10hdb0dh,0ch,0bh,0ahdb0eh,03h,06h,09hdb0fh,02h,05h,08hdb00h,01h,04h,07hdataends
codesegment
assumecs:code,ds:data
Delayprocnear
pushax;延時子程序pushcx
moval,0movcx,axloop$
popcxpopaxretDelayendp
DisplayLEDprocnear
movbx,offsetLEDBuf
movcl,6;共6個八段管movah,00100000b;從左邊開始顯示DLoop:
movdx,OUTBITmoval,0
outdx,al;關所有八段管moval,[bx]
movdx,OUTSEGoutdx,al
movdx,OUTBITmoval,ah
outdx,al;顯示一位八段管
pushaxmovah,1callDelaypopax
shrah,1incbxdeccljnzDLoop
movdx,OUTBIT
moval,0
outdx,al;關所有八段管ret
DisplayLEDendp
TestKeyprocnear
movdx,OUTBITmoval,0
outdx,al;輸出線置為0movdx,IN_KEY
inal,dx;讀入鍵狀態(tài)
notal
andal,0fh;高四位不用retTestKeyendp
GetKeyprocnear
movch,00100000bmovcl,6KLoop:
movdx,OUTBIT
moval,ch;找出鍵所在列notaloutdx,alshrch,1
movdx,IN_KEYinal,dxnotalandal,0fh
jneGoon_;該列有鍵入deccljnzKLoop
movcl,0ffh;沒有鍵按下,返回0ffhjmpExit1Goon_:
deccl
shlcl,2;鍵值=列X4+行
movch,4LoopC:
testal,1jnzExit1shral,1inccldecchjnzLoopCExit1:
movdx,OUTBITmoval,0outdx,al
movch,0
movbx,offsetKeyTableaddbx,cx
moval,[bx];取出鍵碼movbl,al
WaitRelease:
movdx,OUTBITmoval,0
outdx,al;等鍵釋放
movah,10callDelaycallTestKeyjneWaitReleasemoval,blretGetKeyendp
IEnterprocnearpushaxpushdx
incSecondmoval,Secondcmpal,60jneExit
movSecond,0incMinutemoval,Minutecmpal,60jneExit
movMinute,0incHourmoval,Hourcmpal,24jneExit
movHour,0Exit:
movdx,CS8259A
moval,20h;中斷服務程序終止指令outdx,al
popdxpopaxiretIEnterendp
IInitproc
movdx,CS8259Amoval,ICW1outdx,al
movdx,CS8259Bmoval,ICW2outdx,al
moval,ICW4outdx,al
moval,OCW1outdx,alretIInitendp
Startprocnear
movax,datamovds,ax
movLEDBuf,03fh;顯示00.00.00movLEDBuf+1,0bfhmovLEDBuf+2,03fhmovLEDBuf+3,0bfhmovLEDBuf+4,03fh
movLEDBuf+5,03fh
movHour,0movMinute,0movSecond,0
cli
movax,0movds,ax
moval,76h;01110110B;計數(shù)器1,16位,方式3,二進制movdx,CONTROLoutdx,al
movax,62500movdx,COUNT1
outdx,al;計數(shù)器低字節(jié)moval,ah
outdx,al;計數(shù)器高字節(jié)
moval,MD8255movdx,CTL8255outdx,al
movbx,4*ICW2;中斷號
movax,code
shlax,4;x16
addax,offsetIEnter;中斷入口地址(段地址為0)mov[bx],ax
movax,0incbxincbx
mov[bx],ax;代碼段地址為0
callIInit
movax,datamovds,ax
movCNT,0;計數(shù)值初始為0moval,CNTmovdx,PA8255
outdx,alsti
LP:;等待中斷,并計數(shù)。moval,Hourmovah,0movcl,10divcl
movch,ahmovah,0
movbx,offsetLEDMAPaddbx,axmoval,[bx]movLEDBuf,al
movbx,offsetLEDMAPmoval,chmovah,0addbx,axmoval,[bx]oral,80h
movLEDBuf+1,al
moval,Minutemovah,0movcl,10divcl
movch,ahmovah,0
movbx,offsetLEDMAPaddbx,axmoval,[bx]
movLEDBuf+2,al
movbx,offsetLEDMAPmoval,chmovah,0addbx,axmoval,[bx]oral,80h
movLEDBuf+3,al
moval,Second
movah,0movcl,10divcl
movch,ahmovah,0
movbx,offsetLEDMAPaddbx,axmoval,[bx]
movLEDBuf+4,al
movbx,offsetLEDMAPmoval,chmovah,0addbx,axmoval,[bx]oral,80h
movLEDBuf+5,alcallDisplayLEDD0:
callDisplayLED;顯示callTestKey;有鍵入?
jeLP;無鍵入,繼續(xù)顯示callGetKey;讀入鍵碼andal,0fh;顯示鍵碼movah,0
movdinglin[0],al
movbx,offsetLEDMAPaddbx,axmoval,[bx]movLEDBuf,al
D1:callDisplayLED;顯示callTestKey;有鍵入?
jeD1;無鍵入,繼續(xù)顯示callGetKey;讀入鍵碼andal,0fh;顯示鍵碼movah,0
movdinglin[1],al
movbx,offsetLEDMAPaddbx,axmoval,[bx]
movLEDBuf+1,al
D2:callDisplayLED;顯示callTestKey;有鍵入?
jeD2;無鍵入,繼續(xù)顯示callGetKey;讀入鍵碼andal,0fh;顯示鍵碼movah,0
movdinglin[2],al
movbx,offsetLEDMAPaddbx,axmoval,[bx]
movLEDBuf+2,al
D3:callDisplayLED;顯示callTestKey;有鍵入?
jeD3;無鍵入,繼續(xù)顯示callGetKey;讀入鍵碼andal,0fh;顯示鍵碼movah,0
movdinglin[3],al
movbx,offsetLEDMAPaddbx,axmoval,[bx]
movLEDBuf+3,alcallDisplayLED
D4:callDisplayLED;顯示callTestKey;有鍵入?
jeD4;無鍵入,繼續(xù)顯示callGetKey;讀入鍵碼andal,0fh;顯示鍵碼movah,0
movdinglin[4],al
movbx,offsetLEDMAPaddbx,axmoval,[bx]
movLEDBuf+4,alcallDisplayLED
D5:callDisplayLED;顯示callTestKey;有鍵入?
jeD5;無鍵入,繼續(xù)顯示callGetKey;讀入鍵碼andal,0fh;顯示鍵碼
movah,0
movdinglin[5],al
movbx,offsetLEDMAPaddbx,axmoval,[bx]
movLEDBuf+5,alcallDisplayLED
moval,dinglin[0]movcl,10dmulcl
movbl,dinglin[1]addal,blmovHour,alcmpHour,24jlL0
movHour,0
L0:moval,dinglin[2]movcl,10dmulcl
movbl,dinglin[3]addal,bl
movMinute,alcmpMinute,60jlL1
movMinute,0
L1:moval,dinglin[4]movcl,10dmulcl
movbl,dinglin[5]addal,bl
movSecond,alcmpSecond,60jlL2
movSecond,0
L2:jmpD0Startendpcode
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 埃萊爾-當洛綜合征的臨床護理
- JJF(陜) 111-2024 超聲流量計在線校準規(guī)范
- 《教綜合布線技術》課件
- 《保險家庭財產(chǎn)保險》課件
- 風險識別與評估技巧培訓
- 培養(yǎng)創(chuàng)新思維的方法計劃
- 深入分析行業(yè)趨勢制定行動方案計劃
- 2024-2025學年九年級數(shù)學人教版下冊專題整合復習卷第28章 銳角三角函數(shù)整章測試(含答案)
- 杠桿基金合同三篇
- 拖拉機及農(nóng)林牧漁用掛車相關行業(yè)投資方案
- 基于深度學習的人臉識別
- 2023學年完整公開課版體育道德
- 2024 執(zhí)業(yè)醫(yī)師定期考核真題庫附答案1
- 家裝設計畢業(yè)答辯
- 新能源汽車充電站競爭格局分析PPT
- GB/T 7036.1-2023充氣輪胎內(nèi)胎第1部分:汽車輪胎內(nèi)胎
- 足療培訓課件
- 毛絨玩具行業(yè)創(chuàng)業(yè)計劃書
- 電力檢測項目計劃書
- 《簡易風箏的制作》課件
- 體驗式家長會的實施與開展
評論
0/150
提交評論