項(xiàng)目3利用p0口驅(qū)動(dòng)一個(gè)數(shù)碼管_第1頁
已閱讀1頁,還剩13頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、項(xiàng)目3 利用P0口驅(qū)動(dòng)一個(gè)數(shù)碼管,嵌入式單片機(jī)方向—單片機(jī)C語言程序項(xiàng)目設(shè)計(jì),一、任務(wù) 1)利用單片機(jī)的P0口驅(qū)動(dòng)一個(gè)共陽數(shù)碼管,實(shí)現(xiàn)0-9顯示; 2)編程并采用PROTEUS仿真實(shí)現(xiàn)。二、學(xué)習(xí)目的 1)掌握主程序的延時(shí)函數(shù)的調(diào)用和延時(shí)函數(shù)的編寫; 2)掌握單片機(jī)的引腳排列和數(shù)碼管引腳排列;并理解數(shù)碼管的顯示數(shù)組;,3.1 任務(wù)說明,單片機(jī)系統(tǒng)常用的數(shù)碼管有共陽型和共陰

2、型兩種類型,它是單片機(jī)常用的外圍顯示器件。兩種類型的數(shù)碼管外形和結(jié)構(gòu)類似,只是數(shù)碼管內(nèi)部組成數(shù)碼段和標(biāo)點(diǎn)的LED接法有區(qū)別,共陽型數(shù)碼管的內(nèi)部所有LED的正極接在一起為公共極引腳,負(fù)極分別引出,依次命名為a、b、c、d、e、f、g、dop,見圖2-1所示數(shù)碼管電路符號(hào)。使用時(shí),共陽型數(shù)碼管的公共極接正極,其他引腳分別接驅(qū)動(dòng)電路,數(shù)碼管顯示時(shí)低電平有效。數(shù)碼管可以顯示0到9,3.2數(shù)碼管的顯示原理,共十個(gè)數(shù)字,如果加上小數(shù)點(diǎn)的顯示,驅(qū)動(dòng)一

3、個(gè)數(shù)碼管顯示至少需要8位有效數(shù)據(jù)。驅(qū)動(dòng)數(shù)碼管顯示數(shù)字的8位數(shù)據(jù)編碼見表3-1和3-2所示,其中表3-1為共陽型數(shù)碼管編碼,表3-2為共陰型編碼。由于共陰型數(shù)碼管內(nèi)部所有LED的負(fù)極接在一起,所以數(shù)碼管顯示時(shí)驅(qū)動(dòng)數(shù)據(jù)高電平有效。,表3-1共陽數(shù)碼管顯示編碼,表3-2共陰數(shù)碼管顯示編碼,二、數(shù)碼管的驅(qū)動(dòng) 本節(jié)任務(wù)所需的電路只需在單片機(jī)的最小系統(tǒng)基礎(chǔ)增加一個(gè)數(shù)碼管即可。在圖3-1中,單片機(jī)的P0口接一只共陽數(shù)碼管,其中

4、P0.0~P0.7口分別接數(shù)碼管的a~dot引腳,P0的每個(gè)端口只要有低電平輸出,對(duì)應(yīng)的數(shù)碼管的那個(gè)段就顯示。如讓數(shù)碼管顯示1,數(shù)碼管b、c段亮,程序控制P0輸出0xbe十六進(jìn)制編碼即可,因此共陽數(shù)碼管顯示0~9十進(jìn)制數(shù)字,需要利用10個(gè)顯示碼組成的數(shù)組。小數(shù)點(diǎn)在不用時(shí)一般不讓顯示,高位端口P0.7輸出高電平即可。,圖3-1 單片機(jī)驅(qū)動(dòng)共陽數(shù)碼管電路,,由于P0每個(gè)端口的灌電流達(dá)20mA,數(shù)碼管每段LED正常顯示5mA即可,因此電路中需

5、要R2~9八個(gè)電阻用來限制數(shù)碼管每一段電流,以防止驅(qū)動(dòng)電流過大而燒毀器件。利用Proteus軟件仿真時(shí),數(shù)碼管采用Optoelectronics元件庫中7-Segment Displays下的7-SEG-COM-ANODE元件,可以不接限流電阻。3.3程序設(shè)計(jì) 一、程序設(shè)計(jì) 數(shù)碼管顯示0到9數(shù)字過程中,數(shù)字的變化需要有一定,的時(shí)間間隔,因此還采用程序延時(shí)的方法實(shí)現(xiàn)。程序清單如下:,/**************

6、************************************************************/#includecode unsigned char seven_seg[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};void delay (void) /* 時(shí)間延遲函數(shù) */{

7、 unsigned char i,j;for(i = 0;i < 255;i++)for (j = 0;j < 255;j++);}void main (void){unsigned char i; /* 變量 i 用來儲(chǔ)存 0~9 */ /*無窮循環(huán) */while (1){ for (i = 0; i<10; i++){,P0 = seven_seg[

8、i]; /*輸出0~9到共陽七段顯示器*/delay(); /*調(diào)用時(shí)間延遲函數(shù)delay*/}}}/*************************************************************************/,二、程序說明 (1)當(dāng)程序中使用常量數(shù)據(jù)時(shí),如共陽數(shù)碼管數(shù)字顯示編碼、液晶顯示器的漢字編碼等,一般希望這些數(shù)據(jù)當(dāng)程序下載到單片機(jī)時(shí)存放在單片機(jī)

9、的ROM區(qū),對(duì)此類數(shù)據(jù)聲明前面需要加上關(guān)鍵字code或const。 (2)本程序數(shù)碼管顯示使用了一個(gè)for循環(huán),讓變量i依次由0遞增到9,并將數(shù)字顯示碼送到P0,需要注意seven_seg[10] 有10個(gè)數(shù)據(jù),seven_seg[0] 為第一個(gè)數(shù)據(jù),seven_seg[9] 為第10個(gè)數(shù)據(jù)。數(shù)碼管顯示數(shù)據(jù)的變,化時(shí)間由延時(shí)函數(shù)決定。for循環(huán)體嵌套在while循環(huán)體中,數(shù)碼管會(huì)循環(huán)顯示0~9,永不結(jié)束,除非電路斷電。利用數(shù)碼管也

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論