




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
《微機(jī)原理及接口技術(shù)》實(shí)驗(yàn)指導(dǎo)書(shū)楊霞周林英編長(zhǎng)安大學(xué)電子與控制工程學(xué)院2009年9月實(shí)驗(yàn)儀器簡(jiǎn)介STARES598PCI實(shí)驗(yàn)儀提供了幾乎所有最實(shí)用、新穎的接口實(shí)驗(yàn),提供詳盡的C、匯編例子程序及其使用說(shuō)明,不但可以滿足各大專(zhuān)院校進(jìn)行單片機(jī)課程的開(kāi)放式實(shí)驗(yàn)教學(xué),也可以讓參加電子競(jìng)賽的學(xué)生熟悉各種類(lèi)型的接口芯片,做各種實(shí)時(shí)控制實(shí)驗(yàn),輕松面對(duì)電子競(jìng)賽;也可以讓剛參加工作的電子工程師迅速成為高手。STARES598PC提供實(shí)驗(yàn)儀與微機(jī)同步演示功能,方便老師教學(xué)和演示。它提供了一個(gè)庫(kù)文件,如果學(xué)生上機(jī)時(shí)間有限,只需編寫(xiě)最主要的程序,其它調(diào)用庫(kù)文件即可;它布局合理、清晰明了,模塊化設(shè)計(jì),可以無(wú)限升級(jí),讓您的選擇永不落伍;兼容性強(qiáng),可以輕松升級(jí),減少設(shè)備投資;使用方便,易于維護(hù)。實(shí)驗(yàn)儀功能特點(diǎn)
集編輯器、項(xiàng)目管理、啟動(dòng)編譯、連接、錯(cuò)誤定位、下載、調(diào)試于一體,多種實(shí)驗(yàn)儀、仿真器、多類(lèi)型CPU仿真全部集成在一個(gè)環(huán)境下,操作方法完全一樣。
完全VC++風(fēng)格。支持C、PL/M、宏匯編:同時(shí)支持Keil公司C51、Franklin公司C51、IAR/Archimedes公司的C51、IntelC96、Tasking的C196、Borland公司的TASM、TurboC。
支持ASM(匯編)、C、PLM語(yǔ)言,多種語(yǔ)言多模塊混合調(diào)試,文件長(zhǎng)度無(wú)限制。
支持BIN、HEX、OMF、AUBROF等文件格式??梢灾苯愚D(zhuǎn)載ABS、OMF文件。
支持所有數(shù)據(jù)類(lèi)型觀察和修改。自動(dòng)收集變量于變量窗(自動(dòng)、局部、模塊、全局)。
無(wú)須點(diǎn)擊的感應(yīng)式鼠標(biāo)提示功能。
功能強(qiáng)大的項(xiàng)目管理功能,含有調(diào)試該項(xiàng)目有關(guān)的仿真器、所有相關(guān)文件、編譯軟件、編譯連接控制項(xiàng)等所有的硬軟件信息,下次打開(kāi)該項(xiàng)目,無(wú)須設(shè)置,即可調(diào)試
支持USB、并口、串口通信。
提供模擬調(diào)試器。
符合編程語(yǔ)言語(yǔ)法的彩色文本顯示,所有窗口的字體、大小、顏色可以隨意設(shè)置。提供幾十個(gè)實(shí)驗(yàn)的匯編、C版本的源文件。提供一個(gè)庫(kù)文件,如果學(xué)生上機(jī)時(shí)間有限,只需編寫(xiě)最主要的程序,其它調(diào)用庫(kù)文件即可。實(shí)驗(yàn)儀可提供以下軟件實(shí)驗(yàn):十進(jìn)制數(shù)加法,十進(jìn)制數(shù)減法,四字節(jié)二進(jìn)制數(shù)轉(zhuǎn)十進(jìn)制數(shù),數(shù)據(jù)傳送,冒泡排序,二分查找法,散轉(zhuǎn)等。星研集成環(huán)境軟件的安裝和使用1 軟件安裝1.1安裝星研集成環(huán)境軟件新用戶安裝步驟使用光盤(pán)安裝:1.將仿真器、實(shí)驗(yàn)儀所配CD插入CD-ROM驅(qū)動(dòng)器。2.在“我的電腦”或“資源管理器”中選擇CD-ROM驅(qū)動(dòng)器\WIN32\星研,然后運(yùn)行SETUP.EXE文件即可進(jìn)入安裝界面。中文界面,用戶只需按程序提示一步一步進(jìn)行安裝即可。使用Internet下載文件的用戶1.運(yùn)行下載文件(XingYan.exe),軟件自動(dòng)執(zhí)行安裝程序。2.安裝程序?yàn)橹形娘@示,用戶只需按程序提示一步一步進(jìn)行安裝即可。二.已安裝過(guò)低版本星研集成環(huán)境軟件的用戶的安裝步驟:1.首先將原來(lái)的低版本軟件進(jìn)行卸載,具體步驟請(qǐng)參考“軟件卸載”部分的內(nèi)容。2.以后按新用戶的安裝步驟進(jìn)行安裝。 在安裝過(guò)程中,如果用戶沒(méi)有指定安裝目錄,安裝完成后會(huì)在C:盤(pán)建立一個(gè)C:\XINGYAN目錄(文件夾),結(jié)構(gòu)如下:XingYan 可執(zhí)行文件、DLL文件、寄存器文件EXAMPLES 例子程1.2軟件卸載1.進(jìn)入控制面板,運(yùn)行“添加/刪除程序”。2.進(jìn)入“添加/刪除程序”窗口,在“安裝/卸載”頁(yè)面上的列表中選擇“星研集成環(huán)境軟件”,按“刪除”按鈕,之后按自動(dòng)卸載程序的說(shuō)明一步一步地操作即可。1.3USB驅(qū)動(dòng)程序1、USB驅(qū)動(dòng)程序的安裝 通過(guò)USB(通用串口總線)接口將微機(jī)與仿真器、實(shí)驗(yàn)儀相連,打開(kāi)仿真器、實(shí)驗(yàn)儀電源。仿真器、實(shí)驗(yàn)儀與微機(jī)的第一次連接引起驅(qū)動(dòng)程序的安裝會(huì)變得很簡(jiǎn)單,您只需等待安裝過(guò)程的結(jié)束或按驅(qū)動(dòng)程序的安裝向?qū)?zhí)行完即可。驅(qū)動(dòng)程序的安裝會(huì)出現(xiàn)如下界面: 實(shí)際的界面可能有些差別,請(qǐng)等待該過(guò)程的結(jié)束。驅(qū)動(dòng)程序的安裝過(guò)程中,請(qǐng)勿執(zhí)行其它應(yīng)用程序。2、如何解決連接不上的情況 如果仿真器、實(shí)驗(yàn)儀與微機(jī)連接不上是由于未按正確步驟造成的,可根據(jù)以下步驟解決:Window98/WindowMe:重新安裝星研集成環(huán)境軟件,關(guān)閉仿真器電源,稍等幾秒鐘,再打開(kāi)電源,等待操作系統(tǒng)安裝新的驅(qū)動(dòng)程序結(jié)束后,運(yùn)行星研軟件即可。Windows2000/WinXP:在仿真器電源打開(kāi)的情況下,使用控制面板中的“設(shè)備管理器”,可以看到一個(gè)未安裝好的USB設(shè)備:上圖中的“通用串行總線控制器”下有一個(gè)打問(wèn)號(hào)的USB設(shè)備,選中后按鼠標(biāo)右鍵,選擇菜單中的“卸載”項(xiàng)。重新安裝星研集成環(huán)境軟件,關(guān)閉仿真器、實(shí)驗(yàn)儀電源,稍等幾秒鐘,再打開(kāi)電源,等待操作系統(tǒng)安裝新的驅(qū)動(dòng)程序結(jié)束后,運(yùn)行星研軟件即可。注意:必須先安裝星研集成環(huán)境軟件;在WinXP中,驅(qū)動(dòng)程序的安裝會(huì)有選項(xiàng),按缺省的值選擇即可。1.4軟件啟動(dòng)運(yùn)行Windows,進(jìn)入桌面窗口。鼠標(biāo)單擊“開(kāi)始”按鈕,在“程序”欄中打開(kāi)“星研集成環(huán)境軟件”菜單欄,在其中選擇“星研(SUPER、STAR系列仿真器)”,開(kāi)始啟動(dòng)星研集成環(huán)境軟件。注意:當(dāng)您使用低配置機(jī)器時(shí),從星研集成環(huán)境軟件退出后必須等待足夠的時(shí)間,讓系統(tǒng)完全退出(硬盤(pán)停止工作)后,方可再次啟動(dòng)星研集成環(huán)境軟件。1.5編譯器星研集成環(huán)境軟件支持的編譯器MCS51MCS96、MCS19680X86KeilA51、C51FranklinA51、C51IntelASM51、PL/M51ArchimedesA8051、C-51IntelASM96、PLM96、C96TaskingASM196、C196TC、TASM編譯器請(qǐng)用戶自備。設(shè)置工作環(huán)境您的編譯器正確安裝后,請(qǐng)?jiān)O(shè)置星研集成環(huán)境軟件的編譯器工作環(huán)境。打開(kāi)[主菜單?項(xiàng)目?設(shè)置工作環(huán)境]:例如:您使用的編譯器是TASM、TC,安裝在C:\xingyan\TASM,C:\xingyan\TC,TASM宏匯編路徑: C:\xingyan\TASM;TurboC路徑: C:\xingyan\TC;2如何使用星研集成環(huán)境軟件星研集成軟件為用戶提供了許多實(shí)用和方便的觀察、調(diào)試及分析的功能,下邊幾節(jié),通過(guò)實(shí)例介紹如何使用星研集成環(huán)境軟件。使用戶體驗(yàn)該軟件功能的強(qiáng)大和方便。2.1數(shù)據(jù)傳送程序(ASM) 星研集成環(huán)境軟件推薦您使用項(xiàng)目為單位來(lái)管理您的程序。如果您做一個(gè)簡(jiǎn)單的實(shí)驗(yàn),或只希望看一個(gè)中間結(jié)果,您可以不建立項(xiàng)目文件,系統(tǒng)需要的各種設(shè)置,來(lái)源于“缺省項(xiàng)目”。本節(jié)不使用項(xiàng)目文件。本例旨在通過(guò)建立一個(gè)具體的程序來(lái)介紹星研集成軟件的使用方法以及它的強(qiáng)大的調(diào)試功能。使用戶很快上手,體驗(yàn)到此軟件功能的強(qiáng)大和方便。本實(shí)例是將數(shù)據(jù)段中3000H~30FFH單元的內(nèi)容傳送給實(shí)驗(yàn)儀B4區(qū)的61C256的2000H~20FFH中;B4區(qū)的61C256在I/O設(shè)備區(qū),使用、讀寫(xiě);再將它傳送回?cái)?shù)據(jù)段的6000H~60FFH中,程序是用匯編語(yǔ)言來(lái)編寫(xiě)。下面介紹相應(yīng)的操作步驟:首先運(yùn)行星研集成軟件。啟動(dòng)畫(huà)面如圖:1、設(shè)置缺省項(xiàng)目執(zhí)行[主菜單?輔助?缺省項(xiàng)目],出現(xiàn)一個(gè)對(duì)話框:選擇“STARES8688仿真模塊”。點(diǎn)擊進(jìn)入下一步:“選擇語(yǔ)言”您可以根據(jù)自己的需要以及程序的類(lèi)型作相應(yīng)的選擇,本實(shí)例選擇Borland公司的TurboC(3.0)、TASM(5.0)(請(qǐng)確定在選擇語(yǔ)言之前已經(jīng)安裝好相應(yīng)的編譯軟件)。然后再點(diǎn)擊進(jìn)入下一步:“編譯、連接控制項(xiàng)”實(shí)驗(yàn)儀提供64Kmemory空間,memorymodel請(qǐng)選擇tiny,縮寫(xiě)為mt;如果需要源程序級(jí)別調(diào)試,必須使用-v–y控制項(xiàng),為了支持多文件編譯、連接,必須使用-c控制項(xiàng)。一般不必改變TurboC的編譯控制項(xiàng)。如果需要源程序級(jí)別調(diào)試,必須使用/zi/l控制項(xiàng)。一般不必改變Tasm的編譯控制項(xiàng)。如果需要源程序級(jí)別調(diào)試,必須使用/m/l/v控制項(xiàng)。一般不必改變TLINK的連接控制項(xiàng)。然后再點(diǎn)擊進(jìn)入下一步:“存貯器出借方式”仿真模塊EMU598提供64K仿真RAM,作程序段(CS)、數(shù)據(jù)段(DS)、附加段(ES)、堆棧段(SS)使用。 2、建立源文件下面我們建立源文件,執(zhí)行[主菜單?文件?新建],(或者點(diǎn)擊圖標(biāo))打開(kāi)窗口如下:首先選擇存放源文件的目錄,輸入文件名,注意:一定要輸入文件名后綴。對(duì)源文件編譯、連接、生成代碼文件時(shí),系統(tǒng)會(huì)根據(jù)不同的擴(kuò)展名啟動(dòng)相應(yīng)的編譯軟件。比如:*.asm文件,使用TASM來(lái)對(duì)它編譯。本實(shí)例文件名為move.asm。窗口如下:按“確定”即可。然后出現(xiàn)文件編輯窗口:輸入源程序,本實(shí)例的源程序如下:.MODELTINY;memorymode:tiny.STACK100;堆棧.CODE;開(kāi)始程序段START:MOVAX,@DATAMOVDS,AXMOVES,AXNOPMOVCX,100HMOVSI,3000HMOVDX,2000HSTART1:MOVAL,[SI]OUTDXINCSIINCDXLOOPSTART1MOVDI,6000HMOVDX,2000HMOVCX,100HSTART2: INDXMOV[DI],ALINCDIINCDXLOOPSTART2SJMP$MoveENDPENDSTART 輸入源程序,如下圖:這樣一個(gè)源文件就建立好了。3.編譯、連接文件首先選擇一個(gè)源文件,然后就可以編譯、連接文件了。對(duì)文件編譯,如果沒(méi)有錯(cuò)誤,再與庫(kù)文件連接,生成代碼文件(DOB、EXE文件)。編譯、連接文件的方法有如下二種:(1)使用[主菜單?項(xiàng)目?編譯、連接]或[主菜單?項(xiàng)目?重新編譯、連接]”。(2)點(diǎn)擊圖標(biāo)或來(lái)“編譯、連接”或“重新編譯連接”?!熬幾g連接”與“重新編譯、連接”區(qū)別:“重新編譯、連接”不管源文件是否修改、編譯軟件是否變化、編譯控制項(xiàng)有無(wú)修改,對(duì)源文件編譯,如果沒(méi)有錯(cuò)誤,再與庫(kù)文件連接,生成代碼文件(DOB、EXE文件)。編譯、連接過(guò)程中產(chǎn)生的信息顯示在信息窗的“建立”視中。編譯沒(méi)有錯(cuò)誤的信息如下:若有錯(cuò)誤則出現(xiàn)如下信息框:有錯(cuò)誤或警告信息,用鼠標(biāo)左鍵雙擊錯(cuò)誤、警告信息或?qū)⒐鈽?biāo)移到錯(cuò)誤或警告信息上,回車(chē),系統(tǒng)會(huì)自動(dòng)打開(kāi)對(duì)應(yīng)的出錯(cuò)文件,并定位于出錯(cuò)行上。如圖:這時(shí)用戶可以作相應(yīng)的修改,直到編譯、連接文件通過(guò)。4.調(diào)試在進(jìn)入調(diào)試狀態(tài)以前,請(qǐng)正確設(shè)置通信口:執(zhí)行[主菜單?輔助?通信],對(duì)話框如下:仿真器、實(shí)驗(yàn)儀配套的通信線可以與微機(jī)USB口相連,即為USB通信線,請(qǐng)選擇USB。對(duì)于最下面一行的校驗(yàn),通常您不必選中它,可以提高傳送DOB、HEX、BIN文件時(shí)的速度。在進(jìn)入調(diào)試狀態(tài)以前,您還必須確定仿真器、實(shí)驗(yàn)儀與微機(jī)的正確連接,如果使用仿真器,仿真頭正確地連接在仿真器上,電源接通,開(kāi)關(guān)打開(kāi)。在軟件中選擇對(duì)應(yīng)的仿真器、實(shí)驗(yàn)儀型號(hào),具體設(shè)置如下:執(zhí)行[主菜單?輔助?仿真器、實(shí)驗(yàn)儀],對(duì)話框如下:根據(jù)你所使用的機(jī)型作相應(yīng)選擇。如果編譯、連接正確后,可以開(kāi)始調(diào)試程序。進(jìn)入調(diào)試狀態(tài)方法有:執(zhí)行[主菜單?運(yùn)行?進(jìn)入調(diào)試狀態(tài)]點(diǎn)擊工具條的執(zhí)行[主菜單?運(yùn)行?裝載DOB、HEX、BIN文件]進(jìn)入后的窗口如下:在整個(gè)圖片中我們可以看到相對(duì)應(yīng)的窗口信息。在“工作區(qū)窗”的“CommonRegister”中我們可以了解通用寄存器的信息。中間的窗口為源程序窗口,用戶可在此設(shè)置斷點(diǎn),設(shè)置光標(biāo)的運(yùn)行處,編輯程序等。寄存器窗我們可以看到一些常用的寄存器的數(shù)值。存貯窗1和存貯窗2顯示相應(yīng)的程序段(CS)、數(shù)據(jù)段(DS)、IO設(shè)備區(qū)的數(shù)據(jù),還有變量窗,自動(dòng)收集變量顯示其中。反匯編窗顯示對(duì)程序反匯編的信息代碼、機(jī)器碼、對(duì)應(yīng)的源文件。在信息窗的“裝載”視中,顯示裝載的代碼文件,裝載的字節(jié)數(shù),裝載完畢后,顯示啟始地址,結(jié)束地址。這種船塢化的窗口比通常的窗口顯示的內(nèi)容更多,移動(dòng)非常方便。用鼠標(biāo)左鍵點(diǎn)住窗口左邊或上方的標(biāo)題條,移動(dòng)鼠標(biāo),將窗口移到您認(rèn)為合適的位置;將鼠標(biāo)移到窗口的邊上,鼠標(biāo)的圖標(biāo)變成可變化窗口時(shí)的形狀,用鼠標(biāo)左鍵點(diǎn)住,移動(dòng)鼠標(biāo),變化一個(gè)或一組窗口的大小。在調(diào)試過(guò)程中,可以根據(jù)您的需要,在[主菜單?查看]中打開(kāi):寄存器窗、存貯器窗1、2、3、觀察窗、變量窗、反匯編窗。您也可以通過(guò)[主菜單?輔助?設(shè)置?格式],設(shè)置每一種窗口使用的字體、大小、顏色。移動(dòng)窗口到您喜歡的位置、大小。首先在“種類(lèi)”中選擇一個(gè)窗口,然后選擇“字體”、“大小”,在“顏色”中選擇某一類(lèi),在“前景”、“背景”中選擇您喜歡的顏色。對(duì)于高級(jí)語(yǔ)言,在您的程序前有一段庫(kù)文件提供的初始化代碼,(當(dāng)前可執(zhí)行標(biāo)志)不會(huì)出現(xiàn)在您的文件行上,如果您使用C語(yǔ)言,可將光標(biāo)移到main函數(shù)上,按F4功能鍵,讓CPU全速運(yùn)行到main行上后停下;如果您使用PL/M語(yǔ)言,按F7功能鍵,讓CPU“單步進(jìn)入”,運(yùn)行到您的任何一個(gè)可執(zhí)行行后停下。您可以使用以下命令調(diào)試您的程序: 設(shè)置或清除斷點(diǎn)(功能鍵為F2)在當(dāng)前光標(biāo)行上設(shè)置或清除一個(gè)斷點(diǎn) 單步進(jìn)入(功能鍵F7)單步執(zhí)行當(dāng)前行或當(dāng)前指令,可進(jìn)入函數(shù)或子程序。連續(xù)單步進(jìn)入(功能鍵Ctrl+F7)連續(xù)執(zhí)行“單步進(jìn)入”,用鼠標(biāo)點(diǎn)擊或按任意鍵后,停止運(yùn)行。單步(功能鍵F8)單步執(zhí)行當(dāng)前行或當(dāng)前指令,將函數(shù)或子程序作為一條指令來(lái)執(zhí)行。如果當(dāng)前行中含有函數(shù)、子程序或發(fā)生中斷,CPU將執(zhí)行完整個(gè)函數(shù)、子程序或中斷,停止于當(dāng)前行或當(dāng)前指令的下一有代碼的行上。連續(xù)單步(功能鍵Ctrl+F8)連續(xù)執(zhí)行“單步”,用鼠標(biāo)點(diǎn)擊或按任意鍵后,停止運(yùn)行。運(yùn)行到光標(biāo)行(功能鍵F4)從當(dāng)前地址開(kāi)始全速運(yùn)行用戶程序,碰到光標(biāo)行、斷點(diǎn)或用鼠標(biāo)點(diǎn)擊,停止運(yùn)行。全速斷點(diǎn)(功能鍵F9)從當(dāng)前地址開(kāi)始全速運(yùn)行用戶程序,碰到斷點(diǎn)或用鼠標(biāo)點(diǎn)擊,停止運(yùn)行。全速運(yùn)行(功能鍵Ctrl+F10)從當(dāng)前地址開(kāi)始全速運(yùn)行用戶程序,此時(shí),按用戶系統(tǒng)的復(fù)位鍵,CPU從頭開(kāi)始執(zhí)行用戶程序,用鼠標(biāo)點(diǎn)擊,停止運(yùn)行。全速運(yùn)行時(shí),屏蔽了所有斷點(diǎn),即不會(huì)響應(yīng)任何斷點(diǎn)。停止運(yùn)行 終止微機(jī)與仿真器之間通信(功能鍵ESC)。5.調(diào)試的方法及技巧一般來(lái)說(shuō),用戶的程序或多或少的會(huì)有一些邏輯錯(cuò)誤,而仿真器、實(shí)驗(yàn)儀和星研集成軟件則可幫助用戶快速定位,這樣可很快查出相應(yīng)的錯(cuò)誤。在調(diào)試狀態(tài)的窗口中我們可以看到很多的窗口,用戶只要熟練地應(yīng)用這些窗口來(lái)觀察、分析數(shù)據(jù)就會(huì)很快的調(diào)試好程序,達(dá)到事半功倍的效果。進(jìn)入調(diào)試界面后,由于我們本次操作需要觀察三個(gè)數(shù)據(jù)塊:數(shù)據(jù)段3000H~30FFH,數(shù)據(jù)段6000H~60FFH,I/O區(qū)2000H~20FFH,可以打開(kāi)二到三個(gè)存貯器窗口,具體操作是:[主菜單?查看]然后根據(jù)你的需要打開(kāi)不同的窗口。調(diào)整后的調(diào)試界面為:由于本次操作主要是觀察存貯器窗口,所以我們拉大了這兩個(gè)存貯器窗口的大小。每個(gè)窗口設(shè)置了4個(gè)分頁(yè)項(xiàng):,我們可以在不同的分頁(yè)項(xiàng)設(shè)置不同的觀察數(shù)據(jù)空間以及地址范圍。在中可以選擇CS:Memory,DS:Memory,I/O,根據(jù)需要可以做不同的選擇。在中可以直接輸入地址,然后按回車(chē),就可以直接轉(zhuǎn)到我們輸入的地址的窗口上面觀察數(shù)據(jù)。由于我們?cè)诖顺绦蛑械膶?xiě)入數(shù)據(jù)的RAM空間分別為DS:3000H~30FFH、DS:6000H~60FFH、I/O區(qū)2000H~20FFH,故我們建立的分頁(yè)項(xiàng)如下:存貯0分頁(yè)項(xiàng):存貯1分頁(yè)項(xiàng):存貯2分頁(yè)項(xiàng):我們這樣設(shè)置界面的目的就是當(dāng)用戶要觀察不同地址段的數(shù)據(jù)時(shí),只要切換一下分頁(yè)項(xiàng)就行了。由于本次程序需要同時(shí)觀察DS:3000~30FFH、I/O:2000~20FFH和I/O:2000H~20FFH、DS:6000H~60FFH,所以打開(kāi)二個(gè)存貯器窗。如圖:軟件中總共存在3個(gè)存貯器窗??梢酝瑫r(shí)觀察三個(gè)不同的地址。存貯器窗口支持?jǐn)?shù)據(jù)的直接修改功能。本軟件的所有窗口中的數(shù)據(jù)都支持直接修改功能。用戶可以根據(jù)自己的需要在窗口中直接修改數(shù)據(jù)。比如:執(zhí)行程序前,將DS:3000H~300FH中的數(shù)據(jù)改為11、22、33、44、55、66、77、88、99、AA、BB、CC、DD、EE、FF、00,在相對(duì)應(yīng)的地址中直接輸入數(shù)據(jù)即可。如圖:一般剛剛寫(xiě)好的程序,在進(jìn)入調(diào)試狀態(tài)后,執(zhí)行“單步”或者“單步進(jìn)入”,我們推薦您能記住這些操作的相對(duì)應(yīng)的功能鍵,這樣您就在調(diào)試程序的過(guò)程中很方便。在剛才的調(diào)試程序中我們多次執(zhí)行“單步(F8)”命令,在工作區(qū)窗口的CommonRegister視中查看通用的寄存器:我們可以觀察到在本程序中所使用的一些寄存器的變化,比如AX、CX、DX、SI的數(shù)值的變化,每一次循環(huán),CX減一,DX、SI加一,AX寄存器的低字節(jié)AL暫存從DS:[SI]取出的數(shù)值:11、22、33、44、55、66……。我們可以看到存貯器窗口中的相對(duì)應(yīng)的RAM的數(shù)據(jù)的變化。比如其中右邊為相應(yīng)數(shù)據(jù)的ASCII碼。切換分頁(yè)項(xiàng)我們可以觀察到其它地址的數(shù)據(jù)。把光標(biāo)移動(dòng)到MOVDI,6000H行上,點(diǎn)擊圖標(biāo)(功能鍵F4),全速運(yùn)行到光標(biāo)行,檢查IO:2000H~20FFH內(nèi)容,是否與DS:3000H~30FFH相同,如果完全一樣,說(shuō)明以上程序沒(méi)有任何問(wèn)題。切換分頁(yè)項(xiàng),存貯器窗顯示DS:6000H開(kāi)始的單元內(nèi)容,將光標(biāo)移到JMP$行的左邊,鼠標(biāo)變?yōu)椋c(diǎn)擊鼠標(biāo),在該行上設(shè)置了一個(gè)斷點(diǎn),也可以用鼠標(biāo)點(diǎn)擊該行,將光標(biāo)移到鼠標(biāo)處,點(diǎn)擊圖標(biāo)(功能鍵為F2),設(shè)置斷點(diǎn),重復(fù)操作,清除斷點(diǎn)。點(diǎn)擊圖標(biāo)(功能鍵F9),CPU全速斷點(diǎn)運(yùn)行到光標(biāo)處停下,檢查DS:6000H~60FFH內(nèi)容,與I/O:2000H~20FFH內(nèi)容是否一樣,相同表示程序沒(méi)問(wèn)題;如果不相同,將光標(biāo)移到MOVDI,6000H行上(具體操作是:用鼠標(biāo)點(diǎn)擊該行,然后再點(diǎn)擊圖標(biāo)),使用單步進(jìn)入命令F7或連續(xù)單步進(jìn)入命令Ctrl+F7,檢查結(jié)果,判斷程序出錯(cuò)原因。星研集成軟件為用戶提供了許多實(shí)用和方便的觀察、調(diào)試、分析的功能,其他的一些功能我們會(huì)在后續(xù)的實(shí)例中作更詳細(xì)的介紹。用戶也可以依此類(lèi)推,發(fā)掘出更多更好的為自己調(diào)試程序方便的功能。目錄實(shí)驗(yàn)一清零程序 4實(shí)驗(yàn)二拆字程序 6實(shí)驗(yàn)三數(shù)據(jù)區(qū)移動(dòng) 8實(shí)驗(yàn)四多分支程序設(shè)計(jì) 10實(shí)驗(yàn)五多字節(jié)減法運(yùn)算 13實(shí)驗(yàn)六顯示程序 16實(shí)驗(yàn)七8251串口實(shí)驗(yàn) 25實(shí)驗(yàn)八步進(jìn)電機(jī)控制 29附錄一匯編語(yǔ)言的存儲(chǔ)模型 36附錄二8279鍵值顯示程序 37實(shí)驗(yàn)一清零程序一、實(shí)驗(yàn)?zāi)康?/p>
掌握8088匯編語(yǔ)言程序設(shè)計(jì)和調(diào)試方法。二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容
把RAM區(qū)內(nèi)4000H-40FFH單元的內(nèi)容清零。四、程序框圖五、源程序清單.MODEL TINY.STACK100.DATA.CODE ORG0100HSTART: MOVBX,4000H MOVAX,0000H MOVCX,80HL1:MOV[BX],AX INCBX INCBX LOOPL1 JMP$ ENDSTART六、實(shí)驗(yàn)步驟
手動(dòng)修改RAM區(qū)內(nèi)4000H-40FFH的內(nèi)容,連續(xù)或單步方式運(yùn)行程序,檢查4000-40FFH內(nèi)容執(zhí)行程序前后的變化。
七、思考1、把4000H-40FFH中的內(nèi)容改成FF,如何修改程序。2、把4000H-40FFH中的內(nèi)容改成00~FF,如何修改程序。實(shí)驗(yàn)二拆字程序一、實(shí)驗(yàn)?zāi)康?/p>
掌握匯編語(yǔ)言設(shè)計(jì)和調(diào)試方法。
二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容
把4000H單元的內(nèi)容拆開(kāi),高位送4001H低位,低位送4002H低位,4001H、4002H的高位清零,一般本程序用于把數(shù)據(jù)送顯示緩沖區(qū)時(shí)用。
四、程序框圖五、源程序.MODEL TINY.STACK.DATA.CODESTART: MOVBX,4000HMOVAL,[BX]MOVAH,ALMOVCL,4SHRAH,CLINCBXMOV[BX],AHANDAL,0FHINCBXMOV[BX],ALJMP$六、實(shí)驗(yàn)步驟
手動(dòng)修改4000H的內(nèi)容,用連續(xù)或單步方式運(yùn)行程序,檢查4000H-4002H中內(nèi)容變化情況。七、思考
1.如何用斷點(diǎn)方式調(diào)試本程序。2.把4000H、4001H單元低位的內(nèi)容合成一字送4002H單元。實(shí)驗(yàn)三數(shù)據(jù)區(qū)移動(dòng)一、實(shí)驗(yàn)?zāi)康?/p>
掌握RAM中的數(shù)據(jù)操作。二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容
把4100H源RAM區(qū)首址內(nèi)的16字節(jié)數(shù)據(jù)傳送到4200H目標(biāo)RAM區(qū)。四、設(shè)計(jì)思想
程序要求把內(nèi)存中某一數(shù)據(jù)區(qū)(稱為源數(shù)據(jù)塊)傳送到另一存儲(chǔ)區(qū)(稱為目的數(shù)據(jù)塊)。源數(shù)據(jù)塊和目的數(shù)據(jù)塊在存儲(chǔ)器中可能有三種情況,如下圖:
對(duì)于兩個(gè)數(shù)據(jù)塊分離的情況,如圖(a),數(shù)據(jù)的傳送從數(shù)據(jù)塊的首址開(kāi)始,或者從數(shù)據(jù)塊的末址開(kāi)始均可。但對(duì)于有部分重疊的情況,則要加以分析,否則重疊部分會(huì)因“搬移”而遭破壞。
可以得出以下結(jié)論:當(dāng)源數(shù)據(jù)首址>目的塊首址時(shí),從數(shù)據(jù)塊首址開(kāi)始傳送數(shù)據(jù)。當(dāng)源數(shù)據(jù)塊首址<目的塊首址時(shí),從數(shù)據(jù)塊末地址開(kāi)始傳送數(shù)據(jù)。五、程序框圖六、源程序清單.MODEL TINY.STACK.DATA.CODEORG0100HSTART0:MOVCX,0010H MOVSI,4100H MOVDI,4200H CMPSI,DI JAA42 ADDSI,CX ADDDI,CXA41:DECSI DECDI MOVAL,[SI] MOV[DI],AL LOOPA41 JMP$A42:MOVAL,[SI] MOV[DI],AL INCSI INCDI LOOPA42 JMP$ENDSTART0七、實(shí)驗(yàn)步驟
調(diào)試運(yùn)行3060程序,檢查4100-410FH中內(nèi)容是否和4200-420FH中內(nèi)容完全一致。八、思考
1.把4200H源RAM區(qū)首址內(nèi)的16字節(jié)數(shù)據(jù)傳送到4100H目標(biāo)RAM區(qū)。2.把4100H源RAM區(qū)首址內(nèi)的16字節(jié)數(shù)據(jù)傳送到410AH目標(biāo)RAM區(qū)。
實(shí)驗(yàn)四多分支程序設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康?/p>
掌握匯編語(yǔ)言的編程,熟悉程序散轉(zhuǎn)的設(shè)計(jì)方法。二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容
編寫(xiě)程序,根據(jù)接收到的鍵值,作不同的處理。四、設(shè)計(jì)思想
多分支結(jié)構(gòu)相當(dāng)于一個(gè)多路開(kāi)關(guān),在程序設(shè)計(jì)中通常是根據(jù)某寄存器或某單元的內(nèi)容進(jìn)行程序轉(zhuǎn)移。在設(shè)計(jì)多分支轉(zhuǎn)移程序時(shí),如果分支太多,則平均轉(zhuǎn)移速度太慢,本實(shí)驗(yàn)采用轉(zhuǎn)移地址表實(shí)現(xiàn)多分支轉(zhuǎn)移,可以提高平均轉(zhuǎn)移速度。五、程序框圖六、實(shí)驗(yàn)步驟
1、連線說(shuō)明:E5區(qū):CLK——B2區(qū):2ME5區(qū):CS——A3區(qū):CS5E5區(qū):A0——A3區(qū):A0E5區(qū):A、B、C、D——G5區(qū):A、B、C、D2、在G5區(qū)的鍵盤(pán)上輸入1位數(shù)3、使用各種手段調(diào)試程序3、結(jié)果顯示在G5區(qū)的數(shù)碼管上七、源程序清單;調(diào)用GetKeyB返回鍵值,根據(jù)鍵值執(zhí)行相應(yīng)的程序.MODEL TINYEXTRNDisplay8:NEAR,GetKeyB:NEAR.STACK100.DATABUFFERDB8DUP(?).CODESTART:MOVAX,@DATAMOVDS,AXMOVES,AXNOPSTART1:CALLGetKeyB;鍵值存放在AL中CMP AL,8JB START2XORAL;大于7,作0處理START2:XORAH,AHMOVBX,AXSHLBX,1LEADI,Table_1JMPCS:[DI][BX]Table_1: DWKey0,Key1,Key2,Key3,Key4,Key5,Key6,Key7Key0:MOVAL,1JMP KeyKey1:MOVAL,2JMPKeyKey2:MOV AL,3JMP KeyKey3:MOVAL,4JMPKeyKey4:MOV AL,5JMP KeyKey5:MOVAL,6JMP KeyKey6:MOVAL,7JMPKeyKey7:MOVAL,8JMPKeyKey: MOV CX,8LEA DI,BUFFERREPSTOSBLEASI,BUFFERCALL Display8MOVCX,60000LOOP$;延時(shí)JMPSTART1END START實(shí)驗(yàn)五多字節(jié)減法運(yùn)算一、實(shí)驗(yàn)?zāi)康?/p>
掌握BCD碼、補(bǔ)碼,熟悉多文件、多模塊匯編語(yǔ)言程序設(shè)計(jì)的方法。二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容
從鍵盤(pán)上輸入4位被減數(shù)、減數(shù),實(shí)現(xiàn)雙字節(jié)BCD碼(四位數(shù))的減法,結(jié)果顯示在數(shù)碼管上;進(jìn)一步熟悉使用斷點(diǎn)、單步進(jìn)入、單步、運(yùn)行到光標(biāo)處、修改PC指針、全速運(yùn)行等各種調(diào)試手段;熟悉查看特殊功能寄存器、CS段、DS段存貯器的各種方法。四、程序框圖五、實(shí)驗(yàn)步驟 1、連線說(shuō)明:E5區(qū):CLK——B2區(qū):2ME5區(qū):CS——A3區(qū):CS5E5區(qū):A0——A3區(qū):A0E5區(qū):A、B、C、D——G5區(qū):A、B、C、D2、在G5區(qū)的鍵盤(pán)上輸入4位被減數(shù)、減數(shù)3、結(jié)果顯示在G5區(qū)的數(shù)碼管上六、源程序清單 .MODELTINYEXTRNDisplay8:NEAR,GetBCDKey:NEAREXTRNF1:BYTE.STACK100.DATABUFFERDB8DUP(?)minuendDW1DUP(?) ;被減數(shù)subtrahendDW1DUP(?);減數(shù).CODESTART:MOVAX,@DATAMOVDS,AXMOV ES,AXNOPMOV F1,0 ;先清除顯示,再接收鍵輸入START1:LEADI,minuendMOVCX,4 ;按鍵次數(shù)CALLGetBCDKey;得到雙字節(jié)十進(jìn)制數(shù)(被減數(shù))MOV F1,1 ;接收到第一個(gè)鍵,才清除顯示LEADI,subtrahendMOVCX,4 ;按鍵次數(shù)CALL GetBCDKey;得到雙字節(jié)十進(jìn)制數(shù)(減數(shù))MOV AX,minuendMOVBX,subtrahendMOVDL,10HCMP AX,BXJNBSTART2XCHGAX,BXMOV DL,11H;負(fù)數(shù)START2:SUBAL,BL;低位DASXCHGAL,AHSBBAL,BH;高位DASXCHGAL,AHCLDLEADI,BUFFER;存放顯示結(jié)果CALL B1toB2;低位MOVAL,AHCALL B1toB2;高位MOVAL,10H;最高三位消隱STOSBSTOSBSTOSBSTOSBLEASI,BUFFER+3MOVCX,3CALL BlackDisplay;將高位0消隱LEASI,BUFFERCALLDisplay8JMPSTART1;將一個(gè)字節(jié)壓縮BCD碼轉(zhuǎn)換成二個(gè)字節(jié)非壓縮BCD碼B1toB2PROC NEARPUSH AXAND AL,0FHSTOSBPOPAXANDAL,0F0HROR AL,4STOSBRETB1toB2ENDPBlackDisplay PROC NEAR;將高位0消隱BlackDisplay1:MOVAL,[SI] CMPAL,0JNZ ExitMOV AL,10HMOV[SI],ALDEC SILOOPBlackDisplay1Exit:CLDMOV[SI+1],DLRETBlackDisplay ENDPEND START七、思考
從鍵盤(pán)上輸入4位被加數(shù)、加數(shù),實(shí)現(xiàn)雙字節(jié)BCD碼(四位數(shù))的加法,結(jié)果顯示在數(shù)碼管上。實(shí)驗(yàn)六顯示程序一、實(shí)驗(yàn)?zāi)康?/p>
1、熟悉8255的功能,理解LED顯示原理及控制方法;2、學(xué)會(huì)使用LED點(diǎn)陣液晶顯示字體和圖形;3、認(rèn)真預(yù)習(xí)本節(jié)實(shí)驗(yàn)內(nèi)容,可嘗試自行編寫(xiě)程序,做好實(shí)驗(yàn)準(zhǔn)備工作,填寫(xiě)實(shí)驗(yàn)報(bào)告。二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容
1、編寫(xiě)程序,用8255的PA、PB口控制LED的位選和段選,(1)編寫(xiě)程序,控制8位數(shù)碼管跑馬燈形式顯示0;(2)編寫(xiě)程序,控制8位數(shù)碼管靜態(tài)顯示指定字符1-8;(3)編寫(xiě)程序,控制8位數(shù)碼管動(dòng)態(tài)循環(huán)顯示8位字符;2、按圖連接線路,運(yùn)行程序,觀察實(shí)驗(yàn)結(jié)果。四、實(shí)驗(yàn)原理圖五、實(shí)驗(yàn)步驟1、主機(jī)連線說(shuō)明:B4區(qū):CS(8255)——A3區(qū):CS1B4區(qū):A0、A1——A3區(qū):A0、A1B4區(qū):JP56、JP53——G5區(qū):JP41、JP422、運(yùn)行程序,驗(yàn)證顯示結(jié)果。六:源程序(1)控制8位數(shù)碼管依次顯示0;.MODEL TINY.STACK 100.DATAIO8255_Con EQU 0F003H ;CS3IO8255_A EQU 0F000H ;AIO8255_B EQU 0F001H ;BLED_TAB: DB 03FH,06H,05BH,04FH,66H,6DH,7DH,07H DB 07FH,6FH,77H,7CH,39H,05EH,79H,71H .CODESTART: MOV AX,@DATA MOV DS,AX MOV ES,AX MOV DX,IO8255_Con MOV AL,80H ;方式0,A,B,C均為輸出 OUT DX, MOV AL,0FEH ;8255PC輸出 MOV CX,8GOON: MOV DX,IO8255_A ;位選 OUT DX ROL AL,1 MOV AH,AL MOV DX,IO8255_B MOV AL,03FH OUT DX, MOV AL,AH ;0FFH->8255PA CALL Delay JMP GOONDelay PROC NEAR PUSH CX MOV CX,20000Delay1: LOOP Delay1 POP CX RET ENDP END START(2)編寫(xiě)程序,控制8位數(shù)碼管依次顯示任意指定字符(0-F);.MODEL TINY.STACK 100.MODEL TINY.STACK 100.DATAIO8255_Con EQU 0F003H ;CS3IO8255_A EQU 0F000H ;AIO8255_B EQU 0F001H ;BF1 DB0LED_TAB: DB 03FH,06H,05BH,04FH,66H,6DH,7DH,07H DB 07FH,6FH,77H,7CH,39H,05EH,79H,71H .CODESTART: MOV AX,@DATA MOV DS,AX MOV ES,AX; MOV F1,0 MOV DX,IO8255_Con MOV AL,80H ;方式0,A,B,C均為輸出 OUT DX, MOV AL,0FEH ;8255PC輸出 MOV CX,8GOON: MOV DX,IO8255_B;段選 MOV BX,LED_TAB;裝入表頭 PUSH AX MOV AL,F1 XLAT ;AL放字形碼 OUT DX POP AX MOV AL,AH MOV DX,IO8255_A ;位選 OUT DX ROL AL,1 MOV AH,AL INC F1 ;0FFH->8255PA CALL Delay JMP GOONDelay PROC NEAR PUSH CX MOV CX,800Delay1: LOOP Delay1 POP CX RET ENDP END START(3)編寫(xiě)程序,控制8位數(shù)碼管同時(shí)顯示0、1、……F:.MODEL TINY.STACK 100.MODEL TINY.STACK 100.DATAIO8255_Con EQU 0F003H ;CS3IO8255_A EQU 0F000H ;AIO8255_B EQU 0F001H ;BLED_TAB: DB 03FH,06H,05BH,04FH,66H,6DH,7DH,07H DB 07FH,6FH,77H,7CH,39H,05EH,79H,71HF1 DB 0 .CODESTART: MOV AX,@DATA MOV DS,AX MOV ES,AX MOV DX,IO8255_Con MOV AL,80H ;方式0,A,B,C均為輸出 OUT DX, MOV AX,0FEFEH ;8255PC輸出 MOV CX,1600 LEA BX,LED_TABGOON: MOV AL,F1 XLAT MOV DX,IO8255_B ;段選 OUT DX, MOV AL,AH MOV DX,IO8255_A ;位選 OUT DX ROL AL,1 MOV AH,AL CALL DL500ms LOOP GOON ;8段數(shù)碼管顯示當(dāng)前值 MOV CX,1600 ;8段數(shù)碼管顯示完成,則顯示下個(gè)字符 MOV AL,AH ;; CALL DL3S INC F1 CMP F1,10H ;是否顯示完了 JZ EXIT JMP GOONDL500ms PROC NEAR PUSH CX MOV CX,400DL500ms1: LOOP DL500ms1 POP CX RETDL500ms ENDPEXIT: END START七、思考
(4)編寫(xiě)程序,控制8位數(shù)碼管顯示當(dāng)前日期以及時(shí)間;實(shí)驗(yàn)七8251串口實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康呐c要求了解8251的內(nèi)部結(jié)構(gòu)、工作原理;了解8251與8088的接口邏輯;掌握對(duì)8251的初始化編程方法,學(xué)會(huì)使用8251實(shí)現(xiàn)設(shè)備之間的串行通信。復(fù)習(xí)本節(jié)實(shí)驗(yàn)內(nèi)容,可嘗試自行編寫(xiě)程序,做好實(shí)驗(yàn)準(zhǔn)備工作,填寫(xiě)實(shí)驗(yàn)報(bào)告。二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)三、實(shí)驗(yàn)內(nèi)容1、編制程序:實(shí)現(xiàn)8251A與PC機(jī)的串行通訊,使用8253作分頻器提供8251的收發(fā)時(shí)鐘。2、連接線路,從微機(jī)接收一批數(shù)據(jù),接收完畢,再將它們回送給微機(jī)。四、程序框圖開(kāi)始開(kāi)始初始化8253(定時(shí)器0,方式3,BCD碼計(jì)數(shù),CLK0/26)初始化8251接收10個(gè)字節(jié)數(shù)據(jù)子程序?qū)⒔邮盏降?0個(gè)字節(jié)數(shù)據(jù)通過(guò)8251發(fā)送給微機(jī)初始化8251:
開(kāi)始開(kāi)始允許接收和發(fā)送數(shù)據(jù)清錯(cuò)誤標(biāo)志復(fù)位8251波特率系數(shù)為16,8個(gè)數(shù)據(jù)位,一個(gè)停止位,偶校驗(yàn)返回接收10個(gè)字節(jié)數(shù)據(jù)子程序:開(kāi)始開(kāi)始讀入狀態(tài)有數(shù)據(jù)讀數(shù)據(jù)->緩沖區(qū)接收了10個(gè)字節(jié)數(shù)據(jù)返回NNYY發(fā)送了10個(gè)字節(jié)數(shù)據(jù)子程序:開(kāi)始開(kāi)始讀入狀態(tài)有數(shù)據(jù)發(fā)送發(fā)送了10個(gè)字節(jié)數(shù)據(jù)NNYY返回五、實(shí)驗(yàn)原理圖六、實(shí)驗(yàn)步驟1、連線說(shuō)明:C5區(qū):CS(8253)、A0、A1——A3區(qū):CS5、A0、A1C5區(qū):CLK0——B2區(qū):2MC5區(qū):GATE0——C1區(qū)的VCCC5區(qū):OUT0——C5區(qū):RxC、TxCC5區(qū):CS(8251)、C/D——A3區(qū):CS1、A0C5區(qū):CLK——B2區(qū):4MC5區(qū):RXD、TXD——E7區(qū):RXD、TXD2、運(yùn)行程序3、運(yùn)行“串口助手(ComPort.EXE)”,設(shè)置串口(波特率4800,8個(gè)數(shù)據(jù)位,一個(gè)停止位,偶校驗(yàn)),打開(kāi)串口,選擇“HEX發(fā)送”、“HEX顯示”,向8251發(fā)送10個(gè)字節(jié)數(shù)據(jù)(輸入數(shù)據(jù)之間用空格分隔),是否能接收到10個(gè)字節(jié)數(shù)據(jù),接收到的數(shù)據(jù)是否與發(fā)送數(shù)據(jù)一致。4、改變傳輸數(shù)據(jù)的數(shù)目,重復(fù)實(shí)驗(yàn),觀察結(jié)果。七、演示程序 .MODELTINY;使用8253的計(jì)數(shù)器0,外接2Mhz,經(jīng)26分頻后,送給8251,產(chǎn)生4800bpsCTL_ADDREQU0FF01H;控制字或狀態(tài)字DATA_ADDREQU0FF00H ;讀寫(xiě)數(shù)據(jù)W_8253_T0EQU0BF00H ;計(jì)數(shù)器0地址W_8253_CEQU0BF03H;控制字.STACK100.DATAReceive_BufferDB10DUP(0);接受緩沖器Send_BufferEQUReceive_Buffer;發(fā)送緩沖器.CODESTART:MOVAX,@DATAMOV DS,AXMOVES,AXNOPCALL INIT_8253CALLINIT_8251START1:MOV CX,10CALL Receive_GroupMOVCX,10CALLSend_GroupJMPSTART1INIT_8253PROCNEARMOVDX,W_8253_CMOVAL,37H;定時(shí)器0,方式3OUTDXMOVDX,W_8253_T0MOVAL,26H;BCD碼26(2000000/26)=16*4800OUTDXMOVAL,0OUT DXRETINIT_8253ENDPINIT_8251PROCNEARCALLRESET_8251MOV DX,CTL_ADDRMOVAL,7EH;波特率系數(shù)為16,8個(gè)數(shù)據(jù)位OUTDX;一個(gè)停止位,偶校驗(yàn)CALLDLTIME;延時(shí)MOV AL,15H ;允許接收和發(fā)送發(fā)送數(shù)據(jù),清錯(cuò)誤標(biāo)志OUTDXCALL DLTIMERETINIT_8251ENDPReset_8251PROCNEARMOVDX,CTL_ADDRMOVAL,0OUTDX;向控制口寫(xiě)入"0"CALLDLTIME;延時(shí),等待寫(xiě)操作完成OUTDX;向控制口寫(xiě)入"0"CALLDLTIME;延時(shí)OUTDX;向控制口寫(xiě)入"0"CALL DLTIME;延時(shí)MOVAL,40H;向控制口寫(xiě)入復(fù)位字40HOUTDXCALLDLTIMERETReset_8251ENDP;接受一組數(shù)據(jù),CX--接受數(shù)目Receive_GroupPROCNEARLEA DI,Receive_BufferReceive_Group1:CALL Receive_ByteSTOSBLOOPReceive_Group1RETReceive_GroupENDP;接受一個(gè)字節(jié)Receive_BytePROCNEARMOVDX,CTL_ADDRReceive_Byte1:INAL,DX;讀入狀態(tài)TEST AL,2JZReceive_Byte1;有數(shù)據(jù)嗎?MOVDX,DATA_ADDR ;有IN AL,DXRETReceive_ByteENDP;發(fā)送一組數(shù)據(jù),CX--發(fā)送數(shù)目Send_GroupPROCNEARLEASI,Send_BufferSend_Group1:LODSBCALLSendByteLOOPSend_Group1RETSend_GroupENDP;發(fā)送一個(gè)字節(jié)SendbytePROCNEARPUSH AXMOVDX,CTL_ADDR;讀入狀態(tài)Sendbyte1:INAL,DXTEST AL,1JZSendbyte1;允許數(shù)據(jù)發(fā)送嗎?POPAX;發(fā)送MOVDX,DATA_ADDROUTDXRETSendbyte ENDP;延時(shí)DLTIMEPROCNEARMOV CX,10LOOP $RETDLTIMEENDPENDSTART八、實(shí)驗(yàn)擴(kuò)展及思考請(qǐng)讀者思考,如何修改程序?qū)崿F(xiàn)8251的自發(fā)自收功能?
實(shí)驗(yàn)八步進(jìn)電機(jī)控制一、實(shí)驗(yàn)?zāi)康呐c要求1、了解步進(jìn)電機(jī)的基本原理,掌握步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)編程方法2、了解影響電機(jī)轉(zhuǎn)速的因素有那些二、實(shí)驗(yàn)設(shè)備STAR系列實(shí)驗(yàn)儀一套、PC機(jī)一臺(tái)。三、實(shí)驗(yàn)內(nèi)容編寫(xiě)程序:使用G5區(qū)的鍵盤(pán)控制步進(jìn)電機(jī)的正反轉(zhuǎn)、調(diào)節(jié)轉(zhuǎn)速,連續(xù)轉(zhuǎn)動(dòng)或轉(zhuǎn)動(dòng)指定步數(shù);將相應(yīng)的數(shù)據(jù)顯示在G5區(qū)的數(shù)碼管上。四、控制原理步進(jìn)電機(jī)的驅(qū)動(dòng)原理是通過(guò)它每相線圈的電流的順序切換來(lái)使電機(jī)作步進(jìn)式旋轉(zhuǎn),驅(qū)動(dòng)電路由脈沖來(lái)控制,所以調(diào)節(jié)脈沖的頻率便可改變步進(jìn)電機(jī)的轉(zhuǎn)速,微控制器最適合控制步進(jìn)電機(jī)。另外,由于電機(jī)的轉(zhuǎn)動(dòng)慣量的存在,其轉(zhuǎn)動(dòng)速度還受驅(qū)動(dòng)功率的影響,當(dāng)脈沖的頻率大于某一值(本實(shí)驗(yàn)為f.>100hz)時(shí),電機(jī)便不再轉(zhuǎn)動(dòng)。實(shí)驗(yàn)電機(jī)共有四個(gè)相位(A,B,C,D),按轉(zhuǎn)動(dòng)步驟可分單4拍(A->B->C->D->A),雙4拍(AB->BC->CD->DA->AB)和單雙8拍(A->AB->B->BC->C->CD->D->DA->A).五、程序框圖NNYNYNNNN0->需要刷新顯示標(biāo)志1->步進(jìn)電機(jī)未轉(zhuǎn)動(dòng)過(guò)標(biāo)志1->轉(zhuǎn)動(dòng)方向標(biāo)志(1:表示順時(shí)針?lè)较?33H->下次送給步進(jìn)電機(jī)值5->步進(jìn)電機(jī)轉(zhuǎn)速初始化8255(PC口輸出)初始化8253(計(jì)數(shù)器T0設(shè)置在模式2狀態(tài),BCD碼計(jì)數(shù),CLK0/210)初始化8259(允許8253中斷)初始化8253中斷向量初始化顯示緩沖區(qū):(數(shù)碼管第8位:0,順時(shí)針?lè)较颍?、7位消隱;6位:轉(zhuǎn)速;1、2、3、4位:0,表示連續(xù)轉(zhuǎn)動(dòng),其他值表示需要轉(zhuǎn)動(dòng)的步數(shù))調(diào)用顯示子程序有鍵按下需要刷新顯示標(biāo)志=10->需要刷新顯示標(biāo)志調(diào)用步數(shù)調(diào)整子程序關(guān)中斷(終止步進(jìn)電機(jī)轉(zhuǎn)動(dòng))數(shù)碼管的1、2、3位->2、3、4位鍵值送給數(shù)碼管的第一位調(diào)用改變轉(zhuǎn)向子程序鍵值>9鍵值=0AH調(diào)用增速子程序調(diào)用減速子程序調(diào)用啟動(dòng)步進(jìn)電機(jī)子程序Y鍵值=0BH鍵值=0CH鍵值=0DH開(kāi)始YYY改變方向子程序:YYYNNY開(kāi)始轉(zhuǎn)動(dòng)方向標(biāo)志=091H->下次送給步進(jìn)電機(jī)值下次送給步進(jìn)電機(jī)值循環(huán)右移二次1->轉(zhuǎn)動(dòng)方向標(biāo)志0->送給數(shù)碼管的第7位步進(jìn)電機(jī)未轉(zhuǎn)動(dòng)過(guò)標(biāo)志33H->下次送給步進(jìn)電機(jī)值下次送給步進(jìn)電機(jī)值循環(huán)左移二次0->轉(zhuǎn)動(dòng)方向標(biāo)志1->送給數(shù)碼管的第7位步進(jìn)電機(jī)未轉(zhuǎn)動(dòng)過(guò)標(biāo)志返回啟動(dòng)步進(jìn)電機(jī)子程序:YYNY開(kāi)始0->步進(jìn)電機(jī)未轉(zhuǎn)動(dòng)過(guò)標(biāo)志取轉(zhuǎn)動(dòng)步數(shù)取轉(zhuǎn)速對(duì)應(yīng)的延時(shí)值(轉(zhuǎn)速延時(shí))初始轉(zhuǎn)速延時(shí)1=初始轉(zhuǎn)速延時(shí)轉(zhuǎn)速延時(shí)<50初始轉(zhuǎn)速延時(shí)=50返回開(kāi)中斷初始轉(zhuǎn)速延時(shí)=轉(zhuǎn)速延時(shí)增速子程序:YYN開(kāi)始轉(zhuǎn)速=11轉(zhuǎn)速+1轉(zhuǎn)速送給數(shù)碼管第5位返回減速子程序:NNY開(kāi)始轉(zhuǎn)速=0轉(zhuǎn)速-1轉(zhuǎn)速送給數(shù)碼管第5位返回
定時(shí)中斷程序:NNNYNNNYYNY初始轉(zhuǎn)速延時(shí)1=轉(zhuǎn)速延時(shí)初始轉(zhuǎn)速延時(shí)-1=0時(shí)初始轉(zhuǎn)速延時(shí)1-1初始轉(zhuǎn)速延時(shí)=初始轉(zhuǎn)速延時(shí)11-1轉(zhuǎn)動(dòng)方向標(biāo)志=0時(shí)下次送給步進(jìn)電機(jī)值循環(huán)右移一次1-1轉(zhuǎn)動(dòng)步數(shù)=0時(shí)1->需要刷新顯示標(biāo)志轉(zhuǎn)動(dòng)步數(shù)減一1-1轉(zhuǎn)動(dòng)步數(shù)=0時(shí)關(guān)中斷清中斷標(biāo)志開(kāi)始下次送給步進(jìn)電機(jī)值循環(huán)左移一次1-1返回下次送給步進(jìn)電機(jī)值->8255的PC口(控制步進(jìn)電機(jī)轉(zhuǎn)動(dòng)一步)Y六、實(shí)驗(yàn)原理圖七、實(shí)驗(yàn)步驟1、主機(jī)連線說(shuō)明:E1區(qū):A、B、C、D——B4區(qū):PC0、PC1、PC2、PC3E5區(qū):CLK——B2區(qū):2ME5區(qū):CS、A0——A3區(qū):CS5、A0E5區(qū):A、B、C、D——G5區(qū):A、B、C、DB3區(qū):CS、A0——A3區(qū):CS1、A0B3區(qū):INT、INTA——ES8688:INTR、INTAC5區(qū):CS(8253)、A0、A1——A3區(qū):CS2、A0、A1C5區(qū):GATE0——C1區(qū):VCCC5區(qū):CLK0——B2區(qū):1MC5區(qū):OUT0——B3區(qū):IR0B4區(qū):CS(8255)、A0、A1——A3區(qū):CS3、A0、A12、調(diào)試程序,查看運(yùn)行結(jié)果是否正確八、演示程序.MODELTINYEXTRNDisplay8:NEAR,SCAN_KEY:NEARIO8259_0EQU0F000HIO8259_1EQU 0F001HCon_8253 EQU 0E003HT0_8253EQU 0E000HIO8255_ConEQU 0D003H;CS3IO8255_PCEQU0D002H.STACK100.DATAStepControlDB0;下一次送給步進(jìn)電機(jī)的值bufferDB8DUP(0);顯示緩沖區(qū),8個(gè)字節(jié)buffer1DB8DUP(0);顯示緩沖區(qū),8個(gè)字節(jié)SpeedNoDB0;選擇哪一級(jí)速度StepDelayDB0 ;轉(zhuǎn)動(dòng)一步后,延時(shí)常數(shù)StartStepDelayDB0;若選擇速度過(guò)快,延時(shí)由長(zhǎng)到短,最終使用對(duì)應(yīng)延時(shí)常數(shù)StartStepDelay1DB0 ;StartStepDelaybFirstDB0;有沒(méi)有轉(zhuǎn)動(dòng)過(guò)步進(jìn)電機(jī)bClockwiseDB0 ;=1順時(shí)針?lè)较?0逆時(shí)針?lè)较蜣D(zhuǎn)動(dòng)bNeedDisplayDB0;已轉(zhuǎn)動(dòng)一步,需要顯示新步數(shù)StepCountDW0 ;需要轉(zhuǎn)動(dòng)的步數(shù)StepDelayTab:DB250,125,83,62,50,42,36,32,28,25,22,21.CODESTART:MOVAX,@DATAMOVDS,AXMOVES,AXNOPMOVbFirst,1;有沒(méi)有轉(zhuǎn)動(dòng)過(guò)步進(jìn)電機(jī)MOVbClockwise,1 ;順時(shí)針?lè)较騇OVStepControl,33H;下一次送給步進(jìn)電機(jī)的值MOVSpeedNo,5;第五級(jí)速度CALLInit8255CALLInit8253CALLInit8259CALLWriIntverMOVbuffer,0;顯示緩沖器初始化MOVbuffer+1,0MOVbuffer+2,0MOVbuffer+3,0MOVbuffer+4,10HMOV AL,SpeedNoMOVbuffer+5,ALMOVbuffer+6,10HMOV buffer+7,0STAR2:LEASI,bufferLEA DI,buffer1MOVCX,8REPMOVSBLEA SI,buffer1CALLDisplay8STAR3:CALLScan_KeyJBSTAR5CMP bNeedDisplay,0JZSTAR3MOVbNeedDisplay,0CALLStep_SUB_1JMP STAR2STAR5:CLI;終止步進(jìn)電機(jī)轉(zhuǎn)動(dòng)CMP AL,10JNBSTAR1MOVAH,buffer+2MOV buffer+3,AHMOVAH,buffer+1MOV buffer+2,AHMOVAH,bufferMOVbuffer+1,AHMOVbuffer,ALJMP STAR2STAR1:CMPAL,14JNBSTAR3LEA SI,DriverTabSUB AL,10SHLAL,1XOR AH,AHMOVBX,AXJMPCS:[SI+BX]DriverTab:DWDirection;轉(zhuǎn)動(dòng)方向DWSpeed_up ;提高轉(zhuǎn)速DWSpeed_Down;降低轉(zhuǎn)速DWExec ;步進(jìn)電機(jī)根據(jù)方向、轉(zhuǎn)速、步數(shù)開(kāi)始轉(zhuǎn)動(dòng)Direction:CMP bClockwise,0JZClockwiseMOV bClockwise,0MOVbuffer+7,1AntiClockwise:CMPbFirst,0JZAntiClockwise1MOVStepControl,91HJMPDirection1AntiClockwise1:MOVAL,StepControlRORAL,2MOV StepControlJMP Direction1Clockwise:MOVbClockwise,1MOV buffer+7,0CMPbFirst,0JZClockwise1MOV StepControl,33HJMPDirection1Clockwise1:MOV AL,StepControlROL AL,2MOVStepControl,ALDirection1:JMP STAR2Speed_up:MOVAL,SpeedNoCMP AL,11JZ Speed_up2Speed_up1:INCALMOVSpeedNoMOV buffer+5,ALSpeed_up2:JMPSTAR2Speed_Down:MOV AL,SpeedNoCMP AL,0JZ Speed_Down1DECALMOV SpeedNoMOVbuffer+5,ALSpeed_Down1:JMPSTAR2Exec:MOVbFirst,0CALLTakeStepCountLEABX,StepDelayTabMOV AL,SpeedNoXLATMOV StepDelay,ALCMPAL,50JNB Exec1MOV AL,50Exec1:MOVStartStepDelayMOV StartStepDelay1,ALSTIJMPSTAR2TIMER0:PUSHAXPUSHDXDECStartStepDelayJNZTIMER0_1MOVAL,StartStepDelay1CMP AL,StepDelayJZTIMER0_2DEC ALMOV StartStepDelay1,ALTIMER0_2:MOVStartStepDelayMOVAL,StepControlMOVDX,IO8255_PCOUTDXCMPbClockwise,0JNZ TIMER0_3ROR AL,1JMPTIMER0_4TIMER0_3:ROL AL,1TIMER0_4:MOVStepControlCMPStepCount,0JZ TIMER0_1MOV bNeedDisplay,1DECStepCountJNZTIMER0_1addsp,8;小寫(xiě)部分不允許使用單步、單步進(jìn)入命令popfclipushfsubsp,8nopTIMER0_1:MOVDX,IO8259_0MOV AL,20HOUTDXPOP DXPOPAXIRETStep_SUB_1PROCNEARMOV CX,4LEA BX,bufferStep_SUB_1_1:DECBYTEPTR[BX]CMPBYTEPTR[BX],0FFHJNZStep_SUB_1_2MOVBYTEPTR[BX],9INCBXLOOPStep_SUB_1_1Step_SUB_1_2:RETStep_SUB_1ENDPTakeStepCountPROCNEARMOV AL,buffer+3;轉(zhuǎn)動(dòng)步數(shù)送入StepCountMOVBX,10MUL BLADD AL,buffer+2MULBLADD AL,buffer+1ADC AH,0MULBXADDAL,bufferADCAH,0MOVStepCount,AXRETTakeStepCountENDPInit8255 PROCNEARMOVDX,IO8255_ConMOV AL,80HOUTDX,AL;8255PC輸出DECDXMOV AL,0FFHOUTDX,AL;0FFH->8255PCRETInit8255 ENDPInit8253 PROCNEARMOVDX,Con_8253MOVAL,35HOUTDX,AL;計(jì)數(shù)器T0設(shè)置在模式2狀態(tài),BCD碼計(jì)數(shù)MOVDX,T0_8253MOVAL,10HOUTDXMOVAL,02HOUTDX;CLK0/210RETInit8253ENDPInit8259PROCNEARMOVDX,IO8259_0MOVAL,13HOUTDXMOVDX,IO8259_1MOV AL,08HOUTDXMOVAL,09HOUTDXMOVAL,0FEHOUTDXRETInit8259ENDPWriIntverPROCNEARPUSHESMOV AX,0MOV ES,AXMOVDI,20HLEAAX,TIMER0STOSWMOVAX,CSSTOSWPOP ESRETWriIntverENDPEND START九、實(shí)驗(yàn)擴(kuò)展及思考1、怎樣改變電機(jī)的轉(zhuǎn)速?2、通過(guò)實(shí)驗(yàn)找出電機(jī)轉(zhuǎn)速的上限,如何能進(jìn)一步提高最大轉(zhuǎn)速? 3、怎樣能使電機(jī)反轉(zhuǎn)?附錄一匯編語(yǔ)言的存儲(chǔ)模型模型說(shuō)明TINY(微)所有數(shù)據(jù)及代碼裝入同一個(gè)代碼段內(nèi),此模型的程序按.COM文件格式編寫(xiě),要求程序從地址0100H處開(kāi)始SMALL(小)這種模型包含兩個(gè)段:一個(gè)64KB的數(shù)據(jù)段和一個(gè)64KB的代碼段MEDIUM(中)這種模型包含一個(gè)64KB的數(shù)據(jù)段和任意多個(gè)代碼段,以供大程序使用COMPACT(壓縮)包含一個(gè)代碼段和任意多個(gè)數(shù)據(jù)段LARGE(大)LARGE模型允許多個(gè)代碼段和數(shù)據(jù)段HUGE(巨型)允許數(shù)據(jù)段大于64KB,其他與LARGE模型相同F(xiàn)LAT(平展)僅限于MASM6.X版本。FLAT模型使用一個(gè)512KB的段來(lái)存儲(chǔ)所有的代碼和數(shù)據(jù),應(yīng)注意的是該模型主要用于WindowsNT中附錄二8279鍵值顯示程序;8279鍵盤(pán)顯示器接口芯片;1.查詢控制方式2.輸入時(shí)鐘2MHZ3.8279內(nèi)部20分頻(100KHZ);4.掃描計(jì)數(shù)器采用編碼工作方式(通過(guò)外部138譯碼);5.顯示按鍵值,第九次按鍵,清除顯示; 8279查詢工作方式 .MODEL TINYCMD_8279EQU0BF01H ;8279命令字、狀態(tài)字地址DATA_8279EQU0BF00H ;8279讀寫(xiě)數(shù)據(jù)口的地址PUBLIC GetKey,GetKeyA,GetKeyB,GetBCDKey,DisPlay8,SCAN_KEYPUBLIC F1 .STACK 100 .DATAF1 DB?LED_TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 080H,90H,88H,83H,0C6H,0A1H,86H,8EH DB 0FFH,0BFH .CODEGetKey PROC NEAR CMP CX,0 JZ GetKey5 CMP CX,9 JNB GetKey5 PUSH AX PUSH BX PUSH DX PUSHF MOV AX,CX CLC RCR AX,1 DEC AX ADD DI,AX STD MOV AH,0 CMP F1,0 JZ GetKey1 CALL KeyScanGetKey1: PUSH AX MOV AL,8 CLC SUB AL,CL CALL INIT8279_1 ;8279初始化 POP AX CMP F1,0 JNZ GetKey3GetKey2: CALL KeyScan ;掃描GetKey3: NOT AH PUSH AX CMP AH,0 JZ GetKey4 ROR AL,4 MOV ES:[DI],AL JMP GetKey6GetKey4: OR AL,ES:[DI] STOSBGetKey6: POP AX LEA BX,LED_TAB XLAT CALL WRITE_DATA ;顯示輸入值 LOOP GetKey2 POPF POP DX POP BX POP AXGetKey5: RETGetKey ENDP;鍵值在AL中KeyScan PROC NEAR CALL SCAN_KEY JNB KeyScan RETKeyScan ENDP;CY=1,有鍵,鍵值在AL中;CY=0,沒(méi)有按鍵GetKeyA PROC NEAR CALL SCAN_KEY RETGetKeyA ENDP;鍵值在AL中GetKeyB PROC NEAR CALL SCAN_KEY JNB GetKeyB RETGetKeyB ENDP;BCD碼 ;F1是否需要先清除顯示GetBCDKey PROC NEAR CMP CX,0 JZ GetBCDKey5 CMP CX,9 JNB GetBCDKey5 PUSH AX PUSH BX PUSH DX PUSHF MOV AX,CX CLC RCR AX,1 DEC AX ADD DI,AX STD MOV AH,0 CMP F1,0 JZ GetBCDKey1 CALL KeyScanGetBCDKey1: PUSH AX MOV AL,8 CLC SUB AL,CL CALL INIT8279_1 ;8279初始化 POP AX CMP F1,0 JNZ GetBCDKey3GetBCDKey2: CALL KeyScan ;掃描GetBCDKey3: CMP AL,10 JNB GetBCDKey2 NOT AH PUSH AX CMP AH,0 JZ GetBCDKey4 ROR AL,4 MOV ES:[DI],AL JMP GetBCDKey6GetBCDKey4: OR AL,ES:[DI] STOSBGetBCDKey6: POP AX LEA BX,LED_TAB XLAT CALL WRITE_DATA ;顯示輸入值 LOOP GetBCDKey2 POPF POP DX POP BX POP AXGetBCDKey5: RETGetBCDKey ENDP;顯示以SI開(kāi)始的8個(gè)數(shù)字(0~F)DisPlay8 PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX MOV CX,8 ;計(jì)數(shù)用 LEA BX,LED_TAB DisPlay81: MOV AL,[SI] ;不用顯示的位調(diào)整 AND AL,7FH CMP AL,11H JZ DisPlay82 ;負(fù)號(hào)Display84: CMP AL,16 JB DisPlay82 MOV AL,10H ;顯示段碼中10H位對(duì)應(yīng)的是暗碼DisPlay82: XLAT XCHG AL,[SI] TEST AL,80H JZ Display83 XCHG AL,[SI] AND AL,7FH MOV [SI],ALDisplay83: INC SI LOOP DisPlay81 MOV AL,0 CALL INIT8279_1 MOV CX,8Display85: DEC SI MOV AL,[SI] CALL WRITE_DATA LOOP Display85 POP DX POP CX POP BX POP AX RETDisPlay8 ENDP;8279初始化INIT8279 PROCNEAR MOVDX,CMD_8279 ;CMD_8279為寫(xiě)命令地址、讀狀地址 MOVAL,34H;可編程時(shí)鐘設(shè)置,設(shè)置分頻系數(shù)(20分頻) OUTDX MOVAL,0 ;8*8字符顯示,左邊輸入,外部譯碼鍵掃描方式 OUTDX MOV AL,90H ;從第一個(gè)數(shù)碼管開(kāi)始移位顯示 OUT DX RETINIT8279ENDPINIT8279_1PROCNEAR PUSH AX MOVDX,CMD_8279 ;CMD_8279為寫(xiě)命令地址、讀狀地址 MOVAL,34H;可編程時(shí)鐘設(shè)置,設(shè)置分頻系數(shù)(20分頻) OUTDX MOVAL,0 ;8*8字符顯示,左邊輸入,外部譯碼鍵掃描方式 OUTDX CALL CLEAR ;清顯示 POP AX OR AL,90H OUT DX RETINIT8279_1ENDPCLEAR PROCNEAR MOVDX,CMD_8279 MOVAL,0DEH;清除命令 OUTDXWAIT1: INAL,DX TESTAL,80H JNZWAIT1 ;顯示RAM清除完畢嗎? RETCLEAR ENDPSCAN_KEYPROCNEAR MOVDX,CMD_8279 INAL,DX ;讀狀態(tài)READ_FIFO: AND AL,7 JZNO_KEY ;是否有鍵按下READ: MOVAL,40H OUTDX,AL ;讀FIFORAM MOVDX,DATA_8279 INAL,DX AND AL,3FH STC ;有鍵SCAN_KEY1: RETNO_KEY: CLC ;無(wú)鍵按下,清CY JMPSCAN_KEY1SCAN_KEYENDPKEY_NUM PROCNEAR ANDAL,3FH RETKEY_NUM ENDPWRITE_DATAPROCNEAR MOVDX,DATA_8279 OUTDX RETWRITE_DATAENDP END附錄三8279命令功能一覽表
附錄資料:不需要的可以自行刪除設(shè)備管理制度1.1設(shè)備日常管理辦法為了確保貨車(chē)檢修生產(chǎn)任務(wù)保質(zhì)保量的順利完成,實(shí)現(xiàn)安全生產(chǎn),并逐步建立健全適應(yīng)現(xiàn)階段生產(chǎn)需要的機(jī)械動(dòng)力設(shè)備日常管理、使用和維修的制度。1.1.1基礎(chǔ)管理:a.新?lián)艿脑O(shè)備安裝驗(yàn)收后和自制固定資產(chǎn)設(shè)備都屬于段固定設(shè)備。b.新購(gòu)置設(shè)備的安裝調(diào)試工作根據(jù)實(shí)際情況確定,由設(shè)備車(chē)間實(shí)施。c.新設(shè)備的調(diào)試必須有技術(shù)科、車(chē)間、作業(yè)場(chǎng)有關(guān)人員參加,由技術(shù)科組織設(shè)備生產(chǎn)廠家來(lái)人調(diào)試時(shí),作業(yè)場(chǎng)、車(chē)間予以配合。d.新設(shè)備調(diào)試完成、驗(yàn)收合格后,由技術(shù)科將該設(shè)備正式交設(shè)備給車(chē)間使用,并填寫(xiě)設(shè)備交接記錄,在技術(shù)科與車(chē)間設(shè)備副主任、設(shè)備使用部門(mén)簽字確認(rèn);同時(shí)設(shè)備質(zhì)檢員填寫(xiě)設(shè)備試運(yùn)轉(zhuǎn)交接記錄單,并由技術(shù)科、車(chē)間、維修車(chē)間負(fù)責(zé)人和設(shè)備質(zhì)檢員四方面簽字或蓋章生效。e.設(shè)備使用者必須取得《設(shè)備操作證》方可操作設(shè)備,并按規(guī)定正確填寫(xiě)設(shè)備使用記錄。f.設(shè)備使用者對(duì)設(shè)備的日常保養(yǎng)和自檢自修工作,必須嚴(yán)格執(zhí)行相關(guān)規(guī)定,杜絕簡(jiǎn)化作業(yè)。h.設(shè)備發(fā)生故障,由設(shè)備使用者通知主管,并通知設(shè)備車(chē)間有關(guān)人員現(xiàn)場(chǎng)維修,同時(shí),設(shè)備使用者和維修者進(jìn)行相關(guān)記錄。i.新設(shè)備發(fā)生故障,原則上是:在保修期內(nèi),由設(shè)備生產(chǎn)廠家負(fù)責(zé)維修;在保修期外,由設(shè)備車(chē)間負(fù)責(zé)維修。如果新設(shè)備故障影響現(xiàn)場(chǎng)生產(chǎn),可由設(shè)備車(chē)間對(duì)故障進(jìn)行緊急處理,保證生產(chǎn)正常進(jìn)行。j.新設(shè)備保修期滿后,由設(shè)備車(chē)間進(jìn)行維修工作。k.特種設(shè)備、探傷設(shè)備等特殊設(shè)備的使用、維修、管理工作按段有關(guān)文件執(zhí)行。1.1.2設(shè)備使用管理在使用中的設(shè)備,根據(jù)“誰(shuí)使用誰(shuí)養(yǎng)護(hù)”的原則,實(shí)行“兩定”(定人、定機(jī))“三包”(包使用、包保養(yǎng)、包保管)的包機(jī)制度。對(duì)設(shè)備使用包機(jī)人的規(guī)定a.單機(jī)使用的設(shè)備,設(shè)備操作者即為包機(jī)人。b.兩人及兩人以上使用的設(shè)備或機(jī)組,選出包機(jī)人,由該負(fù)責(zé)人組織操作者使用、保養(yǎng)設(shè)備并對(duì)設(shè)備負(fù)全責(zé)。c.班組集體使用的共用設(shè)備,由所在班組的工組長(zhǎng)擔(dān)任包機(jī)人或車(chē)間領(lǐng)導(dǎo)指定包機(jī)人,對(duì)設(shè)備的使用、保養(yǎng)維修負(fù)責(zé)。d.設(shè)備包機(jī)人要保持相對(duì)穩(wěn)定,變更設(shè)備包機(jī)人時(shí),由設(shè)備所在地主管批準(zhǔn),屬于精密、重點(diǎn)的大型設(shè)備,必須經(jīng)技術(shù)部門(mén)核準(zhǔn)。包機(jī)人崗位責(zé)任制包機(jī)人須認(rèn)真學(xué)習(xí)和熟練掌握所使用設(shè)備的技術(shù)操作規(guī)程和維護(hù)保養(yǎng)技術(shù),做到“兩不、三好、四懂、五會(huì)、一消滅”。兩不:不帶病運(yùn)行、不違章蠻干;三好:管理好、使用好、修養(yǎng)好;四懂:懂設(shè)備構(gòu)造性能、懂安全生產(chǎn)知識(shí)、懂操作規(guī)程、懂設(shè)備評(píng)比鑒定內(nèi)容和方法;五會(huì):會(huì)使用、會(huì)養(yǎng)護(hù)、會(huì)潤(rùn)滑、會(huì)日檢日修、會(huì)排除一般故障;一消滅:消滅設(shè)備人身事故。使用設(shè)備必須執(zhí)行下列規(guī)定:a.使用者持證上崗,嚴(yán)格執(zhí)行設(shè)備操作規(guī)程。b.經(jīng)常保持設(shè)備整潔,按“五定”規(guī)范進(jìn)行潤(rùn)滑,并注意節(jié)約油脂。c.管理好工具及附件,按要求內(nèi)容在設(shè)備每日或每班開(kāi)始使用時(shí)對(duì)設(shè)備進(jìn)行點(diǎn)檢并記錄。d.遵守交接班制度,認(rèn)真填寫(xiě)設(shè)備交接班記錄和設(shè)備使用運(yùn)轉(zhuǎn)記錄。e.保
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年軍隊(duì)文職人員招聘之軍隊(duì)文職管理學(xué)考前沖刺模擬試卷A卷含答案
- 2025年軍隊(duì)文職人員招聘之軍隊(duì)文職公共科目題庫(kù)檢測(cè)試卷B卷附答案
- 2025年消防設(shè)施操作員之消防設(shè)備高級(jí)技能能力提升試卷B卷附答案
- 采購(gòu)分包資源配置合同(2篇)
- 2023年全國(guó)碩士研究生考試《管理類(lèi)聯(lián)考綜合能力》試題真題及答案
- 2025年黨史競(jìng)賽知識(shí)題庫(kù)70題及答案
- 會(huì)計(jì)學(xué)成本會(huì)計(jì)模擬試題集
- 各行業(yè)各年度數(shù)據(jù)對(duì)比表格
- 泰坦尼克號(hào)的文化價(jià)值和社會(huì)反思:高中語(yǔ)文教學(xué)教案
- 經(jīng)濟(jì)學(xué)微觀經(jīng)濟(jì)學(xué)知識(shí)點(diǎn)歸納與解析
- 河北張家口中國(guó)化工集團(tuán)盛華化工公司“11.28”重大爆燃事故調(diào)查報(bào)告
- 《知識(shí)產(chǎn)權(quán)法教程(第八版) 》 課件 王遷 第1-9章 總論、著作權(quán)法律制度概述-專(zhuān)利法律制度概述
- 07SG111-1 建筑結(jié)構(gòu)加固施工圖設(shè)計(jì)表示方法
- 屋頂分布式光伏發(fā)電EPC項(xiàng)目 投標(biāo)方案(技術(shù)方案)
- 網(wǎng)約車(chē)停運(yùn)損失費(fèi)起訴狀模板
- 中國(guó)急性缺血性卒中診治指南(2023)解讀
- A型肉毒素治療知情同意書(shū) 注射知情同意書(shū)
- 混凝土采購(gòu)項(xiàng)目整體供貨方案
- 血液透析導(dǎo)管溶栓及護(hù)理
- 公司外聘人員管理制度
- 慢病聯(lián)合用藥病
評(píng)論
0/150
提交評(píng)論