單片機創(chuàng)新實踐課_第1頁
單片機創(chuàng)新實踐課_第2頁
單片機創(chuàng)新實踐課_第3頁
單片機創(chuàng)新實踐課_第4頁
單片機創(chuàng)新實踐課_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗五8255擴展八段數(shù)碼管實驗一、實驗?zāi)康?、學習8255芯片的結(jié)構(gòu)及編程方法。2、掌握八段數(shù)碼管的使用方法,及動態(tài)顯示的編程方法。二、實驗設(shè)備EL-MUT-III型單片機實驗箱、8051CPU模塊、PC機三、實驗內(nèi)容實驗的原理圖如下所示:本實驗通過單片機控制8255芯片,利用8255的PA 口輸出數(shù)碼管的段碼,PB 口輸出 數(shù)碼管的位碼。編寫C51程序?qū)崿F(xiàn)六個數(shù)碼管以固定時間間隔交替動態(tài)顯示012345” 和ABCDEF”。四、實驗原理8255芯片是單片機通用的并行接口擴展芯片,可擴展PA、PB、PC三個8位并行口。對于單片機而言,如果外接8255芯片,那么8255所對應(yīng)的外部空間地址不再

2、是固定 為一個值了。本實驗8255的片選信號接CS0,則表明8255相對于單片機的外部地址 范圍是0 xCFA0-0 xCFA7,此時8255的PA 口、PB 口、PC 口、控制字寄存器對應(yīng)于單 片機的外部地址為:0 xCFA0、0 xCFA1、0 xCFA2、0 xCFA3,其對應(yīng)C51定義可如下例:#define PA XBYTE0 xCFA0#define PB XBYTE0 xCFA1#define PC XBYTE0 xCFA2#define PCTL XBYTE0 xCFA3對于八段數(shù)碼管,顯示數(shù)據(jù)時需要同時送入段碼和位碼,位碼就是選擇哪一個數(shù)碼管 接收段碼數(shù)據(jù),段碼就是需要顯示的

3、字符的編碼。在C51中段碼可定義如下:unsigned char code table17=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7f,0 x07,0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 x00;上面定義的是字符0-9、A-F以及黑屏的段碼數(shù)據(jù),而且是共陰極八段數(shù)碼管的段碼數(shù) 據(jù)。當需要顯示某一個字符時,只要查詢table數(shù)組即可,如:顯示A字符,直接調(diào)用 table10即可。對于單片機控制8255,實現(xiàn)依次點亮數(shù)碼管的方法,可參照下例程序:mainm=1 ;PCTL=0 x80;/設(shè)置PA、P

4、B的工作方式while (1)/保證0-5字符能夠穩(wěn)定顯示在數(shù)碼管上for(i=0;i=5;i+)PA=tablei;/六個數(shù)碼管依次點亮0-5PB=255-(mi);/選通對應(yīng)的數(shù)碼管,如:0字符由數(shù)碼管1點亮Delay(1);/ 延時 1ms對于8255芯片的控制字的各個位含義以及對應(yīng)的方式可查閱8255芯片的資料。五、實驗步驟1、實驗連線:PA0PA7 接 LED-ALED-DP,PB0PB5 接 LED1LED6,8255cs 接片 選信號CS0,LED JUMP的帽全部去掉。2、按實驗內(nèi)容編寫程序,實現(xiàn)八位數(shù)碼管交替動態(tài)顯示012345和ABCDEF。3、仿真調(diào)試,觀察數(shù)碼管的顯示情

5、況。六、實驗報告要求1、寫出實驗?zāi)康?、實驗設(shè)備、實驗內(nèi)容,分析實驗原理,總結(jié)實驗步驟。2、將實驗源程序以附頁的方式粘在報告上,并加上注釋。3、對實驗思考題加以分析,按照要求做出回答。程序:(1)#include #include #define uchar unsigned char#define PA XBYTE0 xCFA0#define PB XBYTE0 xCFA1#define PC XBYTE0 xCFA2#define PCTL XBYTE0 xCFA3unsigned char abuft6=11,12,13,14,15,16void display1();void displ

6、ay2();uchar code table17=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7f,0 x07,0 x7f,0 x6f, 0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 x00;void Delay(unsigned int temp)uchar k;while(temp-)for(k=0;k62;k+);void main(void)PCTL=0 x81;while(1) if(pc&0 x01=0 x01);display1();/* 顯示 012345*/display2(); /* 顯示 ABCDEF*/vo

7、id display1()uchar Sel_led,i,first=100,m=1;/PCTL=0 x80;while(first-)for(i=0;i6;i+)Sel_led=255-(mi);PA=tablei;PB=Sel_led;Delay(1);void display2()uchar Sel_led,i,second=100,m=1;/PCTL=0 x80;while(second-)for(i=0;i6;i+)Sel_led=255-(mi);PA=tablei+10;PB=Sel_led;Delay(1);(2 )添加時鐘#include #include #define u

8、char unsigned char#define PA XBYTE0 xCFA0#define PB XBYTE0 xCFA1#define PC XBYTE0 xCFA2#define PCTL XBYTE0 xCFA3uchar Abuf6=0,0,8,5,3,2;uchar sec=0,min=58,hour=23;void display1();void display2();uchar code table17=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7f,0 x07,0 x7f,0 x6f, 0 x77,0 x7c,0 x39,0 x5e,0

9、 x79,0 x71,0 x00;void Delay(unsigned int temp)uchar k;while(temp-)for(k=0;k62;k+);void main(void)PCTL=0 x81; /*初始化8255工作方式*/TMOD=0X01;TH0=-50000/256;TL0=-50000%256;ET0=1;EA=1;TR0 = 1;while(1)if(PC&0 x01=0 x01)display1();/* 顯示 012345*/elsedisplay2(); /* 顯示 ABCDEF*/void display1()uchar Sel_led,i,first

10、=100,m=1;uchar code7;/PCTL=0 x80;while(first-) for(i=0;i6;i+)Sel_led=255-(mi);if(i=2|i=4)code7=tableAbufi|0 x80;else code7=tableAbufi;PA=code7;PB=Sel_led;Delay(1);void display2()uchar Sel_led,i,second=100,m=1;/PCTL=0 x80;while(second-)for(i=0;i6;i+)Sel_led=255-(m59)sec =0;min+;if(min59)min=0;hour+;i

11、f(hour23)hour=0;Abuf5=hour/10;Abuf4=hour%10;Abuf3=min/10;Abuf2=min%10;Abuf1=sec/10;Abuf0=sec%10;七、實驗心得通過此次實驗我了解了 8255芯片的結(jié)構(gòu)及編程方法。掌握了八段數(shù)碼管的使用方法, 及動態(tài)顯示的編程方法,以及時鐘的程序設(shè)計,受益匪淺。實驗六8279鍵盤顯示擴展實驗(綜合性)一、實驗?zāi)康?、了解8279鍵盤/顯示控制器的工作原理,掌握其編程方法。2、了解鍵盤電路工作原理及編程方法。3、熟悉LED顯示接口電路及工作原理和編程方法。二、實驗設(shè)備EL-MUT-III型單片機實驗箱、8051CPU模塊

12、、PC機三、實驗內(nèi)容本實驗的原理圖如下所示:8279與一個16個鍵的小鍵盤相連,16鍵的編碼為0、1、2、3、4、5、6、7、8、9、 A、B、C、D實驗要求和內(nèi)容如下:1、如果按下的是數(shù)字鍵,則在顯示器上將該數(shù)字依次顯示。2、如果按下的是C鍵,則顯示器全滅。本實驗中各個按鍵還可以實現(xiàn)其它的功能,可以自行設(shè)計安排,并編程實現(xiàn)。四、實驗原理8279是一種可編程鍵盤/顯示器接口芯片,利用它的掃描傳感器陣列方式,可實現(xiàn)多 路開關(guān)變位信號采集及處理,然后將處理結(jié)果送到CPU,這樣可節(jié)省CPU資源。其功 能有:接收來自鍵盤的輸入數(shù)據(jù),并作預(yù)處理;數(shù)據(jù)顯示的管理和數(shù)據(jù)顯示器的控制 等。8279的弓I腳功能

13、、控制字以及對應(yīng)的工作方式可查閱8279芯片的資料。本實驗中已經(jīng)將鍵盤控制芯片8279的地址固定為0 xCFE8、0 xCFE9,即8279的數(shù)據(jù) 端口地址對應(yīng)0XCFE8 , 8279的命令字和狀態(tài)字的地址為0 xCFE9??啥x如下:#define com XBYTE0 xCFE9#define dataport XBYTE0 xCFE8實驗中鍵盤接口與8279的回復(fù)線RL0 RL7、掃描線SL0 SL2相連,組成鍵盤輸入 電路,六個數(shù)碼管與8279的OUTA0 OUTA3、OUTB0 OUTB3以及驅(qū)動電路組成顯 示回路。8279芯片在C51編程中是較為復(fù)雜的,因為它有較多的控制命令字和

14、狀態(tài)字,學會使 用這些命令字是很重要的.例如,8279初始化時首先需要執(zhí)行清除命令:com=0 xd1;/總清除命令doACC=com;/讀取 8279 狀態(tài)while(ACC八7= = 1)/等待清除結(jié)束同時,需要設(shè)置鍵盤工作方式、顯示方式、時鐘分頻等命令字,使8279工作在要求的 方式中:com=0 x00;/8個字符顯示,左入口;編碼掃描鍵盤,雙鍵鎖定com=0 x2a;/10 分頻 鍵盤有無鍵按下的判斷可以如下判斷:k=com;/讀取狀態(tài)字while(k&0f)=0);/判斷是否為0 : =0等待;壬0有鍵按下,往下執(zhí)行實現(xiàn)讀取鍵盤值的命令可參照如下例程:com=0 x40;/讀 FI

15、FO RAM 命令,地址 0 x0000i=dataport;/讀取一個鍵盤數(shù)據(jù)i=i&0 x3f;/取低6位為鍵盤值8279的顯示功能的實現(xiàn)可借鑒如下程序:for(i=0;i8;i+) com=i+80;/寫顯示RAM命令,顯示區(qū)地址由i控制dataport=tablei;/顯示的字符編碼輸出到數(shù)據(jù)端口本實驗,是上面各種命令字的一種綜合應(yīng)用的實例,大家可以查閱8279芯片資料,學 會使用各種具體的命令,從而完成對應(yīng)的任務(wù)。五、實驗步驟1、將鍵盤 KA10KA12 接 8279 的 KA0KA2 ; RL10RL17 接 8279 的 RL0RL7。2、按實驗內(nèi)容編寫程序,實現(xiàn)按下數(shù)字鍵,則在

16、顯示器上將該數(shù)字依次顯示,按下 C鍵,則顯示器全滅。3、仿真調(diào)試,按動鍵盤,觀察顯示的鍵值與給定鍵值是否相符。六、實驗報告要求1、寫出實驗?zāi)康摹嶒炘O(shè)備、實驗內(nèi)容,分析實驗原理,總結(jié)實驗步驟。2、將實驗源程序以附頁的方式粘在報告上,并加上注釋。3、對實驗思考題加以分析,按照要求做出回答。程序設(shè)計:(1)#include #include #define com XBYTE0 xCFE9#define dataport XBYTE0 xCFE8#define uchar unsigned charsbit clflag=ACC八7;uchar code table17=0 x3F,0 x06,0

17、 x5B,0 x4F,0 x66,0 x6D,0 x7d,0 x07,0 x7f,0 x6f, 0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71,0 x00;uchar idata diss8=0,1,2,3,4,5;uchar keyin();uchar deky();void display1(uchar j);void display2();void display3();void main(void)uchar j;com=0 xD1;do ACC=com;while(clflag=1);com=0 x2a;com=0 x00;while(1)j=keyin();

18、AwwlKVIJ?*二曰典 qBHtodBRP(one忌(6HV3J一O8XOHE8(HlpnHM-ds-p poE*_ds 一 p QOXOHHg5 oZM_ds 一 p O0X0H*一 Me_ds _ p (one忌(6HVDMnwwIKvJ?yi7o一qBEodBep(+tt9HVnIE)OJ nlwcg皿 W 兵、外娼名泛IKJ?OOOOIOOIIO6XOHIU8Qelpn()E*_ds _ p 二 910一qBntodBep (+tt9oE)OJO6XOHE8Qelpn()ZM_ds _ puchar keyin(void)uchar k;while(deky()=0) ;com=0

19、 x40;k=dataport;k=k&0 x3f;return(k);uchar deky(void)uchar m;m=com;return(m&0 x0f);(2 )添加時鐘#include #include #define com XBYTE0 xCFE9#define dataport XBYTE0 xCFE8#define uchar unsigned charsbit clflag=ACC八7;uchar code table17=0 x3F,0 x06,0 x5B,0 x4F,0 x66,0 x6D,0 x7d,0 x07,0 x7f,0 x6f, 0 x77,0 x7c,0

20、x39,0 x5e,0 x79,0 x71,0 x00;uchar idata diss8=0,1,2,3,4,5;uchar Abuf6=0,0,8,5,3,2;uchar sec=0,min=58,hour=23;uchar bdata flag;sbit dis_flag=flag八0;uchar keyin();uchar deky();void display1(uchar j);void display2();void display3();void clrdisplay(void);void t0_ini(void);void ini_dis(void);void main(void)uchar j;t0_ini();ini_dis();while(1)j=ke

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論