版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件第第7章章 掃描數(shù)碼管、鍵盤與點(diǎn)陣顯示掃描數(shù)碼管、鍵盤與點(diǎn)陣顯示 7.1 掃描數(shù)碼管顯示掃描數(shù)碼管顯示(1)直接掃描數(shù)碼管采用單獨(dú)的引腳輸出段碼與位碼,占用I/O引腳少,引腳數(shù)量等于8位(段碼)加數(shù)碼管的數(shù)量(位碼),節(jié)省電源功率,但是浪費(fèi)CPU時(shí)間,因?yàn)楸仨毝〞r(shí)更換段碼與位碼,保證顯示的連續(xù)性。需要點(diǎn)亮一個(gè)數(shù)碼管一段時(shí)間(持續(xù)1ms以上),再切換到另外一個(gè)。例如三個(gè)數(shù)碼管組成的顯示器,數(shù)碼管的工作點(diǎn)電流為10mA,2V壓降,則可以采用30mA,33%占空比的電流工作,若是每個(gè)數(shù)碼管顯示時(shí)間為5ms,需要15ms完成一次顯示,則每個(gè)數(shù)碼管的
2、閃爍頻率為66Hz。若是增加數(shù)碼管數(shù)量,則占空比降低,若要保證亮度需要增加電流,但是最大不要超過100mA。圖所示的是共陰極數(shù)碼管的掃描工作接線圖。單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件.a11b7c4d2e1f10g5h3L12LM9RM8R6shuma2.a11b7c4d2e1f10g5h3L12LM9RM8R6shuma1共陰極s1s2s3s4s5s6s7s8VCC12345678JDATACON812345678JDSCON8Q19013Q29013Q3Q4Q5Q6Q7Q8Rsm115kRsm215kRsm315kRsm415kRsm515kRsm615kRsm715k
3、Rsm815ks1s2s3s4s5s6s7s8共陰極高電平有效高電平有效123456789Rs95101234JVCCCON4VCC.段驅(qū)動(dòng)連接器IDATA與51單片機(jī)的P0口相連,位驅(qū)動(dòng)連接器IDS與P2口相連,段驅(qū)動(dòng)信號高電平有效,驅(qū)動(dòng)晶體三極管9013的信號也是高電平有效。單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件例題7-1直接掃描數(shù)碼管8位共陰極數(shù)碼管,采用掃描方式。輸出1、2、3、4、5、6、7、8。#includeunsignedcharcodetable1=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0
4、x6f;/段碼,高電平有效unsignedcharcodetable3=0 x01,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x80;/位碼,高電平有效unsignedchari;/i是數(shù)碼管掃描變量unsignedchara,b;/a、b是循環(huán)變量voidmain(void)while(1)for(i=0;i0;a-)/循環(huán)延時(shí)for(b=248;b0;b-);單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件(2)總線法掃描數(shù)碼管采用兩個(gè)8D鎖存器74373分時(shí)鎖存段碼與位碼,則可以節(jié)省I/O引腳,例如8位數(shù)碼管掃描顯示可以采用10個(gè)I/O口實(shí)現(xiàn)。其中
5、8位用來分時(shí)送段碼與位碼,另外2位用于連接74373的鎖存控制端,分別控制鎖存段碼與位碼。100L E 1L E 2D 0D 1D 2D 3D 4D 5D 6D 7D 0D 1D 2D 3D 4D 5D 6D 7D 03Q 02D 14Q 15D 27Q 26D 38Q 39D 413Q 412D 514Q 515D 617Q 616D 718Q 719O E1L E11U 274H C 373D 03Q 02D 14Q 15D 27Q 26D 38Q 39D 413Q 412D 514Q 515D 617Q 616D 718Q 719O E1L E11U 374H C 373.a11b7c4
6、d2e1f10g5h3L12L M9R M8R6shum a2.a11b7c4d2e1f10g5h3L12L M9R M8R6shum a1s1s2s3s4s5s6s7s8s1s2s3s4s5s6s7s8圖中的D0D7信號與P3口相連,LE1與LE2與P2_0和P2_1引腳相連。D0D7信號分時(shí)送出段碼與位碼。74373功能為:OE是輸出使能控制,OE=1時(shí),輸出高阻,OE=0時(shí),輸出等于鎖存器輸出。LE為鎖存控制端,LE=1時(shí),鎖存器輸出與輸入相同,LE=0時(shí),鎖存器鎖存輸入信號。單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件例題7-2采用總線法掃描數(shù)碼管,8位共陰極數(shù)碼管,顯示輸出
7、數(shù)字1、2、3、4、5、6、7、8。源程序如下:#includeunsignedcharcodetable1=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;/段碼,高電平有效unsignedcharcodetable3=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;/位碼,低電平有效unsignedchari;/i是數(shù)碼管掃描變量unsignedchara,b;/a、b是循環(huán)變量voidmain(void)while(1)for(i=0;i0;a-)/延時(shí)for(b=24
8、8;b0;b-);單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件7.2 掃描鍵盤掃描鍵盤掃描式鍵盤又叫行列式鍵盤或矩陣式鍵盤。用I/O口線組成行列結(jié)構(gòu),按鍵設(shè)置在行列的交點(diǎn)上。例如用22的行、列結(jié)構(gòu)可構(gòu)成4個(gè)鍵的鍵盤,44的行列結(jié)構(gòu)可構(gòu)成16個(gè)鍵的鍵盤。因此,在按鍵數(shù)量較多時(shí),可以節(jié)省I/O口引腳。ANNIU2ANNIU3ANNIU4ANNIU6ANNIU7ANNIU8ANNIU10ANNIU11ANNIU12ANNIU1ANNIU5ANNIU9VCCANNIU14ANNIU15ANNIU16ANNI110Kkh0kh1kh2kh3KL0KL1KL2KL312
9、345678JKEYCON8kh0kh1kh2kh3KL0KL1KL2KL3.單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件行、列線分別連接到按鍵開關(guān)的兩端。行線通過上拉電阻接到電源VCC,被鉗位在高電平狀態(tài)。鍵盤中有無按鍵按下的判斷方法是:將列線的所有I/O線均置成低電平,然后將行線電平狀態(tài)讀入。如果有鍵按下,總會有一根行線電平被拉至低電平,從而使行輸入不全為1。若是列線為高4位,則可以判斷低4位,如果低4位不全為1,則有按鍵按下。鍵盤中哪個(gè)鍵按下的判斷方法是:由列線逐列置低電平后,檢查行輸入狀態(tài)而確定的。其方法是:依次給列線送低電平,然后查所有行線狀態(tài),如果全為1,則所按下的鍵不在
10、此列;如果不全為1,則所按下的鍵必在此列。而且是在此列與電平為0的行線相交的交點(diǎn)上的那個(gè)鍵。一旦找到哪個(gè)按鍵按下,就可以賦鍵值。單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件例題7-34x4掃描鍵盤如下的鍵盤掃描程序,對圖7-3所示的鍵盤進(jìn)行掃描。P3高4位(P3_4P3_5)為列掃描(KL0KL3),順序輸出低電平;P3低4位為行掃描(Kh0Kh3),順序讀入數(shù)據(jù),檢測哪一行為0;源程序如下:#includeunsignedcharcodetable=0 xC0,0 xF9,0 xA4,0 xB0,0 x99,0 x92,0 x82,0 xF8,0 x80,0 x90,0 x88,0
11、 x83,0 xc6,0 xA1,0 x86,0 x8e;/共陽數(shù)碼管的十六進(jìn)制-7段譯碼表unsignedchartemp;/暫存變量unsignedcharkey;/鍵值變量unsignedchari,j;/循環(huán)變量單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件voidmain(void)while(1)P3=0 xff;/使P3口輸出高電平,準(zhǔn)備接收輸入信號P3_4=0;/使P3_4為0,然后檢測鍵盤,如果低4位不等于F,表示鍵盤按下temp=P3;/將P3口數(shù)值保存在變量temptemp=temp&0 x0f;/取低4位if(temp!=0 x0f)/如果低4位不等于1111,
12、則表示按鍵按下for(i=50;i0;i-)for(j=200;j0;j-);/延遲時(shí)間,消除抖動(dòng)temp=P3;temp=temp&0 x0f;if(temp!=0 x0f)/如果低4位還是不等于1111temp=P3;temp=temp&0 x0f;單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件switch(temp)/根據(jù)低4位的值,用分支語句確定鍵值case0 x0e:/如果P3低4位為1110,所以11101110key=7;break;case0 x0d:/如果P3低4位為1101,所以11101101key=8;break;case0 x0b:/如果P3低4位為1011,
13、所以11101011key=9;break;case0 x07:/如果P3低4位為0111,所以11100111key=10;break;temp=P3;P1_0=P1_0;P0=tablekey;/P0口相連的數(shù)碼管顯示鍵值temp=temp&0 x0f;while(temp!=0 x0f)/等待按鍵抬起P3口的低4位等于1111temp=P3;temp=temp&0 x0f;單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件P3=0 xff; P3_5=0;/使P3_5為0,然后檢測鍵盤,如果低4位不等于F,表示鍵盤按下temp=P3;temp=temp&0 x0f;if(temp!=
14、0 x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp&0 x0f;if(temp!=0 x0f)temp=P3;temp=temp&0 x0f;單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件switch(temp)case0 x0e:/如果P3低4位為1110,所以11011110key=4;break;case0 x0d:/如果P3低4位為1101,所以11011101key=5;break;case0 x0b:/如果P3低4位為1011,所以11011011key=6;break;case0 x07:/如果P3低4位為011
15、1,所以11010111key=11;break;temp=P3;P1_0=P1_0;P0=tablekey;temp=temp&0 x0f;while(temp!=0 x0f)temp=P3;temp=temp&0 x0f;單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件P3=0 xff;P3_6=0;/使P3_6為0,然后檢測鍵盤,如果低4位不等于F,表示鍵盤按下temp=P3;temp=temp&0 x0f;if(temp!=0 x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp&0 x0f;if(temp!=0 x0f)te
16、mp=P3;temp=temp&0 x0f;單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件switch(temp)case0 x0e:/10111110key=1;break;case0 x0d:/10111101key=2;break;case0 x0b:/10111011key=3;break;case0 x07:/10110111key=12;break;temp=P3;P1_0=P1_0;P0=tablekey;temp=temp&0 x0f;while(temp!=0 x0f)/等待按鍵松開temp=P3;temp=temp&0 x0f;單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與
17、數(shù)碼顯示電路課件P3=0 xff;P3_7=0;/使P3_7為0,然后檢測鍵盤,如果低4位不等于F,表示鍵盤按下temp=P3;temp=temp&0 x0f;if(temp!=0 x0f)for(i=50;i0;i-)for(j=200;j0;j-);temp=P3;temp=temp&0 x0f;if(temp!=0 x0f)temp=P3;temp=temp&0 x0f;單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件switch(temp)case0 x0e:/01111110key=0;break;case0 x0d:/01111101key=13;break;case0 x0
18、b:/01111011key=14;break;case0 x07:/01110111key=15;break;temp=P3;P1_0=P1_0;P0=tablekey;/顯示按鍵值temp=temp&0 x0f;while(temp!=0 x0f)temp=P3;temp=temp&0 x0f;單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件7.3 發(fā)光二極管點(diǎn)陣顯示發(fā)光二極管點(diǎn)陣顯示點(diǎn)陣發(fā)光二極管器件內(nèi)部如圖所示。若是行加高電平,列加低電平,則行列交叉點(diǎn)的發(fā)光二極管亮,其實(shí)可以把每一行相連的8個(gè)發(fā)光二極管看作一個(gè)數(shù)碼管的8個(gè)段,列相當(dāng)于段,行相當(dāng)于行,若是列加段碼,行加位碼,就與共
19、陽極掃描數(shù)碼管顯示的情況相同。列.12345678行1行2行8.單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件如圖所示,若要顯示數(shù)字1,則需要8個(gè)列碼為:0 xff,0 xff,0 xff,0 xff,0 xde,0 x80,0 xfe,0 xff。因?yàn)槭构碴柦泳€方式,所以列碼為0(低電平)的位置,發(fā)光二極管亮。1 2345678123456780000000001011111111111111111111111111111111111111111111111111111ff ff ff ff de 80 fe ff.行掃描.列值.單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件
20、例題7-4發(fā)光二極管點(diǎn)陣定時(shí)順序顯示數(shù)字09。公共端為陽極(行),連接PNP型晶體管9102的集電極,9012基極信號為低電平有效。列控制低電平有效。每給定一次列數(shù)據(jù),就掃描1行,列數(shù)據(jù)值為零的發(fā)光二極管,由于在行公共端上加高電平,會被點(diǎn)亮。對應(yīng)8列數(shù)據(jù),掃描8次,完成1次顯示。單片機(jī)的P0口輸出行掃描信號,順序輸出低電平;P2口輸出列數(shù)據(jù)。VCC12345678JJZDATACON8RA0510RA1510RA2510RA3510RA4510RA5510RA6510RA7510H41H22C23C34H15C56H37H68H89C410C611H512C113H714C715C816共陽點(diǎn)
21、陣H( 陽 極 公 共 端 )JuzhenLEDJZ12345678JJZDSCON8Rj110kRj210kRj310kRj410kRj510kRj610kRj710kRj8低電平有效QP19012QP29012QP39012QP49012QP59012QP69012QP79012QP89012H1H2H3H4H5H6H7H8H1H2H3H4H5H6H7H8低電平有效.單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件#includeunsignedcharcodetab=0 xfe,0 xfd,0 xfb,0 xf7,0 xef,0 xdf,0 xbf,0 x7f;/行掃描表,低電平有
22、效(驅(qū)動(dòng)9012)unsignedcharcodedigittab108=0 xff,0 xff,0 xc1,0 xbe,0 xbe,0 xbe,0 xc1,0 xff,/00 xff,0 xff,0 xff,0 xff,0 xde,0 x80,0 xfe,0 xff,/10 xff,0 xff,0 xd8,0 xba,0 xba,0 xba,0 xc6,0 xff,/20 xff,0 xff,0 xff,0 xb6,0 xb6,0 xb6,0 xc9,0 xff,/30 xff,0 xff,0 xf3,0 xeb,0 xdb,0 x80,0 xfb,0 xff,/40 xff,0 xff,0
23、 x8d,0 xae,0 xae,0 xae,0 xb1,0 xff,/50 xff,0 xff,0 xc1,0 xb6,0 xb6,0 xb6,0 xd9,0 xff,/60 xff,0 xff,0 xbf,0 xbf,0 xbf,0 xb0,0 x8f,0 xff,/70 xff,0 xff,0 xc9,0 xb6,0 xb6,0 xb6,0 xc9,0 xff,/80 xff,0 xff,0 xcd,0 xb6,0 xb6,0 xb6,0 xc1,0 xff;/9,/字型碼,8個(gè)列數(shù)據(jù)組成一個(gè)數(shù)字,低電平有效unsignedinttimecount;/每個(gè)數(shù)字顯示時(shí)間變量unsignedcharcnta;/行數(shù)據(jù)掃描變量unsignedcharwdn;/更換顯示數(shù)字的字變量單片機(jī)技術(shù)基礎(chǔ)教程與實(shí)踐單片機(jī)的鍵盤與數(shù)碼顯示電路課件voidmain(void)TMOD=0 x01;/定時(shí)器0,模式1TH0=(65536-3000)/256;/設(shè)置初值TL0=(65536-3000)%256;TR0=
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 光伏儲能合同能源管理模式(emc)測算表
- 廣西建設(shè)工程專用合同條款
- 海上貨運(yùn)代理合同 答辯狀
- 合同到期搬離通知書
- 大班數(shù)學(xué)認(rèn)識半點(diǎn)課件
- 專項(xiàng)8 非連續(xù)性文本閱讀- 2022-2023學(xué)年五年級語文下冊期末專項(xiàng)練習(xí)
- 2024普通軟件產(chǎn)品銷售合同
- 2024公司借款保證合同范本
- 深圳大學(xué)《印度文化遺產(chǎn)賞析》2021-2022學(xué)年第一學(xué)期期末試卷
- 菜苗栽種合同(2篇)
- 《臨床決策分析》課件.ppt
- 家風(fēng)家訓(xùn)PPT課件
- 淚道沖洗PPT學(xué)習(xí)教案
- 部編版六年級語文上冊詞語表(帶拼音)-六上冊詞語表連拼音
- 淺談校園影視在學(xué)校教育中的作用
- 無公害農(nóng)產(chǎn)品查詢
- 試劑、試藥、試液的管理規(guī)程
- 研究生課程應(yīng)用電化學(xué)(課堂PPT)
- 通信綜合網(wǎng)管技術(shù)規(guī)格書doc
- 六宮數(shù)獨(dú)可直接打印共192題
- 班會:如何克服浮躁心理PPT優(yōu)秀課件
評論
0/150
提交評論