版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第六講 獨(dú)立按鍵和矩陣鍵盤按鍵是什么東西,我想這個(gè)就不必由我向各位闡述了。嗯,如你所見,按鍵種類繁多,功能有簡(jiǎn)有繁,極大的充斥著我們的生活。但是無論如何,所有的按鍵其實(shí)都有一個(gè)原型,來源于同一種原理,所有的按鍵無論多復(fù)雜,多華麗,都是從這樣一個(gè)原型發(fā)展而成的。好比你就算長(zhǎng)的再帥,你也是只猩猩變來的,呵呵。我們平日所見到的絕大部分的按鍵,其實(shí)都可以歸類為一種,叫“接觸式按鍵”。下圖為一個(gè)典型的接觸式按鍵(又稱輕觸開關(guān))。需要特別說明的是,這里說的“接觸”,是指機(jī)械層面上的接觸,而不是感光或者某些特殊涂層(比如觸摸屏)一類的接觸。所以,按鍵的工作特性其實(shí)是一種機(jī)械特性,下文會(huì)詳細(xì)說明。,如上圖,請(qǐng)
2、對(duì)照?qǐng)D一想象,1、2、3、4 分別對(duì)應(yīng)按鍵的四個(gè)引腳,其中藍(lán)色的線表示按鍵未被按下之時(shí)的狀態(tài),我成為初始狀態(tài),它是不導(dǎo)通的;而綠色的線是卻永久導(dǎo)通的。各位明白了么,其實(shí)是兩個(gè)相同的結(jié)構(gòu)連在一起了。我們只要將需要按鍵開關(guān)作用的線路分別接在1、3 和2、4 的任意取一組合,概括起來就是(1,2)、(1,4)、(3,2)、(3,4)四種組合,都可以起到我們預(yù)期的開關(guān)作用。相信以上說明使大家對(duì)按鍵的工作原理有了個(gè)比較清晰的認(rèn)識(shí)了,現(xiàn)在來說說一個(gè)小知識(shí)。先看下圖(圖4):首先說明的是,上圖的連法是不允許的,因?yàn)楫?dāng)按鍵按下之后,電源和地短接,會(huì)將導(dǎo)線直接燒毀。但是此處用作特例,假設(shè)導(dǎo)線不會(huì)燒毀。現(xiàn)在來提出
3、一個(gè)問題,當(dāng)按鍵按下以后,請(qǐng)問如果這時(shí)用萬用表測(cè)量導(dǎo)線上任何一處的電壓,得到的結(jié)果是VCC 還是GND 的電壓?答案是:GND,即表示測(cè)出的電壓為0V。為什么呢,因?yàn)閷?dǎo)線上,對(duì)于兩端的電平是一種類似于程序語言邏輯運(yùn)算里面的“與”,即對(duì)于導(dǎo)線兩端:有零即為零,只有全為一是才為一。理解了這點(diǎn),按鍵的工作前提就有了。鍵盤分為編碼鍵盤和非編碼鍵盤。鍵盤上閉合鍵的識(shí)別由專用的硬件編碼器實(shí)現(xiàn),并產(chǎn)生鍵編碼號(hào)或鍵值的稱為編碼鍵盤,如計(jì)算機(jī)鍵盤。而靠軟件編程來識(shí)別的鍵盤稱為非編碼鍵盤,在單片機(jī)組成的各種系統(tǒng)中,用的較多的是非編碼鍵盤。非編碼鍵盤又分為獨(dú)立鍵盤和行列式鍵盤(常說的矩陣鍵盤)。在這一講中我們介紹一
4、下單片機(jī)中鍵盤使用。 單片機(jī)的IO口既可作為輸出也可作為輸入使用,當(dāng)檢測(cè)按鍵時(shí)用的是它的輸入功能,我們把按鍵的一端接地,另一端與單片機(jī)的某個(gè)I/O口相連,開始時(shí)先給該IO口賦一高電平,然后讓單片機(jī)不斷地檢測(cè)該I/O口是杏變?yōu)榈碗娖剑?dāng)按鍵閉合時(shí),即相當(dāng)于該I/O口通過按鍵與地相連,變成低電平,程序一旦檢測(cè)到I/O口變?yōu)榈碗娖絼t說明按鍵被按下,然后執(zhí)行相應(yīng)的指令。我們先來說一下,按鍵常常遇到的問題抖動(dòng)問題。還以圖四為例,按鍵未按下之前,圖四按鍵左端的導(dǎo)線因?yàn)檫B在VCC 上而顯示高電平,右端顯示低電平,按鍵按下后,按鍵閉合,整個(gè)導(dǎo)線都顯示低電平,然后按鍵松開,又回到按鍵按下之前的點(diǎn)評(píng)狀態(tài)。如果只考
5、察按鍵左端的電平變化,應(yīng)該是上圖中所顯示的一個(gè)負(fù)脈沖波形。但是,實(shí)際上,正確的波形應(yīng)該是下圖。相比于上圖,大家都看到了在高低電平直接有一段鋸齒一樣的波形,這就是所謂的按鍵抖動(dòng)。為什么會(huì)有按鍵抖動(dòng)呢,原因很簡(jiǎn)單,接觸式按鍵是靠機(jī)械的接觸來實(shí)現(xiàn)開關(guān)作用的。這種接觸方式就注定了它要經(jīng)歷一個(gè)“接觸不穩(wěn)定正在穩(wěn)定中徹底穩(wěn)定”的一種過程。就好比你用手抓緊一顆石頭,即使你一開始就很用力的握緊,也不可能馬上就達(dá)到最緊的狀態(tài),也要經(jīng)歷一個(gè)從握住到最緊握的過程。那么在這個(gè)過程里,接觸式按鍵就處于一種徘徊在“閉合”與“斷開”兩者之間的狀態(tài)。體現(xiàn)在電路中,就是在一小段時(shí)間內(nèi)有非常多的“按下抬起”動(dòng)作。而這段抖動(dòng)的時(shí)間
6、,大概是1020 毫秒,依不同的環(huán)境條件而定。解決這個(gè)問題常見的方法有軟件去抖動(dòng)和硬件去抖動(dòng)。我們解釋一下抖動(dòng):關(guān)于按鍵去抖動(dòng)的解釋,我們?cè)谑謩?dòng)按鍵的時(shí)候,由于機(jī)械抖動(dòng)或是其它一些非人為的因素很有可能會(huì)造成誤識(shí)別,一般手動(dòng)按下一次鍵然后接著釋放,按鍵兩片金屬膜接觸的時(shí)間大約為50ms 左右,在按下瞬間到穩(wěn)定的時(shí)間為5-10ms,在松開的瞬間到穩(wěn)定的時(shí)間也為5-10ms,如果我們?cè)偈状螜z測(cè)到鍵被按下后延時(shí)10ms 左右再去檢測(cè),這時(shí)如果是干擾信號(hào)將不會(huì)被檢測(cè)到,如果確實(shí)是有鍵被按下,則可確認(rèn),以上為按鍵識(shí)別去抖動(dòng)的原理。獨(dú)立按鍵: 我們先將一下獨(dú)立按鍵的使用方法,開發(fā)板獨(dú)立按鍵電路圖如下:獨(dú)立按
7、鍵一共5個(gè),分別連接在單片機(jī)的P3.0到P3.4口。去抖動(dòng)的方式,我們采用軟件延時(shí)的方法。過程如下:1. 先設(shè)置IO口為高電平(一般上電默認(rèn)就為高)2. 讀取IO口電平確認(rèn)是否有按鍵按下3. 如有IO電平為低電平后,延時(shí)幾個(gè)ms4. 再讀取該IO電平,如果任然為低電平,說明對(duì)應(yīng)按鍵按下5. 執(zhí)行相應(yīng)按鍵的程序一個(gè)獨(dú)立鍵盤程序:基礎(chǔ)篇第六個(gè),獨(dú)立按鍵控制led燈/* 獨(dú)立按鍵控制led燈兩滅 /獨(dú)立按鍵排線連接P3.0P3.4口*/#include reg51.hsbit key1=P30;sbit key2=P31;sbit key3=P32;sbit key4=P33;sbit key5=P
8、34;/*延時(shí)函數(shù)*/ 定義一個(gè)演示函數(shù),定時(shí)時(shí)間大概為一個(gè)毫秒。void delay(unsigned int i) unsigned char j; for(i; i 0; i-) for(j = 100; j 0; j-);/*/main() P0= 0xff; /初始化P0口,全部置1 P2 = 0xff; /初始化P2口,關(guān)閉所有l(wèi)ed燈while(1) P2 = 0xff; /初始化P2口,關(guān)閉所有l(wèi)ed燈 if(key1=0) delay(5); /為去抖動(dòng)加的延時(shí),利用軟件延時(shí) if(key1=0) P2 = 0xfe;while(!key1); /等待按鍵松開 ,如果將這句去
9、掉的話,/那么led燈保持打開狀態(tài)。 if(key2=0) delay(5);if(key2=0) P2 = 0xfd; while(!key2); /等待按鍵松開 if(key3=0) delay(5); if(key3=0) P2 = 0xfb;while(!key3); /等待按鍵松開 if(key4=0) delay(5);if(key4=0) P2 = 0xf7; while(!key4); /等待按鍵松開 if(!key5) delay(5); if(!key5) P2 = 0xef; / if(!key4) 與if(key4=0) 表達(dá)的是一個(gè)意思。就是key4按鍵按下(按下相應(yīng)
10、管腳為低電平),就會(huì)執(zhí)行后面的語句。 while(!key5); /等待按鍵松開 連接好電路圖,下載獨(dú)立按鍵控制led燈.hex,觀察實(shí)驗(yàn)結(jié)果獨(dú)立按鍵控制led燈.hex矩陣鍵盤獨(dú)立鍵盤與單片機(jī)連接時(shí),每一個(gè)按鍵都需要單片機(jī)的一個(gè)I/O口若某單片機(jī)系統(tǒng)需較多按鍵,如果用獨(dú)立按鍵便會(huì)占用過多的I/O口資源。單片機(jī)系統(tǒng)中I/O口資源往往比較寶貴,當(dāng)用到多個(gè)按鍵時(shí)為了節(jié)省I/O口口線,我們引入矩陣鍵盤。我們以4X4矩陣鍵盤為例講解其工作原理和檢測(cè)方法。將16個(gè)按鍵排成4行4列,第一行將每個(gè)按鍵的一端連接在一起構(gòu)成行線,第一列將每個(gè)按鍵的另一端連接在一起構(gòu)成列線,這樣便一共有4行4列共8根線,我們將這
11、8根線連接到單片機(jī)的8個(gè)I/O口上,通過程序掃描鍵盤就可檢測(cè)16個(gè)鍵。用這種方法我們也可實(shí)現(xiàn)3行3列9個(gè)鍵、5行5列25個(gè)鍵、6行6列36個(gè)鍵等。無論是獨(dú)立鍵盤還是矩陣鍵盤,單片機(jī)檢測(cè)其是否被按下的依據(jù)都是一樣的,也就是檢測(cè)與該鍵對(duì)應(yīng)的I/O口是否為低電平。獨(dú)立鍵盤有一端固定為低電平,單片機(jī)寫程序檢測(cè)時(shí)比較方便。而矩陣鍵盤兩端都與單片機(jī)I/O口相連,因此在檢測(cè)時(shí)需人為通過單片機(jī)I/O口送出低電平。檢測(cè)時(shí),先送一列為低電平,其余幾列全為高電平(此時(shí)我們確定了列數(shù)),然后立即輪流檢測(cè)一次各行是否有低電平,若檢測(cè)到某一行為低電平(這時(shí)我們又確定了行數(shù)),則我們便可確認(rèn)當(dāng)前被按下的鍵是哪一行哪一列的,
12、用同樣方法輪流送各列一次低電平,再輪流檢測(cè)一次各行是否變?yōu)榈碗娖?,這樣即可檢測(cè)完所有的按鍵,當(dāng)有鍵被按下時(shí)便可判斷出按下的鍵是哪一個(gè)鍵。當(dāng)然我們也可以將行線置低電平,掃描列是否有低電平。這就是矩陣鍵盤檢測(cè)的原理和方法。首先看一下電路圖上圖是一個(gè)4X4 的矩陣鍵盤,一共是16 個(gè)按鍵。我們照習(xí)慣稱橫為“行”,“豎”為列。那么5、6、7、8 我們稱之為“行線”,則1、2、3、4 稱為“列線”。要正確記住各個(gè)行列線各自對(duì)應(yīng)的IO。注意看,每一個(gè)按鍵的兩端,都分別接在某一個(gè)列線和行線上,即:“行線和列線是通過某個(gè)按鍵的按下和抬起實(shí)現(xiàn)聯(lián)通和斷開的”,和“導(dǎo)線兩端上的信號(hào)是經(jīng)過“與”的關(guān)系再體現(xiàn)到導(dǎo)線上的
13、?!边@兩句話便構(gòu)成了矩陣鍵盤掃描的全部。要理解好,理解不了就背下來。現(xiàn)在詳細(xì)講述一下矩陣鍵盤掃描的原理和步驟:掃描矩陣鍵盤,即是把某一條(只有一條)行線置為低電平,而列線全部置為輸入方向,然后檢測(cè)列線,如果檢測(cè)到某一條列線是低電平,那么就表示位于這條列線與輸出低電平的行線的交點(diǎn)處的按鍵被按下了。要掃描16個(gè)按鍵,就依次以這樣的方法掃描16次,之后就可以確定哪一個(gè)按鍵被按下了。當(dāng)然這里也少不了延時(shí)消除按鍵抖動(dòng)的環(huán)節(jié)。下面看一下程序/* 矩陣鍵盤控制led顯示實(shí)驗(yàn)*/#includereg51.h#define key_port P0/定義矩陣鍵盤掃描的端口sbit hc573_en = P13;
14、unsigned char key_value; void delay(unsigned int z) /延時(shí)函數(shù)unsigned int x,y;for(x=z;x0;x-)for(y=100;y0;y-);void key_scan() unsigned char temp; /定義一個(gè)臨時(shí)變量,用來讀取鍵盤掃描端口的值, key_port = 0x7f; /第一行送低電平 delay(5); temp=key_port; /獲取按鍵狀態(tài), switch(temp) case 0x77: key_value=1;break;case 0x7b: key_value=2;break;case
15、 0x7d: key_value=3;break;case 0x7e: key_value=4;break;default:break; while(key_port!=0x7f); / 等待按鍵松下 key_port = 0xbf; /第二行送低電平 delay(5); temp=key_port; switch(temp) case 0xb7: key_value=5;break;case 0xbb: key_value=6;break;case 0xbd: key_value=7;break;case 0xbe: key_value=8;break;default:break; whil
16、e(key_port!=0xbf); / 等待按鍵松下key_port = 0xdf; /第三行送低電平 delay(5); temp=key_port; switch(temp) case 0xd7: key_value=9;break;case 0xdb: key_value=10;break;case 0xdd: key_value=11;break;case 0xde: key_value=12;break;default:break; while(key_port!=0xdf); / 等待按鍵松下key_port = 0xef; /第四行送低電平 delay(5); temp=key
17、_port; switch(temp) case 0xe7: key_value=13;break;case 0xeb: key_value=14;break;case 0xed: key_value=15;break;case 0xee: key_value=0;break;default:break; while(key_port!=0xef); / 等待按鍵松下 main()hc573_en=0;P1=0; / 執(zhí)行這句是為了屏蔽數(shù)碼管和點(diǎn)陣hc573_en=1; /關(guān)閉鎖存器 P2=0; key_value=0xff; while(1) key_scan(); P2=key_value
18、; 下載矩陣鍵盤控制led.hex,看實(shí)驗(yàn)結(jié)果第七講 數(shù)碼管我們先看看什么是數(shù)碼管,上圖就是各種長(zhǎng)相各種樣子的數(shù)碼管了,肯定很眼熟了吧。不管將幾位數(shù)碼管連在一起,數(shù)碼管的顯示原理都是一樣的,都是靠點(diǎn)亮內(nèi)部的發(fā)光二極管來發(fā)光,下面就來我們講解一個(gè)數(shù)碼管是如何亮起來的。數(shù)碼管內(nèi)部電路如下圖所示,從右圖可看出,一位數(shù)碼管的引腳是10個(gè),顯示一個(gè)8字需要7個(gè)小段,另外還有一個(gè)小數(shù)點(diǎn),所以其內(nèi)部一共有8個(gè)小的發(fā)光二極管,最后還有一個(gè)公共端,生產(chǎn)商為了封裝統(tǒng)一,單位數(shù)碼管都封裝10個(gè)引腳,其中第3和第8引腳是連接在一起的。而它們的公共端又可分為共陽極和共陰極,中間圖為共陰極內(nèi)部原理圖,右圖為共陽極內(nèi)部原理
19、圖。上圖展出了常用的兩種數(shù)碼管的引腳排列和內(nèi)部結(jié)構(gòu)??偹苤?,點(diǎn)亮發(fā)光二極管就是要給予它足夠大的正向壓降。所以點(diǎn)亮數(shù)碼管其實(shí)也就是給它內(nèi)部相應(yīng)的發(fā)光二極管正向壓降。如上圖左(一共a、b、c、d、e、f、g、DP 八段),如果要顯示“1”則要點(diǎn)亮b、c 兩段LED;顯示“A”則點(diǎn)亮a、b、c、e、f、g 這六段LED;我們還知道,既然LED 加載的是正向壓降,它的兩端電壓必然會(huì)有高低之分:如果八段LED 電壓高的一端為公共端,我們稱之為共陽極數(shù)碼管(如上圖中);如果八段LED 電壓低的一段為公共端,則稱之為共陰極數(shù)碼管(上圖右)。所以,要點(diǎn)亮共陽極數(shù)碼管,則要在公共端給予高于非公共端的電平;反之
20、點(diǎn)亮共陰極數(shù)碼管,則要在非公共端給予較高電平。對(duì)共陰極數(shù)碼來說,其8個(gè)發(fā)光二極管的陰極在數(shù)碼管內(nèi)部全部連接在一起,所以稱“共陰”,而它們的陽極是獨(dú)立的,通常在設(shè)計(jì)電路時(shí)一般把陰極接地。當(dāng)我們給數(shù)碼管的任意一個(gè)陽極加一個(gè)高電平時(shí),對(duì)應(yīng)的這個(gè)發(fā)光二極管就點(diǎn)亮了。如果想要顯示出一個(gè)8字,并且把右下角的小數(shù)點(diǎn)也點(diǎn)亮的話,可以給8個(gè)陽極全部送高電平,如果想讓它顯示出一個(gè)0字,那么我們可以除了給第“g, dp”這兩位送低電平外,其余引腳全部都送高電平,這樣它就顯示出0字了。想讓它顯示幾,就給相對(duì)應(yīng)的發(fā)光二極管送高電平,因此我們?cè)陲@示數(shù)字的時(shí)候首先做的就是給0-9十個(gè)數(shù)字編碼,在要它亮什么數(shù)字的時(shí)候直接把這
21、個(gè)編碼送到它的陽極就行了。共陽極數(shù)碼管其內(nèi)部8個(gè)發(fā)光二極管的所有陽極全部連接在一起,電路連接時(shí),公共端接高電平,因此我們要點(diǎn)亮的那個(gè)發(fā)光管二極管就需要給陰極送低電平,此時(shí)顯示數(shù)字的編碼與共陽極編碼是相反的關(guān)系,數(shù)碼管內(nèi)部發(fā)光二極管點(diǎn)亮?xí)r,也需要5mA以上的電流,而且電流不可過大,否則會(huì)燒毀發(fā)光二極管。由于單片機(jī)的I/O口送不出如此大的電流,所以數(shù)碼管與單片機(jī)連接時(shí)需要加驅(qū)動(dòng)電路,可以用上拉電阻的方法或使用專門的數(shù)碼管驅(qū)動(dòng)芯片,本實(shí)驗(yàn)板上使用的是74HC573鎖存器,其輸出電流較大,電路接口簡(jiǎn)單,可借鑒使用。一般共陽極數(shù)碼管更為常用,為什么呢?這是因?yàn)閿?shù)碼管的非公共端往往接在IC 芯片的IO上,
22、而IC 芯片的驅(qū)動(dòng)能力往往是比較小的,如果采用共陰極數(shù)碼管,它的驅(qū)動(dòng)端在非公共端,就有可能受限于IC芯片輸出電流不夠而顯示昏暗(比如51單片機(jī)),要外加上拉電阻或者是三極管加大驅(qū)動(dòng)能力。所以使用共陽數(shù)碼管的好處是:將驅(qū)動(dòng)數(shù)碼管的工作交到公共端(一般接驅(qū)動(dòng)電源),加大驅(qū)動(dòng)電源的功率自然要比加大IC芯片IO口的驅(qū)動(dòng)電流簡(jiǎn)單許多。另一方面,這樣也能減輕MCU的負(fù)擔(dān)。當(dāng)多位一體時(shí),它們內(nèi)部的公共端是獨(dú)立的,而負(fù)責(zé)顯示什么數(shù)字的段線全部是連接在一起的,獨(dú)立的公共端可以控制多位一體中的哪一位數(shù)碼管點(diǎn)亮,而連接在一起的段線可以控制這個(gè)能點(diǎn)亮數(shù)碼管亮什么數(shù)字,通常我們把公共端叫做“位選線”,連接在一起的段線叫
23、做“段選線”,有了這兩個(gè)線后,通過單片機(jī)及外部驅(qū)動(dòng)電路就可以控制任意的數(shù)碼管顯示任意的數(shù)字了。一般單位數(shù)碼管有10個(gè)引腳,二位數(shù)碼管也是10個(gè)引腳,四位數(shù)碼管是12個(gè)引腳,關(guān)于具體的引腳及段、位標(biāo)號(hào)大家可以查詢相關(guān)資料,最簡(jiǎn)單的辦法就是用數(shù)字萬用表測(cè)量,若沒有數(shù)字萬用表也可用5V直流電源串接1k電阻后測(cè)量,將測(cè)量結(jié)果記錄,通過統(tǒng)計(jì)便可繪制出引腳標(biāo)號(hào)。數(shù)碼管靜態(tài)顯示當(dāng)多位數(shù)碼管應(yīng)用于某一系統(tǒng)時(shí),它們的“位選”是可獨(dú)立控制的,而“段選”是連接在一起的,我們可以通過位選信號(hào)控制哪幾個(gè)數(shù)碼管亮,而在同一時(shí)刻,位選選通的所有數(shù)碼管上顯示的數(shù)字始終都是一樣的,因?yàn)樗鼈兊亩芜x是連接在一起的,所以送入所有數(shù)碼
24、管的段選信號(hào)都是相同的,那么它們顯示的數(shù)字必定一樣,數(shù)碼管的這種顯示方法叫做靜態(tài)顯示。從電路圖可以看出,本開發(fā)板使用的是共陽極數(shù)碼管,在每段數(shù)碼管端加上一個(gè)470R的限流電阻。下面看一下程序:/* 標(biāo)題: 試驗(yàn)數(shù)碼管上如何顯示數(shù)字(共陽極) * * 連接方法:P0 與JP3 用8PIN排線連接 * * 請(qǐng)學(xué)員認(rèn)真消化本例程,用單片機(jī)腳直接控制數(shù)碼管 */#include void delay(unsigned int i); /函數(shù)聲名 / 此表定義 LED 的字模 unsigned char code LED7Code = 0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D
25、,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71;main() unsigned int LedNumVal ; /定義變量 while(1) / 將字模送到P0口顯示 LedNumVal+; P0 = LED7CodeLedNumVal%16&0x7f; /LED7 0x7f為小數(shù)點(diǎn) 共陰和共陽此處也是不一樣; delay(62000); /調(diào)用延時(shí)程序 /* * 延時(shí)程序 * */void delay(unsigned int i) char j; for(i; i 0; i-) for(j = 200; j 0; j-);下載數(shù)碼管靜態(tài)顯示.he
26、x,連接排線,觀察開發(fā)板運(yùn)行結(jié)果動(dòng)態(tài)數(shù)碼管首先我們來看一下開發(fā)板上的電路原理圖:本開發(fā)板上使用的是,通過P22、P23、P24控制3-8譯碼器來對(duì)數(shù)碼管進(jìn)行位選,通過P0口經(jīng)過573的驅(qū)動(dòng)控制數(shù)碼管的段選,通過P13控制573的使能端,為低電平時(shí)573才會(huì)有輸出。下面看一下程序:/*數(shù)碼管動(dòng)態(tài)顯示 */#include sbit LS138A = P22; /定義138譯碼器的輸入A腳由P2.2控制 sbit LS138B = P23; /定義138譯碼器的輸入腳B由P2.3控制sbit LS138C = P24; /定義138譯碼器的輸入腳C由P2.4控制sbit EN573 = P13;/
27、573鎖存器 使能端口sbit MOSI =P37; /定義管腳sbit R_CLK =P35; /定義管腳sbit S_CLK =P36; /定義管腳void delay(unsigned int i); /函數(shù)聲名char DelayCNT; /此表為 LED 的字模, 共陰數(shù)碼管 0-9 - unsigned char code Disp_Tab = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40; void init_all() unsigned int i; P0=0xff; P1=0xf0; P2=0xff; P3=0xff; for(i=0;i=50) DelayCNT=0; /延時(shí)計(jì)數(shù) 每掃描一次加一次 +LedNumVal; /每隔50個(gè)掃描周期加一次 LedOut0=Disp_TabLedNumVal%10000/1000; LedOut1=Disp_TabLedNumVal%1000/100|0x80; LedOut2
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年甲乙雙方關(guān)于跨境電商平臺(tái)運(yùn)營(yíng)合同
- 2024蔬菜大棚廢棄物處理與資源化利用合同2篇
- 2024版建筑施工物資租賃合同模板
- 二零二五年度工業(yè)用地廠房租賃合同2篇
- 水上運(yùn)輸輔助活動(dòng)行業(yè)趨勢(shì)分析-洞察分析
- 2024年道路養(yǎng)護(hù)合同:挖掘機(jī)道路翻新與維護(hù)3篇
- 2024年項(xiàng)目投資與建設(shè)合同3篇
- 線下零售智能化轉(zhuǎn)型-洞察分析
- 行情波動(dòng)與市場(chǎng)趨勢(shì)-洞察分析
- 網(wǎng)絡(luò)營(yíng)銷法律法規(guī)研究-洞察分析
- 團(tuán)隊(duì)風(fēng)采展示快閃ppt
- 工廠5S檢查評(píng)分評(píng)價(jià)基準(zhǔn)表(全)
- 安吉游戲培訓(xùn)課件(全)
- (第六版)江蘇省建設(shè)工程施工單位申報(bào)現(xiàn)場(chǎng)用表
- (完整)Tribon m3培訓(xùn)資料
- 復(fù)旦大學(xué)本科留學(xué)生入學(xué)考試語文樣題
- 食管裂孔疝手術(shù)同意書
- 工地試驗(yàn)室平面布置圖
- (完整版)復(fù)變函數(shù)與積分變換公式
- 國(guó)有資產(chǎn)清查工作方案國(guó)有資產(chǎn)清查報(bào)告
- 行政處罰普通程序流程圖
評(píng)論
0/150
提交評(píng)論