




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上南京郵電大學(xué)學(xué)年 第 學(xué)期 課程設(shè)計(jì)實(shí)驗(yàn)報(bào)告題 目 基于8255的8LED顯示的動(dòng)態(tài)顯示器專 業(yè) 通信工程 學(xué) 號(hào) 姓 名 指導(dǎo)老師 實(shí)驗(yàn)日期 年 月 日題目:基于8255的8LED顯示的動(dòng)態(tài)顯示器一 ,實(shí)驗(yàn)?zāi)康暮鸵?,Proteus軟件的MCS51單片機(jī)仿真學(xué)習(xí)2,根據(jù)提供的參考工程,在proteus平臺(tái)自己重新設(shè)計(jì)實(shí)驗(yàn)電路所需要的電器原理圖,并在此基礎(chǔ)上編寫相對(duì)應(yīng)的程序,實(shí)現(xiàn)其功能,學(xué)習(xí)proteus軟件的使用,其中包括原理圖器件的選取,原理圖的電氣連接,程序的編寫編譯以及運(yùn)行,并能查出其錯(cuò)誤等。基本要求:1. 用數(shù)碼管正常顯示數(shù)字“”。2. 通過(guò)按鍵可改變顯示
2、方式。3. 設(shè)計(jì)顯示屏的動(dòng)態(tài)效果,用10個(gè)按鍵,每鍵對(duì)應(yīng)一種滾動(dòng)技術(shù)。4. 基于8255口是指顯示和鍵盤都由8255的IO口控制發(fā)揮部分:1 設(shè)計(jì)所有動(dòng)作的聯(lián)合效果。2 設(shè)計(jì)二個(gè)變速按鍵,可多級(jí)改變滾動(dòng)速度。3 設(shè)計(jì)一臺(tái)魔術(shù)電子鐘,采用自動(dòng)變換,隨機(jī)組合,數(shù)據(jù)每10秒變換一次。動(dòng)態(tài)顯示格式:1 靜止2 整體閃爍3 單字閃爍4 整體向前、向后滾動(dòng)5 單字移動(dòng)6 兩邊向中間壓縮7 中間向兩邊擴(kuò)張8 上下壓縮9 文字上下滾動(dòng)10組合動(dòng)作(每一字符執(zhí)行上述一個(gè)動(dòng)作,并同時(shí)運(yùn)動(dòng))二,實(shí)驗(yàn)儀器微型計(jì)算機(jī)三,實(shí)驗(yàn)原理基于8255的8LED顯示的動(dòng)態(tài)顯示器,是由8255a做鍵盤控制口連接c51,并驅(qū)動(dòng)8位7段
3、數(shù)碼管實(shí)現(xiàn)相應(yīng)顯示功能。具體的,c51,p1口直接進(jìn)行l(wèi)ed數(shù)碼管的位控制;p2口經(jīng)74HC573譯碼后控制8255a的片選與內(nèi)部奇存器選擇;p0口連接8255a的D端口,并由它的PA口驅(qū)動(dòng)7段led, PB口連接鍵盤,并做為I/O口與c51通信,以實(shí)現(xiàn)相應(yīng)顯示變化。四,基本原件及其原理單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),是指在一塊芯片體上集成了中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、程序存儲(chǔ)器ROM或EPROM、定時(shí)器/計(jì)數(shù)器、中斷控制器以及串行和并行I/O接口等部件,構(gòu)成一個(gè)完整的微型計(jì)算機(jī)。目前,新型單片機(jī)內(nèi)還有A/D及D/A轉(zhuǎn)換器、高速輸入/輸出部件、DMA通道、浮點(diǎn)運(yùn)算等特殊功能部件。由于它的結(jié)
4、構(gòu)和指令功能都是按工業(yè)控制設(shè)計(jì)要求設(shè)計(jì)的,特別適用于工業(yè)控制及其數(shù)據(jù)處理場(chǎng)合,因此,確切的稱謂是微控制器,單片機(jī)只是習(xí)慣稱呼。51單片機(jī)引腳圖如下:(1)單片機(jī)的特點(diǎn)1)有優(yōu)異的性能價(jià)值比。2)集成度高、體積小、有很高的可靠性。單片機(jī)把各個(gè)功能部件集成在一塊芯片上,內(nèi)部采用總線結(jié)構(gòu),減少了各芯片之間的連線,大大提高了單片機(jī)的可靠性與抗干擾能力。另外,其體積小,對(duì)于強(qiáng)磁場(chǎng)環(huán)境易于采取措施,適合于惡劣環(huán)境下工作;也易于產(chǎn)品化。3)控制功能強(qiáng)。為了滿足工業(yè)控制的要求,一般單片機(jī)的指令系統(tǒng)中均有及其豐富的轉(zhuǎn)移指令、I/O口邏輯操作及位處理指令。一般來(lái)說(shuō),單片機(jī)的邏輯控制功能及運(yùn)行速度高于同意檔次的微機(jī)
5、。4)單片機(jī)的系統(tǒng)擴(kuò)展和系統(tǒng)配置都比較典型、規(guī)范,而且非常容易構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。(2)單片機(jī)并行I/O接口的擴(kuò)展單片機(jī)與外部交換信息是通過(guò)I/O接口電路來(lái)實(shí)現(xiàn)的。AT89C51單片機(jī)本身有4個(gè)8位的并行I/O口P0-P3,但實(shí)際使用時(shí)往往再增加些I/O口,以便與外部設(shè)備交換數(shù)據(jù)。AT89C51單片機(jī)外部RAM和擴(kuò)展I/O接口是統(tǒng)一編址的。用戶可以把外部64KB RAM空間的一部分作為擴(kuò)展I/O接口地址空間,每一個(gè)I/O接口相當(dāng)于一個(gè)RAM存儲(chǔ)單元,訪問(wèn)外部RAM存儲(chǔ)單元就像訪問(wèn)外部I/O接口,即用“MOVX”指令對(duì)擴(kuò)展I/O接口進(jìn)行輸入輸出操作。查詢式鍵盤的接口電路查詢式鍵盤屬于獨(dú)立式鍵
6、盤,鍵盤的各個(gè)按鍵之間彼此是獨(dú)立的且是最簡(jiǎn)單的鍵盤電路。每個(gè)鍵地接入一根數(shù)據(jù)輸入線。如圖所示。注意:由于每一個(gè)按鍵均需要一根I/O口線 ,當(dāng)鍵盤按鍵數(shù)量比較多時(shí),需要的I/O口線也較多,因此獨(dú)立式鍵盤只適合于按鍵較少的應(yīng)用場(chǎng)合。一般情況下,按鍵數(shù)等于占用I/O端口數(shù)。查詢式鍵盤的結(jié)構(gòu)圖如圖所示:P1.0P1.1 查詢式鍵盤的接口電路查詢式鍵盤可以工作在多種方式下,中斷方式、程序查詢方式、定時(shí)查詢發(fā)送和中斷查詢方式。在中斷模式下,按鍵的數(shù)量受到外部中斷源的限制。在有特殊需要的場(chǎng)合,還可以借用內(nèi)部的定時(shí)器中斷。所以在這種模式下,按鍵的數(shù)目小于外部中斷源和單片機(jī)定時(shí)器數(shù)量之和。程序查詢和定時(shí)查詢類似
7、,都是通過(guò)讀I/O狀態(tài),當(dāng)有鍵被按下時(shí)相應(yīng)的I/O口線變?yōu)榈碗娖剑幢话聪碌逆I對(duì)應(yīng)的I/O口線保持為高電平,這樣通過(guò)讀I/O口狀態(tài)可判斷是否有鍵按下和哪一個(gè)鍵被按下。7SEG-MPX8-CA-BLUE的基本參數(shù)7SEG-MPX8-CA-BLUE為藍(lán)色共陽(yáng)極8位七段數(shù)碼管7SEG-MPX8-CA-BLUE五,仿真軟件的使用1.Keil軟件的使用:首先正確安裝keil軟件>打開keil>project>new Uvision project>為工程取名字,并選擇工程要保存的路徑,建議每個(gè)工程新建一個(gè)文件夾,方便文件管理>出來(lái)一個(gè)對(duì)話框,是選擇芯片的,你根據(jù)你的芯片公
8、司和型號(hào)來(lái)選擇就行了,比如:最常用的at89c51,點(diǎn)atmel,找到at89c51,點(diǎn)OK后會(huì)出來(lái)一個(gè)對(duì)話框,問(wèn)你是否添加啟動(dòng)文件,點(diǎn)“是”>這樣就建好了一個(gè)工程,點(diǎn)File菜單下New新建文件>先保存文件,點(diǎn)保存按鈕后出來(lái)路徑框,取名字后綴是.c或者.h,點(diǎn)保存>接下來(lái)在左邊project下把Target1點(diǎn)開,在Source Group 1上右鍵,點(diǎn)擊Add File to Group 'Source Group 1'>在彈出的框中點(diǎn)剛剛保存的文件,然后點(diǎn)Add,關(guān)閉對(duì)話框,左邊project框中可以看到文件已經(jīng)添加>在開始之前還是先來(lái)配置一
9、下keil環(huán)境,點(diǎn)擊工具欄品字圖標(biāo)左邊像魔棒一樣的按鈕>接下來(lái)的配置比較復(fù)雜,我用圖來(lái)解釋,Target項(xiàng)目下只改一個(gè)晶振的值,Output下要點(diǎn)擊生產(chǎn)HEX文件,Debug下左邊是keil仿真調(diào)試配置,右邊是程序下載到芯片調(diào)試配置,看你是怎么用了。>完工,可以編程調(diào)試。2.proteus軟件的使用:新建文件,查找元件,并添加。畫好電路圖后,添加用keil生成的hex文件,即可運(yùn)行。六,實(shí)驗(yàn)數(shù)據(jù) 1.實(shí)驗(yàn)連接圖2.實(shí)驗(yàn)結(jié)果圖(初始狀態(tài))3.顯示功能4.實(shí)驗(yàn)程序清單/*-庫(kù)文件-*/#include<reg52.h>#include<absacc.h>/*-宏
10、定義-*/#define uint unsigned int#define uchar unsigned char/*-芯片端口地址定義-*/#define COM8255 XBYTE0X7FFF /8255的命令口#define PA8255 XBYTE0X1FFF /8255的PA#define PB8255 XBYTE0X3FFF /8255的PBuchar code du_code=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90; /8段共陽(yáng)極數(shù)碼管顯示碼值 uchar code bit_code=0x01,0x02,0x04,0x0
11、8,0x10,0x20,0x40,0x80; /數(shù)碼管顯示的位值 /*-定義系統(tǒng)變量-*/bit flag=0; /定義狀態(tài)標(biāo)志位uchar value=0,wei;uchar count;/*-*/*形式參數(shù):void */*返回值:void */*函數(shù)描述:延時(shí)函數(shù) */*-*/void delayms(uchar x) /ms延時(shí)函數(shù)uchar y;for(;x>0;x-)for(y=150;y>0;y-) ;void keyscan()uchar i=0,j=0;PB8255=0xf0;if(PB8255!=0xf0)delayms(1);if(PB8255!=0xf0)s
12、witch(PB8255)case 0xe0:j=1; break;case 0xd0:j=2;break;case 0xb0:j=3;break;case 0x70:j=4; break;PB8255=0x0f; /反轉(zhuǎn)switch(PB8255)case 0x0e:i=0;break;case 0x0d:i=1;break;case 0x0b:i=2;break;case 0x07:i=3;break; value=i*4+j-1;flag=1;if(value=2)wei+;if(wei>=9)wei=1;while(PB8255!=0x0f); /按鍵彈起 /*狀態(tài)一-靜止*/v
13、oid state1()uchar i;while(value=0) /判斷是否為狀態(tài)1for(i=1;i<9;i+)P1=bit_codei-1;/輸入位選碼值PA8255=du_codei; /輸入段選碼值keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回delayms(1); /延時(shí)/*狀態(tài)二-整體閃爍*/void state2()uchar i=0,j=0;while(value=1) /判斷是否為狀態(tài)2for(j=0;j<50;j+)for(i=1;i<9;i+)P1=bit_codei-1; /輸入位選碼值PA8255
14、=du_codei; /輸入段選碼值keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回delayms(2); /延時(shí)for(j=0;j<50;j+)P1=0x00;keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回delayms(20);/延時(shí)/*狀態(tài)三-單字閃爍*/void state3()uchar i=0,j=0;while(value=2) /判斷是否為狀態(tài)3for(j=0;j<50;j+)for(i=1;i<9;i+)P1=bit_codei-1; /輸入位選碼值PA8255
15、=du_codei; /輸入段選碼值keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回delayms(2); /延時(shí)for(j=0;j<50;j+)for(i=1;i<9;i+)if(i=wei)P1=0x00;elseP1=bit_codei-1;/輸入位選碼值PA8255=du_codei;/輸入段選碼值keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回delayms(2); /延時(shí)/*狀態(tài)四-整體向前、向后滾動(dòng)*/void state4()uchar i=0,j=0,z=0;while
16、(value=3)/判斷是否為狀態(tài)4for(z=0;z<8;z+)for(j=1;j<120;j+)for(i=1;i<9;i+)P1=bit_codei-1; /輸入位選碼值PA8255=du_code(i+z)%8+1;/輸入段選碼值keyscan();if(flag=1) /掃描鍵盤flag=0;return; /有鍵按下返回delayms(2);/延時(shí) /*狀態(tài)五-單字移動(dòng)*/void state5()uchar i=0,j=0;while(value=4)/判斷是否為狀態(tài)5for(j=1;j<9;j+)for(i=1;i<9;i+)P1=bit_code
17、i-1; /輸入位選碼值PA8255=du_codej; /輸入段選碼值keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回delayms(1500); /延時(shí)/*狀態(tài)六-兩邊向中間壓縮*/void state6()uchar i=0,j=0;while(value=5) /判斷是否為狀態(tài)6for(j=1;j<100;j+)for(i=1;i<9;i+)P1=bit_codei-1; /輸入位選碼值PA8255=du_codei; /輸入段選碼值delayms(3);keyscan(); /掃描鍵盤if(flag=1)flag=0;ret
18、urn; /有鍵按下返回delayms(500); /延時(shí)for(j=1;j<100;j+)for(i=2;i<5;i+)P1=bit_codei-1; /輸入位選碼值PA8255=du_codei-1; /輸入段選碼值delayms(3);keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回for(i=5;i<8;i+)P1=bit_codei-1; /輸入位選碼值PA8255=du_codei+1; /輸入段選碼值delayms(3);keyscan();/掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回
19、delayms(500); /延時(shí)for(j=1;j<100;j+)for(i=3;i<5;i+)P1=bit_codei-1; /輸入位選碼值PA8255=du_codei-2;/輸入段選碼值delayms(3);keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回for(i=5;i<7;i+)P1=bit_codei-1; /輸入位選碼值PA8255=du_codei+2; /輸入段選碼值delayms(3); /延時(shí)keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回delayms(
20、500); /延時(shí)for(j=1;j<100;j+)P1=bit_code4;/輸入位選碼值PA8255=du_code1; /輸入段選碼值delayms(10); /輸入位選碼值P1=bit_code5; /輸入段選碼值PA8255=du_code8;delayms(10); /延時(shí)keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回/*狀態(tài)七7-中間向兩邊擴(kuò)張*/void state7()uchar i=0,j=0;while(value=6) /判斷是否為狀態(tài)7for(j=1;j<100;j+)for(i=1;i<9;i+)P
21、1=bit_codei-1; /輸入位選碼值PA8255=du_codei; /輸入段選碼值delayms(3);/延時(shí)keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回delayms(500); /延時(shí)for(j=1;j<100;j+)for(i=1;i<4;i+)P1=bit_codei-1; /輸入位選碼值PA8255=du_codei+1; /輸入段選碼值delayms(3); /延時(shí)keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回for(i=6;i<9;i+)P1=bit_
22、codei-1; /輸入位選碼值PA8255=du_codei-1; /輸入段選碼值delayms(3); /延時(shí)keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回delayms(500);/延時(shí)for(j=1;j<100;j+)for(i=1;i<3;i+)P1=bit_codei-1; /輸入位選碼值PA8255=du_codei+2; /輸入段選碼值delayms(3);keyscan();/掃描鍵盤if(flag=1)flag=0; /有鍵按下返回return;for(i=7;i<9;i+)P1=bit_codei-1;
23、/輸入位選碼值PA8255=du_codei-2; /輸入段選碼值delayms(3); /延時(shí)keyscan();if(flag=1)flag=0;return; /有鍵按下返回delayms(500);for(j=1;j<100;j+)P1=bit_code1; /輸入位選碼值PA8255=du_code4; /輸入段選碼值delayms(10); /延時(shí)P1=bit_code8; /輸入位選碼值PA8255=du_code5; /輸入段選碼值delayms(10);keyscan();/掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回/*狀態(tài)八函數(shù)-全功能*
24、/void state8()uchar i=0,j=0,z=0;while(value=7)/判斷是否為狀態(tài)8for(z=0;z<8;z+)for(j=0;j<50;j+)for(i=1;i<9;i+)P1=bit_codei-1; /輸入位選碼值PA8255=du_code(i+z)%8+1; /輸入段選碼值keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回delayms(2); /延時(shí)P1=0x00;keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回delayms(1500); /
25、延時(shí)void state9()uint i=0,j,z;while(value=8) for(j=0;j<200;j+) for(i=1;i<9;i+)P1=bit_codei-1;/輸入位選碼值PA8255=du_codei; /輸入段選碼值keyscan(); /掃描鍵盤delayms(2);if(flag=1)flag=0;return; /有鍵按下返回for(z=1;z<8;z+)for(j=0;j<50;j+)for(i=1;i<9;i+)P1=bit_codei-1; /輸入位選碼值PA8255=du_codei; /輸入段選碼值keyscan();
26、/掃描鍵盤delayms(2);if(flag=1)flag=0;return; /有鍵按下返回for(j=0;j<50;j+)P1=0x00;keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回delayms(20); for(z=0;z<8;z+)for(j=0;j<50;j+)for(i=1;i<9;i+)P1=bit_codei-1; /輸入位選碼值PA8255=du_codei; /輸入段選碼值keyscan(); /掃描鍵盤if(flag=1)flag=0;return; /有鍵按下返回delayms(2); /延時(shí)for(j=0;j<50;j+)for(i=1;i<9;i+)if(i=1)P1=0x00;elseP1=bit_codei-1;/輸入位選碼值PA8255=du_codei;/輸入段選碼值keyscan(); /掃
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 藥品計(jì)劃采購(gòu)管理制度
- 藥品食品倉(cāng)庫(kù)管理制度
- 藥店醫(yī)保統(tǒng)籌管理制度
- 藥店消防培訓(xùn)管理制度
- 菌類種植基地管理制度
- 設(shè)備事故考核管理制度
- 設(shè)備售后出差管理制度
- 設(shè)備工具領(lǐng)取管理制度
- 設(shè)備檢修費(fèi)用管理制度
- 設(shè)備維護(hù)成本管理制度
- 2025春季學(xué)期國(guó)開電大本科《管理英語(yǔ)3》一平臺(tái)機(jī)考真題及答案(第十套)
- 2025年社區(qū)工作者考試題目及答案
- 定額〔2025〕1號(hào)文-關(guān)于發(fā)布2018版電力建設(shè)工程概預(yù)算定額2024年度價(jià)格水平調(diào)整的通知
- 《云南省建筑工程資料管理規(guī)程應(yīng)用指南)(上下冊(cè))
- 數(shù)列求和中常見放縮方法和技巧(含答案)
- 寶興縣中藥材生產(chǎn)現(xiàn)狀及發(fā)展思路
- 胸外科圍手術(shù)期的氣道管理.ppt
- 小兒霧化吸入課件.ppt
- 國(guó)際經(jīng)濟(jì)法案例分析(匯總)
- 鎖骨骨折幻燈片
- 高填方、深挖路塹邊坡和軟基監(jiān)測(cè)方案
評(píng)論
0/150
提交評(píng)論