




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、昆明理工大學(xué)信息工程與自動(dòng)化學(xué)院學(xué)生實(shí)驗(yàn)報(bào)告( 2012 2013 學(xué)年 第 2 學(xué)期 )課程名稱:可編程邏輯器件設(shè)計(jì) 開(kāi)課實(shí)驗(yàn)室:信自樓 2013 年4月 11日年級(jí)、專業(yè)、班計(jì)科101學(xué)號(hào)姓名張澤華成績(jī)實(shí)驗(yàn)項(xiàng)目名稱出租車計(jì)價(jià)器設(shè)計(jì)指導(dǎo)教師 江虹教師評(píng)語(yǔ)該同學(xué)是否了解實(shí)驗(yàn)原理:A.了解B.基本了解C.不了解該同學(xué)的實(shí)驗(yàn)?zāi)芰Γ篈.強(qiáng) B.中等 C.差 該同學(xué)的實(shí)驗(yàn)是否達(dá)到要求:A.達(dá)到B.基本達(dá)到C.未達(dá)到實(shí)驗(yàn)報(bào)告是否規(guī)范:A.規(guī)范B.基本規(guī)范C.不規(guī)范實(shí)驗(yàn)過(guò)程是否詳細(xì)記錄:A.詳細(xì)B.一般 C.沒(méi)有 教師簽名: 年 月 日一、引言汽車計(jì)價(jià)器是乘客與司機(jī)雙方的交易準(zhǔn)則,它是出租車行業(yè)發(fā)展的重要
2、標(biāo)志,是出租車中最重要的工具。它關(guān)系著交易雙方的利益。具有良好性能的計(jì)價(jià)器無(wú)論是對(duì)廣大出租車司機(jī)朋友還是乘客來(lái)說(shuō)都是很必要的。因此,汽車計(jì)價(jià)器的研究也是十分有一個(gè)應(yīng)用價(jià)值的。我國(guó)在70年代開(kāi)始出現(xiàn)出租車,但那時(shí)的計(jì)費(fèi)系統(tǒng)大都是國(guó)外進(jìn)口不但不夠準(zhǔn)確,價(jià)格還十分昂貴。隨著改革開(kāi)放日益深入,出租車行業(yè)的發(fā)展勢(shì)頭已十分突出,國(guó)內(nèi)各機(jī)械廠家紛紛推出國(guó)產(chǎn)計(jì)價(jià)器。出租車計(jì)價(jià)器的功能從剛開(kāi)始的只顯示路程(需要司機(jī)自己定價(jià),計(jì)算后四舍五入),到能夠自主計(jì)費(fèi),以及現(xiàn)在的能夠打一發(fā)票和語(yǔ)音提示、按時(shí)間自主變動(dòng)單價(jià)等功能。隨著城市旅游業(yè)的發(fā)展,出租車行業(yè)已成為城市的窗口,象征著一個(gè)城市的文明程度。隨著出租車行業(yè)的發(fā)展
3、,出租車已經(jīng)是城市交通的重要組成部分,從加強(qiáng)行業(yè)管理以及減少司機(jī)與乘客的糾紛出發(fā),具有良好性能的計(jì)價(jià)器對(duì)出租車司機(jī)和乘客來(lái)說(shuō)都是很必要的。我們?cè)O(shè)計(jì)采用8086為主控器,以A44E霍爾傳感器測(cè)距,實(shí)現(xiàn)對(duì)出租車的多功能的計(jì)價(jià)設(shè)計(jì),輸出采用8段數(shù)碼顯示管。二、總體設(shè)計(jì)方案利用8253作為定時(shí)/計(jì)數(shù)器,控制電機(jī)轉(zhuǎn)速并測(cè)量電機(jī)的轉(zhuǎn)數(shù);8255作為輸入輸出接口,控制數(shù)碼管顯示啟動(dòng)后經(jīng)過(guò)的里程數(shù)(小數(shù)點(diǎn)后取2位有效值)。硬件連接說(shuō)明:直流電機(jī)控制器的基礎(chǔ)上,增加了一個(gè)電機(jī)測(cè)速電路構(gòu)成。8255的B口作為數(shù)碼管的筆劃碼驅(qū)動(dòng);C口的低4位作為段碼控制,顯示實(shí)際里程,同時(shí),也用于輸出鍵盤的列掃描碼;PC6、PC7
4、輸入行掃描碼,用于識(shí)別按鍵,程序中僅使用了PC6行上的四個(gè)按鍵,其定義如下:X1:?jiǎn)?dòng)/停止鍵;X2:加速鍵,與X3、X4鍵組合使用;X3:“+”鍵;X4:“-”鍵。A口僅使用了PA0,輸出PWM脈沖信號(hào),通過(guò)驅(qū)動(dòng)芯片驅(qū)動(dòng)電機(jī),其輸出電壓的高低與PWM脈沖的占空比成正比。電機(jī)的轉(zhuǎn)數(shù),通過(guò)霍爾元件變換為脈沖個(gè)數(shù),送入8253的通道2,計(jì)數(shù)后,將轉(zhuǎn)數(shù)轉(zhuǎn)換為里程數(shù),最小單位為0.01公里,送CPU記錄,結(jié)果由數(shù)碼管顯示出來(lái)。(一)、軟硬件流程圖開(kāi)始主程序流程修改8、F號(hào)中斷矢量,指向IRO、IR7中斷處理程序?qū)懭?259的OCW1開(kāi)放IRO、IR7中斷初始化8253,CHO采取方式2,CH2采取方式
5、3,都采用先寫低8位,后寫高8位,二進(jìn)制計(jì)數(shù)寫入8253通道0和2初值為609和50關(guān)電機(jī),PA0=0將壓縮碼BCD碼的里程數(shù)SOEED轉(zhuǎn)換成非壓縮BCD碼,存顯示緩沖區(qū)調(diào)用顯示子程序打開(kāi)鍵盤端口有鍵按下嗎?NY延時(shí),去抖動(dòng)行掃描法識(shí)別按鍵,AH存掃描碼是加速鍵嗎?NYAH的最高位置1,D7=1是“+”鍵是“”鍵是啟/停鍵加速嗎?加速嗎?嗎?啟動(dòng)嗎?NNNYYY占空比+10占空比+1里程=0啟動(dòng)占空比-10占空比-1設(shè)為停止循環(huán)IRO中斷處理流程圖 IR7中斷處理程序流程圖保存現(xiàn)場(chǎng),AX入棧保存現(xiàn)場(chǎng),AX入棧是啟動(dòng)狀態(tài)嗎?開(kāi)中斷,允許IRO調(diào)速中斷N取出當(dāng)前壓縮BCD碼的里程數(shù)Y高電平時(shí)間1=
6、0?N里程數(shù)的低字節(jié)+1,十進(jìn)制調(diào)數(shù)重裝高電平時(shí)間,PA0=0Y高字節(jié)+0+進(jìn)位,十進(jìn)制調(diào)數(shù)保存結(jié)果到里程數(shù)SPEED中PWM定時(shí)時(shí)間1=0?恢復(fù)現(xiàn)場(chǎng),中斷結(jié)束NY中斷返回重裝PWM定時(shí)時(shí)間,PA0=1恢復(fù)現(xiàn)場(chǎng),中斷結(jié)束中斷返回顯示子程序流程圖保存現(xiàn)場(chǎng),寄存器入棧返回關(guān)顯示,恢復(fù)現(xiàn)場(chǎng)BX指向顯示碼表,SI指向緩沖區(qū)取出一個(gè)字節(jié)顯示數(shù)據(jù),轉(zhuǎn)換為顯示碼顯示小數(shù)點(diǎn),顯示碼OR 80H4位顯示碼顯示完顯示第2位數(shù)嗎據(jù)嗎數(shù)據(jù)嗎?NYNY(二)、源程序設(shè)計(jì)與硬件介紹中斷程序 里程計(jì)數(shù)中斷程序每當(dāng)霍爾傳感器輸出一個(gè)低電平信號(hào)就使中斷一次,當(dāng)里程計(jì)數(shù)器對(duì)里程脈沖計(jì)滿1000次時(shí),進(jìn)入里程計(jì)數(shù)中斷服務(wù)程序中,里
7、程變量加一。主函數(shù)中總金額也相應(yīng)地變化。中途等待中斷程序在中途等待中斷程序中,每1ms產(chǎn)生一次中斷,將當(dāng)前里程值送入某個(gè)緩存變量,每5分鐘將緩存變量中的值和當(dāng)前里程值比較,當(dāng)汽車停止,霍爾傳感器5分鐘沒(méi)有輸出信號(hào),當(dāng)前里程值和緩存變量?jī)?nèi)的值相同,則進(jìn)入等待計(jì)時(shí),每5分鐘記一次價(jià)格。顯示程序顯示程序利用定時(shí)器每1ms產(chǎn)生一次中斷,相應(yīng)變量置位,點(diǎn)亮一個(gè)數(shù)碼管,顯示一位數(shù)據(jù),利用主函數(shù)內(nèi)的循環(huán),實(shí)現(xiàn)動(dòng)態(tài)掃描顯示,同時(shí)根據(jù)數(shù)碼管余輝和人眼暫留現(xiàn)象,即可實(shí)現(xiàn)顯示。鍵盤程序鍵盤采用查詢的方式,放在主程序中,當(dāng)沒(méi)有按鍵按下的時(shí)候,循環(huán)主程序,一旦右按鍵按下,便轉(zhuǎn)向相應(yīng)的子程序處理,處理結(jié)束再返回。2.1
8、8086最小系統(tǒng)模塊1、8086CPU構(gòu)成的系統(tǒng)框圖如圖:2.2 芯片8255A1、 8255A的作用本實(shí)驗(yàn)利用8255A將模擬量轉(zhuǎn)換后的數(shù)字量傳送到 CPU。此外,8255采用查詢工作方式控制ADC0809工作。8086通過(guò)8255向七段LED顯示器發(fā)送控制信號(hào)。2、 8255A的功能分析8255A是可編程并行接口,可以根據(jù)外界條件(I/O設(shè)備需要的信號(hào)線和它能提供的狀態(tài)線)來(lái)使其構(gòu)成多種接口電路。8255A內(nèi)部有3個(gè)數(shù)據(jù)端口,即A口、B口、C口。口有三種工作方式:即方式、方式和方式,而口只能工作在方式或方式下,而口通常作為聯(lián)絡(luò)信號(hào)使用。本實(shí)驗(yàn)將控制字設(shè)為80H,初始化8255,使得 B口、
9、C口為輸出。在三種工作方式中,本設(shè)計(jì)只使用了方式0,即方式0是基本的輸入/輸出方式,在這種方式下,三個(gè)端口都可以由程序規(guī)定為輸入/出方式,但是不能既作為輸入又作為輸出,也沒(méi)有提供固定的聯(lián)絡(luò)信號(hào)。C口分為兩個(gè)4位-高4位和低4位,可以分別設(shè)置為輸入或輸出方式。3、8255A的技術(shù)參數(shù) 8255A的引腳信號(hào)CS:片選信號(hào),低電平有效;A0、A1:地址信號(hào)。JP52: PC口;JP53: PB口;JP56: PA口。1)與外設(shè)相連的PA7PA0:A口數(shù)據(jù)信號(hào)線;PB7PB0:B口數(shù)據(jù)信號(hào)線;PC7PC0:C口數(shù)據(jù)信號(hào)線;2)與CPU相連的RESET:復(fù)位信號(hào)。當(dāng)此信號(hào)來(lái)時(shí),所有寄存器都被清除。同時(shí)三
10、個(gè)數(shù)據(jù)端口被自動(dòng)置為輸入端口。D7D0:它們是8255A的數(shù)據(jù)線和系統(tǒng)總線相連。CS:片選信號(hào)。在系統(tǒng)中,一般根據(jù)全部接口芯片來(lái)分配若于低位地址(比如A5、A4、A3)組成各種芯片選擇碼,當(dāng)這幾位地址組成某一個(gè)低電平,于8255A被選中。只有當(dāng)有效時(shí),讀信號(hào)寫才對(duì)8255進(jìn)行讀寫。 RD:讀信號(hào)。當(dāng)此信號(hào)有效時(shí),CPU可從8255A中讀取數(shù)據(jù)。WR:寫信號(hào)。當(dāng)此信號(hào)有效時(shí),CPU可向8255A中寫入數(shù)據(jù)。A1、A0:端口選擇信號(hào)。8255A內(nèi)部有3個(gè)數(shù)據(jù)端口和1個(gè)控制端口,共4個(gè)端口。規(guī)定:A1、A0為00時(shí),選中A端口;A1、A0為01時(shí),選中B端口;A1、A0為10時(shí),選中C端口;A1、A
11、0為11時(shí),選中控制口。4、 8255A的方式控制字8255A的控制字有兩種:一種是方式選擇控制字,另一種是C口按位置位/復(fù)位控制字 方式選擇控制字圖1 8255A的方式控制字表 C口按位置位/復(fù)位控制字圖2 8255A的置位/控制字表2.3 芯片82531、 8253的功能分析Intel8253是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è)置在控制寄存器
12、中的控制字,互相之間工作完全獨(dú)立。每個(gè)計(jì)數(shù)器通過(guò)三個(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。 執(zhí)行部件實(shí)際上是一個(gè)16位的減法計(jì)數(shù)器,它的起始值就是初值寄存器的值,而初始值寄存器的值是通過(guò)程序設(shè)置的。輸出鎖存器的值是通過(guò)程序設(shè)置的。輸出鎖存器OL用來(lái)鎖存計(jì)數(shù)執(zhí)行部件CE的內(nèi)容,從而使CPU可以對(duì)此進(jìn)行讀操作。順便提一下,CR、CE和OL都是16位寄存器,但是也可以作8位寄存器來(lái)用1、8253的作用2、8253的引腳信號(hào)CS:片選
13、信號(hào),低電平有效;A0、A1:地址信號(hào);2.4可編程控制芯片8259A 8259A的原理一片8959A有8條中斷請(qǐng)求線IR0IR7,8259A被操作系統(tǒng)初始化后,就可以接收中斷信號(hào)了。8259A從IR請(qǐng)求線上接受中斷信號(hào),每個(gè)請(qǐng)求線有一個(gè)觸發(fā)器來(lái)保 存請(qǐng)求信號(hào),從而形成中斷請(qǐng)求寄存器(IRR)。同時(shí)如果中斷請(qǐng)求信號(hào)線上不是被屏蔽的,8259A向CPU發(fā)出 INT信號(hào),請(qǐng)求中斷。這時(shí)如果CPU是處于允許中斷狀況,CPU就會(huì)發(fā)送INTA信號(hào)給8259A進(jìn)入中斷響應(yīng)周期。如果有多個(gè)請(qǐng)求信號(hào)同時(shí)到達(dá),8259A的優(yōu)先權(quán)電路會(huì)對(duì)各個(gè)請(qǐng)求進(jìn)行優(yōu)先權(quán)選擇,將最高先權(quán)的請(qǐng)求在中斷響應(yīng)周期送到中斷服務(wù)寄存器(I
14、SR)中將它置位,同時(shí)復(fù)位IRR中的相應(yīng)位。接著CPU再次發(fā)送一個(gè)INTA脈沖給8259A,啟動(dòng)另外一個(gè)中斷相應(yīng)周期。8259A在這個(gè)相應(yīng)周期向數(shù)據(jù)總線的D0-D7上輸入一個(gè)中斷向量。CPU根據(jù)該向量的值*4后就可以從中斷入口地址表(IDT )中取出中斷服務(wù)程序的入口地址而轉(zhuǎn)入中斷服務(wù)程序。而8259A如果工作在自動(dòng)結(jié)束中斷(AEOI)模式時(shí)會(huì)自動(dòng)使其ISR中的相應(yīng)位復(fù)位,否則需要發(fā)出EOI命令使ISR復(fù)位。在老式的PC-XT/AT中,一般使用一片8259A進(jìn)行中斷信號(hào)請(qǐng)求。在現(xiàn)代的多數(shù)PC中,一般都會(huì)采用兩片8259A作為級(jí)連。其中一片是Master一片是Slave,由于Master上的一個(gè)
15、中斷請(qǐng)求線需要連接到Slave的INT腳,所以實(shí)際可以使用的外部中斷個(gè)數(shù)是15(8*2 1)個(gè)。8259A結(jié)構(gòu)1、數(shù)據(jù)總線緩沖器-D7D0數(shù)據(jù)總線緩沖器為三態(tài)、雙向、8位寄存器,數(shù)據(jù)線D7D0與CPU系統(tǒng)總線連接,構(gòu)成CPU與8259A之間信息傳送的通道。2、讀/寫控制邏輯-WR/WD讀/寫控制邏輯用來(lái)接收CPU系統(tǒng)總線的讀/寫控制信號(hào)和端口地址選擇信號(hào),用于控制8259A內(nèi)部寄存器的讀/寫操作。3、級(jí)聯(lián)緩沖/比較器 8259A既可以工作于單片方式,也可以工作于多片級(jí)聯(lián)方式,級(jí)聯(lián)方式硬件連接如圖6.10所示。級(jí)聯(lián)緩沖/比較器提供多片8259A的管理和選擇功能,其中一片為主片,其余為從片。4、中
16、斷控制邏輯中斷控制邏輯按照編程設(shè)定的工作方式管理中斷,負(fù)責(zé)向片內(nèi)各部件發(fā)送控制信號(hào),向CPU發(fā)送中斷請(qǐng)求信號(hào)INT和接收CPU回送的中斷響應(yīng)信號(hào)INTA,控制8259A進(jìn)入中斷管理狀態(tài)。5、中斷請(qǐng)求寄存器(interrupt request register,IRR)IRR是一個(gè)8位寄存器,用于記錄外部中斷請(qǐng)求。其中D7D0分別與外部中斷請(qǐng)求信號(hào)IR7IR0相對(duì)應(yīng),當(dāng)IRi(i07)有請(qǐng)求(電平或邊沿觸發(fā))時(shí),IRR中的相應(yīng)位Di置1,在中斷響應(yīng)信號(hào)INTA有效時(shí),DI被清除。6、中斷服務(wù)寄存器(interrupt service register,ISR) ISR是一個(gè)8位寄存器,用于記錄C
17、PU當(dāng)前正在服務(wù)的中斷標(biāo)志。當(dāng)外部中斷IRi(i07)的請(qǐng)求得到CPU響應(yīng)進(jìn)入服務(wù)時(shí),由CPU發(fā)來(lái)的第一個(gè)中斷響應(yīng)脈沖INTA將ISR中的相應(yīng)位Di(i07)置1,而ISR的復(fù)位則由8259A中斷結(jié)束方式?jīng)Q定。若定義為自動(dòng)結(jié)束方式,則由CPU發(fā)來(lái)的第二個(gè)中斷響應(yīng)脈沖INTA的后沿將Di復(fù)位為0;若定義為非自動(dòng)結(jié)束方式,則由CPU發(fā)送來(lái)的中斷結(jié)束命令將其復(fù)位。7、中斷屏蔽寄存器(interrupt mask register,IMR)IMR是一個(gè)8位寄存器,用來(lái)存放IR7IR0的中斷屏蔽標(biāo)志。它的8個(gè)屏蔽位D7D0與外部中斷請(qǐng)求IR7IR0相對(duì)應(yīng),用于控制IRi的請(qǐng)求是否允許進(jìn)入。當(dāng)IMR中的D
18、i位為1時(shí),對(duì)應(yīng)的IRi請(qǐng)求被禁止;當(dāng)IMR中的Di位為0時(shí),則允許對(duì)應(yīng)的中斷請(qǐng)求進(jìn)入。它可以由軟件設(shè)置或清除,通過(guò)編程設(shè)定屏蔽字,可以改變?cè)瓉?lái)的優(yōu)先級(jí)別。程序代碼見(jiàn)附錄三、總結(jié)與體會(huì) 作為一名自動(dòng)化的大三學(xué)生,我覺(jué)得做微機(jī)程設(shè)計(jì)是十分有意義的,而且是十分必要的。在已度過(guò)的大學(xué)時(shí)間里,我們大多數(shù)接觸的是專業(yè)課。我們?cè)谡n堂上掌握的僅僅是專業(yè)課的理論知識(shí),如何去鍛煉我們的實(shí)踐能力?如何把我們所學(xué)的專業(yè)基礎(chǔ)課理論知識(shí)運(yùn)用到實(shí)踐中去呢?我想做類似的課程設(shè)計(jì)就為我們提供了良好的實(shí)踐平臺(tái)。在做本次課程設(shè)計(jì)的過(guò)程中,我感觸最深的當(dāng)屬查閱大量的設(shè)計(jì)資料了。為了讓自己的設(shè)計(jì)更加完善,查閱這方面的設(shè)計(jì)資料是十分必
19、要的,同時(shí)也是必不可少的。其次,在這次課程設(shè)計(jì)中,我們運(yùn)用到了以前所學(xué)的專業(yè)課知識(shí),如:匯編語(yǔ)言、模擬和數(shù)字電路知識(shí)等。雖然過(guò)去從未獨(dú)立應(yīng)用過(guò)它們,但在學(xué)習(xí)的過(guò)程中帶著問(wèn)題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計(jì)的又一收獲。另外,這次課程設(shè)計(jì)讓我感到了團(tuán)隊(duì)合作的重要性。在團(tuán)隊(duì)中,我們互幫互助,對(duì)整個(gè)課程設(shè)計(jì)來(lái)說(shuō),這是至關(guān)重要的,缺少每一個(gè)人都會(huì)對(duì)我們的設(shè)計(jì)產(chǎn)生影響。還有要感謝指導(dǎo)老師在我們遇到困難時(shí),給予我們的建議與鼓勵(lì)。兩周的課程設(shè)計(jì)結(jié)束了,但是從中學(xué)到的知識(shí)會(huì)讓我受益終身。發(fā)現(xiàn)、提出、分析、解決問(wèn)題和實(shí)踐能力的提高都會(huì)受益于我在以后的學(xué)習(xí)、工作和生活中。為期兩個(gè)星期的畢業(yè)設(shè)計(jì)即將接近尾聲,
20、在劉老師和王老師的親切指導(dǎo)和同學(xué)的幫助下,此次設(shè)計(jì)才得以完成,在此向所有給予我此次課程設(shè)計(jì)指導(dǎo)和幫助的老師和同學(xué)表示最誠(chéng)摯的感謝:附錄 ;計(jì)價(jià)器(利用調(diào)速控制器控制電機(jī)的旋轉(zhuǎn),讀出總里程數(shù))DATASEGMENT TEQU 100;定時(shí)周期時(shí)間(基本周期*T)T_HIDB 50;高電平持續(xù)時(shí)間(基本周期*T_HI)NOW_TDB TNOW_HIDB 50T8253EQU 609;定時(shí)器8253的初值=1.19M*0.512MS(基本周期)=609RUNDB 0;啟停標(biāo)志SPEEDDW 0; 里程數(shù)STEPDW 50 ;10米的8253脈沖個(gè)數(shù)(即每來(lái)50個(gè)脈沖,則前進(jìn)10米) TABDB 3F
21、H,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;09的顯示碼DISPDB 4 DUP (0),52H;存儲(chǔ)轉(zhuǎn)速DATAENDSSTACK SEGMENT STACKDW 64 DUP(?);定義堆棧段STACK ENDSCODE SEGMENT;代碼段定義ASSUME CS:CODE,DS:DATA;段指定START:MOVAX,DATAMOVDS,AXPUSH DS;當(dāng)前用戶DS段入棧保存MOV AX,0000HMOV DS,AX;修改DS=0000H,指向中斷矢量表所在段MOV AX,OFFSET IRQ0;取出中斷處理子程序的入口偏移地址(以0為基準(zhǔn))ADD
22、AX,2000H;修正,實(shí)際地址=裝入地址的偏移量+相對(duì)于0起始的偏移量MOV SI,0020H;IR0中斷矢量號(hào)為08H,處于矢量表的20H23HMOV SI,AX;將偏移地址裝入矢量表MOV AX,0000HMOV SI,0022HMOV SI,AX;將段地址(0000H)裝入矢量表MOVAX,OFFSET IRQ7ADDAX,2000HMOVSI,0003CHMOVSI,AX;將偏移地址裝入IRQ7的中斷矢量MOV AX,0000HMOV SI,003EHMOV SI,AX;將段地址(0000H)裝入矢量表POP DS;恢復(fù)用戶數(shù)據(jù)段DSMOVAL,13HOUT20H,AL;寫入ICW1
23、MOVAL,08HOUT21H,AL;寫入ICW2MOVAL,01HOUT21H,AL;寫入ICW4MOV AL,7EH;D7,D0位復(fù)位為0OUT 21H,AL;寫入OCW1(IMR);開(kāi)放8259A的IR7和IR0中斷MOV AL,34H;設(shè)定8253通道0的工作方式,00110100BOUT 43H,AL;CH0采用先寫低8位,后寫高8位,方式2,二進(jìn)制計(jì)數(shù)MOV AX,T8253;計(jì)數(shù)初值為基本周期OUT 40H,AL;寫入CH0MOVAL,AHOUT40H,ALMOV AL,0B6H;設(shè)定8253通道2的工作方式,10110110BOUT 43H,AL;CH2采用先寫低8位,后寫高8
24、位=0,方式3,二進(jìn)制計(jì)數(shù)MOVAX,STEPOUT 42H,ALMOVAL,AHOUT 42H,AL;寫入CH2MOV AL,88H;寫入8255A的方式控制字,設(shè)定工作方式為10001000BOUT 63H,AL;即A口方式0輸出,C口高4位輸入,B口方式0輸出,C口低4位輸出MOVAL,00HOUT60H,AL;關(guān)電機(jī)STI;開(kāi)中斷 A1:MOVSI,OFFSET DISPMOVBL,2MOVAX,SPEED A11:ANDAL,0FHMOVSI+3,ALANDAH,0FHMOVSI+1,AHDECSIMOVAX,SPEEDMOVCL,4RORAX,CLDECBLJNZA11;將速度的壓
25、縮BCD碼轉(zhuǎn)換為非壓縮碼,存入緩沖區(qū)MOVSI,OFFSET DISPCALLDISPLAYMOVAL,00H;打開(kāi)開(kāi)關(guān)掃描OUT62H,ALINAL,62H;讀C口ANDAL,40HJZA2;有鍵按下,轉(zhuǎn)讀鍵盤JMPEXIT A2:MOVAH,00H;記錄按鍵掃描碼MOVCX,04;循環(huán)掃描4次MOVDL,77H;打開(kāi)第一行的開(kāi)關(guān)掃描 A21:INCAH;掃描碼+1ROLDL,1MOVAL,DLOUT62H,AL;打開(kāi)一行的開(kāi)關(guān)掃描INAL,62H;讀C口TESTAL,40H;取PC6(Y1)JNZA22;無(wú)鍵按下,轉(zhuǎn)CALLDALEYCALLDALEY;去抖動(dòng)INAL,62H;讀C口AND
26、AL,40H;取PC6(Y1)JNZA22;是抖動(dòng),轉(zhuǎn)CMPAH,2JNZRELEA;不是加速鍵,轉(zhuǎn)(單獨(dú)按下加速鍵無(wú)效)ORAH,80H;是加速鍵,則D7位=1JMPA22RELEA:CALLDISPLAYMOVAL,DLOUT62H,ALINAL,62HANDAL,40H;等待鍵釋放 JZRELEAJMPA23;AH存掃描碼,=1(X1鍵按下)啟停,=2加速,=3+,=4-鍵 A22:LOOPA21JMPEXIT A23:MOVAL,AHANDAL,0FHCMPAL,01HJNZA3;不是按下啟停鍵,則轉(zhuǎn)MOVAL,RUNTESTAL,01HJNZA24;原為啟動(dòng),則轉(zhuǎn)停止MOVRUN,0
27、1;置位啟動(dòng)標(biāo)志MOVNOW_T,T;重裝定時(shí)周期MOVAL,T_HIMOVNOW_HI,AL;重裝高電平定時(shí)時(shí)間MOVSPEED,00;重新計(jì)價(jià)(里程)JMPEXIT A24:MOVRUN,00;復(fù)位啟動(dòng)標(biāo)志MOVAL,00HOUT60H,AL;關(guān)電機(jī)JMPEXIT A3:MOVAL,AHANDAL,0FHCMPAL,03JNZA6;不是+鍵,轉(zhuǎn)MOVBL,1TESTAH,80HJZA4;沒(méi)按加速鍵,轉(zhuǎn)MOVBL,10;按加速鍵,加10,正常加1 A4:ADDBL,T_HICMPBL,100JBEA5MOVBL,100 A5:MOVT_HI,BL;增加的百分比不能100%JMPEXIT A6:MOVAL,AHANDAL,0FHCMPAL,04JNZEXIT;不是-鍵,轉(zhuǎn)MOVBH,01TESTAH,80HJZA7;沒(méi)按加速鍵,轉(zhuǎn)MOVBH,10;按加速鍵,-10,正常-1 A7:MOVBL,T_HISUBBL,BHJNCA8MOVBL,00 A8:MOVT_HI,BL;最小的百分比為0% EXIT:JMP A1;8259A的IR0中斷處理子程序(8253的CH0定時(shí)基本周期0.512MS)IRQ0:PUSHAXSTIMOVAL,RUNANDAL,ALJZIREXIT;
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 代理裝卸合同范例
- 醫(yī)療AI與教育創(chuàng)新培養(yǎng)跨界人才
- 醫(yī)療保健行業(yè)的區(qū)塊鏈金融應(yīng)用-以DeFi和NFT為例
- 業(yè)主出租商鋪合同范例
- 色素性紫癜性皮病的臨床護(hù)理
- 化學(xué)必修二前三章知識(shí)點(diǎn)總結(jié)模版
- 保護(hù)個(gè)人信息合同范例
- 小學(xué)二年級(jí)線上語(yǔ)文教學(xué)總結(jié)模版
- 公司租賃設(shè)備合同范例
- 塞罕壩精神學(xué)習(xí)心得體會(huì)模版
- 專利代理師筆試考試題庫(kù)帶答案
- 2025-2030中國(guó)重型商用車空氣彈簧行業(yè)市場(chǎng)現(xiàn)狀分析及競(jìng)爭(zhēng)格局與投資發(fā)展研究報(bào)告
- 2025年統(tǒng)計(jì)學(xué)期末考試題庫(kù):綜合案例分析題模擬試卷
- 祈使句(含答案解析)七年級(jí)英語(yǔ)下冊(cè)單元語(yǔ)法精講精練(人教版)
- 2025-2030中國(guó)微控制器(MCU)市場(chǎng)競(jìng)爭(zhēng)格局與投資建設(shè)深度解析研究報(bào)告
- 《中英飲食文化差異》課件
- 2024年韶關(guān)市始興縣事業(yè)單位招聘工作人員筆試真題
- 《課件:散熱模組概述與設(shè)計(jì)原理》
- 2025-2030中國(guó)風(fēng)電齒輪箱行業(yè)投資策略與可持續(xù)發(fā)展建議研究報(bào)告
- 華為招聘面試題及答案
- 盡職調(diào)查專項(xiàng)法律服務(wù)合同
評(píng)論
0/150
提交評(píng)論