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

下載本文檔

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

文檔簡介

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

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

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

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

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

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

7、b>  人員及任務(wù)分配</b></p><p><b>  目錄</b></p><p>  一、系統(tǒng)功能和設(shè)計(jì)方案3</p><p>  1.1 基本設(shè)計(jì)目標(biāo)實(shí)現(xiàn)3</p><p>  1.1.1 基本設(shè)計(jì)目標(biāo)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è)計(jì)思路6</p><p><b>  二、程序流程圖7</b></p><p><b>  

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

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

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

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

13、t;b>  1.2 硬件連接</b></p><p>  確定了基本功能軟件設(shè)計(jì)方案,我們通過查閱相關(guān)資料,綜合討論后設(shè)計(jì)出了硬件連接方案,下面是我們的硬件連接:</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è)計(jì)思路</p><p>  將整個(gè)系統(tǒng)分為許多個(gè)小的模塊,各個(gè)模塊之間相

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

34、是相對(duì)以前實(shí)驗(yàn)更為獨(dú)立完成的一次自主編寫程序的鍛煉,從程序的設(shè)計(jì)、流程圖的繪畫、程序框架的設(shè)計(jì)到每一個(gè)小程序段的細(xì)致完成,都是獨(dú)立完成的,唯一的資料就是課本和網(wǎng)絡(luò),所以很鍛煉人。在以后的工作中會(huì)有更多的機(jī)會(huì)獨(dú)立完成任務(wù),處理和學(xué)習(xí)相對(duì)應(yīng)的軟件。這次鍛煉就顯得更加珍貴和實(shí)用。這次課程設(shè)計(jì)給了我一個(gè)讓我將理論與實(shí)際聯(lián)系的機(jī)會(huì),給了我一個(gè)通過小組合力完成任務(wù)的機(jī)會(huì)。最后,感謝老師的細(xì)心教誨和指導(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 ;各個(gè)鍵值</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,定時(shí)中斷</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 ;定時(shí)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 ;閃爍延時(shí)</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 ;閃爍延時(shí)</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)用計(jì)時(shí)程序</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)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論