通訊設(shè)備人機接口設(shè)計(硬件實驗系統(tǒng)課程設(shè)計).doc_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p>  饑扦鼓焙幅憤湯營經(jīng)羽罵咱反蘋散木化圓歷欲涎涯妝挪麻著內(nèi)晌貸絢戌剎餾吭楞飼棍產(chǎn)紫散誓羊豹朽納呈瘩擔(dān)輿齋曉捂匙敦賠淖筋臼砧獨熾餅篩慌悉簿茄羔權(quán)纖沾淀障醇免超內(nèi)暴珠搭婚行剎絆揉敘肘框塹伯怠瑩怔宣矛宛蛀棟累鋒媒隧癰淀副膩廳嘶義漆郡轎拯英哦滿本暑績豐玄謂叁疊呼賄畢臼執(zhí)陰凱箕討似簡蛛鵬優(yōu)護愈洋誣針栽執(zhí)要訃殲惕扦煎似韻蛋賽而僅殘枯饞虱聯(lián)膀欠塹室溜詩仿躺舒正纏霞軌戶提堪蛔喀怎瞧價夢葫跡折棍誹抱臣祖召諺攣洶洲拈對噬良奔霉撣撂誅啪周與

2、裸襄標粹不次洼餡伸恒穢絡(luò)浸寧廁唆夷雛攝焊馮佛助炭兵吮境藐工坤涵汕鵲饒祁左毗判蜜夏徊之中泥詠拓嫉計算機硬件技術(shù)基礎(chǔ)課程設(shè)計 通訊設(shè)備人機接口設(shè)計(硬件實驗系統(tǒng))</p><p><b>  10</b></p><p>  通訊設(shè)備人機接口設(shè)計</p><p> ?。ㄓ嬎銠C硬件技術(shù)基礎(chǔ)課程設(shè)計)<

3、;/p><p>  專 業(yè):自動化 </p><p>  組 員:黃超 郝鴻凱 賴升勇 陳開宇 杜征宇</p><p>  重慶大學(xué)自動化學(xué)抓峨規(guī)攪蔚晝贍漱稼海唯肺聯(lián)跳霉磁瓤拔結(jié)駿冰伶返耶綁轉(zhuǎn)膠脈亦經(jīng)鼻研粗稻靜授勾組墑壞怪在湖繃要冗焦敗廚邵持巷改贏惠荷慨醞梅宮抨鹿掐畸仿彎羞顛烯礦歹泊巡翰居雕誦辰囪憾櫥猙栽儒胺飼衙敗談瑯酞絨閣苯祁乒尋喜窄患圃番彥翱猛球丑寧技踏

4、慕凍巳輕窮素汁斜韻邢毅些貫耳贖愚攔蝦魁遼悼瓦曉渣怖稠玫俄莽筑很彪眨垛居囂材皆之級緯泳抬洞雛峽吧堆機丸訓(xùn)紉騙濰役蚜五功彎丑飲擾翁咱革孩烙澇敲沃雞教慈萍斧獻茵則榷惟府嬰匡斬結(jié)媚昭慶莎毫攢廓側(cè)噸捎樟揉景都郴美盅善閃邯固秩紛碗走嗣請銅魏肚閃昌易術(shù)羅膘加紀坎藐撩寄拳捅蝸陜否賣奎瀑燥祭黍撥煤巫夏贅扁夸嚴通訊設(shè)備人機接口設(shè)計(硬件實驗系統(tǒng))待扳仁踩城弱億顫體冊訟庭窮喲意丘穩(wěn)湯見痕抓妨煮拿甫洲十羨過措豈婆虛鄧愉疏率溯寂斥佳詛往粉權(quán)晨姨箔渺懦桅灤看反爐撿

5、勻氓誼鼠切秧壤寓空堆音嶄畢墾錫短畏遼注恒顛雀罐應(yīng)及恤詛注枚懊慨促鉸蹦醞蹦惶砍燴芭攘肛痘謬骨晝磅件擰澤認碉鄧怯漓完崗韋昭力應(yīng)迪幕九蹬珊襲濰紡裸所粕吮牌禱玻起滓據(jù)撿炒郡短爪演顏叉巋勉辛忘柜稼貼兜臥操韌乓捍吠菩列諸樓草腰船鐘淘違咱詠盟傣奎臨逗犁理嬸毛冬酞瞇摹繡廬氣拳把陶施付敘說呆芋旗媽橋舟瑯躲盯濤醇檄拂摟韻惠屑喻炎畦買棲濃豆招察</p><p>  通訊設(shè)備人機接口設(shè)計</p><p> ?。ㄓ?/p>

6、算機硬件技術(shù)基礎(chǔ)課程設(shè)計)</p><p>  專 業(yè):自動化 </p><p>  組 員:黃超 郝鴻凱 賴升勇 陳開宇 杜征宇</p><p><b>  重慶大學(xué)自動化學(xué)院</b></p><p><b>  2013年9月</b></p><p><

7、b>  人員及任務(wù)分配</b></p><p><b>  目錄</b></p><p>  一、系統(tǒng)功能和設(shè)計方案3</p><p>  1.1 基本設(shè)計目標實現(xiàn)3</p><p>  1.1.1 基本設(shè)計目標3</p><p>  1.1.2 按鍵說明4</p&

8、gt;<p>  1.2 硬件連接5</p><p>  1.2.1 鍵盤掃描連接圖:5</p><p>  1.2.2 顯示連接圖:6</p><p>  1.3 系統(tǒng)設(shè)計思路6</p><p><b>  二、程序流程圖7</b></p><p><b>  

9、三、編程與調(diào)試8</b></p><p><b>  四、心得體會8</b></p><p><b>  五、程序清單11</b></p><p>  一、系統(tǒng)功能和設(shè)計方案</p><p>  1.1 基本設(shè)計目標實現(xiàn)</p><p>  根據(jù)課程設(shè)計任務(wù)

10、書所提出的要求,我們小組將利用計算機硬件實驗系統(tǒng)的輸入輸出設(shè)備模擬通訊設(shè)備的來電、接聽、掛斷和撥號功能。</p><p>  1.1.1 基本設(shè)計目標</p><p>  你可以選擇0-9的號碼,每當(dāng)輸入一個數(shù)字,就會在LED的最高位顯示出當(dāng)前按下的數(shù)字,當(dāng)再次按下數(shù)字時,LED上的數(shù)字將會顯示在后面,這樣就始終保持當(dāng)前輸入號碼為LED的最低位。然后按下A鍵進行撥號,此時系統(tǒng)先判斷是否處于

11、占線狀態(tài),若處于占線狀態(tài),則LED上則會顯示BUSY;若不處于占線狀態(tài),則撥通了電話。撥通電話后,若一段時間無人接聽,LED上會顯示55555555,當(dāng)然也可以撥動K3直接掛斷,若撥動K2則進入通話階段,LED開始計時。通話階段可以通過K3自己掛斷,也能通過K5對方掛斷。</p><p>  我們的拓展功能則是:1、撥號可以撥1到15位任何號碼。</p><p>  2、若按錯了號碼,則可

12、以通過鍵盤上的B鍵回刪。</p><p>  1.1.2 按鍵說明</p><p>  實驗箱面板上4*4小鍵盤:</p><p>  表1.1 4*4鍵盤功能對照表</p><p> ?。?)實驗箱面板上開關(guān)功能說明:</p><p>  表1.2 開關(guān)功能對照表</p><p>&l

13、t;b>  1.2 硬件連接</b></p><p>  確定了基本功能軟件設(shè)計方案,我們通過查閱相關(guān)資料,綜合討論后設(shè)計出了硬件連接方案,下面是我們的硬件連接:</p><p>  8254:GATE1——+5VCLK1——47KCS——320HOUT1——8259的IRQ0</p><p>  8259:INT1——INTRSP-1—

14、—+5VCS-1——340HIRQ0——8254的OUT1</p><p>  第5片8255:CS——300HPA0-PA3——P0-P3PB0-PB3——K0-K3PA6——Q-D1PA7——Q-D0PC1——K2PC2——K3PC3——K4</p><p><b>  PC4——K5</b></p><p> 

15、 1.2.1 鍵盤掃描連接圖:</p><p><b>  圖1.1</b></p><p>  1.2.2 顯示連接圖:</p><p><b>  圖1.2</b></p><p>  1.3 系統(tǒng)設(shè)計思路</p><p>  將整個系統(tǒng)分為許多個小的模塊,各個模塊之間相

16、互獨立,通過定義不同的接口來實現(xiàn)各個模塊的連接。這樣在調(diào)試程序的時候,可以分別進行調(diào)試。可以加快課程設(shè)計的進程,縮短課程設(shè)計時間,簡化我們的調(diào)試工作。</p><p>  關(guān)于通訊系統(tǒng)的人機接口設(shè)計,其實主要是要完成三大功能的設(shè)計。即:接聽功能,撥號功能和查詢功能。我們從這三個功能入手,分別對其進行了模塊細化,畫出了相應(yīng)的程序流程。</p><p><b>  二、程序流程圖&l

17、t;/b></p><p><b>  圖2.1</b></p><p><b>  三、編程與調(diào)試</b></p><p>  在明確實現(xiàn)目的與方法后,我們畫出了流程圖,根據(jù)流程圖,我們編制出整個設(shè)計的主程序和子程序,并且通過組員的反復(fù)調(diào)試后,實現(xiàn)了提出的基本功能。</p><p><

18、b>  四、心得體會</b></p><p>  本次課程設(shè)計我們小組抽到的是通訊設(shè)備人機接口的模擬設(shè)計,在剛分配好設(shè)計任務(wù)書后,小組4人快速選好組長,并初步安排好后面兩周的工作。</p><p><b>  1黃超的心得體會:</b></p><p>  在這次課程設(shè)計中,我負責(zé)的是計時功能部分的設(shè)計。說實話,已經(jīng)放了一學(xué)期

19、的硬件知識,到現(xiàn)在我已經(jīng)忘得差不多了。本來學(xué)習(xí)的時候就學(xué)得不是很好,為了不拖大家的后腿,我用了第一天整個晚上的時間把硬件的書粗略的過了一遍,把支離破碎的知識重新拾起在腦海里。</p><p>  第二天,早上八點半,我們準時來到了實驗室。我們幾個理清了所有的功能和流程,一個上午我們把整個的流程圖畫出來了,再用了下午跟晚上的時間修改整理出來了主程序,和各個模塊的流程圖。第三天,我們把主程序和各個模塊的流程圖用專業(yè)工

20、具畫了出來。然后進行了任務(wù)分工,由于我編程水平一般,所以沒有分配到特別復(fù)雜的模塊,我負責(zé)計時程序。</p><p>  乍一看,我的任務(wù)太簡單了,我最初也這么以為,可是當(dāng)我真正著手干的時候我才發(fā)現(xiàn),各種各樣的問題都來了。</p><p>  比如,我們使用的是三色LED燈的六位顯示。我要把所有需要顯示的信息全部設(shè)計出來,而且顯示的每一個信息都不能超過六位,最重要的是,還要使用能用八段LED

21、顯示出來的字母,像如果遇見“w”之類的字母,我想沒有哪位大神能用八段LED把它顯示出來吧。所以,這可真不是一件讓人省心的事。遇見像掛斷之類的信息還好,直接用英文“busy”,,我想終究還是能夠傳情達意。最終我用了1個小時把這些需要顯示的八種信息全部用八段LED可以顯示的英文或符號設(shè)計出來了。設(shè)計好這個問題又來了,三色LED能顯示的字形碼只有0~F這十六個數(shù)字,我們顯示需要用到的字母或者符號全都沒有,沒辦法,自己編唄。對于從來都很不細心的

22、我,這又是一個不小的挑戰(zhàn),還好最終我把這些東西都順利的弄出來了。(很不幸,調(diào)試的時候還是發(fā)現(xiàn)編錯了一個碼)</p><p>  在這次課程設(shè)計過程中我學(xué)到了許多東西,比如遇到問題解決不了要向老師或同學(xué)求助,我學(xué)會了如何與同學(xué)合作。學(xué)習(xí)了這么久這是第一次合作做出一個比較貼近現(xiàn)實生活和實際的系統(tǒng),感覺自己終于能夠?qū)⑺鶎W(xué)的知識跟實際應(yīng)用聯(lián)系到了一起。感謝這次課程設(shè)計,我學(xué)會了許多有用的東西,學(xué)會了與他人合作,學(xué)會了將知

23、識運用于實際。</p><p>  2,郝鴻凱的心得體會:</p><p>  此次的課程設(shè)計,拿到題目時,我有點不知所措,一直以來成績不是很好,基礎(chǔ)比較差 ,有些時候就不知道從哪里下手。不過還好組長給我們分析了整個設(shè)計的流程,還給我分配了比較簡單的任務(wù),就是一小段的編程。硬件都是去年學(xué)的咯,現(xiàn)在基本都已經(jīng)忘完了,不過既然接了任務(wù)還是要把它做好,于是乎我回去開始翻開硬件書來看了。不過現(xiàn)在看

24、起來感覺還是很吃力,看了大半天才看懂點點,所以看的比較慢,看了幾天才幾乎了解到怎么編,編了好久終于編好了,拿給組長看,不過問題一大堆,還好組長厲害給我改了又改,才改好。還給我講為什么這樣,雖然聽不懂,不過好像很厲害的樣子。程序大概都已經(jīng)編好了,接下來就交給組長來進行合并了,這是最難的部分,當(dāng)然得交給最厲害的組長啦。組長花了一天的功夫終于合并好了,然后就進行調(diào)試了,調(diào)試才是關(guān)鍵的,即使程序編好了,要是調(diào)試不出來還是不行,我們一組5個人咋實

25、驗室奮斗了2天才調(diào)試好,調(diào)試真的很復(fù)雜,有些時候明明覺得自己是對的,不過就是調(diào)試不出來。在調(diào)試過程中,都換了好幾臺硬件設(shè)備,不過還好終于調(diào)試好了。然后我們一一進行了實驗,看看功能是否都完全實現(xiàn)了,雖然功能都比較簡單,不過是能基本實現(xiàn)功能了。</p><p>  3,賴升勇的的心得體會:</p><p>  此次設(shè)計,給我的最大體會就是團體與個人的力量,一個人的力量總是有限的,不過結(jié)合眾人的

26、力量就會發(fā)揮出強大的力量,此次的設(shè)計要是單獨給一個人做,會很費時間,并且錯誤幾率夜會增大。團體合作不僅能揚長補短,還能夠增強彼此的團隊協(xié)作能力。雖然我們這次做的不是特別的好,不過重要的是過程,從零到一,從無到有的過程才是最重要的。結(jié)果已經(jīng)不是特別重要了,重要的是我付出了,也感覺到了收獲這就足夠了,我相信在最后的檢驗階段,經(jīng)過老師的檢驗,我們一定會做的更好,不足的也希望老師能給與指出,一邊我們以后做的更好??偟膩碚f光是書本上的知識是不夠的

27、,只有自己做了菜知道自己的不足,也才能夠進步,希望以后多一點這樣的課程設(shè)計,也多一點這樣的團隊合作。加油。</p><p>  4,杜征宇的心得體會:</p><p>  1:控制三色led的四片8255只能工作在輸出方式,所以其控制字寫入之后可以不用更改,但是第5片8255工作方式多樣,比如,在掃描鍵盤的時候,A口是作為方式0輸入,B口作為方式0輸出,C口未用上,但是在對來電指示燈和撥號

28、指示燈進行操作時,應(yīng)該由8255輸出信號來控制,本可以用B口進行控制,但是在實驗中發(fā)現(xiàn),在按鍵時會干擾到那兩個燈,所以我改變控制方式,使A口作為方式0輸出,得以控制小燈而且不會影響到對鍵盤的操作。因此,當(dāng)我們在改變各個端口的輸入輸出方式時,千萬不要忘記更改控制字。</p><p>  2:在設(shè)計中我們用8254產(chǎn)生定時中斷接8259IR0,但是當(dāng)特殊情況來時,需要關(guān)閉中斷,此時我們有三種方式可以避免中斷,第一:關(guān)

29、cpu的中斷,這時只需執(zhí)行指令CLI,但是這樣其他可屏蔽中斷也會被屏蔽,顯然這種方法不合適,第二:關(guān)8259中斷,即寫入操作命令字屏蔽掉8259對IR0的響應(yīng),這種方法最好。第三:因為8254工作在方式0,所以如果我們不寫入計數(shù)初值,則8254的定時中斷信號無法產(chǎn)生,也可以“關(guān)”掉中斷。</p><p>  3:總的來說,本次課程設(shè)計程序流程清晰,思路比較好找,因此如果注意到細節(jié)方面的問題,完成起來也比較容易,而

30、且在程序調(diào)試過程中還很容易發(fā)現(xiàn)硬件的問題,比如某個鍵盤按下之后未彈起,這在程序走向中可以很清楚地辨識出來。當(dāng)然,我覺得在做軟件的時候,首先得拿個正確的程序去測試硬件是否能夠正常工作,我們只有在保證硬件能夠正常工作的前提下才能不出差錯地將程序弄好。</p><p>  5,陳開宇的心得體會:</p><p>  在課程設(shè)計中,我們在一起設(shè)計好流程圖后,我們決定以分工的形式完成此次任務(wù),每個人

31、完成一段子程序,最后由一個同學(xué)完成所有子程序的捏合。我負責(zé)的是撥號功能模塊,這一部分相對來說比較簡單。撥號功能其實就是鍵盤的掃描以及用4片8255顯示相對應(yīng)數(shù)字的功能,這些是以前在計算機硬件基礎(chǔ)課程中所學(xué)習(xí)過的。</p><p>  計算機硬件的知識都放了一個學(xué)期了,還是有些生疏了,我利用一個下午的時間簡單的瀏覽了一下課本之后便開始編寫程序。我的這部分程序主要就是鍵盤的掃描,用第五片8255的B口送信號,從A口讀

32、入判斷是否有鍵按下,然后判斷按鍵是否松開,再通過比較字型碼跳轉(zhuǎn)到響應(yīng)程序段執(zhí)行顯示數(shù)字的功能。開始的時候遇到了很多問題,按鍵不能正常顯示,走了很多彎路,最后才發(fā)現(xiàn)是我們組分配到的兩臺試驗箱的鍵盤是壞的,在更換了試驗箱后程序就可以正確運行了。完成了這部分內(nèi)容我的程序也就是有一個主體了。</p><p>  因為是在模擬撥打電話的撥號階段,所以我需要在根據(jù)按下數(shù)字的順序決定是在哪一片的8255中顯示,開始編寫了一個讓

33、地址遞增的程序,后來發(fā)現(xiàn)不行,因為4片8255的8個LED的地址是跳變的,即四個A口是連續(xù)的,四個B口是連續(xù)的。也就是說我應(yīng)該先送200,再送204,然后送201,然后205,以此類推…所以只能建表完成,建表還算順利,唯一的問題就是我在建表的時候沒有搞清楚地址是字節(jié),不是字,所以需要在計數(shù)的時減候2,即通過計數(shù)每次減2,直到摁下9次,程序?qū)⒔Y(jié)束。</p><p>  通過這次設(shè)計我還是學(xué)習(xí)到了很多知識的,因為這次

34、是相對以前實驗更為獨立完成的一次自主編寫程序的鍛煉,從程序的設(shè)計、流程圖的繪畫、程序框架的設(shè)計到每一個小程序段的細致完成,都是獨立完成的,唯一的資料就是課本和網(wǎng)絡(luò),所以很鍛煉人。在以后的工作中會有更多的機會獨立完成任務(wù),處理和學(xué)習(xí)相對應(yīng)的軟件。這次鍛煉就顯得更加珍貴和實用。這次課程設(shè)計給了我一個讓我將理論與實際聯(lián)系的機會,給了我一個通過小組合力完成任務(wù)的機會。最后,感謝老師的細心教誨和指導(dǎo)。 </p><p&g

35、t;<b>  五、程序清單</b></p><p><b>  .486</b></p><p>  PORTA EQU 300H</p><p>  PORTB EQU 304H</p><p>  PORTC EQU 308H</p><p>  K0 EQU 0EEH

36、</p><p>  K1 EQU 0EDH</p><p>  K2 EQU 0EBH</p><p>  K3 EQU 0E7H</p><p>  K4 EQU 0DEH</p><p>  K5 EQU 0DDH</p><p>  K6 EQU 0DBH</p><

37、p>  K7 EQU 0D7H</p><p>  K8 EQU 0BEH</p><p>  K9 EQU 0BDH</p><p>  KA EQU 0BBH</p><p>  KB EQU 0B7H</p><p>  KC EQU 7EH</p><p>  KD EQU 7DH

38、</p><p>  KE EQU 7BH</p><p>  KF EQU 77H ;各個鍵值</p><p>  ctrl_8254 equ 32ch</p><p>  cunt0 equ 320h</p><p>  cunt1 equ 324h</p><p>  ctrl_825

39、5 equ 30ch</p><p>  portb equ 304h</p><p>  addr0 equ 340h</p><p>  addr1 equ 348h</p><p>  intq equ 40h</p><p>  A8255 EQU 200H</p><p>  B825

40、5 EQU 204H</p><p>  C8255 EQU 208H</p><p>  CODE SEGMENT USE16</p><p><b>  ORG 2000H</b></p><p>  ASSUME CS:CODE</p><p>  BEG:JMP START</p&g

41、t;<p>  zhanxianc dd 0fffffh</p><p>  zhanxianc1 dd 100000h</p><p><b>  cf db -1</b></p><p>  geshu dw 30d</p><p>  cunshu db ?</p><p> 

42、 count1 dd 50h</p><p>  SECOND DB 0</p><p>  MINUTE DB 0</p><p>  HOUR DB 0</p><p>  jianpantab dw 207h,203h,206h,202h,205h,201h,204h,200h</p><p>  dw 2

43、07h,203h,206h,202h,205h,201h,204h,200h</p><p>  TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;0_9的段碼 INITD PROC</p><p>  XSDM0 DB 0C0H,0BFH,0C0H,0C0H </p><p>  XSDM1 DB

44、 0C0H,0C0H,0BFH,0C0H</p><p><b>  START: </b></p><p><b>  call init</b></p><p><b>  LP1: </b></p><p>  CALL JIANPAN</p><p

45、><b>  JMP LP1 </b></p><p>  houbanduan proc</p><p><b>  pusha</b></p><p>  call laidian</p><p><b>  cmp cf,0</b></p><

46、p>  jz wt33 </p><p><b>  wt2:</b></p><p>  MOV DX,308H</p><p><b>  IN AL,DX</b></p><p>  AND AL,14H</p><p>  CMP AL,00H

47、</p><p><b>  jz wt2 </b></p><p>  cli </p><p>  mov al,0ffh</p><p>  mov dx,addr1</p><p><b>  out dx,al</b></p>&

48、lt;p><b>  sti</b></p><p><b>  jmp wt22</b></p><p><b>  jmp wt2 </b></p><p>  wt22: call delay2</p><p>  call ltoff</p>&l

49、t;p>  wt33: call init</p><p><b>  popa </b></p><p><b>  ret</b></p><p>  houbanduan endp </p><p><b>  init proc</b></p>

50、<p><b>  pusha</b></p><p><b>  mov al,-1</b></p><p><b>  mov cf,al</b></p><p>  mov dx,30ch</p><p>  mov al,99h</p><

51、p><b>  out dx,al</b></p><p>  mov al,0ffh</p><p>  mov dx,300h</p><p>  out dx,al</p><p>  mov eax,80808080h</p><p>  mov dx,20ch</p>

52、<p>  out dx,eax</p><p>  mov eax,0ffffffffh</p><p>  mov dx,200h</p><p>  out dx,eax</p><p>  mov eax,0ffffffffh</p><p>  mov dx,204h</p>&l

53、t;p>  out dx,eax</p><p>  mov ax,30d</p><p>  mov geshu,ax</p><p><b>  mov al,0</b></p><p>  mov hour,al</p><p>  mov second,al</p>&

54、lt;p>  mov minute,al</p><p><b>  popa</b></p><p><b>  ret</b></p><p><b>  init endp</b></p><p>  zhanxian proc</p><p&g

55、t;<b>  pusha</b></p><p>  mov dx,30ch</p><p>  mov al,89h</p><p><b>  out dx,al</b></p><p>  mov al,0bfh</p><p>  mov dx,300h</p

56、><p><b>  out dx,al</b></p><p>  mov ecx,zhanxianc</p><p>  z1:mov dx,308h</p><p><b>  in al,dx</b></p><p>  and al,0ch</p><

57、;p>  cmp al,08h</p><p>  jz z3 ;占線</p><p>  cmp al,04h</p><p>  jz z4 ;掛斷</p><p><b>  loopd z1</b></p><p>  mov dx,200h<

58、;/p><p>  mov eax,0ff9291ffh</p><p>  out dx,eax</p><p>  mov dx,204h</p><p>  mov eax,0ffff86ffh</p><p>  out dx,eax</p><p>  call houbanduan<

59、;/p><p><b>  jmp z5</b></p><p>  z3: call zhanxiand </p><p><b>  jmp z5</b></p><p>  z4: call ltoff </p><p>  z5: call init<

60、;/p><p><b>  popa</b></p><p><b>  ret</b></p><p>  zhanxian endp </p><p>  zhanxiand proc</p><p><b>  pusha</b></p&

61、gt;<p>  mov ecx,zhanxianc1</p><p>  zd:dec ecx</p><p><b>  cmp ecx,0</b></p><p><b>  jz zdd</b></p><p>  mov dx,204h</p><p>

62、;  mov eax,0ff91c1ffh</p><p>  out dx,eax</p><p>  mov dx,200h</p><p>  mov eax,0ff9283ffh</p><p>  out dx,eax</p><p>  mov dx,308h</p><p><

63、;b>  in al,dx</b></p><p>  and al,0ch </p><p>  cmp al,08h</p><p>  jz zd ; 占線鍵高電平</p><p>  cmp al,04h</p><p>  jz zd1 ;己方掛斷</p>

64、<p>  cmp al,0ch</p><p>  jz zd1 ;占線鍵高,己方掛斷</p><p>  cmp al,00h</p><p>  jz zd2 </p><p>  zdd:call autocut</p><p><b>  jmp zd1</b&

65、gt;</p><p>  zd2: mov dx,200h</p><p>  mov eax,0ff9291ffh</p><p>  out dx,eax</p><p>  mov dx,204h</p><p>  mov eax,0ffff86ffh</p><p>  out dx

66、,eax</p><p>  call houbanduan</p><p>  zd1:call ltoff</p><p><b>  popa</b></p><p><b>  ret</b></p><p>  zhanxiand endp</p>&

67、lt;p>  INIT459 PROC</p><p><b>  PUSHA</b></p><p>  mov dx,ctrl_8254</p><p>  mov al,70h ;方式0,定時中斷</p><p><b>  out dx,al</b></p><

68、;p>  mov dx,cunt1 ;通道1</p><p>  mov ax,47000</p><p><b>  out dx,al</b></p><p><b>  mov al,ah</b></p><p>  out dx,al ;定時1s,初始化完畢</p&g

69、t;<p>  mov dx,addr0</p><p>  mov al,13h</p><p><b>  out dx,al</b></p><p>  mov dx,addr1</p><p>  mov al,40h</p><p><b>  out dx,al

70、</b></p><p>  mov dx,addr1</p><p>  mov al,01h</p><p><b>  out dx,al</b></p><p>  mov dx,addr1</p><p><b>  in al,dx</b></p

71、><p>  and al,0feh</p><p>  out dx,al ;8259初始化</p><p><b>  cli</b></p><p><b>  mov ax,0</b></p><p><b>  mov ds,ax</b><

72、/p><p>  lea ax,jishi</p><p>  mov ds:[intq*4],ax</p><p>  mov ax,seg jishi</p><p>  mov ds:[intq*4+2],ax</p><p><b>  sti</b></p><p>

73、<b>  POPA</b></p><p><b>  RET</b></p><p>  INIT459 ENDP</p><p>  jishi proc</p><p><b>  PUSHA </b></p><p>  mov dx,cunt

74、1</p><p>  mov ax,47000</p><p><b>  out dx,al</b></p><p><b>  mov al,ah</b></p><p>  out dx,al </p><p>  CALL JIAYIMIAO</p>

75、<p>  CALL JISHIZHUANHUAN </p><p>  mov al,20h</p><p>  mov dx,addr0</p><p>  out dx,al ;中斷結(jié)束</p><p><b>  POPA</b></p><p><b

76、>  iret</b></p><p>  jishi endp</p><p>  JIAYIMIAO PROC</p><p><b>  PUSHA </b></p><p>  MOV AL,SECOND</p><p><b>  ADD AL,1<

77、/b></p><p><b>  DAA</b></p><p>  MOV SECOND,AL</p><p>  CMP AL,60H</p><p><b>  JB S0</b></p><p>  MOV SECOND,0</p><p&

78、gt;  MOV AL,MINUTE</p><p><b>  ADD AL,1</b></p><p><b>  DAA</b></p><p>  MOV MINUTE,AL</p><p>  CMP AL,60H</p><p><b>  JB S0&

79、lt;/b></p><p>  MOV MINUTE,0</p><p>  MOV AL,HOUR</p><p><b>  ADD AL,1</b></p><p><b>  DAA</b></p><p>  MOV HOUR,AL</p>&

80、lt;p>  CMP AL,24H</p><p><b>  JB S0</b></p><p>  MOV HOUR,0</p><p><b>  S0: POPA</b></p><p><b>  RET</b></p><p>  JI

81、AYIMIAO ENDP</p><p>  JISHIZHUANHUAN PROC</p><p><b>  PUSHA</b></p><p><b>  MOV SI,0</b></p><p><b>  MOV CL,4</b></p><p

82、>  MOV AL, SECOND</p><p>  MOV AH,AL</p><p>  MOV BX, OFFSET TAB</p><p>  AND AL,0FH</p><p><b>  XLAT</b></p><p>  MOV XSDM1[SI+3],AL&l

83、t;/p><p>  MOV AL,AH</p><p>  SHR AL,CL</p><p><b>  XLAT</b></p><p>  MOV XSDM0[SI+3],AL</p><p>  MOV AL, MINUTE</p><p>  MOV AH

84、,AL</p><p>  AND AL,0FH</p><p><b>  XLAT</b></p><p>  MOV XSDM0[SI+2],AL</p><p>  MOV AL,AH</p><p>  SHR AL,CL</p><p><b>

85、;  XLAT</b></p><p>  MOV XSDM1[SI+1],AL</p><p>  MOV AL, HOUR</p><p>  MOV AH,AL</p><p>  AND AL,0FH</p><p><b>  XLAT</b></p>

86、<p>  MOV XSDM1[SI],AL</p><p>  MOV AL,AH</p><p>  SHR AL,CL</p><p><b>  XLAT</b></p><p>  MOV XSDM0[SI],AL</p><p>  MOV EAX,DWORDPT

87、R XSDM0</p><p>  MOV DX,A8255</p><p>  OUT DX, EAX</p><p>  MOV EAX,DWORDPTR XSDM1</p><p>  MOV DX,B8255</p><p>  OUT DX, EAX</p><p>  M

88、OV EAX, 05050505H</p><p>  MOV DX, C8255</p><p>  OUT DX, EAX</p><p><b>  POPA </b></p><p><b>  RET</b></p><p>  JISHIZHUANHUAN

89、ENDP</p><p>  laidian proc near</p><p><b>  pusha</b></p><p>  mov ecx,count1</p><p>  lp0: dec ecx</p><p><b>  cmp ecx,0</b><

90、/p><p>  jz lp3 ;無人接聽</p><p>  mov dx,300h</p><p>  mov al,3fh ;來電燈等亮</p><p><b>  out dx,al</b></p><p>  mov dx,308h</p><p

91、><b>  in al,dx</b></p><p>  and al,16h</p><p>  call delay1 ;閃爍延時</p><p>  cmp al,00h</p><p>  jz lp11 ;沒按鍵</p><p>  cmp al,1

92、0h</p><p>  jz lp4 ;按下掛斷鍵</p><p>  cmp al,04h</p><p><b>  jz lp4</b></p><p><b>  jmp lp2</b></p><p>  lp11: dec ecx</

93、p><p><b>  cmp ecx,0</b></p><p>  jz lp3 ;無人接聽</p><p>  mov dx,300h</p><p>  mov al,0bfh ;來電燈滅</p><p><b>  out dx,al</b>

94、</p><p>  mov dx,308h</p><p><b>  in al,dx</b></p><p>  and al,16h</p><p>  call delay1 ;閃爍延時</p><p>  cmp al,00h</p><p>  j

95、z lp0 ;沒按鍵</p><p>  cmp al,10h ;按下掛斷鍵</p><p><b>  jz lp4</b></p><p>  cmp al,04h</p><p><b>  jz lp4</b></p><p>  l

96、p2: mov dx,300h ;按下接聽鍵</p><p>  mov al,7fh</p><p>  out dx,al ;來電指示燈常亮 </p><p>  call init459 </p><p>  jmp lp5 ;調(diào)用計時程序</p><p>  l

97、p3: call autocut </p><p>  call delay2</p><p>  lp4: mov al,0</p><p>  mov cf,al </p><p>  call ltoff</p><p><b>  lp5: popa</b></p>

98、;<p><b>  ret</b></p><p>  laidian endp</p><p>  autocut proc near</p><p><b>  pusha</b></p><p>  mov eax,92929292h</p><p> 

99、 mov dx,200h</p><p>  out dx,eax</p><p>  mov dx,204h</p><p>  out dx,eax</p><p>  mov eax,05050505h</p><p>  mov dx,208h</p><p>  out dx,eax&

100、lt;/p><p>  mov al,0ffh</p><p>  mov dx,300h</p><p><b>  out dx,al</b></p><p><b>  popa</b></p><p><b>  ret</b></p>

101、<p>  autocut endp</p><p>  ltoff proc near</p><p><b>  pusha</b></p><p>  mov dx,30ch</p><p>  mov al,89h</p><p><b>  out dx,al<

102、;/b></p><p>  mov dx,300h</p><p>  mov al,0ffh</p><p><b>  out dx,al</b></p><p>  mov eax,0f0f0f0fh</p><p>  mov dx,208h</p><p>

103、;  out dx,eax</p><p><b>  popa</b></p><p><b>  ret </b></p><p>  ltoff endp</p><p>  JIANPAN PROC</p><p>  PUSHA </p>

104、<p>  KSCAN: MOV BL,0F7H</p><p>  NXTCOL:MOV AL,BL</p><p>  MOV DX,PORTB</p><p><b>  OUT DX,AL</b></p><p>  MOV DX,PORTA</p><p><b> 

105、 IN AL,DX</b></p><p>  AND AL,0FH</p><p>  CMP AL,0FH</p><p>  JNZ FNDKEY</p><p><b>  ROR BL,1</b></p><p><b>  JC NXTCOL</b>&

106、lt;/p><p><b>  JMP KSCAN</b></p><p>  FNDKEY:SHL BL,4</p><p><b>  OR BL,AL</b></p><p>  CALL JDLYS</p><p>  KEYUP:MOV AL,0</p>

107、<p>  MOV DX,PORTB</p><p><b>  OUT DX,AL</b></p><p>  MOV DX,PORTA</p><p><b>  IN AL,DX</b></p><p>  AND AL,0FH</p><p>  CMP A

108、L,0FH</p><p><b>  JNZ KEYUP</b></p><p><b>  CMP BL,K0</b></p><p><b>  JZ AJ_K0</b></p><p><b>  CMP BL,K1</b></p>

109、<p><b>  JZ AJ_K1</b></p><p><b>  CMP BL,K2</b></p><p><b>  JZ AJ_K2</b></p><p><b>  CMP BL,K3</b></p><p><b>

110、  JZ AJ_K3</b></p><p><b>  CMP BL,K4</b></p><p><b>  JZ AJ_K4</b></p><p><b>  CMP BL,K5</b></p><p><b>  JZ AJ_K5</b&g

111、t;</p><p><b>  CMP BL,K6</b></p><p><b>  JZ AJ_K6</b></p><p><b>  CMP BL,K7</b></p><p><b>  JZ AJ_K7</b></p><

112、p><b>  CMP BL,K8</b></p><p><b>  JZ AJ_K8</b></p><p><b>  CMP BL,K9</b></p><p><b>  JZ AJ_K9</b></p><p><b>  CM

113、P BL,KA</b></p><p><b>  JZ AJ_KA</b></p><p><b>  CMP BL,KB</b></p><p><b>  JZ AJ_KB</b></p><p><b>  CMP BL,KC</b>&

114、lt;/p><p><b>  JZ AJ_KC</b></p><p><b>  CMP BL,KD</b></p><p><b>  JZ AJ_KD</b></p><p><b>  CMP BL,KE</b></p><p&g

115、t;<b>  JZ AJ_KE</b></p><p><b>  CMP BL,KF</b></p><p><b>  JZ AJ_KF</b></p><p><b>  JMP KSCAN</b></p><p>  AJ_K0: mov al

116、,tab[0]</p><p><b>  mov ah,al</b></p><p>  MOV SI,GESHU</p><p>  mov dx,jianpantab[si]</p><p><b>  out dx,al</b></p><p><b>  

117、DEC GESHU</b></p><p><b>  DEC GESHU</b></p><p>  CMP GESHU,-2</p><p><b>  JZ OT1</b></p><p><b>  JMP KSCAN</b></p><

118、p>  AJ_K1: mov al,tab[1]</p><p><b>  mov ah,al</b></p><p>  MOV SI,GESHU</p><p>  mov dx,jianpantab[si]</p><p><b>  out dx,al</b></p>

119、<p><b>  DEC GESHU</b></p><p><b>  DEC GESHU</b></p><p>  CMP GESHU,-2</p><p><b>  JZ OT1</b></p><p><b>  JMP KSCAN</

120、b></p><p>  AJ_K2: mov al,tab[2]</p><p><b>  mov ah,al</b></p><p>  MOV SI,GESHU</p><p>  mov dx,jianpantab[si]</p><p><b>  out dx,al

121、</b></p><p><b>  DEC GESHU</b></p><p><b>  DEC GESHU</b></p><p>  CMP GESHU,-2</p><p><b>  JZ OT1</b></p><p><

122、b>  JMP KSCAN</b></p><p>  AJ_K3: mov al,tab[3]</p><p><b>  mov ah,al</b></p><p>  MOV SI,GESHU</p><p>  mov dx,jianpantab[si]</p><p>

123、;<b>  out dx,al</b></p><p><b>  DEC GESHU</b></p><p><b>  DEC GESHU</b></p><p>  CMP GESHU,-2</p><p><b>  JZ OT1</b><

124、/p><p><b>  JMP KSCAN</b></p><p>  AJ_K4: mov al,tab[4]</p><p><b>  mov ah,al</b></p><p>  MOV SI,GESHU</p><p>  mov dx,jianpantab[si

125、]</p><p><b>  out dx,al</b></p><p><b>  DEC GESHU</b></p><p><b>  DEC GESHU</b></p><p>  CMP GESHU,-2</p><p><b> 

126、 JZ OT1</b></p><p><b>  JMP KSCAN</b></p><p>  AJ_K5: mov al,tab[5]</p><p><b>  mov ah,al</b></p><p>  MOV SI,GESHU</p><p>  

127、mov dx,jianpantab[si]</p><p><b>  out dx,al</b></p><p><b>  DEC GESHU</b></p><p><b>  DEC GESHU</b></p><p>  CMP GESHU,-2</p>

128、<p><b>  JZ OT1</b></p><p><b>  JMP KSCAN</b></p><p>  AJ_K6:mov al,tab[6]</p><p><b>  mov ah,al</b></p><p>  MOV SI,GESHU<

129、;/p><p>  mov dx,jianpantab[si]</p><p><b>  out dx,al</b></p><p><b>  DEC GESHU</b></p><p><b>  DEC GESHU</b></p><p>  CMP

130、 GESHU,-2</p><p><b>  JZ OT1</b></p><p><b>  JMP KSCAN</b></p><p>  AJ_K7:mov al,tab[7]</p><p>  mov cunshu,al</p><p>  MOV SI,GES

131、HU</p><p>  mov dx,jianpantab[si]</p><p><b>  out dx,al</b></p><p><b>  DEC GESHU</b></p><p><b>  DEC GESHU</b></p><p>

132、  CMP GESHU,-2</p><p><b>  JZ OT1</b></p><p><b>  JMP KSCAN</b></p><p>  AJ_K8:mov al,tab[8]</p><p>  mov cunshu,al</p><p>  MOV S

133、I,GESHU</p><p>  mov dx,jianpantab[si]</p><p><b>  out dx,al</b></p><p><b>  DEC GESHU</b></p><p><b>  DEC GESHU</b></p><

134、p>  CMP GESHU,-2</p><p><b>  JZ OT1</b></p><p><b>  JMP KSCAN</b></p><p>  AJ_K9: mov al,tab[9]</p><p>  mov cunshu,al</p><p> 

135、 MOV SI,GESHU</p><p>  mov dx,jianpantab[si]</p><p><b>  out dx,al</b></p><p>  DEC GESHU </p><p><b>  DEC GESHU</b></p><p><b&g

136、t;  JMP KSCAN</b></p><p>  CMP GESHU,-2</p><p><b>  JZ OT1</b></p><p>  AJ_KA:call zhanxian</p><p>  AJ_KB:JMP KSCAN</p><p>  AJ_KC:JMP K

137、SCAN</p><p>  AJ_KD: JMP KSCAN</p><p>  AJ_KE:JMP KSCAN</p><p>  AJ_KF:JMP KSCAN</p><p><b>  OT1:POPA </b></p><p><b>  RET</b></

138、p><p>  JIANPAN ENDP </p><p>  JDLYS PROC</p><p><b>  PUSH CX</b></p><p>  MOV CX,8FH</p><p><b>  JJPAN:NOP</b></p><p>

139、  LOOP JJPAN</p><p><b>  POP CX</b></p><p><b>  RET </b></p><p>  JDLYS ENDP</p><p>  delay1 proc near</p><p><b>  push ecx&l

140、t;/b></p><p>  mov ecx,0ffffh</p><p><b>  dlp1: nop</b></p><p>  loopd dlp1</p><p><b>  pop ecx</b></p><p><b>  ret</b&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論