8位工業(yè)級(jí)通用單片機(jī)應(yīng)用筆記綜合_第1頁(yè)
8位工業(yè)級(jí)通用單片機(jī)應(yīng)用筆記綜合_第2頁(yè)
8位工業(yè)級(jí)通用單片機(jī)應(yīng)用筆記綜合_第3頁(yè)
8位工業(yè)級(jí)通用單片機(jī)應(yīng)用筆記綜合_第4頁(yè)
8位工業(yè)級(jí)通用單片機(jī)應(yīng)用筆記綜合_第5頁(yè)
已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、7 segment LED (X4) + Switch key (X4) + Momentary key(4X4) ScanV1.0.02005-1-19單片機(jī)技術(shù)資料 HYPERLINK http:/w/ http:/w7 segmt LED (X4) + Switch key (X4) + Momentary key(4X4) Scan技保留對(duì)此文件修改之權(quán)利且不另行通知。技所提供提之信息相信為正確且可靠之信息,但并不保證本文件中絕無(wú)錯(cuò)誤。請(qǐng)于向技出訂單前,自行確定所使用之相關(guān)技術(shù)文件及規(guī)格為之版本。若因貴公司使用本公司之文件或產(chǎn)品,而涉及第三人之專利或著作權(quán)等智能,本公司僅單純販?zhǔn)郛a(chǎn)品,

2、上述關(guān)于同意及權(quán)之應(yīng)用及配合時(shí),則應(yīng)由貴公司負(fù)責(zé)取得同意及,非屬本公之責(zé)任。又技相關(guān)設(shè)備。之正式,本公司之所有產(chǎn)品不得使用于醫(yī)療器材,維持生命系統(tǒng)及飛航等17 s gm nt L D (X4) + Switch key (X4) + Momentary key(4X4) Scan0目錄頁(yè)碼0目錄11修訂. . . 22系統(tǒng)概要系統(tǒng)說(shuō)明3系統(tǒng)框圖3MCU 使用資源43硬件設(shè)計(jì)53.13.2功能描述5設(shè)計(jì)原理54說(shuō)明. . . 9子程序說(shuō)明9變量說(shuō)明105流程圖5.4主流程15鍵盤掃描子流程16按鍵處理子流程17時(shí)鐘顯示子流程1817

3、s gmen LE( 4) + Sw tch key ( 4) +omen ry key(4X4) Scan1修訂2日期版本編寫及修訂說(shuō)明2005-1-191.0.0初始版本7 s gmen LE(X4 + Switch key (X4) +omentary key(4X4) Scan2 系統(tǒng)概要2.1系統(tǒng)說(shuō)明本系統(tǒng)應(yīng)用于 SUNPLUS SPMC65 se ies 上掃描 5X4 按鍵的動(dòng)作與范例程序的硬件部是以 SPMC5P2404A*2p 為開發(fā)對(duì)象。2.2系統(tǒng)框圖 2-1系統(tǒng)框圖3Four Digits 7segment LEDs5X4 Keys8SPMC 5P24A*28P4216M

4、Hz7 segent LED+ Sw tc k y (X )Momary e4X4) can2.3M使用資源4CU源內(nèi)容AM鍵盤掃描e按鍵處by eL示5bytR主程44 yte初始理56 byte鍵盤掃3 byt按處理281 byteLED 顯示63te盤掃描和 LED 顯示相關(guān)硬件Timer bas1.024 s 時(shí)用于主環(huán)I/O PORTORTA使用PORTBLED 數(shù)據(jù)線和鍵盤掃描線復(fù)用PORTCLED strobe 信號(hào)PORTD未使用7 e ment LED (X4) + Switch key (X4) + Momentary key(4X4) Scan3件設(shè)計(jì)3.1功能描述本例采

5、用SPMC65P2404A*28p,外接鍵盤和顯示,可以做為一個(gè)鐘表使用,24 小時(shí)顯示。按鍵 s0 功能: 時(shí)間的“顯示狀態(tài)”和“調(diào)整狀態(tài)”互相 換。s0 第一次 下,進(jìn)入“分鐘調(diào)整狀態(tài)”,s0 第二次按 ,進(jìn)入“小時(shí)調(diào) 狀態(tài)”,s0 第三次按下,返回“顯示狀態(tài) 。循環(huán)進(jìn)行。按鍵 s1 功能: 在時(shí)鐘處于“調(diào)整狀態(tài)”時(shí),顯示值加一。鍵 s2能: 在鐘處于“調(diào)狀態(tài)”時(shí),顯示值減一。其它按鍵功能:關(guān)閉或打開時(shí)鐘。時(shí)鐘初始狀態(tài)顯示“0:00”并開始計(jì)時(shí)。3.2設(shè)計(jì)原理原理圖如圖 3-1所示,PB接 4 行 5 列的鍵盤,并與 4 個(gè)共陰極數(shù)碼管的 seg 端復(fù)用 IO 口。PC3PC0 控制這 4

6、 個(gè)數(shù)碼管的 com 端。圖中電阻均為 510 歐。當(dāng)B 口作為鍵盤掃描時(shí):PB3PB0 被設(shè)置為帶下拉電阻的輸,各行線的狀態(tài);PB PB4 被設(shè)置輸出口,用于列線掃描。當(dāng) PB 口作為 LED 的 seg 端時(shí):PB7PB0 均被設(shè)置為輸出口,輸出顯示數(shù)據(jù)的段碼。程序設(shè)計(jì)原理:程序每隔 4ms 對(duì)鍵盤和數(shù)碼管行一次掃描,首掃描鍵盤,根據(jù)鍵值進(jìn)行相應(yīng)的操作,比如時(shí)鐘的“打開”、“關(guān)閉”和“調(diào)整”。鍵盤處理結(jié)束,接著刷新數(shù)碼管顯示。鍵盤掃描方法:按鍵 S4、S9、S14 和 S19 的優(yōu)先級(jí)最高,應(yīng)該最先掃描。首先將 PB3PB0 設(shè)置為帶下拉電阻的輸,PB7PB4 設(shè)置為懸浮狀態(tài),然后各行線

7、PB3PB0 的狀態(tài), 若行線狀態(tài)全為低電平則表明按鍵 S4、S9、S14 和 S19 均沒有被按下, 若行線狀態(tài)中有根據(jù)行線狀態(tài)便可以確定鍵值。,則表明有鍵按下。消抖之后當(dāng)按鍵 S4、S9、S14 和S19 均沒有被按下時(shí),接著掃描余下的 16 個(gè)按鍵。首先將列線 PB7PB4設(shè)置為輸出口,然后這 4 條列線輸出則表明無(wú)鍵按下, 若行線狀態(tài)中有,各行線 PB3PB0 的狀態(tài), 若行線狀態(tài)全為低電平,則表明有鍵按下。若有鍵按下,先進(jìn)行消抖,消抖結(jié)束,再對(duì)每一列進(jìn)行掃描,鍵值。即:PB7PB4 四條列掃描線分別輸出,在每次輸出期間,各行線 PB3PB0 的狀態(tài),若行線狀態(tài)不全為 ,便可以確定鍵值

8、例如:PB7 PB4 輸出“0100”,此時(shí)若PB3PB0 的狀態(tài)為“0001”,則表明按鍵 S2鍵盤掃描時(shí)序如圖 3-2所示,按下。K0 表示列線列線全部為低時(shí)行線狀態(tài),用于判斷按鍵 S4、S9、S14、S19 的狀態(tài);K1 表示列線全部為時(shí)行線的狀態(tài),用于判斷余下的 16 個(gè)按鍵的狀態(tài);57 segment LED (X4) + Switch key (X4) + Moment ry key(4X4) ScanK2 表示列線 PB4 為 K3 表示列線 PB5 為 K4 表示列線 PB6 為K5 表示列線 PB7 為時(shí)行線的狀態(tài),用于判斷時(shí)行線的狀態(tài),用于判斷時(shí)行線的狀態(tài),用于判斷鍵 S0

9、、S5、S10、S15 的狀態(tài);鍵 S1、S6、S11、S16 的狀態(tài);鍵 S2、S7、S12、S17 的狀態(tài);時(shí)行線的狀態(tài)。用于判斷按鍵 S3、S8、S13、S18 的狀態(tài)。消抖方法:在按鍵閉合和打開的瞬間會(huì)產(chǎn)生許多尖脈沖,持續(xù)時(shí)間約幾毫秒到幾十毫秒。因而在程序中,當(dāng)檢測(cè)按被按下后,便開取鍵值,每隔 4m 讀一次鍵值,直到連續(xù) 7 次的鍵值完全相同,則認(rèn)為抖動(dòng)已經(jīng)消除。消抖時(shí)間至少為 4ms X 728ms。數(shù)碼管掃描方法:每隔 4ms 顯示一個(gè)數(shù)碼管,四個(gè)數(shù)碼管全部被刷新一遍需要 16ms,一直不斷循環(huán)掃。顯示時(shí),PB 口和 C3PC0顯示數(shù)的段碼到 PB 口。輸出口,先送位碼到 PC3P

10、C0,選通要點(diǎn)亮的數(shù)碼管,然后再送LED 掃描時(shí)序如圖 3-3所示。67 segment LED (X4) + Switch key (X4) + Momentary key(4X4) Scan圖 3-1 鍵盤顯示原理圖7comcomcomcomLED1LED2LED3LED4aa aa aa abbbf g bc f g bc f g bc f g bddde e d .ce e d .ce e d .ce e d .cfffgggdpdpdpdpQ18050Q2Q3Q4PC0805080508050PC1 PC2 PC3+5VS0S1S2S3S4SS6S7S8S9PB0S10S11S12S

11、 3S14PB1PB215S16S17S 8S19 PB3PB4 PB5 PB6 PB7SPMC65P2404A*28P+5VVDD VSS XIXO XIXORESET4.7K20p16MHz20pRESETPB7PC0PB6 1PC1+5VVDD104PB5PC2PB4PC3PB3PB4PC3 16 PB0VSS PB2PB3 PB0 15 PB1PB2PB17 segment LED (X4) + Switch key (X4) + Momenta y ey( X4) ScanmsmsMa nl opPB 3:0K0K123K45K0K1K2K3K4K5B4P 5PB6PB7LED顯LE

12、D顯示鍵盤掃描鍵盤掃描K2:按鍵 S S5 10 S15 狀態(tài)K0:鍵S S S 4 S 9的狀態(tài)K :16個(gè)按鍵(S4 S9 S1S 除外)狀態(tài)K3: 按鍵S1 S6 S11 S16的狀態(tài)K4: 按鍵 S2 S7 S12 S17的狀態(tài)K5: 按鍵 S3 S8 S13 S 8的狀態(tài)圖 3-2 鍵盤掃描時(shí)序圖4ms4ms4ms4msMainloopPB7PB0LEDLEDLED3LED40PC1PC2PC3鍵盤掃描 LED顯示鍵盤掃描 LED顯示 鍵盤掃描LED顯示鍵盤掃描LED顯示圖 3-3 LED 掃描時(shí)序圖87 e ment LED (X4)Sw tch k y (X4)Moen ary

13、k y(4XScan4軟4 1檔4 2程序說(shuō)明V_ResetF_MainF_Moment5x4F_KeyCope9No eOutueGB_KeyDownFlag明掃描鍵盤,獲得值并置鍵動(dòng)標(biāo)志屬Key5x4 4LED.a m內(nèi)容備注InputGB_KeyDownFlagOutpute說(shuō)明等待 4m, 行鍵盤掃描(F_ent5x4)、按鍵處時(shí)鐘 時(shí)( _KeyC pe)、isp)屬于Main.asm備注InputNoOutpN ne說(shuō)明CUer on re后所指到的向地址m in.asm文件名功類型main asmMain prosource f e (Sam le)ey5x4_ LED.asm5

14、x4keysand4- ED scan ing prosS urce file (User)SPMC65P2404A.incSPMC65X symbol definitionHead file7egenLEDX4) + Switch key (X4) + Mo4) ScaF_F IO_InitF_Variable_In4.3變量說(shuō)明GB_KealueGB_KeyDownFlag1內(nèi)容備注容說(shuō)明示鍵值。高,低 4的合000001 011,鍵 K0 K19Bbit0有效Size1 yte初始值0Symbol 定義e內(nèi)容值$0$13內(nèi)備注nputetp tone說(shuō)明變量初始化屬于Key5x4_4LE

15、D.asm內(nèi)容備注InputO tpute說(shuō)明初B3PB0 為帶下拉電阻輸入,始化 B7 PB4 和 P 3PC輸出低電平屬于K5x _4LED sm內(nèi)容備注InputGB_ShowBufOutput說(shuō)明顯示以 GB_Show中的數(shù)值,每 4ms一個(gè)循環(huán)示屬于K y5x4LE .asm內(nèi)容備注al e,GB_KeyDOutputGB_說(shuō)明時(shí)鐘屬于Key5x4_7 egen LED4) + Switch key (X4) + MomentGB_BufIBexC mIByupFlagIB_CmpTimers內(nèi)容備注內(nèi)容說(shuō)明行線狀態(tài)連 的次數(shù), 于消抖處理 掃描時(shí) 連 線狀態(tài),每讀一次,比較一次,直

16、到連續(xù) 7 次全部相等,則認(rèn)為按鍵的抖動(dòng)已經(jīng)消除Size1byte初始值0內(nèi)容備注內(nèi)容說(shuō)明按下后是否 )放開標(biāo)志:0 -按鍵已經(jīng)放開- -下后仍沒有被放開S eby e初始值0Symbol 定義e內(nèi)容值01容備注內(nèi)容說(shuō)當(dāng)每次D 即遞一,作為制 colin 的索引e1byte初0Symb義e內(nèi)容值03: om line 03內(nèi)容備注內(nèi)顯示緩區(qū),存放所據(jù)Size4es初始值示數(shù)據(jù)Symbol 定義e內(nèi)容值$A注內(nèi)容說(shuō)明按鍵動(dòng)作標(biāo)志,:0- -沒有被下1按鍵被按下ze1b te初始值0Symboe內(nèi)容值7 segmentED (X4) + Switch keX4) + Mary key(4X4)ca

17、B_LasteB_LineScnIB_yIB_4msCouIB_1sCount1內(nèi)容備注容備注內(nèi)容說(shuō)明計(jì)時(shí)寄 器s 加 1,每計(jì) 1s變量IBoun 進(jìn)位一次,并重新從 0 開始Size1byt初始0Symbol 定義e內(nèi)容值0250(十進(jìn)制計(jì)數(shù))容備注內(nèi)容延時(shí)Siz1b te初0Symbol 定義e內(nèi)容值$00$FF內(nèi)內(nèi)容明列掃描線控制字S1byte始值ra domSymb義No e$80$20、$10內(nèi)容備注內(nèi)容說(shuō)明期間讀的鍵值,用Size1b e始值romSol 定義e容值0$FSymb l 定義CB_CmpTimers(6)內(nèi)容值07 segmLED (X4) + Switch key

18、 (X4) + Momentary key(4XScanIB_1mCount_1hC untIB AdjustIB_Open13內(nèi)容備注內(nèi)容備注內(nèi)容說(shuō)明鐘表處于狀態(tài)”或“計(jì)時(shí)狀態(tài)”的標(biāo)志,其值為:0表正常計(jì)時(shí)- -表處于“分鐘調(diào)整狀態(tài)- -鐘表處于”狀態(tài)S eby e初始值0Symbol 定義e內(nèi)容值$0、$1、$2注內(nèi)說(shuō)鐘表計(jì)時(shí)寄存器,1 ho,每計(jì) 4 hours后重新從時(shí)Sizeyt初始值0Symbol 定義e內(nèi)容值024(十進(jìn)制計(jì)數(shù))內(nèi)容備注內(nèi)容說(shuō)明表計(jì)時(shí)寄器,每1ute10miniute后向變量hCo nt 進(jìn)位一次,并重新從時(shí)Size1te初始值Symbol 定義e內(nèi)容值060(十

19、進(jìn)制計(jì)數(shù))內(nèi)容說(shuō)鐘表計(jì) 寄1s 加 1,每計(jì) 6 s 向變量mCo nt 進(jìn)位一次,并重新從時(shí)Size1te初始值Symbol 定義e內(nèi)容值060(十進(jìn)制計(jì)數(shù))7 segm nt LED (X4) + Switch key (X4Moentary key4) S an14鐘表開值為:0- -被關(guān)閉$FF鐘表被打開Size1byte初始值0Symbol 定義e內(nèi)容值$0、$FF7 sgmet LD ( 4) + Switch key (Momentary key(4Xn5流程圖5.1主流程開始(V_Reset)圖 5-1 鍵盤顯示主流程圖15N4ms?Y數(shù)碼管顯示(F_LED_4Disp)按鍵處理程序(F_KeyCope)鍵盤掃描(F_ oment5x4)初始化IO口(F_IO_Init)初始化變量(F_Variable_Init)設(shè)置1.024m 時(shí)7 segent LED (

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論