第一篇:微機(jī)原理課程設(shè)計(jì)(電子密碼鎖)
一、設(shè)計(jì)目的
通過課程設(shè)計(jì)掌握控制系統(tǒng)設(shè)計(jì)的一般步驟,掌握系統(tǒng)總體控制方案的設(shè)計(jì)方法、8086微型計(jì)算機(jī)的應(yīng)用方法、控制算法的設(shè)計(jì)及硬件設(shè)計(jì)方法。復(fù)習(xí)并學(xué)習(xí)用軟件編程控制硬件。了解和掌握8086微機(jī)應(yīng)用系統(tǒng)的軟硬件設(shè)計(jì)過程、方法及實(shí)現(xiàn),為以后設(shè)計(jì)實(shí)現(xiàn)8086微機(jī)應(yīng)用系統(tǒng)打下良好的基礎(chǔ)。
二、設(shè)計(jì)任務(wù)與要求
(1)密碼鎖在輸入密碼正確時(shí)控制電控鎖開啟,同時(shí)顯示00字樣;當(dāng)輸入密碼錯(cuò)誤時(shí),發(fā)出錯(cuò)誤警告,并顯示FF字樣;當(dāng)3次誤碼輸入時(shí),產(chǎn)生報(bào)警;具有密碼修改的功能。
(2)選用8086和適當(dāng)?shù)拇鎯?chǔ)器及接口芯片完成相應(yīng)的功能,用LED顯示器顯示電子鎖的當(dāng)前狀態(tài);畫出詳細(xì)的硬件連接圖;給出程序設(shè)計(jì)思路、畫出軟件流程圖;給出所有程序清單并加上必要注釋;完成設(shè)計(jì)說明書(包括封面、目錄、設(shè)計(jì)任務(wù)書、硬件設(shè)計(jì)思路、硬件原理圖、軟件設(shè)計(jì)思路、程序流程框圖、程序清單、所用器件型號(hào)、總結(jié)體會(huì)、參考文獻(xiàn)等)。
三、整體功能描述
本設(shè)計(jì)為多功能密碼鎖,使用存儲(chǔ)器保存密碼防止斷電后密碼丟失。工作時(shí)按下按鍵蜂鳴器會(huì)發(fā)出聲音提示按鍵有效并在數(shù)碼管有“--”閃爍字樣,若相隔1分鐘無按鍵按下,則清零。在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同時(shí)顯示OPEN字樣。開鎖后可按下“復(fù)位/修改密碼鍵”實(shí)現(xiàn)修改密碼功能的轉(zhuǎn)入,之后先輸入密碼再輸入同樣的密碼確認(rèn)才可成功修改,修改成功后蜂鳴器會(huì)發(fā)出三聲,數(shù)碼管“00”閃爍三次提示修改密碼成功。當(dāng)輸入密碼錯(cuò)誤時(shí),發(fā)出錯(cuò)誤警告聲音,同時(shí)顯示CLOSE字樣,當(dāng)輸入密碼錯(cuò)誤次數(shù)累積夠3次后,蜂鳴器會(huì)產(chǎn)生90秒的報(bào)警聲響進(jìn)行報(bào)警。
四、總體設(shè)計(jì)方案
根據(jù)本次設(shè)計(jì)的設(shè)計(jì)目的及設(shè)計(jì)要求,可有下列兩種方案: 4.1 方案一
在本次設(shè)計(jì)中,因?yàn)槊艽a鎖的基本功能使可以判斷密碼是否正確,以及完成對(duì)密碼的修改,所以需要用到輸入設(shè)備以及CPU的接口電路以及相關(guān)存儲(chǔ)設(shè)備;因?yàn)橛袌?bào)警提示功能,所以要用到相關(guān)的輸出設(shè)備以及接口電路。因?yàn)橐瓿蛇壿嬤\(yùn)算功能,所以必須要有CPU,CPU就選用我們最常用也最熟悉的8086,考慮到8255的端口兼具輸入輸出功能,靈活方便,所以選用一片8255作為輸入輸出設(shè)備與8086間的借口;采用0到9數(shù)字按鍵以及相關(guān)功能選擇的輸入;輸出設(shè)備方面,采用兩位數(shù)碼管實(shí)現(xiàn)題目的狀態(tài)提示要求,用一個(gè)蜂鳴器作為相關(guān)的警報(bào),提示的聲音輸出。另外,為簡化編程,采用8259中斷控制器來觸發(fā)中斷實(shí)現(xiàn)密碼鎖工作模式的轉(zhuǎn)換,其中的密碼輸入及判斷功能與密碼修改功能分別用兩個(gè)外部中斷來觸發(fā)中斷服務(wù)程序來實(shí)現(xiàn)。本設(shè)計(jì)的密碼位數(shù)為6位。4.2 方案二
第1頁
用匯編語言編寫程序?qū)崿F(xiàn)應(yīng)用程序的功能,從而實(shí)現(xiàn)簡易計(jì)算器匯編程序的設(shè)計(jì)與實(shí)現(xiàn)。4.2.1使用設(shè)備
含有Windows匯編編譯環(huán)境的MASM軟件及Office 2003軟件的計(jì)算機(jī)一臺(tái)。4.2.2匯編程序編寫
匯編程序編寫,根據(jù)設(shè)計(jì)要求編寫實(shí)現(xiàn)該功能的源程序代碼。4.2.3使用方法
在masm環(huán)境下運(yùn)行本程序,按提示輸入正確密碼,則在屏幕上顯示00字樣,否則顯示FF字樣。
五、硬件設(shè)計(jì)
本設(shè)計(jì)使用了8086、8259A、8255、8253、2764、74LS138、74LS148、地址鎖存器、數(shù)碼管以及74系列邏輯門、蜂鳴器、開關(guān)等芯片與元器件,實(shí)現(xiàn)了鍵盤輸入、中斷控制、計(jì)時(shí)、按鍵響應(yīng)、開鎖及報(bào)警等功能模塊,其硬件連接框圖如圖1所示。
圖1 硬件連接框圖
5.1 鍵盤
本設(shè)計(jì)8255A的A口與兩片級(jí)聯(lián)的74LS148組合接用于輸入鍵盤,實(shí)現(xiàn)對(duì)輸入鍵號(hào)的讀入。工作時(shí),8086通過程序掃描鍵盤,當(dāng)無鍵盤按下時(shí),74LS148工作于無輸入狀態(tài),GS口輸出高電平,接到PA4作為識(shí)別有無按鍵按下信號(hào),PA口輸入為10H;當(dāng)有按鍵輸入時(shí),74LS148輸入口接到低電平,輸入有效,經(jīng)編碼后鍵號(hào)轉(zhuǎn)換為相應(yīng)二進(jìn)制編碼送到PA口,成為能為CPU識(shí)別的代表鍵值的有效信號(hào)。讀入的按鍵信號(hào)經(jīng)8086判斷后,根據(jù)不同的功能,輸出不同的按鍵響
第2頁
應(yīng),并轉(zhuǎn)移到相對(duì)應(yīng)的功能服務(wù)程序。
本設(shè)計(jì)總共用到11位按鍵,包括10位數(shù)碼輸入按鍵及一位“復(fù)位/修改密碼”按鍵,電路設(shè)計(jì)總共可用按鍵有16位,供升級(jí)功能使用。鍵盤電路如下圖2所示:
5.2 中斷控制
用一片8259A芯片作為中斷控制接口電路。其中IR0與IR1中斷開放,單片工作于非緩沖方式,電平觸發(fā),優(yōu)先級(jí)是普通全嵌套方式。可通過編程開中斷,通過編程或者8253計(jì)時(shí)器關(guān)中斷。電路連接如圖3所示:
圖2 鍵盤連接圖
5.3 計(jì)時(shí)
采用8253計(jì)時(shí)器控制中斷的關(guān)斷,實(shí)現(xiàn)單次輸入密碼超時(shí)則退出輸入密碼中斷子程序、報(bào)警器響鈴時(shí)間控制等功能。電路如圖3所示。
第3頁
圖3 中斷控制器連接圖
5.4 輸入輸出接口
輸入輸出接口采用可編程的8255A,8255A是Intel系列的并行接口芯片,常作為微機(jī)系統(tǒng)與外部設(shè)備接口。在連接電路時(shí)8255 的PC0、PC1接到數(shù)碼管片選,電路連接如圖3所示。同時(shí)用8255A的B口控制數(shù)碼管的顯示,C口片PC0、PC1選數(shù)碼管,PC2用來驅(qū)動(dòng)SPEAK發(fā)出報(bào)警電路如圖4所示。
圖4 按鍵響應(yīng)、報(bào)警、開鎖功能電路
第4頁
5.5.儲(chǔ)存器及片選電路
存儲(chǔ)器及片選電路采用一片2764存儲(chǔ)器和一片74LS138,連接電路如圖5所示:
圖5 片選及存儲(chǔ)器電路
5.6 整機(jī)電路圖:見附錄一
六、軟件設(shè)計(jì)
6.1 程序流程圖
第5頁
開始程序初始化8255.8259初始化從RAM存儲(chǔ)器中讀出密碼 定義DI.SI指針開中斷data2與data3數(shù)據(jù)串比較相等?N錯(cuò)誤計(jì)數(shù)器加1開鎖,并顯示00掃描鍵盤,有修改密碼鍵?Y定義SI,DI指針開中斷,實(shí)現(xiàn)密碼輸入轉(zhuǎn)存到data2有修改密碼鍵輸入?開中斷,重新輸入密碼比較是否為首次輸入密碼?N轉(zhuǎn)存密碼到RAM 鈴聲確認(rèn)修改密碼成功掃描鍵盤是否有修改密碼鍵輸入Y保持開鎖狀態(tài)結(jié)束錯(cuò)誤累積超過6次?YN報(bào)警響鈴,輸出顯示FF保持關(guān)鎖N結(jié)束Y
圖6 程序流程圖
6.2 程序清單:見附錄二
七、設(shè)計(jì)總結(jié)與體會(huì)
通過本次課程設(shè)計(jì),我對(duì) 8255,8253,8259等芯片的各引腳的功能、名稱、第6頁
工作方式、內(nèi)部結(jié)構(gòu)有了更深層次的掌握,對(duì)這三種芯片的編程從陌生轉(zhuǎn)向熟練。通過這次的微機(jī)課程設(shè)計(jì),對(duì)書本所學(xué)的知識(shí)有了進(jìn)一步的鞏固,并且對(duì)三種芯片各自的功能、工作方式有了明確性的區(qū)分。在設(shè)計(jì)過程中遇到問題時(shí),遇到含糊不清或者看不懂的地方及時(shí)翻閱相關(guān)課本知識(shí)。有時(shí)看課本也沒有結(jié)果時(shí)就和組員互相探討。在設(shè)計(jì)過程中,才發(fā)現(xiàn)自己遺漏許多課本的相關(guān)知識(shí),對(duì)各芯片的功能及其工作方式掌握的不夠清楚。這說明在實(shí)踐中才能真正的掌握從課本中所學(xué)的知識(shí)。這次的課程設(shè)計(jì)讓我為一年后的畢業(yè)設(shè)計(jì)打下了基礎(chǔ)。
八、參考資料
九、附錄
附錄一:電路基本連接圖
第7頁
附錄二:程序清單
(一)DATA SEGMENT;以下代碼寫入RAM
第8頁
CODEIN DB 6 DUP(?);輸入的密碼保存的地址 CODECH DB 6 DUP(?);修改后的密碼的保存地址 CODEOR DB 0,0,0,0,0,0;初始密碼
ORG 01000H;下面的代碼寫入ROM DTABLE DB 80H,02H,10H,3FH,79H,71H,60H,5BH DATA ENDS
STACKS SEGMENT STA DB 20 DUP(?)STACKS ENDS
CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKS START: MOV SI,OFFSET CODEIN MOV DI,OFFSET CODEOR MOV BP,OFFSET DTABLE
MOV AL,09H;(鍵盤輸入中斷)設(shè)定密碼輸入的中斷向量(即IR0的中斷向量)MOV AH,25H INT 21H PUSH BX PUSH DS MOV DX,SEG INPUT MOV DS,DX MOV DX,OFFSET INPUT INT 21H
MOV AL,09H;(鍵盤輸入中斷)設(shè)定密碼修改的中斷向量(即IR1的中斷向量)MOV AH,25H INT 21H PUSH BX PUSH DS MOV DX,SEG CHANGE MOV DS,DX MOV DX,OFFSET CHANGE INT 21H
MOV AL,1BH;初始化8259 OUT 10H,AL;單片工作,高電平有效 MOV AL,08H OUT 11H,AL MOV AL,03H OUT 11H,AL
第9頁
MOV AL,0FCH OUT 11H,AL;開放IR0,IR1 MOV AL,20H OUT 10H,AL MOV AL,68H OUT 10H,AL
MOV AL,82H;初始化8255 A口方式0輸出,B口方式0輸入,C口輸出 OUT 06H,AL AA: STI MOV AL,00H OUT 04H,AL;
INPUT:;CLI MOV DL,00H IN1: CMP DL,06H;JNZ IN2;
MOV CX,03FFH;R1: MOV DH,3FH MOV AL,02H OUT 00H,AL;R2: DEC DH CMP DH,00H JNZ R2 LOOP R1
JMP IN4;IN2:;MOV AL,[BP+4] OUT 04H,AL;MOV BX,0H MOV CX,03H;IN3: MOV BP,OFFSET DTABLE MOV AL,[BP] OUT 04H,AL;輸出低電平使數(shù)碼管熄滅 密碼輸入程序 判斷是否連續(xù)6次輸入錯(cuò)誤密碼 若不是這繼續(xù)輸入 使蜂鳴器長鳴報(bào)警(通過延時(shí)實(shí)現(xiàn))輸出高電平使蜂鳴器發(fā)聲 報(bào)警完畢,跳至中斷返回 輸入密碼 數(shù)碼管顯示‘--’提示輸入密碼 設(shè)置循環(huán)次數(shù) 數(shù)碼管提示輸入位數(shù)
第10頁
CALL CCSCAN;調(diào)用鍵盤掃描程序 CMP AL,0BH;判斷是否按下返回鍵 JZ IN4 MOV [BX+SI],AL;保存輸入密碼 INC BX INC BP LOOP IN3
MOV BP,OFFSET DTABLE;判斷密碼是否正確 CLD MOV CX,03 MOV SI,OFFSET CODEIN MOV DI,OFFSET CODEOR REPZ CMPSB;JNZ WRO;MOV AL,[BP+3] OUT 04H,AL;MOV AL,04H OUT 00H,AL;XOR DL,AL JMP IN4
WRO:;INC DL MOV AL,[BP+5];OUT 04H,AL MOV CX,03H;W1: MOV AL,02H;OUT 00H,AL
W2:;MOV BL,3FH DEC BL CMP BL,00H JNZ W2 XOR AL,AL;OUT 00H,AL
W3:;MOV BL,3FH DEC BL CMP BL,00H JNZ W3
判斷密碼是否正確 若錯(cuò)誤就報(bào)警 若正確數(shù)碼管就顯示‘00‘且給LED高電平使其點(diǎn)亮 出錯(cuò)報(bào)警部分 數(shù)碼管顯示’FF‘提示錯(cuò)誤設(shè)定蜂鳴器響的次數(shù) 使蜂鳴器發(fā)聲 延時(shí) 輸出低電平關(guān)蜂鳴器 延時(shí) 第11頁
LOOP W1 JMP IN1;中斷返回 IN4: STI IRET
CHANGE:;密碼修改程序 CLI MOV DL,00H INP1: CMP DL,06H JNZ INP2 MOV CX,03FFH RR1: MOV DH,3FH MOV AL,02H OUT 00H,AL RR2: DEC DH
CMP DH,00H JNZ RR2 LOOP RR1 JMP C4 INP2: MOV AL,[BP+4] OUT 04H,AL MOV BX,0000H MOV CX,03H INP3: MOV BP,OFFSET DTABLE MOV AL,[BP] OUT 04H,AL CALL CCSCAN CMP AL,0BH JZ IN4 MOV [BX+SI],AL INC BX INC BP LOOP INP3 MOV BP,OFFSET DTABLE CLD MOV CX,03
第12頁
MOV SI,OFFSET CODEIN MOV DI,OFFSET CODEOR REPZ CMPSB JNZ WRRO MOV AL,[BP+3] OUT 04H,AL XOR DL,DL JMP CHANGE WRRO: INC DL MOV AL,[BP+5] OUT 04H,AL MOV CX,03H WW1: MOV AL,02H OUT 00H,AL WW2: MOV BL,3FH DEC BL CMP BL,00H JNZ WW2 XOR AL,AL OUT 00H,AL WW3: MOV BL,3FH DEC BL CMP BL,00H JNZ WW3 LOOP WW1 JMP INP1;
CHAN:;MOV SI,OFFSET CODEIN MOV DI,OFFSET CODECH
MOV AL,[BP+6];OUT 04H,AL MOV CX,03FFH Y1: LOOP Y1
MOV BP,OFFSET DTABLE MOV BX,0H MOV CX,03H
當(dāng)密碼輸入正確時(shí),轉(zhuǎn)入密碼修改部分修改密碼部分 數(shù)碼管提示第一次輸入 第13頁
C1: MOV AL,[BP] OUT 04H,AL CALL CCSCAN CMP AL,0BH JZ C4 MOV [BX+SI],AL;存放在輸入密碼緩沖區(qū) INC BX INC BP LOOP C1
MOV BP,OFFSET DTABLE MOV AL,[BP+7] OUT 04H,AL;MOV CX,03FFH Y2: LOOP Y2 MOV BP,OFFSET DTABLE MOV BX,0H MOV CX,03H C2: MOV AL,[BP] OUT 04H,AL CALL CCSCAN CMP AL,0BH JZ C4 MOV [BX+DI],AL;INC BX INC BP LOOP C2
MOV BP,OFFSET DTABLE REPZ CMPSB JNZ CHAN;MOV DI,OFFSET CODEOR MOV CX,03H CLD REP MOVSB;MOV AL,02H;OUT 00H,AL MOV CX,03FFH C3: LOOP C3 XOR AL,AL OUT 00H,AL;數(shù)碼管提示第二次輸入 存放在修改密碼緩沖區(qū) 判斷兩次輸入的密碼是否一致若是相等那就保存密碼 且蜂鳴器響一下提示修改成功中斷返回
第14頁
C4: STI IRET
CCSCAN PROC NEAR;鍵盤掃描子程序 MOV AL,00H OUT 00H,AL IN AL,02H NOT AL AND AL,0FH CMP AL,00H;JNZ K1 JMP CCSCAN K1: MOV CX,0EFFH;LOOP K1
IN AL,02H CMP AL,00H JZ CCSCAN MOV AH,60H;K2: MOV AL,AH OUT 00H,AL IN AL,02H NOT AL AND AL,0FH CMP AL,00H;JNZ K3 OR AH,01H ROR AH,1;AND AH,0FH JMP K2 K3: ADD AL,AH RET CCSCAN ENDP CODE ENDS END START
程序清單
(二)利用DOS調(diào)用顯示DATA SEGMENT TABLE DB '888'
判斷是否有鍵按下延時(shí) 掃描第一列 判斷是否有鍵按下掃描下一列 第15頁
STRING1 DB 'Please enter a passward:',0DH,0AH,'$' STRING2 DB 'Wrong!',0DH,0AH,'$' STRING3 DB 'OPEN!','$' STRING4 DB 'CLOSE!','$' BUFFER DB 40,?,40 DUP(0)TAB_LEN EQU 26 DATA ENDS;STACK SEGMENT DB 100 DUP(0)STACK ENDS;CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:MOV AX,DATA MOV DS,AX MOV ES,AX LEA DX,STRING1 MOV AH,09H INT 21H LEA DX,BUFFER
MOV AH,0AH INT 21H MOV SI,DX INC SI MOV BL,[SI] MOV BH,0 INC SI LEA DI,TABLE MOV CX,TAB_LEN CMP CX,BX JNC GOON LEA DX,STRING2 JMP EXIT GOON: CLD MOV AL,[SI] SCAN:REPNZ SCASB JZ MATCH ERROR: LEA DX,STRING4 JMP EXIT MATCH: INC CX CMP CX,BX
第16頁
JC ERROR PUSH CX PUSH SI PUSH DI MOV CX,BX DEC DI REPZ CMPSB POP DI POP SI POP CX JZ FOUND JCXZ ERROR JMP SCAN FOUND: DEC DI LEA DX,STRING3 EXIT:MOV AH,09H INT 21H MOV AH,4CH INT 21H CODE ENDS END START
第17頁
第二篇:微機(jī)原理課程設(shè)計(jì)++多功能密碼鎖
微機(jī)原理課程設(shè)計(jì)報(bào)告
學(xué)院:
專業(yè): 班級(jí): 姓名:
指導(dǎo)老師:
設(shè)計(jì)任務(wù):多功能密碼鎖
目錄
一、設(shè)計(jì)目標(biāo)
二、設(shè)計(jì)要求
三、整體功能描述
四、硬件設(shè)計(jì)功能模塊 1.鍵盤 2.中斷控制 3.計(jì)時(shí) 4.按鍵響應(yīng) 5.報(bào)警 6.儲(chǔ)存器及片選 7.整機(jī)電路
五、程序流程圖
六、程序清單
七、設(shè)計(jì)總結(jié)
一、設(shè)計(jì)目標(biāo)
1.密碼鎖在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同 顯示O字樣。
2.當(dāng)輸入密碼錯(cuò)誤時(shí),發(fā)出錯(cuò)誤警告聲音,同時(shí)顯示C字樣。3.當(dāng)六次誤碼輸入的條件下,產(chǎn)生報(bào)警電平報(bào)警。
4.還可以實(shí)現(xiàn)對(duì)密碼的修改,修改成功后,蜂鳴器發(fā)出確認(rèn)音。
二、設(shè)計(jì)要求
1、選用8088和適當(dāng)?shù)拇鎯?chǔ)器及接口芯片完成相應(yīng)的功能。
2、用LED顯示器顯示電子鎖的當(dāng)前狀態(tài)。
3、畫出詳細(xì)的硬件連接圖。
4、給出程序設(shè)計(jì)思路、畫出軟件流程圖。
5、給出地址分配表。
6、給出所有程序清單并加上必要注釋。
7、完成設(shè)計(jì)說明書(列出參考文獻(xiàn),所用器件型號(hào))。
三、整體功能描述
本設(shè)計(jì)為多功能密碼鎖,使用存儲(chǔ)器保存密碼防止斷電后密碼丟失。工作時(shí)按下按鍵蜂鳴器會(huì)發(fā)出聲音提示按鍵有效并在數(shù)碼管有“--”閃爍字樣,若相隔1分鐘無按鍵按下,則清零。在輸入密碼正確的條件下輸出開鎖電平,控制電控鎖開啟,同時(shí)顯示O字樣。開鎖后可按下“復(fù)位/修改密碼鍵”實(shí)現(xiàn)修改密碼功能的轉(zhuǎn)入,之后先輸入密碼再輸入同樣的密碼確認(rèn)才可成功修改,修改成功后蜂鳴器會(huì)發(fā)出三聲,數(shù)碼管“O”閃爍三次提示修改密碼成功。當(dāng)輸入密碼錯(cuò)誤時(shí),發(fā)出錯(cuò)誤警告聲音,同時(shí)顯示FF字樣,當(dāng)輸入密碼錯(cuò)誤次數(shù)累積夠6次后,蜂鳴器會(huì)產(chǎn)生90秒的報(bào)警聲響進(jìn)行報(bào)警。
四、硬件設(shè)計(jì)功能模塊
本設(shè)計(jì)使用了8088、8259A、8255、8253、A28F512、74LS138、74LS148、地址鎖存器、數(shù)碼管以及74系列邏輯門、蜂鳴器、開關(guān)等芯片與元器件,實(shí)現(xiàn)了鍵盤輸入、中斷控制、計(jì)時(shí)、按鍵響應(yīng)、開鎖及報(bào)警等功能模塊。以下一一詳述。
1.鍵盤
本設(shè)計(jì)8255A的A口與兩片級(jí)聯(lián)的74LS148組合接用于輸入鍵盤,實(shí)現(xiàn)對(duì)輸入鍵號(hào)的讀入。工作時(shí),8086通過程序掃描鍵盤,當(dāng)無鍵盤按下時(shí),74LS148工作于無輸入狀態(tài),GS口輸出高電平,接到PA4作為識(shí)別有無按鍵按下信號(hào),PA口輸入為10H;當(dāng)有按鍵輸入時(shí),74LS148輸入口接到低電平,輸入有效,經(jīng)編碼后鍵號(hào)轉(zhuǎn)換為相應(yīng)二進(jìn)制編碼送到PA口,成為能為cpu識(shí)別的代表鍵值的有效信號(hào)。讀入的按鍵信號(hào)經(jīng)8086判斷后,根據(jù)不同的功能,輸出不同的按鍵響應(yīng),并轉(zhuǎn)移到相對(duì)應(yīng)的功能服務(wù)程序。
本設(shè)計(jì)總共用到11位按鍵,包括10位數(shù)碼輸入按鍵及一位“復(fù)位/修改密碼”按鍵,電路設(shè)計(jì)總共可用按鍵有16位,供升級(jí)功能使用。
鍵盤電路如下所示:
圖1 鍵盤連接圖
2.中斷控制
用一片8259芯片作為中斷控制接口電路。可通過編程開中斷,通過編程或者8253計(jì)時(shí)器關(guān)中斷。電路連接如下:
圖2 中斷控制器連接圖 3.計(jì)時(shí)
采用8253計(jì)時(shí)器控制中斷的關(guān)斷,實(shí)現(xiàn)單次輸入密碼超時(shí)則退出輸入密碼中斷子程序、報(bào)警器響鈴時(shí)間控制等功能。電路如圖2所示。
4.按鍵響應(yīng)
8255PC0、PC1接到數(shù)碼管片選、PC2接到蜂鳴器、PC3接到電子鎖。電路連接如圖3所示:
圖3 按鍵響應(yīng)、報(bào)警、開鎖功能電路 5.報(bào)警功能
同時(shí)用8255A的B口控制數(shù)碼管的顯示,C口片PC0、PC1選數(shù)碼管,PC2用來驅(qū)動(dòng)SPEAK發(fā)出報(bào)警。電路如圖3所示。
6.儲(chǔ)存器及片選電路:
圖4 片選及存儲(chǔ)器電路
7.整機(jī)電路圖:
五、軟件流程圖:
六、程序清單:
各芯片地址:8259 30H
8255 60H
8253 20H
存儲(chǔ)器
2000H
DATAS SEGMENT
;程序初始化
DATA1 DB '0','0','0','0','0','0'
DATA2 DB 6 DUP(?)
DATA3 DB 6 DUP(?)
DATA4 DB 6 DUP(?)DATAS ENDS
STACKS SEGMENT PARA STACK'STACK' STA DB 100 DUP(?)TOP EQU LENGTH STA STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS,ES:DATAS START:
MOV AX,DATAS
MOV DS,AX
MOV AX,STACKS
MOV SS,AX
MOV SP,TOP
MOV AX,0
;初始化中斷向量表
MOV ES,AX
MOV BX,84H
;IR1中斷類型碼21h*4=84h
MOV AX,OFFSET INPUT
MOV ES:[BX],AX
MOV AX,SEG INPUT
;段地址
MOV ES:[BX+2],AX
MOV AL,90H
;8255初始化,A口方式0,輸入;B、c口方式0,輸出
OUT 63H,AL MOV AL,36H
;8253初始化,方式0 OUT 23H,AL
MOV AL,13H
;8259A初始化,ICW1
OUT 30H,AL
MOV AL,20H
;ICW2
OUT 31H,AL
MOV AL,01
;ICW4
OUT 31H,AL
MOV AL,00
;OCW1
OUT 31H
MOV CX,06H
;從RAM里讀出密碼到DATA2,密碼為6位
MOV SI,2000H
MOV DI,OFFSET DATA2 LP1:MOV AL,[SI]
MOV [DI],AL
INC SI
INC DI
LOOP LP1
;讀入密碼結(jié)束
MOV BX,00
;輸入密碼次數(shù)計(jì)數(shù)器初始值 RE: MOV AL,03H
OUT 62H,AL
MOV AL,71H
;未開鎖,B口輸出顯示FF
OUT 61H,AL
MOV CX,06H
MOV SI,OFFSET DATA2
;定義SI、DI
MOV DI,OFFSET DATA3
HLT
STI
;停機(jī),開中斷,等待密碼輸入
CLD
INC BX
;輸入密碼次數(shù)加1
REPE CMPSB
;將輸入六位數(shù)碼與密碼比較
CMP CX,00
JE OPEN
;相等則轉(zhuǎn)到開鎖
CMP BX,06H
;輸入錯(cuò)誤且累積未夠6次,重新輸入
JNE RE
MOV AL,07H
;若錯(cuò)誤次數(shù)累積夠6次,觸發(fā)蜂鳴器報(bào)警
OUT 62H,AL
MOV AL,71H
;B口輸出FF
OUT 61H,AL MOV AL,2048H
;報(bào)警鈴響計(jì)時(shí),90秒后關(guān)斷蜂鳴器,保持顯示FF
OUT 20H,AL MOV AL,03H OUT 62H,AL
JMP DOON
;跳到結(jié)束
OPEN:MOV AL,0BH
;開鎖,并顯示00
OUT 62,AL
MOV AL,3FH
OUT 61H C1: IN AL,60H
CALL D20MS
;去抖動(dòng)
CMP AL,00H
JE C1
CMP AL,0AH
;掃描鍵盤,是否有修改密碼建(10)輸入
JNE DOON
;沒有則結(jié)束
C0: MOV SI,OFFSET DATA2
;重新定義SI、DI
MOV DI,OFFSET DATA3
MOV CX,06H
HLT
STI
;開中斷,輸入修改程序 C2: MOV AL,[DI]
MOV [SI],AL
INC SI
INC DI
LOOP C2
;輸入密碼轉(zhuǎn)移到data2
IN AL,60H
;掃描鍵盤,若有修改密碼鍵輸入則重新修改
CALL D20MS
CMP AL,0AH
JE C0 C3: MOV SI,OFFSET DATA2;再次輸入密碼確認(rèn)
MOV DI,OFFSET DATA3
MOV CX,06H
HLT
STI
REPE CMPSB
CMP CX,00
;若data2與data3不相等則從新輸入
JNE C3
MOV CX,06H
;若相等,則從DATA2寫密碼到RAM
MOV SI,2000H
MOV DI,OFFSET DATA2 C4: MOV AL,[DI]
MOV [SI],AL
INC SI
INC DI
LOOP C4
;轉(zhuǎn)存密碼結(jié)束
CALL RING2
;蜂鳴三次,表示修改好了
IN AL,60H
;掃描鍵盤,若有修改密碼鍵輸入則重新修改
CALL D20MS
CMP AL,0AH
JE C0
JMP DOON
;修改完畢,轉(zhuǎn)到結(jié)束
;中斷子程序
INPUT: PUSH AX
;保護(hù)現(xiàn)場(chǎng)
PUSH DS
PUSH BX
PUSH CX
PUSH DI
PUSH SI
MOV AL,1020H
;8253開始一分鐘輸入限制計(jì)時(shí)
OUT 20H,AL IN1:
IN AL,60H
;讀A口
CALL D20MS
;去抖動(dòng)
CMP AL,10H
JE IN1
;若無按鍵按下,則重新掃描
CMP AL,0AH
;若有按鍵按下,比較是否為復(fù)位鍵
JNE IN3
CALL RING1
;為復(fù)位鍵則輸出按鍵有效提示音并重新輸入
MOV CX,06H
MOV DI,OFFSET DATA3
JMP IN1 IN3:
CALL RING1
;若不是復(fù)位鍵,則把鍵值送到data3
MOV [DI],AL
INC DI
LOOP IN1
;循環(huán),掃描下一次按鍵,直到輸入夠6位密碼
MOV AL,01
OUT 30,AL
POP SI
;中斷結(jié)束恢復(fù)現(xiàn)場(chǎng)
POP DI
POP CX
POP BX
POP DS
POP AX
CLI
;關(guān)中斷
IRET
;中斷返回
DOON: MOV AH,4CH
INT 21H
;20ms延時(shí)子程序
D20MS PROC NEAR
PUSH CX
MOV CX,0080H D1: DEC CX
LOOP D1
;循環(huán)
POP CX
RET
;返回 D20MS ENDP
;輸入按鍵響應(yīng)子程序
RING1 PROC NEAR
PUSH AX
;保護(hù)AXCX
PUSH CX
MOV CX,05H
;設(shè)置提示音為0.1秒
MOV AL,07H
;輸出顯示“--”字樣
OUT 62H,AL
MOV AL,40H
OUT 61H,AL R1: CALL D20MS
LOOP R1
MOV AL,00H
OUT 62H,AL
POP CX
POP AX
RET
RING1 ENDP
;修改確認(rèn)鈴聲子程序
RING2 PROC NEAR
PUSH AX
PUSH CX
MOV CX,03H
R2: MOV AL,0FH
OUT 62H,AL
MOV AL,40H
OUT 61H,AL
CALL D20MS
CALL D20MS
CALL D20MS
CALL D20MS
CALL D20MS
MOV AL,00H
OUT 62H,AL
CALL D20MS
CALL D20MS
CALL D20MS
CALL D20MS
CALL D20MS
LOOP R2
MOV AL,0BH
OUT 62H,AL
;數(shù)碼管滅
;三次0.1秒的提示聲
;開鈴聲
;延時(shí)0.1秒
;關(guān)鈴聲
;延時(shí)0.1秒
;循環(huán)
;恢復(fù)開鎖狀態(tài)
;返回
MOV AL,3FH
OUT 61H,AL
POP CX
POP AX
RET RING1 ENDP
;返回 CODES ENDS END START
;結(jié)束
七、設(shè)計(jì)總結(jié)
1、遇到的問題及解決方法
首先遇到的問題是鍵盤的設(shè)計(jì),剛開始想用8279,但是對(duì)8279不夠熟悉,研究了一下就放棄了,再而想到用8255的A、B口組合64位矩陣鍵盤或者用C口低4位與高4位組合的16位鍵盤,但最后還是使用了開關(guān)與編碼器組合的形式組成16位鍵盤,簡單明了,但是還沒有解決雙鍵同時(shí)按下的問題。
再而由于學(xué)8259的時(shí)候不夠認(rèn)真,所以開始寫8259初始化的時(shí)候也顯的力不從心,最終參考了書本和其他資料,還是寫了出來。
設(shè)計(jì)中接觸到的另一個(gè)問題是密碼的儲(chǔ)存的問題,剛開始沒有想到cpu關(guān)機(jī)后密碼消失的問題,后來加了一篇存儲(chǔ)器實(shí)現(xiàn)了密碼的保存。
遇到的其他問題都跟同學(xué)們討論而得到了一定的解決。
2、課程設(shè)計(jì)總結(jié)
通過本次課程設(shè)計(jì),我進(jìn)一步了解 8255,8253,8259等芯片的內(nèi)部結(jié)構(gòu),熟悉各種基本工作模式和編程方法;
加深了對(duì) 8086中斷系統(tǒng)工作過程的了解;
學(xué)會(huì)綜合應(yīng)用多種微機(jī)接口與單元電路,構(gòu)成滿足要求的小型微機(jī)應(yīng)用系統(tǒng); 學(xué)會(huì)了CPU與存儲(chǔ)器的連接方法,擴(kuò)展存儲(chǔ)空間的方法。
3、參考資料
《微型計(jì)算機(jī)原理及應(yīng)用》 吳榮光 呂鈞星 編著,華南理工大學(xué)出版社 《微型計(jì)算機(jī)原理與匯編語言程序設(shè)計(jì)》 趙國相等編著,科學(xué)出版社 《精通Protel DXP 2004電路設(shè)計(jì)》張睿 趙艷華 劉志剛 編著,電子工業(yè)出版社
第三篇:微機(jī)原理課程設(shè)計(jì)電子鬧鐘
電子鐘設(shè)計(jì)
1任務(wù)要求
1.1顯示位置:屏幕中央.1.2日期顯示格式“時(shí):分:秒.1.312/24時(shí)制可調(diào).1.4在顯示屏上顯示提示語“CURRENT TIME IS:”和當(dāng)前時(shí)間.2工作原理
1時(shí)鐘起始時(shí)間的設(shè)置
先調(diào)用DOS操作系統(tǒng)模塊9,在顯示屏上顯示提示語“TIME SYSTEM IS:”,輸入時(shí)制12或24后,顯示“CURRENT TIME IS:”,再調(diào)用DOS操作系統(tǒng)模塊10,提示要輸入時(shí)鐘的起始時(shí)間,輸入時(shí)間的格式是“時(shí):分:秒”。輸入的時(shí)間以字符串形式存放在已定義的存儲(chǔ)器緩存區(qū)內(nèi),繼而調(diào)用TRAN1轉(zhuǎn)換子程序和MUL10乘10子程序,將存放在存儲(chǔ)器緩存區(qū)內(nèi)的ASCII字符轉(zhuǎn)換為壓縮BCD碼,并將時(shí)、分、秒的值放在寄存器CH、DH、DL中。
2延時(shí)程序
調(diào)用延時(shí)TIME延時(shí)中斷服務(wù)程序,累加到存放秒值的寄存器DL中,并進(jìn)行十進(jìn)制調(diào)整。在累加的過程中,不斷地對(duì)時(shí)、分、秒值進(jìn)行比較,秒不能等于60,分不能等于60,時(shí)不能等于24。秒等于限制值時(shí),則使秒值為0分值加1;分等于限制值時(shí),則使分值為0時(shí)值加1;時(shí)等于限制值時(shí),則使時(shí)值為0;時(shí)、分、秒值都不超過限制值時(shí),就轉(zhuǎn)顯示屏輸出。
3時(shí)間顯示
調(diào)用DOS操作系統(tǒng)模塊9,可用來顯示存儲(chǔ)器內(nèi)字符串。由于顯示的字符必須為ASCII碼,因?yàn)橐{(diào)用TRAN2轉(zhuǎn)換子程序?qū)⒓拇嫫鰿H、DH、DL內(nèi)壓縮BCD碼字符串轉(zhuǎn)換成ASCII字符串,字符串最后以字符“$”結(jié)束,并按時(shí)、分、秒的順序送存儲(chǔ)器緩沖區(qū)內(nèi)。調(diào)用DOS操作系統(tǒng)模塊9,(DS:DX)應(yīng)指向字符串首址。程序一旦進(jìn)入運(yùn)行,就將不間斷地在顯示屏顯示時(shí)間,要想程序停止運(yùn)行,可同時(shí)在鍵盤按下CTRL和BREAK二鍵。
4程序堆圖 5程序清單
DATA SEGMENT BUFFER DB 10;設(shè)置輸入字符串用緩沖區(qū) DB ? DB 10 DUP(?)TS DB 'TIME SYSTEM IS:$' CT DB 'CURRENT TIME IS:$' PM DB 'PM $' AM DB 'AM $' KEEPIP DW 0 KEEPCS DW 0 SR DB ? HOUR DB ? DAT ENDS STA SEGMENT PARA STACK 'STACK' STAPN DB 100 DUP(?)TOP EQU LENGTH STAPN STA ENDS COD SEGMENT START PROC FAR ASSUME CS:COD,DS:DAT,SS:STA MOV AX,DATA MOV DS,AX MOV AX,STA MOV SS,AX MOV AX,TOP MOV SP,AX MOV AH,35H;設(shè)置1CH中斷
MOV AL,1CH
INT 21H
;段地址放入ES,偏移地址放入BX
MOV KEEPIP,BX
;保偏移地址存
MOV KEEPCS,ES
;保存段地址
PUSH DS
MOV DX,OFFSET TIME
MOV AX,SEG TIME
MOV DS,AX
MOV AL,1CH
MOV AH,25H
;設(shè)置中斷功能調(diào)用
INT 21H
POP DS
MOV DX,OFFSET TS
;DOS功能模塊,顯示字符串
MOV AH,9
INT 21H
MOV AH,1
;DOS功能模塊,從鍵盤輸入字符
INT 21H
MOV AH,1
INT 21H
MOV SR,AL
MOV DL,0AH
;”換行“
MOV AH,2
INT 21H
MOV DL,0DH
;”回車“
MOV AH,2
INT 21H
MOV DX,OFFSET CT
;DOS功能模塊,顯示字符串,提示從鍵盤輸入
MOV AH,9
INT 21H
MOV DX,OFFSET BUFFER
MOV AH,10
;DOS功能模塊,從鍵盤輸入字符串到緩沖區(qū)
INT 21H
MOV BX,OFFSET BUFFER+2
CALL TRAN1
;將輸入的ASCII碼轉(zhuǎn)換為BCD碼
INC BX
INC BX
CALL TRAN1
INC BX
INC BX
CALL TRAN1
MOV BX,OFFSET BUFFER+2
MOV AL,[BX]
CALL MUL10
;將BCD碼轉(zhuǎn)換為壓縮的BCD碼
MOV CH,AL
INC BX
INC BX
MOV AL,[BX]
CALL MUL10
MOV DH,AL
INC BX
INC BX
MOV AL,[BX]
CALL MUL10
MOV DL,AL AGAIN: PUSH CX
MOV CX,18
STI
;開中斷 W:
CMP CX,0
JNE W
CLI
POP CX
MOV AL,DL
ADD AL,1
;”秒“加1
DAA
MOV DL,AL
CMP AL,60H
;”秒“與60比較
JNE DISPY
;小于60S,轉(zhuǎn)顯示程序
MOV DL,0
;等于60S, ”秒“值為0,”分“+1
MOV AL,DH
ADD AL,1
DAA
MOV DH,AL
CMP AL,60H
;”分“于60比較
JNE DISPY
MOV DH,0
MOV AL,CH
ADD AL,1
DAA
MOV CH,AL
MOV AL, SR
CMP AL,32H
JNE NEXT
JMP DISPY NEXT: MOV AL,CH
MOV HOUR,CH
CMP AL,24H
JNE DISPY
MOV CH,0
DISPY: CALL IOCLR
CALL IOSET1
CALL STAR
CALL IOSET2
CALL STAR
CALL IOSET
MOV BX,OFFSET BUFFER
MOV AL,SR
CMP AL,32H
JNE NEXT2
CALL AD12
MOV AL,HOUR
JMP NEXT1 NEXT2: MOV AL,CH
;”時(shí)“值轉(zhuǎn)換成ASCII碼
NEXT1: CALL TRAN2
;將壓縮BCD碼轉(zhuǎn)換成ASCII碼
INC BX
MOV AL,':'
MOV [BX],AL
INC BX
MOV AL,DH
;”分“值轉(zhuǎn)換成ASCII碼
CALL TRAN2
INC BX
MOV AL,':'
MOV [BX],AL
INC BX
MOV AL,DL
;”秒“值轉(zhuǎn)換成ASCII碼
CALL TRAN2
INC BX
MOV AL,'$'
;顯示字符串結(jié)束碼
MOV [BX],AL
PUSH BX
PUSH CX
PUSH DX
MOV DX,OFFSET BUFFER
MOV AH,9
;DOS功能模塊,顯示字符串
INT 21H
POP DX
POP CX
POP BX
JMP AGAIN
CLI
PUSH DS
MOV DX,KEEPIP
MOV AX,KEEPCS
MOV DS,AX
MOV AH,25H
MOV AL,1CH
INT 21H
POP DS
STI
RET START ENDP MUL10 PROC
;將BCD碼轉(zhuǎn)換為壓縮的BCD碼
ADD AL,AL
DAA
MOV CL,AL
ADD AL,AL
DAA
ADD AL,AL
DAA
ADD AL,CL
DAA
MOV CL,AL
INC BX
MOV AL,[BX]
ADD AL,CL
RET MUL10 ENDP TRAN1 PROC
MOV AL,[BX]
AND AL,0FH
MOV [BX],AL
INC BX
MOV AL,[BX]
AND AL,0FH
MOV [BX],AL
RET TRAN1 ENDP TRAN2 PROC
MOV CL,AL
SHR AL,1
SHR AL,1
SHR AL,1
SHR AL,1
OR AL,30H
MOV [BX],AL
INC BX
MOV AL,CL
AND AL,0FH
OR AL,30H
MOV [BX],AL
RET TRAN2 ENDP IOCLR PROC
PUSH CX
PUSH DX
PUSH BX
PUSH AX
MOV AX,0600H
MOV BH,02
SUB CX,CX
MOV DX,184FH
INT 10H
;ASCII碼轉(zhuǎn)換成BCD碼
;將壓縮BCD碼轉(zhuǎn)換成ASCII碼;調(diào)用BIOS,清除全屏幕
POP AX
POP BX
POP DX
POP CX
RET IOCLR ENDP TIME
PROC
DEC CX
IRET TIME
ENDP
PUSH DX PUSH BX PUSH AX MOV AH,02 SUB BH,BH MOV DX, 0C23H INT 10H POP AX POP BX POP DX RET IOSET ENDP IOSET1 PROC PUSH AX PUSH BX PUSH DX MOV DX,0A1AH MOV BH,00 MOV AH,02 INT 10H POP DX POP BX POP AX RET IOSET1 ENDP IOSET2 PROC PUSH AX PUSH BX PUSH DX MOV DX,0E1AH MOV BH,00 MOV AH,02 INT 10H
調(diào)用BIOS,設(shè)置屏幕光標(biāo)在中央
;POP DX POP BX POP AX RET IOSET2 ENDP STAR PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,3DH MOV BH,0 MOV BL,0CH CMP HOUR,24H JNZ X MOV HOUR,0H X: MOV CX,WORD PTR HOUR INT 10H POP DX POP CX POP BX POP AX RET STAR ENDP AD12 PROC PUSH DX MOV HOUR,CH MOV AL,SR CMP AL,32H JNE ZH MOV AL,HOUR CMP AL,24H JNE NEXT3 MOV CH,0 MOV HOUR,CH JMP S12 NEXT3: CMP AL,12H JBE S12 MOV DX,OFFSET PM MOV AH,9 INT 21H MOV AL,HOUR MOV DH,12H SUB AL,DH DAS MOV HOUR,AL JMP ZH S12: CMP AL,12H JNE Z MOV DX,OFFSET PM MOV AH,9 INT 21H JMP ZH Z: MOV DX,OFFSET AM MOV AH,9 INT 21H ZH: POP DX RET AD12 ENDP COD ENDS END STAR
6設(shè)計(jì)時(shí)遇到的問題及解決方法
在課程設(shè)計(jì)中遇到的最大的困難是如何利用軟、硬件配合的方式產(chǎn)生中斷,對(duì)中斷向量表的裝載還比較模糊,對(duì)中斷的初始化、具體設(shè)置、中斷返回還不是很清楚,程序設(shè)計(jì)一度陷入停滯狀態(tài),不知如何是好.于是我又重新翻閱了我們的學(xué)習(xí)課本,也就是電子工業(yè)出版社的《微機(jī)原理與接口技術(shù)(基于16位機(jī))》,重點(diǎn)研究了第9章《中斷》,通過對(duì)這一章的學(xué)習(xí),我終于對(duì)中斷有了詳細(xì)的認(rèn)識(shí),在設(shè)計(jì)程序時(shí)也容易了很多。
設(shè)中斷服務(wù)程序入口地址為TIME,則相應(yīng)的程序如下:
??
KEEPIP DW 0
;設(shè)置內(nèi)存緩沖區(qū),用于暫存 KEEPCS DW 0
;DOS的中斷矢量
??
;在主程序的初始化部分,先取出DOS的中斷矢量并加以保存,然后裝入需要的中斷矢量
MOV AH,35H
;取出DOS的中斷矢量,并送ES:BX
MOV AL,1CH
INT 21H
MOV KEEPIP,BX
;保存DOS的中斷矢量
MOV KEEPCS,ES
PUSH DS;保護(hù)DS
MOV DX,OFFSET TIME
;將中斷矢量取代
MOV AX,SEG TIME
;DOS的中斷矢量
MOV DS,AX
MOV AL,1CH
MOV AH,25H
;設(shè)置中斷功能調(diào)用
INT 21H
POP DS
;恢復(fù)DS ??
AGAIN: PUSH CX
MOV CX,18
STI
;開中斷 W:
CMP CX,0
JNE W
CLI ??
TIME
PROC
DEC CX
IRET TIME
ENDP ??
;在程序結(jié)尾處,用以下程序恢復(fù)DOS的中斷矢量 CLI
PUSH DS
MOV DX,KEEPIP
MOV AX,KEEPCS
MOV DS,AX
MOV AH,25H
MOV AL,1CH
INT 21H
POP DS
STI 7新增功能及實(shí)現(xiàn)方法
7.112時(shí)制時(shí)顯示AM或PM
??
AD12 PROC PUSH DX MOV HOUR,CH MOV AL,SR CMP AL,32H JNE ZH MOV AL,HOUR CMP AL,24H JNE NEXT3 MOV CH,0 MOV HOUR,CH JMP S12 NEXT3: CMP AL,12H JBE S12 MOV DX,OFFSET PM MOV AH,9 INT 21H MOV AL,HOUR MOV DH,12H SUB AL,DH DAS MOV HOUR,AL JMP ZH S12: CMP AL,12H JNE Z MOV DX,OFFSET PM MOV AH,9 INT 21H JMP ZH Z: MOV DX,OFFSET AM MOV AH,9 INT 21H ZH: POP DX RET AD12 ENDP ??
7.2綠色顯示時(shí)間
??
IOSET PROC PUSH DX PUSH BX PUSH AX MOV AH,02 SUB BH,BH MOV DX,0C23H INT 10H POP AX POP BX POP DX RET IOSET ENDP ??
7.3在數(shù)字上下方各顯示一行個(gè)數(shù)同小時(shí)數(shù)的”=“ ??
IOSET1 PROC PUSH AX PUSH BX PUSH DX MOV DX,0A1AH MOV BH,00 MOV AH,02 INT 10H POP DX POP BX POP AX RET IOSET1 ENDP IOSET2 PROC PUSH AX PUSH BX PUSH DX MOV DX,0E1AH MOV BH,00 MOV AH,02 INT 10H POP DX POP BX POP AX RET IOSET2 ENDP STAR PROC PUSH AX PUSH BX PUSH CX PUSH DX MOV AL,3DH MOV BH,0 MOV BL,0CH CMP HOUR,24H JNZ X MOV HOUR,0H X: MOV CX,WORD PTR HOUR INT 10H POP DX POP CX POP BX POP AX RET STAR ENDP ?? 8心得體會(huì)
這是我第一次用匯編語言來設(shè)計(jì)一個(gè)小程序,歷時(shí)一周終于完成,其間有不少感觸。首先就是借鑒.魯迅先生曾說過要”拿來“,對(duì),在這次課程設(shè)計(jì)中,就要”拿來"不少子程序,比如將ASCII碼轉(zhuǎn)換成BCD碼,將BCD碼轉(zhuǎn)換成壓縮BCD碼,將壓縮BCD碼轉(zhuǎn)換成ASCII碼等,這些子程序的設(shè)計(jì)是固定的,因此可以直接從指導(dǎo)資料中調(diào)用,至于設(shè)置光標(biāo)的子程序,只需要修改幾個(gè)參數(shù)就可以,這大大方便了我的設(shè)計(jì),為我節(jié)省了很多的時(shí)間。還有就是指導(dǎo)老師提供的資料很重要.這次課程設(shè)計(jì)的大部分程序,都可以在李老師提供的資料中找到,這對(duì)我的程序設(shè)計(jì)很有幫助,從這些資料中,我可以看出這個(gè)時(shí)鐘程序的基本流程,修改一些程序就可以實(shí)現(xiàn)這個(gè)時(shí)鐘的基本功能,添加一些程序就可以實(shí)現(xiàn)這個(gè)時(shí)鐘的附加功能,可以說,如果沒有李老師提供的源程序,我將面臨很大的困難。文章引用自:
第四篇:微機(jī)原理課程設(shè)計(jì)(電子時(shí)鐘)
電子時(shí)鐘課程設(shè)計(jì)
一:設(shè)計(jì)背景
電子數(shù)字鐘的應(yīng)用十分廣泛,通過計(jì)時(shí)精度很高的石英晶振(也可采用衛(wèi)星傳遞的時(shí)鐘標(biāo)準(zhǔn)信號(hào)),采用相應(yīng)進(jìn)制的計(jì)數(shù)器,轉(zhuǎn)化為二進(jìn)制數(shù),經(jīng)過譯碼和顯示電路準(zhǔn)確地將時(shí)間“時(shí)”“分”“秒”用數(shù)字的方式顯示出來。與傳統(tǒng)的機(jī)械鐘相比,它具有走時(shí)準(zhǔn)確,顯示直觀,無機(jī)械傳動(dòng),無需人的經(jīng)常調(diào)整等優(yōu)點(diǎn)。它廣泛用于電子表、車站、碼頭、廣場(chǎng)等公共場(chǎng)所的大型遠(yuǎn)距離時(shí)間顯示電子鐘。
二:數(shù)字鐘電路設(shè)計(jì)思路
1.選用8253計(jì)數(shù)器2進(jìn)行1s的定時(shí),其輸出OUT1與8259的IRQ0相連,當(dāng)定時(shí)到1s時(shí)產(chǎn)生一個(gè)中斷服務(wù)程序進(jìn)行時(shí)、分、秒的計(jì)數(shù),并送入相應(yīng)的存儲(chǔ)單元;8255的A口接七段數(shù)碼管的位選信號(hào),B口接數(shù)碼管的段選信號(hào)。時(shí)、分、秒的數(shù)值通過對(duì)8255的編程可送到七段數(shù)碼管上顯示。2.此程序主要由四部分組成:
第一部分為最主要的部分定義顯示界面;
第二部分為利用延時(shí)程序,并將調(diào)用的二進(jìn)制表示的時(shí)間數(shù)轉(zhuǎn)換成ASCII碼,并將時(shí)間數(shù)存入內(nèi)存區(qū);
第三部分將存在系統(tǒng)內(nèi)存區(qū)的時(shí)間數(shù)用七段數(shù)碼管顯示出來; 第四部分利用循環(huán)程序分別對(duì)秒個(gè)位、秒十位、分個(gè)位、分十位與相應(yīng)的規(guī)定值進(jìn)行比較,結(jié)合延時(shí)程序來實(shí)現(xiàn)電子鐘數(shù)字的跳變,從而形成走時(shí)準(zhǔn)確的電子鐘。
該程序?qū)崿F(xiàn)了準(zhǔn)確顯示秒和分,讀數(shù)準(zhǔn)確,走時(shí)精準(zhǔn)。此電子鐘能準(zhǔn)確的從0時(shí)0分0秒走時(shí)到23時(shí)59分59秒,然后能自動(dòng)回復(fù)到0時(shí)0分0秒循環(huán)走時(shí)。
3.基本工作原理:系統(tǒng)設(shè)計(jì)的電子時(shí)鐘主要由顯示模塊、時(shí)鐘控制模塊和時(shí)鐘運(yùn)算模塊三大部分組成。以8086微處理器作CPU,用8253做定時(shí)器產(chǎn)生時(shí)鐘頻率提供一個(gè)頻率為10kHz的時(shí)鐘信號(hào),要求每隔10ms完成一次掃描鍵盤的工作。在寫入控制字與計(jì)數(shù)初值后,每到10ms定時(shí)器就啟動(dòng)工作,即當(dāng)計(jì)數(shù)器減到1時(shí),輸出端OUT0輸出一個(gè)CLK周期的低電平,向CPU申請(qǐng)中斷,當(dāng)達(dá)到100次時(shí),則輸出端OUT1輸出1s,向CPU申請(qǐng)中斷,由8255控制一個(gè)數(shù)碼管顯示,當(dāng)計(jì)數(shù)到60s時(shí),則輸出端OUT2向CPU申請(qǐng)中斷,由另一數(shù)碼管顯示1min,同理由數(shù)碼管顯示1h.CPU處理,使數(shù)碼管的顯示發(fā)生變化。
電子時(shí)鐘的顯示格式HH:MM:SS由左到右分別為時(shí)、分、秒,并依次對(duì)秒、分、小時(shí)寄存器的內(nèi)容加一,六個(gè)數(shù)碼管動(dòng)態(tài)顯示時(shí)、分、秒的當(dāng)前值。最大記時(shí)23:59:59超過這個(gè)時(shí)間時(shí)分秒位都清零從00:00:00重新開始。8253芯片介紹
8253是NMOS工藝制成的可編程計(jì)數(shù)器/定時(shí)器,有幾種芯片型號(hào),外形引腳及功能都是兼容的,只是工作的最高計(jì)數(shù)速率有所差異,例如8253(2.6MHz),8253-5(5MHz)8253內(nèi)部有三個(gè)計(jì)數(shù)器,分別成為計(jì)數(shù)器0、計(jì)數(shù)器1和計(jì)數(shù)器2,他們的機(jī)構(gòu)完全相同。每個(gè)計(jì)數(shù)器的輸入和輸出都決定于設(shè)置在控制寄存器中的控制 字,互相之間工作完全獨(dú)立。每個(gè)計(jì)數(shù)器通過三個(gè)引腳和外部聯(lián)系,一個(gè)為時(shí)鐘輸入端CLK,一個(gè)為門控信號(hào)輸入端GATE,另一個(gè)為輸出端OUT。每個(gè)計(jì)數(shù) 器內(nèi)部有一個(gè)8位的控制寄存器,還有一個(gè)16位的計(jì)數(shù)初值寄存器CR、一個(gè)計(jì)數(shù)執(zhí)行部件CE和一個(gè)輸出鎖存器OL。
8255芯片介紹 8255特性:
①一個(gè)并行輸入/輸出的LSI芯片,多功能的I/O器件,可作為CPU總線與外圍的接口.②具有24個(gè)可編程設(shè)置的I/O口,即使3組8位的I/O口為PA口,PB口和PC口.它們又可分為兩組12位的I/O口,A組包括A口及C口(高4位,PC4~PC7),B組包括B口及C口(低4位,PC0~PC3).A組可設(shè)置為基本的I/O口,閃控(STROBE)的I/O閃控式,雙向I /O3種模式;B組只能設(shè)置為基本I/O或閃控式I/O兩種模
8255芯片
8253芯片
式,而這些操作模式完全由控制寄存器的控制字決定.8255引腳功能:
RESET:復(fù)位輸入線 , CS:芯片選擇信號(hào)線 , RD:讀信號(hào)線 , WR:寫入信號(hào) , D0~D7:三態(tài)雙向數(shù)據(jù)總線 ,PA0~PA7:端口A輸入輸出線 ,PB0~PB7:端口B輸入輸出線, PC0~PC7:端口C輸入輸出線, A0,A1:地址選擇線 三:程序流程圖
三、電
子
表
原
理
圖
:
四:程序代碼
D8279 equ 200H C8279 equ 202H C8253 equ 20bH D82530 equ 208H D82531 equ 209H C82590 equ 210H
C82591 equ 211H data segment HOUR
db 00 MINUTE
db 00 SECOND
db 008 STAT
db 00 LED
db 31H,06H,5bH,4fH,66H,6dH,7dH,27H,7fH,6fH,00H,00H DISBUF db 8 dup(0)data ends stack segment stack
dw 100 dup(?)stack ends code segment
assume cs:code,ds:data START:
MOV AX,DATA
MOV DS,AX
CLI
MOV AL,13H
MOV DX,C82590
OUT DX,AL
MOV AL,8
MOV DX,C82591
OUT DX,AL
MOV AL,1
OUT DX,AL
MOV AX,0
MOV ES,AX
LEA AX,INT0
MOV AX,CS
MOV ES:[4*8+2],AX
MOV DX,C8253
MOV AL,36H
OUT DX,AL
MOV DX,D82530
MOV AX,10000
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,C8253
MOV AL,36H
OUT DX,AL
MOV DX,D82531
MOV AX,100
OUT DX,AL
MOV AL,AH
OUT DX,AL
MOV DX,C8279
MOV AL,00H
OUT DX,AL
MOV AL,34H
OUT DX,AL
MOV AL,0D2H
OUT DX,AL
MOV STAT,0
MOV DX,C82591
MOV AL,0FEH
OUT DX,AL
WAIT1:
MOV DX,C8279
IN AL,DX
MOV AH,AL
AND AL,80H
JNE WAIT1
MOV AL,AH
AND AL,0FH
CMP AL,00H
JE WAIT1
MOV AL,40H
OUT DX,AL CHK: MOV DX,D8279
IN AL,DX
CMP AL,33H
JNE BBB
MOV DX,C82591
MOV AL,0FFH
OUT DX,AL
MOV AL,STAT
INC AL
MOV STAT,AL
CMP AL,1
JNZ AA1
MOV SI,OFFSET DISPBUF
MOV CX,4
MOV AL,00 BB0: MOV [SI],AL
INC SI
LOOP BB0
CALL DISP
JMP CHK AA1: CMP AL,2
JNZ AA2
MOV SI,OFFSET DISPBUF
MOV AL,00
MOV [SI],AL
INC SI
MOV [SI],AL
ADD SI,2
MOV [SI],AL
INC SI
MOV [SI],AL
CALL DISP
JMP CHK AA2: CMP AL,3
JNZ AA3
MOV SI,OFFSET DISPBUF+2
MOV CX,4
MOV AL,00 BB1: MOV [SI],AL
INC SI
LOOP BB1
CALL DISP
JMP CHK AA3: MOV STAT,00
MOV AL,0FEH
MOV DX,C82591
OUT DX,AL
CALL FULLSFM
CALL DISP
JMP CHK BBB: CMP AL,3BH
JE BBB0
JMP CCC BB0: MOV AL,STAT
CMP AL,1
JNZ BBB1
MOV AL,HOUR
ADD AL,1
DAA
MOV HOUR,AL
CALL FULLSH1
CALL DISP
JMP BBB BBB1: MOV AL,STAT
CMP AL,2
JNZ BBB3
MOV AL,MINUTE
ADD AL,1
DAA
MOV MINUTE,AL
CALL FULLFEN
CALL DISP
JMP BBB BBB3:
MOV AL,STAT
CMP AL,3
JZ
BBB4
JMP
DDD BBB4:
MOV AL,SECOND
ADD AL,1
DAA
MOV SECOND,AL
CALL FULLMIAO
CALL DISP
JMP BBB
CCC:
CMP AL,3AH
JE CC0
JMP DDD CC0:
MOV AL,STAT
CMP AL,1
JNZ CCC1
MOV AL,HOUR
SUB AL,1
DAS
MOV AL,HOUR
SUB AL,1
ADD AL,1
DAA
MOV SECOND,AL
CMP AL,60H
JNZ FANHUI
MOV SECOND,0
MOV AL,MINUTE
ADD AL,1
DAA
MOV MINUTE,AL
CMP AL,60H
JNZ FANHUI
MOV MINUTE,0
MOV AL,HOUR
ADD AL,1
DAA
MOV HOUR,AL
CMP AL,24H
JNZ FANHUI
MOV HOUR,0
CALL FULLSFM
CALL DISP
POP SI
POP DI
POP BX
POP AX
IRET FULL
SFM PROC NEAR
LEA DI,DISBUF
LEA BX,LED
LEA SI,SECOND
MOV CX,3 AA4:
MOV AL,[SI]
AND AL,0FH
XLAT
MOV [DI],AL
INC DI
MOV AL,[SI]
PUSH CX
MOV CL,4
SHR AL,CL
AND AL,0FH
XLAT
MOV [DI],AL
INC DI
POP CX
INC SI
LOOP AA4
RET FULL
SFM ENDP FULL
SHI PROC NEAR
LEA SI,DISBUF
MOV AL,0
MOV CX,4 CCC0:
MOV [SI],AL
INC SI
LOOP CCC0
LEA BX,LED
MOV AL,HOUR
AND AL,0FH
XLAT
MOV [SI],AL
XLAT
MOV [SI],AL
MOV AL,HOUR
MOV CL,4
SHR
AL,CL
AND AL,0FH
XLAT
INC
SI
MOV
[SI],AL
RET FULL
SHI ENDP FULL
FEN PROC NEAR
LEA SI,DISBUF
MOV AL,0
MOV [SI],AL
INC SI
MOV [SI],AL
INC SI
LEA BX,LED
MOV
AL,MINUTE
AND AL,0FH
XLAT
MOV
[SI],AL
MOV AL,MINUTE
MOV
CL,4
SHR AL,CL
AND AL,0FH
XLAT
INC SI
MOV
[SI],AL
RET FULL
FEN ENDP FULL
MIAO PROC NEAR
LEA SI,DISBUF
LEA BX,LED
MOV AL,SECOND
AND AL,0FH
XLAT
MOV [SI],AL
MOV AL,SECOND
MOV CL,4
SHR AL,CL
AND AL,0FH
XLAT
INC SI
MOV [SI],AL
MOV AL,0
INC SI
MOV [SI],AL
INC SI
MOV [SI],AL
INC SI
MOV [SI],AL
INC SI
MOV [SI],AL
RET FULL MIAO ENDP DISP
PROC NEAR
MOV CX,8
MOV DX,D8279
LEA SI,DISBUF DISI
MOV AL,[SI]
OUT DX,AL
INC SI
LOOP DISI
RET CODE ENDS
END START
第五篇:微機(jī)原理課程設(shè)計(jì)
電子信息科學(xué)與技術(shù)《微機(jī)原理》課程設(shè)計(jì)
一、本次課程設(shè)計(jì)的目的和意義
學(xué)習(xí)和掌握計(jì)算機(jī)中常用接口電路的應(yīng)用和設(shè)計(jì)技術(shù),充分認(rèn)識(shí)理論知識(shí)對(duì)應(yīng)用技術(shù)的指導(dǎo)性作用,進(jìn)一步加強(qiáng)理論知識(shí)與應(yīng)用相結(jié)合的實(shí)踐和鍛煉。通過這次設(shè)計(jì)實(shí)踐能夠進(jìn)一步加深對(duì)專業(yè)知識(shí)和理論知識(shí)學(xué)習(xí)的認(rèn)識(shí)和理解,使自己的設(shè)計(jì)水平和對(duì)所學(xué)的知識(shí)的應(yīng)用能力以及分析問題解決問題的能力得到全面提高。
二、設(shè)計(jì)時(shí)間、基本要求
(一)、設(shè)計(jì)時(shí)間:二周(二)、基本要求:
a.每題2人;b.設(shè)計(jì)出完整的接口電路;c.編寫出全部程序;d.在實(shí)驗(yàn)系統(tǒng)上調(diào)試通過。
三、設(shè)計(jì)選題與要求
選題一:多路模擬數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)
要求:設(shè)計(jì)一個(gè)2路以上的模擬數(shù)據(jù)采集系統(tǒng)。
1、用按鍵選擇那一路;
2、用LED顯示轉(zhuǎn)換結(jié)果(十進(jìn)制數(shù));
3、將每一路采集的100個(gè)數(shù)據(jù)存放到各自的存儲(chǔ)區(qū)中。
選題二:溫度測(cè)控系統(tǒng)的設(shè)計(jì)
要求:利用ADC0809設(shè)計(jì)一個(gè)溫度測(cè)控系統(tǒng),在LED數(shù)碼顯示器上顯示溫度值,并對(duì)溫度進(jìn)行測(cè)試和控制,當(dāng)檢測(cè)溫度到達(dá)溫度上限60℃時(shí)開風(fēng)扇(即開啟電動(dòng)機(jī),或以一個(gè)燈的亮滅表示),低于下限30℃時(shí)關(guān)閉風(fēng)扇,LED上的顯示內(nèi)容為:XX ℃(采用十進(jìn)制顯示)。
選題三:函數(shù)發(fā)生器的設(shè)計(jì)(一)要求:利用DAC0832設(shè)計(jì)一個(gè)函數(shù)發(fā)生器,并利用按鍵選擇輸出波形,能分別產(chǎn)生三角波、階梯波(每階梯1V)、正向鋸齒波、負(fù)向鋸齒波和方波。并利用按鍵(自行定義)進(jìn)行輸出波形選擇,同時(shí)將當(dāng)前輸出波形代號(hào)顯示在LED上(左邊位):0為方波、1為正向鋸齒波、2為負(fù)向鋸齒波、3 為三角波、4為階梯波。
選題四:函數(shù)發(fā)生器的設(shè)計(jì)(二)要求:設(shè)計(jì)一個(gè)三角波發(fā)生器,可利用鍵盤改變其輸出波形的幅值。例如,可利用1-5這5個(gè)數(shù)字鍵改變其輸出波形的幅值,當(dāng)按下1-5數(shù)字鍵時(shí)使D/A輸出幅值從1V增加到5V。
選題五:電子音樂播放器
要求:設(shè)計(jì)要求:利用8253作為音階頻率發(fā)生器,應(yīng)先對(duì)“2008年奧運(yùn)會(huì)主題歌”進(jìn)行編碼后存入音符表,并建立好音階表(只建立一個(gè)8度即可),音符長度不能少于60個(gè),連續(xù)播放3遍后停止。
選題六:鍵盤電子樂器
要求:利用并行接口8155作為鍵盤接口,設(shè)計(jì)一個(gè)具有2個(gè)八度音階的鍵盤樂器,音階鍵不少于16個(gè),采用掃描方式管理鍵盤,音域范圍自行定義。
選題七:電子時(shí)鐘設(shè)計(jì)
要求:利用8253定時(shí)器設(shè)計(jì)一個(gè)具有時(shí)、分、秒顯示的電子時(shí)鐘,并定義一個(gè)啟動(dòng)鍵,當(dāng)按下該
鍵時(shí)時(shí)鐘從當(dāng)前設(shè)定值(可在顯示緩沖區(qū)中予置)開始走時(shí)。
選題八:壓力測(cè)控系統(tǒng)的設(shè)計(jì)(一)要求:對(duì)壓力傳感器的信號(hào)進(jìn)行檢測(cè)并在LED數(shù)碼顯示器上顯示壓力值,當(dāng)壓力低于30pa時(shí),黃燈閃爍,閃爍周期為1秒。當(dāng)壓力高于150pa時(shí),紅燈閃爍。LED的顯示內(nèi)容為P=XXX。X為測(cè)試值。
選題九:可變輸出頻率方波發(fā)生器設(shè)計(jì)
要求:設(shè)計(jì)一個(gè)輸出方波頻率可利用按鍵改變的方波信號(hào)發(fā)生器(可以使用D/A也可以直接使用8253產(chǎn)生方波),利用鍵盤選擇方波發(fā)生器的輸出頻率并驅(qū)動(dòng)喇叭。輸出頻率=鍵號(hào)*100HZ
選題十:直流電機(jī)速度控制器設(shè)計(jì)
要求:利用D/A轉(zhuǎn)換器和按鍵設(shè)計(jì)一個(gè)直流電動(dòng)機(jī)轉(zhuǎn)速控制器。按鍵定義如下:0 停止,1-1/10轉(zhuǎn)速,2-2/10轉(zhuǎn)速?? 9 最高速(D/A輸出滿量程),鍵號(hào)每加1,D/A輸出增加0.5V
選題十一:可任意啟動(dòng)/停止的電子秒表設(shè)計(jì)
要求:6位LED數(shù)碼顯示,計(jì)時(shí)單位為1/100秒。利用功能鍵進(jìn)行啟/??刂?。其功能為:上電后計(jì)時(shí)器清0,當(dāng)?shù)谝淮危ɑ蚱鏀?shù)次)按下啟/停鍵時(shí)開始計(jì)數(shù)。第2次(或偶數(shù)次)按下該鍵時(shí)停止計(jì)時(shí),再一次按啟/停鍵時(shí)清零后重新開始計(jì)時(shí)??
選題十二:溫度測(cè)試系統(tǒng)設(shè)計(jì)
要求:利用溫度傳感器和ADC0809設(shè)計(jì)一個(gè)溫度測(cè)試系統(tǒng),將測(cè)試結(jié)果(十進(jìn)制)在LED上顯示出來,并定義一個(gè)保持按鍵,當(dāng)按下該鍵時(shí),將當(dāng)前測(cè)試值保持不變(按鍵不動(dòng)作時(shí)為正常測(cè)量顯示)。溫度顯示格式為:XXX ℃。(可以每隔0.3秒測(cè)量一次)
選題十三:壓力測(cè)試系統(tǒng)設(shè)計(jì)(二)要求:利用壓力傳感器和ADC0809設(shè)計(jì)一個(gè)壓力測(cè)試系統(tǒng),并將測(cè)試結(jié)果(十進(jìn)制)在LED上顯示出來,并定義一個(gè)測(cè)試最大值按鍵,當(dāng)按下該鍵時(shí),可進(jìn)行最大值測(cè)量(按鍵不動(dòng)作時(shí)為正常測(cè)量顯示),即:只有當(dāng)當(dāng)前測(cè)量值大于上次測(cè)量值時(shí)才刷新顯示,顯示格式為:P=XXX??梢悦扛?.3秒測(cè)量一次。
選題十四:簡易計(jì)算器系統(tǒng)設(shè)計(jì)
要求:設(shè)計(jì)一個(gè)可以進(jìn)行2位數(shù)四則運(yùn)算的計(jì)算器。
1、用按鍵輸入數(shù)和運(yùn)算符號(hào);
2、用LED顯示運(yùn)算過程和結(jié)果(十進(jìn)制數(shù));
3、可以表示出當(dāng)前的運(yùn)算類型;
4、具有清零和復(fù)位功能;
5、具有連續(xù)運(yùn)算功能。
選題十五:交通燈控制系統(tǒng)
要求:按照時(shí)間控制原則,利用并行接口和定時(shí)器,設(shè)計(jì)一套十字路口的交通燈管理系統(tǒng),通行時(shí)間(或禁止時(shí)間)30秒,準(zhǔn)備時(shí)間3秒,在準(zhǔn)備時(shí)間里黃燈閃爍3次,閃爍頻率為0.5秒,周而復(fù)始??衫?255、8253等接口電路。
選題十六:計(jì)件系統(tǒng)設(shè)計(jì)
要求:利用8253計(jì)數(shù),對(duì)外界脈沖技術(shù),并將計(jì)數(shù)值在數(shù)碼管上顯示,可通過鍵盤控制重新計(jì)數(shù)。
四、設(shè)計(jì)任務(wù)及要求
1、接口設(shè)計(jì):根據(jù)所選題目和所用的接口電路芯片設(shè)計(jì)出完整的接口電路,并在實(shí)驗(yàn)系統(tǒng)上完成電路的連接和調(diào)試通過。
2、程序設(shè)計(jì):要求畫出程序框圖,設(shè)計(jì)出全部程序并給出程序設(shè)計(jì)說明和程序注釋。
3、課程設(shè)計(jì)報(bào)告:(1)設(shè)計(jì)題目;
(2)系統(tǒng)的主要功能、作用以及主要技術(shù)性能指標(biāo);
(3)總體設(shè)計(jì)方案、工作和組成原理(框圖)或設(shè)計(jì)說明、采用的技術(shù)路線等;
(4)系統(tǒng)設(shè)計(jì):接口電路設(shè)計(jì),程序設(shè)計(jì)(程序框圖和程序清單及注釋)其他有關(guān)的理論分析和計(jì)算;
(5)設(shè)計(jì)總結(jié):對(duì)整個(gè)設(shè)計(jì)工作過程進(jìn)行歸納和綜合,對(duì)設(shè)計(jì)中所存在的問題和不足進(jìn)行分析和總結(jié),提出解決的方法、措施、建議和對(duì)這次設(shè)計(jì)實(shí)踐的認(rèn)識(shí)、收獲和提高。