自動化-通訊設備人機接口設計_第1頁
自動化-通訊設備人機接口設計_第2頁
自動化-通訊設備人機接口設計_第3頁
自動化-通訊設備人機接口設計_第4頁
自動化-通訊設備人機接口設計_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、計算機硬件技術基礎課程設計 通訊設備人機接口設計(硬件實驗系統)通訊設備人機接口設計(計算機硬件技術基礎課程設計)專 業(yè):自動化 組 員:黃超 郝鴻凱 賴升勇 陳開宇 杜征宇重慶大學自動化學院2013年9月人員及任務分配專業(yè)班級學 號姓 名任務分配自動化1班20104951黃超定時中斷,時鐘顯示自動化1班20105049賴升勇總體設計,程序連接自動化1班20105071郝鴻凱鍵盤掃描,顯示自動化1班20105098陳開宇來電閃爍,撰寫實驗報告自動化1班20104893杜征宇占線程序段的編寫目錄一、系統功能和設計方案31.1 基本設計目標實現31.1.1 基本設計目標31.1.2 按鍵說明41.

2、2 硬件連接51.2.1 鍵盤掃描連接圖:51.2.2 顯示連接圖:61.3 系統設計思路6二、程序流程圖7三、編程與調試8四、心得體會8五、程序清單11一、系統功能和設計方案1.1 基本設計目標實現根據課程設計任務書所提出的要求,我們小組將利用計算機硬件實驗系統的輸入輸出設備模擬通訊設備的來電、接聽、掛斷和撥號功能。1.1.1 基本設計目標你可以選擇0-9的號碼,每當輸入一個數字,就會在LED的最高位顯示出當前按下的數字,當再次按下數字時,LED上的數字將會顯示在后面,這樣就始終保持當前輸入號碼為LED的最低位。然后按下A鍵進行撥號,此時系統先判斷是否處于占線狀態(tài),若處于占線狀態(tài),則LED上

3、則會顯示BUSY;若不處于占線狀態(tài),則撥通了電話。撥通電話后,若一段時間無人接聽,LED上會顯示55555555,當然也可以撥動K3直接掛斷,若撥動K2則進入通話階段,LED開始計時。通話階段可以通過K3自己掛斷,也能通過K5對方掛斷。我們的拓展功能則是:1、撥號可以撥1到15位任何號碼。 2、若按錯了號碼,則可以通過鍵盤上的B鍵回刪。 1.1.2 按鍵說明  (1) 實驗箱面板上4*4小鍵盤:表1.1 4*4鍵盤功能對照表按鍵功能按鍵功能按鍵1數字鍵按鍵8數字鍵按鍵2數字鍵按鍵9數字鍵按鍵3數字鍵按鍵0數字鍵按鍵4數字鍵按鍵A撥號按鍵5數字鍵按鍵B回刪按鍵6數字鍵按鍵7數

4、字鍵(2)實驗箱面板上開關功能說明:表1.2 開關功能對照表開關功能開關功能開關1無開關2接聽開關3 己方掛斷開關4占線開關5對方掛斷開關6無1.2 硬件連接 確定了基本功能軟件設計方案,我們通過查閱相關資料,綜合討論后設計出了硬件連接方案,下面是我們的硬件連接: 8254:GATE1+5VCLK147KCS320HOUT18259的IRQ0 8259:INT1INTRSP-1+5VCS-1340HIRQ08254的OUT1 第5片8255:CS300HPA0-PA3P0-P3PB0-PB3K0-K3PA6Q-D1PA7Q-D0PC1K2PC2K3PC3K4PC4K5 1.2.1 鍵盤掃描連接

5、圖:圖1.1 1.2.2 顯示連接圖:圖1.21.3 系統設計思路將整個系統分為許多個小的模塊,各個模塊之間相互獨立,通過定義不同的接口來實現各個模塊的連接。這樣在調試程序的時候,可以分別進行調試??梢约涌煺n程設計的進程,縮短課程設計時間,簡化我們的調試工作。關于通訊系統的人機接口設計,其實主要是要完成三大功能的設計。即:接聽功能,撥號功能和查詢功能。我們從這三個功能入手,分別對其進行了模塊細化,畫出了相應的程序流程。二、程序流程圖圖2.1三、編程與調試在明確實現目的與方法后,我們畫出了流程圖,根據流程圖,我們編制出整個設計的主程序和子程序,并且通過組員的反復調試后,實現了提出的基本功能。四、

6、心得體會 本次課程設計我們小組抽到的是通訊設備人機接口的模擬設計,在剛分配好設計任務書后,小組4人快速選好組長,并初步安排好后面兩周的工作。 1黃超的心得體會: 在這次課程設計中,我負責的是計時功能部分的設計。說實話,已經放了一學期的硬件知識,到現在我已經忘得差不多了。本來學習的時候就學得不是很好,為了不拖大家的后腿,我用了第一天整個晚上的時間把硬件的書粗略的過了一遍,把支離破碎的知識重新拾起在腦海里。 第二天,早上八點半,我們準時來到了實驗室。我們幾個理清了所有的功能和流程,一個上午我們把整個的流程圖畫出來了,再用了下午跟晚上的時間修改整理出來了主程序,和各個模塊的流程圖。第三天,我們把主程

7、序和各個模塊的流程圖用專業(yè)工具畫了出來。然后進行了任務分工,由于我編程水平一般,所以沒有分配到特別復雜的模塊,我負責計時程序。 乍一看,我的任務太簡單了,我最初也這么以為,可是當我真正著手干的時候我才發(fā)現,各種各樣的問題都來了。 比如,我們使用的是三色LED燈的六位顯示。我要把所有需要顯示的信息全部設計出來,而且顯示的每一個信息都不能超過六位,最重要的是,還要使用能用八段LED顯示出來的字母,像如果遇見“w”之類的字母,我想沒有哪位大神能用八段LED把它顯示出來吧。所以,這可真不是一件讓人省心的事。遇見像掛斷之類的信息還好,直接用英文“busy”,我想終究還是能夠傳情達意。最終我用了1個小時把

8、這些需要顯示的八種信息全部用八段LED可以顯示的英文或符號設計出來了。設計好這個問題又來了,三色LED能顯示的字形碼只有0F這十六個數字,我們顯示需要用到的字母或者符號全都沒有,沒辦法,自己編唄。對于從來都很不細心的我,這又是一個不小的挑戰(zhàn),還好最終我把這些東西都順利的弄出來了。(很不幸,調試的時候還是發(fā)現編錯了一個碼) 在這次課程設計過程中我學到了許多東西,比如遇到問題解決不了要向老師或同學求助,我學會了如何與同學合作。學習了這么久這是第一次合作做出一個比較貼近現實生活和實際的系統,感覺自己終于能夠將所學的知識跟實際應用聯系到了一起。感謝這次課程設計,我學會了許多有用的東西,學會了與他人合作

9、,學會了將知識運用于實際。 2,郝鴻凱的心得體會:此次的課程設計,拿到題目時,我有點不知所措,一直以來成績不是很好,基礎比較差 ,有些時候就不知道從哪里下手。不過還好組長給我們分析了整個設計的流程,還給我分配了比較簡單的任務,就是一小段的編程。硬件都是去年學的咯,現在基本都已經忘完了,不過既然接了任務還是要把它做好,于是乎我回去開始翻開硬件書來看了。不過現在看起來感覺還是很吃力,看了大半天才看懂點點,所以看的比較慢,看了幾天才幾乎了解到怎么編,編了好久終于編好了,拿給組長看,不過問題一大堆,還好組長厲害給我改了又改,才改好。還給我講為什么這樣,雖然聽不懂,不過好像很厲害的樣子。程序大概都已經編

10、好了,接下來就交給組長來進行合并了,這是最難的部分,當然得交給最厲害的組長啦。組長花了一天的功夫終于合并好了,然后就進行調試了,調試才是關鍵的,即使程序編好了,要是調試不出來還是不行,我們一組5個人咋實驗室奮斗了2天才調試好,調試真的很復雜,有些時候明明覺得自己是對的,不過就是調試不出來。在調試過程中,都換了好幾臺硬件設備,不過還好終于調試好了。然后我們一一進行了實驗,看看功能是否都完全實現了,雖然功能都比較簡單,不過是能基本實現功能了。 3,賴升勇的的心得體會:此次設計,給我的最大體會就是團體與個人的力量,一個人的力量總是有限的,不過結合眾人的力量就會發(fā)揮出強大的力量,此次的設計要是單獨給一

11、個人做,會很費時間,并且錯誤幾率夜會增大。團體合作不僅能揚長補短,還能夠增強彼此的團隊協作能力。雖然我們這次做的不是特別的好,不過重要的是過程,從零到一,從無到有的過程才是最重要的。結果已經不是特別重要了,重要的是我付出了,也感覺到了收獲這就足夠了,我相信在最后的檢驗階段,經過老師的檢驗,我們一定會做的更好,不足的也希望老師能給與指出,一邊我們以后做的更好??偟膩碚f光是書本上的知識是不夠的,只有自己做了菜知道自己的不足,也才能夠進步,希望以后多一點這樣的課程設計,也多一點這樣的團隊合作。加油。 4,杜征宇的心得體會:1:控制三色led的四片8255只能工作在輸出方式,所以其控制字寫入之后可以不

12、用更改,但是第5片8255工作方式多樣,比如,在掃描鍵盤的時候,A口是作為方式0輸入,B口作為方式0輸出,C口未用上,但是在對來電指示燈和撥號指示燈進行操作時,應該由8255輸出信號來控制,本可以用B口進行控制,但是在實驗中發(fā)現,在按鍵時會干擾到那兩個燈,所以我改變控制方式,使A口作為方式0輸出,得以控制小燈而且不會影響到對鍵盤的操作。因此,當我們在改變各個端口的輸入輸出方式時,千萬不要忘記更改控制字。2:在設計中我們用8254產生定時中斷接8259IR0,但是當特殊情況來時,需要關閉中斷,此時我們有三種方式可以避免中斷,第一:關cpu的中斷,這時只需執(zhí)行指令CLI,但是這樣其他可屏蔽中斷也會

13、被屏蔽,顯然這種方法不合適,第二:關8259中斷,即寫入操作命令字屏蔽掉8259對IR0的響應,這種方法最好。第三:因為8254工作在方式0,所以如果我們不寫入計數初值,則8254的定時中斷信號無法產生,也可以“關”掉中斷。3:總的來說,本次課程設計程序流程清晰,思路比較好找,因此如果注意到細節(jié)方面的問題,完成起來也比較容易,而且在程序調試過程中還很容易發(fā)現硬件的問題,比如某個鍵盤按下之后未彈起,這在程序走向中可以很清楚地辨識出來。當然,我覺得在做軟件的時候,首先得拿個正確的程序去測試硬件是否能夠正常工作,我們只有在保證硬件能夠正常工作的前提下才能不出差錯地將程序弄好。5,陳開宇的心得體會:

14、在課程設計中,我們在一起設計好流程圖后,我們決定以分工的形式完成此次任務,每個人完成一段子程序,最后由一個同學完成所有子程序的捏合。我負責的是撥號功能模塊,這一部分相對來說比較簡單。撥號功能其實就是鍵盤的掃描以及用4片8255顯示相對應數字的功能,這些是以前在計算機硬件基礎課程中所學習過的。 計算機硬件的知識都放了一個學期了,還是有些生疏了,我利用一個下午的時間簡單的瀏覽了一下課本之后便開始編寫程序。我的這部分程序主要就是鍵盤的掃描,用第五片8255的B口送信號,從A口讀入判斷是否有鍵按下,然后判斷按鍵是否松開,再通過比較字型碼跳轉到響應程序段執(zhí)行顯示數字的功能。開始的時候遇到了很多問題,按鍵

15、不能正常顯示,走了很多彎路,最后才發(fā)現是我們組分配到的兩臺試驗箱的鍵盤是壞的,在更換了試驗箱后程序就可以正確運行了。完成了這部分內容我的程序也就是有一個主體了。 因為是在模擬撥打電話的撥號階段,所以我需要在根據按下數字的順序決定是在哪一片的8255中顯示,開始編寫了一個讓地址遞增的程序,后來發(fā)現不行,因為4片8255的8個LED的地址是跳變的,即四個A口是連續(xù)的,四個B口是連續(xù)的。也就是說我應該先送200,再送204,然后送201,然后205,以此類推所以只能建表完成,建表還算順利,唯一的問題就是我在建表的時候沒有搞清楚地址是字節(jié),不是字,所以需要在計數的時減候2,即通過計數每次減2,直到摁下

16、9次,程序將結束。 通過這次設計我還是學習到了很多知識的,因為這次是相對以前實驗更為獨立完成的一次自主編寫程序的鍛煉,從程序的設計、流程圖的繪畫、程序框架的設計到每一個小程序段的細致完成,都是獨立完成的,唯一的資料就是課本和網絡,所以很鍛煉人。在以后的工作中會有更多的機會獨立完成任務,處理和學習相對應的軟件。這次鍛煉就顯得更加珍貴和實用。這次課程設計給了我一個讓我將理論與實際聯系的機會,給了我一個通過小組合力完成任務的機會。最后,感謝老師的細心教誨和指導。 五、程序清單.486PORTA EQU 300HPORTB EQU 304HPORTC EQU 308HK0 EQU 0EEHK1 EQU

17、 0EDHK2 EQU 0EBHK3 EQU 0E7HK4 EQU 0DEHK5 EQU 0DDHK6 EQU 0DBHK7 EQU 0D7HK8 EQU 0BEHK9 EQU 0BDHKA EQU 0BBHKB EQU 0B7HKC EQU 7EHKD EQU 7DHKE EQU 7BHKF EQU 77H ;各個鍵值ctrl_8254 equ 32ch cunt0 equ 320h cunt1 equ 324hctrl_8255 equ 30chportb equ 304haddr0 equ 340haddr1 equ 348hintq equ 40hA8255 EQU 200HB8255

18、 EQU 204HC8255 EQU 208HCODE SEGMENT USE16ORG 2000H ASSUME CS:CODE BEG:JMP START zhanxianc dd 0fffffh zhanxianc1 dd 100000h cf db -1 geshu dw 30d cunshu db ? count1 dd 50h SECOND DB 0 MINUTE DB 0 HOUR DB 0 jianpantab dw 207h,203h,206h,202h,205h,201h,204h,200h dw 207h,203h,206h,202h,205h,201h,204h,200

19、h TAB DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;0_9的段碼 INITD PROC XSDM0 DB 0C0H,0BFH,0C0H,0C0H XSDM1 DB 0C0H,0C0H,0BFH,0C0H START: call init LP1: CALL JIANPAN JMP LP1 houbanduan proc pusha call laidian cmp cf,0 jz wt33 wt2: MOV DX,308H IN AL,DX AND AL,14H CMP AL,00H jz wt2 cli mov al,0ffh mov

20、dx,addr1 out dx,al sti jmp wt22 jmp wt2 wt22: call delay2 call ltoff wt33: call init popa ret houbanduan endp init proc pusha mov al,-1 mov cf,al mov dx,30ch mov al,99h out dx,al mov al,0ffh mov dx,300h out dx,al mov eax,80808080h mov dx,20ch out dx,eax mov eax,0ffffffffh mov dx,200h out dx,eax mov

21、eax,0ffffffffh mov dx,204h out dx,eax mov ax,30d mov geshu,ax mov al,0 mov hour,al mov second,al mov minute,al popa ret init endp zhanxian proc pusha mov dx,30ch mov al,89h out dx,al mov al,0bfh mov dx,300h out dx,al mov ecx,zhanxianc z1:mov dx,308h in al,dx and al,0ch cmp al,08h jz z3 ;占線 cmp al,04

22、h jz z4 ;掛斷 loopd z1 mov dx,200h mov eax,0ff9291ffh out dx,eax mov dx,204h mov eax,0ffff86ffh out dx,eax call houbanduan jmp z5 z3: call zhanxiand jmp z5 z4: call ltoff z5: call init popa ret zhanxian endp zhanxiand proc pusha mov ecx,zhanxianc1 zd:dec ecx cmp ecx,0 jz zdd mov dx,204h mov eax,0ff91c

23、1ffh out dx,eax mov dx,200h mov eax,0ff9283ffh out dx,eax mov dx,308h in al,dx and al,0ch cmp al,08h jz zd ; 占線鍵高電平 cmp al,04h jz zd1 ;己方掛斷 cmp al,0ch jz zd1 ;占線鍵高,己方掛斷 cmp al,00h jz zd2 zdd:call autocut jmp zd1 zd2: mov dx,200h mov eax,0ff9291ffh out dx,eax mov dx,204h mov eax,0ffff86ffh out dx,eax

24、 call houbanduan zd1:call ltoff popa ret zhanxiand endp INIT459 PROC PUSHA mov dx,ctrl_8254 mov al,70h ;方式0,定時中斷 out dx,al mov dx,cunt1 ;通道1 mov ax,47000 out dx,al mov al,ah out dx,al ;定時1s,初始化完畢 mov dx,addr0 mov al,13h out dx,al mov dx,addr1 mov al,40h out dx,al mov dx,addr1 mov al,01h out dx,al mo

25、v dx,addr1 in al,dx and al,0feh out dx,al ;8259初始化 cli mov ax,0 mov ds,ax lea ax,jishi mov ds:intq*4,ax mov ax,seg jishi mov ds:intq*4+2,ax sti POPA RET INIT459 ENDP jishi proc PUSHA mov dx,cunt1 mov ax,47000 out dx,al mov al,ah out dx,al CALL JIAYIMIAO CALL JISHIZHUANHUAN mov al,20h mov dx,addr0 ou

26、t dx,al ;中斷結束 POPA iret jishi endp JIAYIMIAO PROCPUSHA MOV AL,SECONDADD AL,1 DAA MOV SECOND,AL CMP AL,60H JB S0 MOV SECOND,0 MOV AL,MINUTE ADD AL,1 DAA MOV MINUTE,AL CMP AL,60H JB S0 MOV MINUTE,0 MOV AL,HOUR ADD AL,1 DAA MOV HOUR,AL CMP AL,24H JB S0 MOV HOUR,0 S0: POPA RETJIAYIMIAO ENDPJISHIZHUANHUA

27、N PROC PUSHA MOV SI,0 MOV CL,4 MOV AL, SECOND MOV AH,AL MOV BX, OFFSET TAB AND AL,0FH XLAT MOV XSDM1SI+3,AL MOV AL,AH SHR AL,CL XLAT MOV XSDM0SI+3,AL MOV AL, MINUTE MOV AH,AL AND AL,0FH XLAT MOV XSDM0SI+2,AL MOV AL,AH SHR AL,CL XLAT MOV XSDM1SI+1,AL MOV AL, HOUR MOV AH,AL AND AL,0FH XLAT MOV XSDM1SI

28、,AL MOV AL,AH SHR AL,CL XLAT MOV XSDM0SI,AL MOV EAX,DWORDPTR XSDM0 MOV DX,A8255 OUT DX, EAX MOV EAX,DWORDPTR XSDM1 MOV DX,B8255 OUT DX, EAX MOV EAX, 05050505H MOV DX, C8255 OUT DX, EAXPOPA RETJISHIZHUANHUAN ENDP laidian proc near pusha mov ecx,count1lp0: dec ecx cmp ecx,0 jz lp3 ;無人接聽 mov dx,300h mo

29、v al,3fh ;來電燈等亮 out dx,al mov dx,308h in al,dx and al,16h call delay1 ;閃爍延時 cmp al,00h jz lp11 ;沒按鍵 cmp al,10h jz lp4 ;按下掛斷鍵 cmp al,04h jz lp4 jmp lp2 lp11: dec ecx cmp ecx,0 jz lp3 ;無人接聽 mov dx,300h mov al,0bfh ;來電燈滅 out dx,al mov dx,308h in al,dx and al,16h call delay1 ;閃爍延時 cmp al,00h jz lp0 ;沒按鍵

30、 cmp al,10h ;按下掛斷鍵 jz lp4 cmp al,04h jz lp4 lp2: mov dx,300h ;按下接聽鍵 mov al,7fh out dx,al ;來電指示燈常亮 call init459 jmp lp5 ;調用計時程序 lp3: call autocut call delay2 lp4: mov al,0 mov cf,al call ltoff lp5: popa ret laidian endp autocut proc near pusha mov eax,92929292h mov dx,200h out dx,eax mov dx,204h out

31、dx,eax mov eax,05050505h mov dx,208h out dx,eax mov al,0ffh mov dx,300h out dx,al popa ret autocut endp ltoff proc near pusha mov dx,30ch mov al,89h out dx,al mov dx,300h mov al,0ffh out dx,al mov eax,0f0f0f0fh mov dx,208h out dx,eax popa ret ltoff endp JIANPAN PROC PUSHA KSCAN: MOV BL,0F7H NXTCOL:M

32、OV AL,BL MOV DX,PORTB OUT DX,AL MOV DX,PORTA IN AL,DX AND AL,0FH CMP AL,0FH JNZ FNDKEY ROR BL,1 JC NXTCOL JMP KSCAN FNDKEY:SHL BL,4 OR BL,AL CALL JDLYS KEYUP:MOV AL,0 MOV DX,PORTB OUT DX,AL MOV DX,PORTA IN AL,DX AND AL,0FH CMP AL,0FH JNZ KEYUP CMP BL,K0JZ AJ_K0CMP BL,K1JZ AJ_K1CMP BL,K2JZ AJ_K2CMP B

33、L,K3JZ AJ_K3CMP BL,K4JZ AJ_K4CMP BL,K5JZ AJ_K5CMP BL,K6JZ AJ_K6CMP BL,K7JZ AJ_K7CMP BL,K8JZ AJ_K8CMP BL,K9JZ AJ_K9CMP BL,KAJZ AJ_KACMP BL,KBJZ AJ_KBCMP BL,KCJZ AJ_KCCMP BL,KDJZ AJ_KDCMP BL,KEJZ AJ_KECMP BL,KFJZ AJ_KF JMP KSCAN AJ_K0: mov al,tab0 mov ah,al MOV SI,GESHU mov dx,jianpantabsi out dx,al D

34、EC GESHU DEC GESHU CMP GESHU,-2 JZ OT1JMP KSCANAJ_K1: mov al,tab1 mov ah,al MOV SI,GESHU mov dx,jianpantabsi out dx,al DEC GESHU DEC GESHU CMP GESHU,-2 JZ OT1JMP KSCANAJ_K2: mov al,tab2 mov ah,al MOV SI,GESHU mov dx,jianpantabsi out dx,al DEC GESHU DEC GESHUCMP GESHU,-2 JZ OT1JMP KSCANAJ_K3: mov al,tab3 mov ah,al MOV SI,GESHU mov dx,jianpantabsi out dx,al DEC GESHU DEC GESHUC

溫馨提示

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

評論

0/150

提交評論