微機(jī)原理課程設(shè)計(jì)-模擬醫(yī)院報(bào)警系統(tǒng).._第1頁(yè)
微機(jī)原理課程設(shè)計(jì)-模擬醫(yī)院報(bào)警系統(tǒng).._第2頁(yè)
微機(jī)原理課程設(shè)計(jì)-模擬醫(yī)院報(bào)警系統(tǒng).._第3頁(yè)
微機(jī)原理課程設(shè)計(jì)-模擬醫(yī)院報(bào)警系統(tǒng).._第4頁(yè)
微機(jī)原理課程設(shè)計(jì)-模擬醫(yī)院報(bào)警系統(tǒng).._第5頁(yè)
已閱讀5頁(yè),還剩35頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、微機(jī)原理與接口技術(shù)課程設(shè)計(jì)課程設(shè)計(jì)科目模擬醫(yī)院報(bào)警系統(tǒng)設(shè)計(jì)學(xué)生姓名學(xué)號(hào)班級(jí) 指導(dǎo)教師一.題意分析與解決方案需求分析采用7個(gè)開(kāi)關(guān)為7個(gè)病房的開(kāi)關(guān),其中有兩個(gè)是高危病房,當(dāng)有人按下時(shí)立 即在8個(gè)發(fā)光二級(jí)管上顯示出來(lái),并且該位置閃動(dòng),同時(shí)發(fā)出警報(bào),并通過(guò)一個(gè) 數(shù)碼管顯示出來(lái)。當(dāng)有高危病房的按鍵按下之后,立馬將他的病房號(hào)調(diào)到第一個(gè) 數(shù)碼管顯示并且相應(yīng)的數(shù)碼管顯示,警報(bào)山一個(gè)揚(yáng)聲器發(fā)出。設(shè)置一個(gè)警報(bào)清除 按鍵,清除所有報(bào)警情況。算法及思路(1)硬件部分針對(duì)需求中的分析,作如下解決:1)LED燈作為刺激信號(hào);2)用按鍵的高低電平信號(hào)作為用戶的回饋信號(hào);3)采用0832來(lái)控制蜂鳴器發(fā)出聲音;4)為了顯示出病

2、房號(hào),選擇了 7段數(shù)碼管作為顯示工具,用8255和8279來(lái)控 制數(shù)碼管;(2)軟件部分首先,根據(jù)硬件需求采用8255A, 8279A和0832,為實(shí)現(xiàn)對(duì)數(shù)碼管、鍵盤(pán)、 LED燈和蜂鳴器的控制,采用匯編語(yǔ)言,分別對(duì)8255A和0832進(jìn)行初始化設(shè)置, 然后采用繼承函數(shù)從數(shù)據(jù)庫(kù)里對(duì)8279相關(guān)功能進(jìn)行調(diào)用。然后,程序查詢8255A的PA 口輸入的開(kāi)關(guān)信號(hào),決定8255A何時(shí)向外部設(shè) 備發(fā)送的刺激信號(hào),即低電平信號(hào)(LED燈點(diǎn)亮),通過(guò)相關(guān)的代碼用8279對(duì) 數(shù)碼管進(jìn)行位選和段選。最后,程序查詢8255A的PB端口接收緩沖區(qū)內(nèi)回饋電信號(hào),根據(jù)所得到的 信號(hào)(低電平有效),調(diào)用相應(yīng)模式子程序,并且在

3、數(shù)碼管上顯示病房號(hào),蜂鳴 器發(fā)出聲音。二.硬件設(shè)計(jì)芯片82551)芯片8255在本設(shè)計(jì)中的作用芯片8255在本實(shí)驗(yàn)中主要用于控制按鍵的開(kāi)關(guān)、數(shù)碼管以及LED燈。2)芯片8255的功能分析DB=內(nèi)綁邏輯A坦8位內(nèi)綁效據(jù)總5按II |B31瑞口 C卜半部K) PC 廠 PCoc=oIQ PB廣PB。n b ()82弓5內(nèi)部結(jié)構(gòu)圖控制B81控制RD- WR-24! SLOZ3 OIJVRO3 Win OHIO?ZJ(JUIB3 n OUTAO miiAiUU1A2 OI1TA3?3 lu wi gPI C5 3 AO本圖片為8279引腳圖8279采用單5V電源供電,40腳封裝。DBODB7:雙向數(shù)據(jù)

4、總線,用來(lái)傳送8279與CPU之間的數(shù)據(jù)和命令。CLK:時(shí)鐘輸入線,用以產(chǎn)生內(nèi)部定時(shí)的時(shí)鐘周期。RESET:復(fù)位輸入線,8279復(fù)位后被置為字符顯示左端輸入,二鍵閉鎖的觸 點(diǎn)回彈型式,程序時(shí)鐘前置分頻器被置為31, RESET信號(hào)高電平有效。CS:片選輸入線,低電平有效,單片機(jī)在CS端為低時(shí)可以對(duì)8279讀/寫(xiě)操 作。A0:緩沖器低位地址,當(dāng)A0為高電平時(shí),表示數(shù)據(jù)總線上為命令或狀態(tài),當(dāng) 為低電平時(shí),表示數(shù)據(jù)總線上為數(shù)據(jù)。RD:讀信號(hào)輸入線,低電平有效,將緩沖器讀出,數(shù)據(jù)送往外部總線。WR:寫(xiě)信號(hào)輸入線,低電平有效,將緩立器讀出,將數(shù)據(jù)從外部數(shù)據(jù)總線寫(xiě)入 8279的緩沖器。RL2 1 40 V

5、CCIRQ:中斷請(qǐng)求輸出線,高電平有效,在鍵盤(pán)工作方式下,當(dāng)FIFO/傳感器RAM中 有數(shù)據(jù)時(shí),此中斷線變?yōu)楦唠娖?,在FIFO/傳感器RAM每次讀出時(shí),中斷線就下降為低 電平,若在RAM中還有信息,則此線重乂變?yōu)楦唠娖?。在傳感器工作方式中,每?dāng)探測(cè)到 傳感器信號(hào)變化時(shí),中斷線就變?yōu)楦唠娖健LOSL3:掃描線,用來(lái)掃描按鍵開(kāi)關(guān),傳感器陣列和顯示數(shù)字,這些可被 編程或被譯碼。RL0RL7:回送線,經(jīng)過(guò)按鍵或傳感器開(kāi)關(guān)與掃描線聯(lián)接,這些回送線內(nèi)部 設(shè)置有上拉電路,使之保持為高電平,只有當(dāng)一個(gè)按閉合時(shí),對(duì)應(yīng)的返回線變?yōu)榈碗娖剑?無(wú)按鍵閉合時(shí),均保持高電平。SHIFT:換位功能,肖有開(kāi)關(guān)閉合時(shí)被拉為低

6、電平,沒(méi)有按下SHIFT開(kāi)關(guān)時(shí), SHIFT輸入端保持高電平,在鍵盤(pán)掃描方式中,按鍵一閉合,按鍵位置和換位輸入狀態(tài)一起 被存貯起來(lái)。CNTL/STB:當(dāng)CNTL/STB開(kāi)關(guān)閉合時(shí)將其拉到低電平,否則始終保持高電平, 對(duì)于鍵盤(pán)輸入方式,此線用作控制輸入端,當(dāng)鍵被按下時(shí),按鍵位置就和控制輸入狀態(tài)一 起被存貯起來(lái),在選通輸入方式中,作選通用,把數(shù)據(jù)存入FIFO RAM中。OUTA3OUTAO及OUTB3-OUTBO:顯示輸出A 口及B 口,這兩個(gè)口是16X4 切換的數(shù)字顯示。這兩個(gè)端口可被獨(dú)立控制,也可看成一個(gè)8位端口。BD:空格顯示,此輸出端信號(hào)用于在數(shù)字轉(zhuǎn)換時(shí)將顯示空格或者用顯示空格 命令控制其

7、顯示空格字符。VCC: +5V電源輸入線。VSS:地線輸入線。8279的編程方法可按其功能分為:鍵盤(pán)功能塊;顯示功能塊;控制功能塊;與CPU接口功能塊 控制功能塊包括控制和定時(shí)寄存器,定時(shí)和控制,掃描訃數(shù)器三部分,它主要用來(lái)控制鍵盤(pán)和 顯示功能塊工作.:控制和定時(shí)寄存器:用于存貯來(lái)自CPU的編程命令,CPU對(duì)8279編程以確 定鍵盤(pán)與顯示器工作方式和其它工作條件時(shí),先把命令控制數(shù)據(jù)放到數(shù)據(jù)總線上,然后使A0二 1, WR二OCS二0,并在 WR上升沿把命令鍵存在控制和定時(shí)寄存器中,并經(jīng)譯碼,建立適當(dāng)?shù)墓δ?:定時(shí)和控制:它含基本的定時(shí)訃數(shù)器,第一個(gè)計(jì)數(shù)器是一個(gè)分頻系數(shù)為 2-31的前置定時(shí)器,

8、分頻系數(shù)可山程序預(yù)置,使內(nèi)部頻率為lOOKHz,從而能給出鍵盤(pán)掃描時(shí)間和 反跳時(shí)間,其它計(jì)數(shù)器將此基本頻率分頻后,提供適當(dāng)?shù)陌存I掃描行掃描鍵 盤(pán)陣列掃描.以及顯示器掃描次數(shù).:掃描汁數(shù)器:掃描計(jì)數(shù)器有兩種工作方式,在編碼I:作方式時(shí),計(jì)數(shù)器提供 一種二進(jìn)制計(jì)數(shù),通過(guò)管腳SL0-SL3輸出后經(jīng)外部譯碼才能提供給鍵盤(pán)和顯示器的掃描作用, 在譯碼工作方式時(shí),掃描計(jì)數(shù)器對(duì)最低二位進(jìn)行譯碼,SL0-SL3輸出4選1的譯碼信號(hào),作為 顯示器和鍵盤(pán)的譯碼掃描.:鍵盤(pán)功能塊包括:返回緩沖器,鍵盤(pán)反跳及控制,8x8 FIFO傳感器 RAM, FIFO/傳感器RAM狀態(tài).2. 返回緩沖器與鍵盤(pán)反跳及控制8條返回線

9、被返回緩沖器緩沖,在鍵盤(pán)丄作方式中,這兒條線被逐個(gè)檢測(cè),以 找出該行鍵中閉合的鍵,如果反跳電路測(cè)知某鍵閉合,則它等待,然后重核此鍵是否仍然閉合, 如果仍閉合,那么該鍵在矩陣中的行列地址以及SHIFT和CXTL的狀態(tài)一起被送到 FIF0RM!中,其在 FIFO RAM 中的數(shù)據(jù)格式如下:D7 D6 D5 D4 D3 D2 DI DOCNTL SHIFT SCAN RET URN數(shù)據(jù)格式中,最高位CNTL,次高位為SHIFT狀態(tài),D5-D3來(lái)自掃描訃數(shù) 器,D2-D0來(lái)自返回計(jì)數(shù)器,掃描線計(jì)數(shù)器和回掃線計(jì)數(shù)器的值分別反映出被按下鍵的行.列的值,如果 在傳感器陣列中,返回線上的數(shù)據(jù)直接進(jìn)入傳感器RA

10、M中相應(yīng)于陣列中正被掃中的那行,這樣 每個(gè)開(kāi)關(guān)位置就直接反映為一個(gè)傳感器RAM的位置.芯片DAC0832的技術(shù)參數(shù)圖 2-2 DAC0832DAC0832芯片釆用CMOS工藝,四象限乘法型DAC與微機(jī)兼容,數(shù)據(jù)輸入能 與雙緩沖,單緩沖或直接緩沖通過(guò)三種方式工作。1、單緩沖方式。單緩沖方式是控制輸入寄存器和DAC寄存器同時(shí)接收資料, 或者只用輸入寄存器而把DAC寄存器接成直通方式。此方式適用只有一路模擬量 輸出或兒路模擬量異步輸出的情形。2、雙緩沖方式。雙緩沖方式是先使輸入寄存器接收資料,再控制輸入寄存 器的輸出資料到DAC寄存器,即分兩次鎖存輸入資料。此方式適用于多個(gè)D/A 轉(zhuǎn)換同步輸出的情節(jié)

11、。3、直通方式。直通方式是資料不經(jīng)兩級(jí)鎖存器鎖存,即CS*, XFER* ,WR1* , WR2*均接地,ILE接高電平。此方式適用于連續(xù)反饋控制線路和不帶微機(jī)的控 制系統(tǒng),不過(guò)在使用時(shí),必須通過(guò)另加I/O接口與CPU連接,以匹配CPU與D/A 轉(zhuǎn)換。結(jié)構(gòu):DOD7: 8位數(shù)據(jù)輸入線,TTL電平,有效時(shí)間應(yīng)大于90ns (否則鎖存器的數(shù) 據(jù)會(huì)出錯(cuò));ILE:數(shù)據(jù)鎖存允許控制信號(hào)輸入線,高電平有效;CS:片選信號(hào)輸入線(選通數(shù)據(jù)鎖存器),低電平有效;WR1:數(shù)據(jù)鎖存器寫(xiě)選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。山ILE、 CS、WR1的邏輯組合產(chǎn)生LE1,當(dāng)LE1為高電平時(shí),數(shù)據(jù)鎖存器狀態(tài)

12、隨輸入數(shù)據(jù) 線變換,LE1的負(fù)跳變時(shí)將輸入數(shù)據(jù)鎖存;XFER:數(shù)據(jù)傳輸控制信號(hào)輸入線,低電平有效,負(fù)脈沖(脈寬應(yīng)大于500ns) 有效;WR2: DAC寄存器選通輸入線,負(fù)脈沖(脈寬應(yīng)大于500ns)有效。山WR2、XFER的邏輯組合產(chǎn)生LE2,當(dāng)LE2為高電平時(shí),DAC寄存器的輸出隨寄存器的輸 入而變化,LE2的負(fù)跳變時(shí)將數(shù)據(jù)鎖存器的內(nèi)容打入DAC寄存器并開(kāi)始D/A轉(zhuǎn)換。IOUT1:電流輸出端1,其值隨DAC寄存器的內(nèi)容線性變化;I0UT2:電流輸出端2,其值與I0UT1值之和為一常數(shù);Rfb:反饋信號(hào)輸入線,改變Rfb端外接電阻值可調(diào)整轉(zhuǎn)換滿量程精度;Vcc:電源輸入端,Vcc的范圍為+5

13、V+15V:VREF:基準(zhǔn)電壓輸入線,VREF的范圍為-10V+10V:AGND:模擬信號(hào)地;DGND:數(shù)字信號(hào)地。主要參數(shù)為:表2-2 DAC0832主要技術(shù)參數(shù)轉(zhuǎn)換時(shí)間lus分辨率8位功耗20mW單一工作電源+5V+15V電流建立時(shí)間1線性度8, 9或10位增益溫度系數(shù)%usFS/*C在此實(shí)驗(yàn)箱中的DAC0832芯片中包含有運(yùn)算放大器,用來(lái)將電流信號(hào)轉(zhuǎn)換成 電壓信號(hào)量,并且能夠放大信號(hào)量。本實(shí)驗(yàn)是通過(guò)0832來(lái)控制蜂鳴器。選擇器件蜂鳴器1)蜂鳴器在本設(shè)計(jì)中的作用在本實(shí)驗(yàn)中,蜂鳴器是用做報(bào)警處理。Ctrl O圖2-3蜂鳴器電路圖2)蜂鳴器的功能分析揚(yáng)聲器是將電能轉(zhuǎn)化成聲能,并將聲能輻射到空氣

14、中去的一種電聲轉(zhuǎn)換器 件。當(dāng)輸入端輸入一定頻率的方波時(shí),在RC震蕩電路的作用下,蜂鳴器會(huì)發(fā)出 定頻率的聲音。3)蜂鳴器的技術(shù)參數(shù)它一般包括靈敬度、頻率響應(yīng)、額定功率、額定阻抗、指向性、失真、音質(zhì) 聽(tīng)感評(píng)價(jià)等。本實(shí)驗(yàn)只關(guān)心應(yīng)用電壓,其為5V。選擇數(shù)碼管P1H110.00 .101DAU41E圖2-4數(shù)碼管電路圖圖2-5數(shù)碼管(1)數(shù)碼管在本設(shè)計(jì)中的作用在本設(shè)訃中,數(shù)碼管的作用不容小覷,主要用于顯示病房號(hào)。(2)數(shù)碼管的技術(shù)參數(shù)分析使用數(shù)碼管時(shí),應(yīng)該區(qū)分?jǐn)?shù)碼管時(shí)共陰還是共陽(yáng),在本設(shè)計(jì)中,所有的數(shù) 碼管都是共陰的。只要段選輸入高電平即可點(diǎn)亮不同位置的數(shù)碼管進(jìn)而顯 示數(shù)據(jù)。表2-3共陽(yáng)極LED顯示管段

15、選碼編碼表數(shù)字 Dp gfedcba二進(jìn)制編碼011000000COH111111001F9H210100100A4H310110000BOH41001100199H51001001092H61000001082H711111000F8H81000000080H91000011090HLED燈圖2-6 LED原理圖(1)LED燈在本設(shè)汁中的作用在本設(shè)計(jì)中,LED燈的作用是作為病房信號(hào),按下按鍵時(shí),led發(fā)光。(2)LED燈的功能分析通過(guò)LED燈的亮、滅作為一個(gè)刺激信號(hào)。(3)LED燈的技術(shù)參數(shù)分析LED燈的功能較為簡(jiǎn)單,為一個(gè)發(fā)光二極管,當(dāng)該二極管導(dǎo)通時(shí)閃亮,截止時(shí)不閃亮。按鍵圖2-7微型按鈕

16、n00n2(1)按鍵在本設(shè)計(jì)中的作用在本設(shè)計(jì)中,鍵盤(pán)主要的作用是啟動(dòng)系統(tǒng)。(2)按鍵的功能分析按鍵的功能比較單一,按鍵或不按鍵,該端口將輸出不同的電平信號(hào)。(3)按鍵的技術(shù)參數(shù)分析按鍵一段接芯片輸入端口,另一端接VCC,當(dāng)按鍵時(shí),開(kāi)關(guān)閉合,電平強(qiáng)制被拉低,通過(guò)低電平的信號(hào)輸入即可知道是否有按鍵的輸入啦。硬件總邏輯圖及其說(shuō)明硬件原理圖:A3區(qū)AO、 Al、 CS1B4區(qū)AO、AE CSA3區(qū)CS3F3區(qū)CSB4區(qū)A、CG6區(qū)按鍵、LEDB4區(qū)BG5區(qū)BG5區(qū)JP41C1區(qū)開(kāi)關(guān)D1區(qū)CTRLF3區(qū)OUTE5區(qū)CLKB22ME5AOA3A0硬件原理圖說(shuō)明:圖2-8-1硬件原理圖表2-4連線圖軟件仿真

17、圖圖2-8-2軟件總體仿真圖 - p三二三-|;:1r*rc八mez MFU.ssssni E4 rnt卩S3rocxEsa 二:wl;cl1r?3l:4r*L.Cl;e 話ftlAgTU:E-圖2-8-3左半部分圖TtrrMksraMM二 W,3k.tctLimkl圖2-8-4軟件右半部分圖三.控制程序設(shè)計(jì)控制程序設(shè)計(jì)思路說(shuō)明本程序釆用模塊化的程序設(shè)訃思想,將完成整個(gè)作業(yè)所需要的全部功能按要 求劃分為若干子模塊。具體而言,控制程序主要有:主程序塊,初始化8255A, 調(diào)用8279函數(shù),初始化DAC0832子模塊,延時(shí)子模塊及其他一些初始化程序。程序流程圖圖模掠醫(yī)院報(bào)警系統(tǒng)流程恪I圖3-2延時(shí)

18、子程序圖3-3點(diǎn)亮LED控制程序.MODEL TINYADDR_0832 EQU ODOOOH;ADC0832, CS2IOYEQU OFOOOH;對(duì)應(yīng)端口 CS1A_825oEQU IOY+OOH;控制按鍵B_825oEQU I0Y+01H;控制數(shù)碼管C_825oEQU I0Y+02H;控制 LEDC0N.8255 EQU I0Y+03HEXTRN Displays:NEAR STACK300.DATABUFFERDB8 DUP(O)SHOW BUFFERDB 8 DUP(IOH)LED FLAGDB8 DUP(O);表示燈1的狀態(tài),0表示滅,1為殼KEY COUNTDB;表示總共多少病房S

19、HAN TIMEDWSHAN BUFDB2 DUP(O)KEY VALUEDBKEY V DBOFFH;保存燈的狀態(tài),最開(kāi)始時(shí)二極管全滅,每當(dāng)按一個(gè)按鍵使一個(gè)燈殼.CODEMAIN:MOV DX, CO匸8255MOV AL,B ;方式0, A 口輸入,B 口、C 口輸出OUTDX, ALMOVDX, C_8255MOVAL, OFFH;c 口輸出高電平,LED全滅OUTDX, ALMOVDX, ADDR_0832MOVAL,OFFHOUTDX, AL;蜂鳴器初始狀態(tài),不響CALLCLEAR.SEGMENT;清數(shù)碼管顯示KEY.SCAN:CALL SHANSHUOMOV DX, A_8255I

20、NAL, DX ;讀鍵值CMP AL, OFFHJZKEY.SCANCALL DL500msMOV KEY.VALUE, ALCLEAR.KEY:;消抖INAL, DX ;讀鍵值CMP AL, OFFHJNZ CLEAR_KEYMOV AL, KEY.VALUE;CALL SHOW+;找出按鍵位置CALL FIND.KEYJMP KEY.SCANCLEAR_SEGMENT PROC NEARPUSH DIPUSH CXPUSH AXLEA DI, BUFFERMOV AL, 10HMOV CX, 8LOOPCLEAR:STOSBLOOP LOOPCLEARLEA SI, BUFFERCALL

21、Display8CALL FMQ_OFFPOP AXPOP CXPOP DIRETCLEAR_SEGMENT ENDPFIND_KEY PROC NEARPUSH AXPUSH CXPUSH BXMOV AL, KEY.VALUEMOV CX, 8MOV BL, BFIND1:CMP AL, BLROL BL, 1LOOPNZ FIND1JCXZ FIND_8FIND.IT:CALL CHANGE.LEDJMP FIND.RETFIND_8:CALL CLEAR.ALLFIND.RET:POP BXPOP CXPOP AXRETFIND.KEY ENDPCHANGE_LED PROC NEAR

22、PUSH AXPUSH SIPUSH DIMOV DX, CON_8255CHANGE1:LEA SI,LED.FLAGADD SI,CXDEC SILODSBCMP AL, 1JNZ SET1SETO:MOV AL, CLROL AL, 1OR AL, OOHOUT DX,ALLEA DI, LED.FLAG;如果該位已經(jīng)按過(guò),表示該滅燈ADD DI, CXDEC DIMOV AL, 0STOSB;CALL DELETE.ONE;刪除一個(gè),JMP CHANGE_RETSETl:MOV AL, CLROL AL,1AND AL, OFFHOUT DX, ALLEA DI, LEDFLAGADD

23、 DI, CXDEC DIMOV AL, 1STOSB;增加一個(gè);CALL ADD_ONECHANGE_RET:POP DIPOP SIPOP AXRETCHANGE.LED ENDPADD.ONE PROC NEARPUSH AXPUSH CXPUSH BXXOR AX, AXMOV AL, KEY.COUNT ;放到 show.data 數(shù)組之后添加;將按下的鍵值換為數(shù)存入show_buf中MOV BH, 8SUB BH, CL;判斷是否二6 7CMP BH, 6JB ADDITADDFIRST:LEA SI, SHOW_BUFFERLEA DI, SHOW_BUFFERADD SI, A

24、XADD DI, AXDEC SIXOR CH, CHMOV CL, KEY.COUNTSTD;DF=1,減量操作REP MOVSBCLDXOR AX, AXADDIT:LEA DI, SHOW.BUFFERADD DI, AXMOV AL, BHSTOSBMOV AL, KEY.COUNTINC ALMOV KEY.COUNT, ALLEA SI, SHOW_BUFFERLEA DI, BUFFERMOV CX, 8REP MOVSBLEA SI, BUFFERCALL Display8CALL FMQ_ONPOP BXPOP CXPOP AXRETADD_ONE ENDPDELETE_ON

25、E PROC NEARPUSH AXPUSH SIPUSH DIXOR AX, AXMOV AH, 8SUB AH, CL;MOV AL, KEY.COUNT;DEC ALLEA SI, SHOW_BUFFERMOV CL, KEY.COUNTFINDNUM:LODSBCMP AL, AHLOOPNZ FINDNUM;JCXZ DELETE.RETDELETE.IT:LEA DI, SHOW_BUFFERLEA SI, SHOW_BUFFERMOV AL, CLMOV CH, KEY.COUNTSUB CH, CLMOV CL, CHXOR CH, CHADD SI, CXADD DI, CX

26、DEC DIINC CL;DEC CLREP MOVSBLEA SI, SHOW_BUFFERLEA DI, BUFFERMOV CX, 8REP MOVSBLEA SI,BUFFERCALL Display8CALL FMQ_OFFMOV AL, KEY.COUNTDEC ALMOV KEY.COUNT, ALDELETE.RET:POP DIPOP SIPOP AXRETDELETE_ONE ENDPSHANSHUO PROC NEARPUSH AXPUSH CXPUSH SIPUSH DXMOV DX, CON_82ooLEA SI, LED.FLAGADD SI, 1LODSBCMP

27、AL, 1JNZ SHANSHUO.7MOV CX, SHAN.TIMEINC CXCMP CX, 2000JNB SHAN_6JMP SHANSHUO.7SHAN_6:MOV AL, SHAN_BUFTEST AL, 01HJZ SSET1SSETO:MOV DX, CON_8255MOV AL, 00000100BOUT DX,ALMOV SHAN_BUF, 0MOV CX, 0JMP SHANSHUO_7SSET1:MOV AL, 00000101BOUT DX,ALMOV SHAN_BUF, 1MOV CX, 0SHANSHUO.7:DEC SIDEC SILODSBCMP AL, 1

28、JNZ SHAN.RETMOV CX, SHAN.TIMEINC CXCMP CX, 2000JNB SHAN_7JMP SHAN.RETSHAN_7:MOV AL, SHAN_BUF+1TEST AL, 01HJZ L7SET1L7SET0:;MOV DX, CON_8255MOV AL, 00000010BOUT DX,ALMOV SHAN_BUF+1, 0MOV CX, 0JMP SHAN.RETL7SET1:;MOV DX, CON_8255MOV AL, 00000011BOUT DX,ALMOV SHAN_BUF+1, 1MOV CX, 0SHAN.RET:MOV SHAN.TIM

29、E, CXPOP DXPOP SIPOP exPOP AXRETSHANSHUO ENDPFMQ.ON PROC NEARMOVDX, ADDR_0832MOVAL, OOH ;蜂鳴器響OUTDX, ALRETFMQ_ONENDPFMQ_OFF PROC NEARMOVDX, ADDR_0832MOVAL,OFFHOUTDX, ALRETFMQ.OFF ENDPCLEAR.ALL PROC NEAR;清除數(shù)碼管;C 口輸出高電平,LED全滅CALL CLEAR.SEGMENT;清除led燈MOV DX, C_8255MOV AL,OFFHOUT DX, AL;清除變量LEA DI, LED.F

30、LAGMOV CX, 7MOV AL, 0CLEAR.LEDFLAG:STOSBLOOP CLEAR.LEDFLAGMOV AL, 10HMOV CX, 7LEA DI, SHOW_BUFFERCLEAR_SBUF:STOSBLOOP CLEAR_SBUFMOV KEY.COUNT, 0RETCLEAR.ALL ENDPCALL.SHOW PROC NEARPUSH DXMOV DX, A_8255INAL, DX ;讀鍵值CMP AL, OFFHPOP DXRETCALL SHOW ENDPDL1 PROC NEARPUSH CXMOV CX, 60DL2:LOOP DL1POP CXRETDL1 ENDPDLoOOms PROC NEARPUSH CXMOV CX, 60000DLoOOms1: LOOP DLoOOms1POP CXRETDLoOOms ENDPDL1SPROC NEARPUSH

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論