可編程節(jié)日彩燈系統(tǒng) 硬件課程設(shè)計報告
《可編程節(jié)日彩燈系統(tǒng) 硬件課程設(shè)計報告》由會員分享,可在線閱讀,更多相關(guān)《可編程節(jié)日彩燈系統(tǒng) 硬件課程設(shè)計報告(20頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、計算機科學(xué)與技術(shù)學(xué)院硬件課程設(shè)計硬件課程設(shè)計報告-可編程節(jié)日彩燈系統(tǒng)學(xué)院:計算機科學(xué)與技術(shù)學(xué)院 專業(yè):信息安全 班級: 設(shè)計題目:可編程節(jié)日彩燈系統(tǒng) 指導(dǎo)教師: 成員姓名: 成員姓名: 成員姓名: 實驗日期:2008年7月4日 課程設(shè)計指導(dǎo)教師評閱書指導(dǎo)教師評語:成 績: 指導(dǎo)教師簽字: 年 月 日目 錄1設(shè)計任務(wù) 41.1.問題的提出與分析41.2.小組分工52需求分析52.1. 8253A結(jié)構(gòu)及其功能說明52.2. 8253A各端腳作用及連接方式72.3. 8255A結(jié)構(gòu)及其功能說明82.4. 8255A各端腳作用及連接方式93概要設(shè)計93.1. 設(shè)計思想93.2. 設(shè)計原理124詳細(xì)設(shè)計
2、134.1. 硬件電路連接圖144.2. 程序流程圖154.3. 程序175實驗體會206參考文獻20可編程節(jié)日彩燈系統(tǒng)1.設(shè)計任務(wù)1.1.問題的提出與分析彩燈是人們?nèi)粘I钪械囊环N裝飾用品,它美觀大方,尤其在節(jié)日期間,倍增節(jié)日氣氛。它蘊涵著豐富的文化底蘊,被廣泛地應(yīng)用于各種店面的裝飾。變換無窮的彩燈樣式,給城市增添活力,吸引著人們的注意力,深受人民的喜愛。在日常生活中,人們還將彩燈擺放成各種圖案,增添美感。隨著電子技術(shù)的發(fā)展,應(yīng)用系統(tǒng)向著小型化、快速化、大容量、重量輕的方向發(fā)展??茖W(xué)技術(shù)更加貼近人們的生活,向著滿足人們需求的方向發(fā)展。節(jié)日彩燈的設(shè)計與制作工藝也一步一步的走向成熟。通過前一段時
3、間對微型計算機原理與接口技術(shù)的學(xué)習(xí),我們熟悉了幾種常用芯片的使用方法。鑒于彩燈的用途如此之廣,也為了更好的將所學(xué)的理論聯(lián)系到實際中我們小組在此通過編程控制來實現(xiàn)它的各種方式閃爍,體現(xiàn)它的風(fēng)采。 彩燈的閃爍有各種方式,如全亮全滅,交替閃爍,循環(huán)閃爍等,最常見的還是交替閃爍。下面我們就通過軟件編程的方式,用兩種最基本的芯片:可編程接口芯片8255A與可編程定時器8253A,實現(xiàn)彩燈的循環(huán)閃爍。在此過程中,我們設(shè)計了彩燈的多種循環(huán)方式,在每種方式中,用戶可以控制彩燈閃爍的時間,并且用戶還可以任意選擇,使彩燈以我們所設(shè)計的哪一種循環(huán)方式進行閃爍。1.2.小組分工該組成員為XXX/X/X/X/。XXX負(fù)
4、責(zé)的范圍為“問題的提出”、“需求分析”、“電路組成及其各自的主要功能”。XXX負(fù)責(zé)的范圍“硬件電路連接”,“電路圖”。XXX負(fù)責(zé)的范圍為“流程圖”及“軟件編程”。必要時三人進行商討來確定最佳方案。2需求分析2.1. 8253A結(jié)構(gòu)及其功能說明8253A:采集脈沖,實現(xiàn)記數(shù)、定時功能。此外, 8253A還能適用于許多其它的場合,如用作可編程方波頻率產(chǎn)生器、分頻器、程控單脈沖發(fā)生器等。 下面我們先來了解一下8253A的內(nèi)部結(jié)構(gòu),以便更好的利用它。8253A內(nèi)部包含數(shù)據(jù)總線緩沖器、讀/寫控制邏輯、控制字寄存器和3個結(jié)構(gòu)完全相同的計數(shù)器,這3個計數(shù)器分別為計數(shù)器0,計數(shù)器1和計數(shù)器2。 數(shù)據(jù)總線緩沖器
5、是8253A與系統(tǒng)總線相連接時用的接口電路,它由8位雙向三態(tài)緩沖器構(gòu)成,CPU用輸入、輸出指令對8253A進行讀/寫操作的信息,都經(jīng)過8位數(shù)據(jù)總線D7D0傳送,這些信息包括:進行初始化編程時,向它寫入的控制字,CPU向某一計數(shù)器寫入計數(shù)初值,從計數(shù)器讀出計數(shù)初值。讀/寫控制邏輯接收系統(tǒng)控制總線送來的輸入信號,經(jīng)組合后形成控制信號,對個部分進行控制??山邮盏男盘栍衅x信號、讀信號、寫信號、端口選擇信號。只有當(dāng)片選信號為低電平時,CPU才能對8253A進行讀/寫操作。當(dāng)讀信號為低電平時,表示CPU正在讀取所選計數(shù)器通道的內(nèi)容。當(dāng)寫信號為低電平時,表示CPU正在將計數(shù)初值寫入所選的計數(shù)通道中或者將控
6、制字寫入控制字寄存器中。在8253A內(nèi)部有3個計數(shù)器通道02和一個控制字寄存器端口。當(dāng)A1A0=00時,選中通道0;當(dāng)A1A0=01時選中通道1;當(dāng)A1A0=10時選中通道1;當(dāng)A1A0=11時選中通道2;當(dāng)A1A0=11時選中控制字寄存器端口。8253A內(nèi)部的3個通道的操作是完全獨立的。每個通道都包含一個8位的控制字寄存器 、一個16位的計數(shù)初值寄存器、一個計數(shù)器執(zhí)行部件和一個輸出瑣存器。輸出鎖存器用來鎖存計數(shù)器執(zhí)行部件的值,必要時CPU可對它執(zhí)行讀/寫操作,以了解某個時刻計數(shù)器的瞬時值。每個通道工作時,都是對輸入到CLK引腳上的脈沖按2進制或10進制格式進行計數(shù)。計數(shù)采用倒計數(shù)法,先對計數(shù)
7、器預(yù)置一個初值,再把初值裝入實際的計數(shù)器。然后,開始遞減計數(shù)。當(dāng)計數(shù)器的值 減為0時,便從OUT引腳輸出一個脈沖信號,輸出的波形主要由工作方式?jīng)Q定??刂谱旨拇嫫魇且环N只寫寄存器,在對8253A進行編程時,由CPU用輸出指令向它寫入控制字,來選定計數(shù)器通道,規(guī)定各計數(shù)器通道的工作方式,讀寫格式和數(shù)制。8253A的初始化編程步驟如下:寫入控制字;寫入計數(shù)初值。在計數(shù)初值寫入8253A后,還要經(jīng)過一個時鐘脈沖的上升沿和下降沿,才能將計數(shù)初值裝入實際的計數(shù)器,然后在門控信號的控制下,對從CLK引腳輸入的脈沖進行遞減計數(shù)。2.2. 8253A各端腳作用及連接方式CLK0脈沖頻率為1MHZ,用8MHZ脈沖
8、經(jīng)8分頻的方式得到。片選信號CS引腳的地址為30830FH,低電平有效,由地址總線經(jīng)I/O端口譯碼電路產(chǎn)生。只有當(dāng)片選信號為低電平時,CPU才能對8253進行讀寫操作。門控信號GATE0和GATE1相連,接+5V的電源電壓,作為輸入端。OUT1作為計數(shù)器的輸出端,接8255A的PA0端。讓其工作在方式0計數(shù)結(jié)束中斷方式,以確保采集到脈沖信號。當(dāng)向8253A的通道寫入控制字時,該通道的OUT立即變?yōu)榈碗娖?。要?253A能夠進行計數(shù),門控信號GATE必須為高電平。每從CLK0引腳輸入一個脈沖,計數(shù)器就減1,總共經(jīng)過n+1個脈沖后,計數(shù)器減為0,表示計數(shù)計到終點,計數(shù)過程結(jié)束,這時OUT1引腳由低
9、電平變?yōu)楦唠娖?。按方?進行計數(shù)時,計數(shù)器只計一遍。當(dāng)計數(shù)器計到0時,不會再裝入初值重新開始計數(shù)。計數(shù)過程中,可由門控信號GATE控制暫停計數(shù)。計數(shù)過程中,也可以改變計數(shù)值。用方式1可編程單穩(wěn)態(tài)輸出方式和方式2比率發(fā)生器以及方式3方波發(fā)生器也可以產(chǎn)生方波,但是不一定能在該時刻采集到脈沖信號,所以我們采用方式0以確保一定能采集到脈沖信號。2.3. 8255A結(jié)構(gòu)及其功能說明8255A:輸出顯示結(jié)果。8255A是一種可編程并行I/O接口芯片,它可以用于多種電路,如軟盤接口電路、控制接口電路以及A/D和D/A接口電路等。下面我們來了解一下8255A的內(nèi)部結(jié)構(gòu),以便更好的利用它。8255A由數(shù)據(jù)端口A
10、、B、C,A組和B組控制邏輯,數(shù)據(jù)總線緩沖器和讀/寫控制邏輯組成。A口包含一個8位的數(shù)據(jù)鎖存器/緩沖器,一個8位的數(shù)據(jù)輸入鎖存器,因此它作輸入輸出時數(shù)據(jù)均能鎖存。B口包含一個8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個 8位的數(shù)據(jù)輸入緩沖器。C口包含一個8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個8位的數(shù)據(jù)輸入緩沖器,無輸入鎖存功能。A組和B組控制邏輯用來接收送來的命令字,然后分別決定A組和B組的工作方式,或?qū)口的每一位執(zhí)行置位/復(fù)位操作。數(shù)據(jù)總線緩沖器是一個雙向的8位緩沖器,用作8255A和系統(tǒng)總線之間的接口。通過這個緩沖器與之相連的8位數(shù)據(jù)總線D7D0,接收CPU送來的數(shù)據(jù)或命令字。讀/寫控制邏輯電路用來管
11、理所有的內(nèi)部或外部數(shù)據(jù)信息、控制字或狀態(tài)字的傳送過程,它接收從CPU的地址總線和控制總線來的信號,并產(chǎn)生對A組和B組控制邏輯進行操作的控制信號。8255A有兩類控制字。一類是方式選擇控制字,另一類是置位復(fù)位控制字。方式選擇控制字的D7位總是1,而置位復(fù)位控制字的D7位總是0。方式選擇控制字有3種基本的工作方式,即方式0基本輸入輸出方式,方式1選通輸入輸出方式,方式2雙向總線I/O方式。通過向8255A的控制字寄存器寫入方式選擇字,就可以規(guī)定各端口的工作方式。2.4. 8255A各端腳作用及連接方式8255A口主要用來輸入,即工作在方式1。B口主要用來輸出,工作在方式0。讓PA0接8253A的O
12、UT1端,讓8 個彩燈分別接PB0PB7,以顯示結(jié)果。選信號引腳的地址為300307H,低電平有效,由地址總線經(jīng)I/O端口譯碼電路產(chǎn)生。只有當(dāng)該信號有效時,CPU與8255A之間才能進行通信,也就是CPU可對8255A進行讀/寫操作。3概要設(shè)計3.1. 設(shè)計思想方案一:用8255A和8253A共同實現(xiàn)可編程節(jié)日彩燈方案二:在程序中添加鍵盤掃描程序,用8255A實現(xiàn)可編程節(jié)日彩燈方案三:進行系統(tǒng)模塊的劃分,規(guī)定每一模塊的功能以及各個模塊之間的接口。3.2. 設(shè)計原理方案一、利用8255A和8253A共同實現(xiàn)可編程節(jié)日彩燈。8253A提供頻率,通過頻率變化改變彩燈的閃亮速度,8255A的A口做輸入
13、,B口作輸出。彩燈的循環(huán)閃爍方式由程序控制。在本次設(shè)計中只設(shè)計了四種花樣,要求這四種花樣以不同的頻率顯示,用8253A對所輸入的時鐘信號進行2分頻、4分頻、8分頻、16分頻,得到四種頻率信號。方案二、在程序中添加鍵盤掃描程序,用8255A實現(xiàn)可編程節(jié)日彩燈。8255A的A口和B口做輸入,C口作輸出。通過鍵盤的按鈕來調(diào)節(jié)彩燈的閃爍方式。方案三、進行系統(tǒng)模塊的劃分,規(guī)定每一模塊的功能以及各個模塊之間的接口。設(shè)計方案為:一個彩燈花樣控制器、一個四頻率輸出分頻器、一個四選一控制器和一個時間選擇器總共四部分來完成設(shè)計。子模塊及其功能:(1)、四頻率輸出分頻器在本次設(shè)計中只設(shè)計了四種花樣,要求這四種花樣以
14、不同的頻率顯示,而只有一個輸入的時鐘信號,所以對所輸入的時鐘信號進行2分頻、4分頻、8分頻、16分頻,得到四種頻率信號,CLKDIV模塊用來完成此功能。(2)、時間選擇器時間選擇器實際上是兩個分頻器,其中一個頻率是另一個頻率的兩倍。本來這兩個分頻器是可以在上述的四頻率輸出器中實現(xiàn)的,但為了方便地為四選一控制器提供不同的時間選擇條件,就將這兩個分頻器獨立開來。這兩個輸出的時鐘信號組合起來就可以為四選一控制器提供00,01,10,11四個時間選擇條件,如下圖示 時間選擇器輸出波形圖(3)、四選一控制器四選一控制器功能是從分頻器中選擇不同頻率的時鐘信號送給彩燈控制器,實現(xiàn)彩燈閃爍的頻率變化。(4)、
15、彩燈控制器彩燈控制電路是整個設(shè)計的核心,它負(fù)責(zé)整個設(shè)計的輸出效果即各種彩燈圖案的樣式變化。通過改變程序中輸出變量的位數(shù)來改變彩燈的數(shù)目。改變循環(huán)的位數(shù)即可改變要控制圖案的數(shù)目,改變輸出變量的組合即可變幻彩燈圖案,改變8255的三個接口A、B、C的設(shè)定值, 就可以達到改變彩燈顯示順序的目的。4詳細(xì)設(shè)計4.1. 硬件電路連接圖此彩燈控制系統(tǒng)設(shè)定有四種花樣變化,這四種花樣可以進行切換,并且每種花樣可選擇不同的頻率,四種花樣分別為:(1) 彩燈從右到左,然后從左到右逐次閃爍,即單向單燈循環(huán)。(2) 彩燈左邊兩燈先亮,然后向右循環(huán)閃亮。(3) 彩燈兩邊同時亮2個逐次向中間移動再散開。(4) 彩燈兩邊同時
16、亮4個,4亮4滅。4.2. 程序流程圖開始程序初始化顯示提示信息寫控制字,在A端口為輸入,工作在方式0讀取B口,數(shù)據(jù)保存在B單元中寫控制字,三個端口均在方式0工作,均為輸出1從右到左,然后從左到右逐次閃爍調(diào)用延時子程序 1鍵按下? Y N2鍵按下? Y N2左邊兩燈先亮,然后向右循環(huán)閃亮 調(diào)用延時子程序 3兩邊同時亮2個逐次向中間移動再散開 調(diào)用延時子程序 彩燈兩邊同時亮4個,4亮4滅3鍵按下?調(diào)用延時子程序結(jié)束YNA、主程序開始保存原CX的內(nèi)容循環(huán)計數(shù)初值8000 CXCX - 1 CXCX = 0 ? N Y恢復(fù)原CX的內(nèi)容返回 B、延時子程序 4.4. 程序DATA SEGMENT AS
17、 DW AS0,AS1,AS2,AS3,AS4,AS5,AS6 ;定義數(shù)據(jù)段DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX ;建立數(shù)據(jù)棧 MOV DX,303H ;初始化8255A MOV AL,10011000B ;A口輸入,B口輸出,方式0 OUT DX,AL MAIN: MOV DX,300H IN AL,DX ;讀入口狀態(tài) AND AL,0FH CALL PLAY JMP MAIN PLAY PROC NEAR TEST AL,08H JZ NEXT1 MOV DX,300H MOV A
18、L,0FFH OUT DX,AL JMP EXIT NEXT1: MOV BX,2 MUL BX MOV BX,AX CALL ASBXEXIT: RETPLAY ENDP AS0 PROC NEAR MOV DX,300H ;A口狀態(tài) MOV AL,11101110B ;控制字 MOV CX,8L0: OUT DX,AL CALL DELAY ROR AL,1 ;右循環(huán) LOOP L0 MOV CX,8 MOV AL,11101110B MOV DX,300HR0: OUT DX,AL CALL DELAY ROL AL,1 ;左循環(huán) LOOP R0 RETAS0 ENDPAS1 PROC
19、NEAR MOV DX,300H ;A口狀態(tài) MOV AL,00111111B ;控制字 MOV CX,4R1: OUT DX,AL CALL DELAY PUSH CX MOV CL,3 ROR AL,CL POP CX LOOP R1 RETAS1 ENDPAS2 PROC NEAR MOV DX,300H ;A口狀態(tài) MOV AL,11111100B ;控制字 MOV CX,8R2: OUT DX,AL CALL DELAY ROR AL,1 LOOP R2 RETAS2 ENDPAS3 PROC NEAR MOV DX,300H ;A口狀態(tài) MOV AX,00FFH MOV CX,8R
20、3: OUT DX,AL CALL DELAY ROR AX,1 LOOP R3 MOV CX,8L3: OUT DX,AL CALL DELAY ROL AX,1 LOOP L3 RETAS3 ENDPAS4 PROC NEAR MOV DX,300H MOV AL,11001100B MOV CX,4R4: OUT DX,AL CALL DELAY PUSH CX MOV CL,2 ROR AL,CL POP CX LOOP R4 RETAS4 ENDPAS5 PROC NEAR MOV DX,300H MOV AL,00001111B MOV CX,8R5: OUT DX,AL CALL
21、 DELAY ROR AL,1 LOOP R5 RETAS5 ENDPAS6 PROC NEAR CALL AS0 CALL AS1 CALL AS2 CALL AS3 CALL AS4 CALL AS5 RETAS6 ENDPDELAY PROC NEAR PUSH CX MOV CX,8000HNEXTO : NOP NOP LOOP NEXTO POP CX RETDELAY ENDP CODE ENDS END START5實驗體會 通過這次課程設(shè)計,我們對整個設(shè)計的原理都有了比較深刻的理解。在這個設(shè)計的部分內(nèi)容中,我們對8255的工作原理有了比以前更深刻的認(rèn)識,通過利用各方面的資源,
22、也學(xué)到了很多書本之外的知識。 這是我們大學(xué)生涯的第一次課程設(shè)計,總共花了一個多月的時間。我們?nèi)艘唤M,編程對我們來說本是個難點,總是出錯,但最終在同組同學(xué)的幫助下,程序總算沒有錯誤。現(xiàn)在設(shè)計總算基本上成功了,這是我們第一次做設(shè)計,所以還是有點高興。在這一個多月里,雖然碰到了種種困難,但最終還是克服了,而且收獲也很大。不僅鞏固了課堂上掌握不太牢的知識,而且培養(yǎng)了我們團隊合作的精神,鍛煉了獨立思考的能力,以及面對困難永不放棄的勇氣,為我們以后的學(xué)習(xí)和生活打下良好的基礎(chǔ)。然而以后還會有很多的課程設(shè)計,以及相類似的學(xué)習(xí),這次的實踐是一個很好的開始,我們相信下一次一定會做的更好。6參考文獻1微型計算機原理與接口技術(shù) 中國科學(xué)技術(shù)大學(xué)出版社 吳秀清 編著2可編程邏輯器件的原理與應(yīng)用 復(fù)旦大學(xué)出版社 陳光夢 編著 380X86匯編語言程序設(shè)計教程 清華大學(xué)出版社 楊季文 編著4微機原理與接口技術(shù)綜合實驗教程 大連理工大學(xué)出版社 秦曉梅 編著5單片微型機原理、應(yīng)用與實驗 復(fù)旦大學(xué)出版社 張友德 編著6微型計算機技術(shù)及應(yīng)用 清華大學(xué)出版社 戴梅萼 編著 7微機原理與接口技術(shù)實驗指導(dǎo)與習(xí)題集 人民郵電出版社 周明德 編著8匯編語言程序設(shè)計案例精編 中國水利水電出版社 李珍香 編著 - 20 -
- 溫馨提示:
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. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。