單片機(jī) 第四章_第1頁(yè)
單片機(jī) 第四章_第2頁(yè)
單片機(jī) 第四章_第3頁(yè)
單片機(jī) 第四章_第4頁(yè)
單片機(jī) 第四章_第5頁(yè)
已閱讀5頁(yè),還剩69頁(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)介

單片機(jī)課件第四章第一頁(yè),共七十四頁(yè),2022年,8月28日2023/3/141§4.1概述4.1.1程序設(shè)計(jì)語(yǔ)言1.機(jī)器語(yǔ)言2.匯編語(yǔ)言3.高級(jí)語(yǔ)言第二頁(yè),共七十四頁(yè),2022年,8月28日2023/3/142⑴機(jī)器語(yǔ)言

用二進(jìn)制代碼表示的指令系統(tǒng)稱為機(jī)器語(yǔ)言系統(tǒng),簡(jiǎn)稱為機(jī)器語(yǔ)言。

⑵匯編語(yǔ)言

用助記符表示指令系統(tǒng)的語(yǔ)言稱為匯編語(yǔ)言或符號(hào)語(yǔ)言,用匯編語(yǔ)言編寫(xiě)的程序稱為匯編語(yǔ)言程序。第三頁(yè),共七十四頁(yè),2022年,8月28日2023/3/143但是,計(jì)算機(jī)不能直接識(shí)別在匯編語(yǔ)言中出現(xiàn)的字母、數(shù)字和符號(hào),需要將其轉(zhuǎn)換成用二進(jìn)制代碼表示的機(jī)器語(yǔ)言程序,才能夠識(shí)別和執(zhí)行。通常把這一轉(zhuǎn)換(翻譯)工作稱為匯編。匯編可以由程序員通過(guò)查指令表把匯編指令程序轉(zhuǎn)換為機(jī)器語(yǔ)言程序,這個(gè)過(guò)程稱為人工匯編。目前基本上由專門(mén)的程序來(lái)進(jìn)行匯編,這種程序稱為匯編程序。經(jīng)匯編程序匯編而得到的機(jī)器語(yǔ)言程序,計(jì)算機(jī)能夠識(shí)別和執(zhí)行,因此這一機(jī)機(jī)器語(yǔ)言程序稱為目的程序或目標(biāo)程序,而匯編語(yǔ)言程序稱為源程序。這三者之間的關(guān)系如下圖所示。第四頁(yè),共七十四頁(yè),2022年,8月28日2023/3/144圖匯編過(guò)程示意圖

第五頁(yè),共七十四頁(yè),2022年,8月28日2023/3/145⑶高級(jí)語(yǔ)言

高級(jí)語(yǔ)言,比如BASIC、FORTRAN、COBOL及PASCAL,C語(yǔ)言等,這種語(yǔ)言不僅直觀、易學(xué)、易懂,而且通用性強(qiáng),易于移植到不同類型的機(jī)器中去。計(jì)算機(jī)也不能直接識(shí)別和執(zhí)行高級(jí)語(yǔ)言,需要將其轉(zhuǎn)換為機(jī)器語(yǔ)言才能識(shí)別和執(zhí)行。對(duì)于高級(jí)語(yǔ)言,這一轉(zhuǎn)換工作通常稱為編譯或者解釋。進(jìn)行編譯或者解釋的專用程序稱為編譯程序或者解釋程序。

第六頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1464.1.2編制程序的步驟1.任務(wù)分析(硬件、軟件系統(tǒng)分析)2.確定算法和工作步驟;3.程序總體設(shè)計(jì)和流程圖繪制關(guān)于流程圖符號(hào):開(kāi)始、結(jié)束----圓角矩形工作任務(wù)----矩形判斷分支----菱形程序流向----程序連接----開(kāi)始結(jié)束第七頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1474.分配內(nèi)存,確定程序與數(shù)據(jù)區(qū)存放地址;5.編寫(xiě)源程序;6.調(diào)試、修改,最終確定程序。第八頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1484.1.3方法技巧1.模塊化設(shè)計(jì)(按功能分:顯示、打印、輸入、發(fā)送等)2.盡量采用循環(huán)及子程序結(jié)構(gòu)(節(jié)省內(nèi)存)第九頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1494.1.4匯編語(yǔ)言的規(guī)范匯編語(yǔ)言源程序由以下兩種指令構(gòu)成匯編語(yǔ)句(指令語(yǔ)句)偽指令(指示性語(yǔ)句)匯編語(yǔ)句的格式:

標(biāo)號(hào):

操作碼

操作數(shù) ;注釋數(shù)據(jù)表示形式:

二進(jìn)制(B)、十六進(jìn)制(H)、十進(jìn)制(D或省略)、ASCII碼(以單引號(hào)標(biāo)識(shí))

第十頁(yè),共七十四頁(yè),2022年,8月28日2023/3/14103.偽指令:控制匯編用的特殊指令,這些指令不屬于指令系統(tǒng),不產(chǎn)生機(jī)器代碼。第十一頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1411常用的偽指令ORG

匯編起始地址

格式:ORG表達(dá)式如:ORG0000H注:表達(dá)式必須為16位地址值。程序中可以有多條ORG語(yǔ)句,但定義的起始地址既不要交叉,也不要重疊必須從小地址向大地址分配程序所占空間。第十二頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1412

END程序結(jié)束偽指令

注:一定放在程序末尾!EQU賦值偽指令

格式:

字符名稱

EQU數(shù)值或匯編符號(hào)

例: AA EQU 30H K1 EQU 40H MOVA,AA ;(30H)→A MOVA,K1 ;(40H)→A第十三頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1413DB

從指定單元開(kāi)始定義(存儲(chǔ))若干個(gè)字節(jié)的數(shù)據(jù)或ASCII碼字符,常用于定義數(shù)據(jù)常數(shù)表。數(shù)據(jù)與數(shù)據(jù)之間用“,”分割。 格式:DB

字節(jié)常數(shù)或ASCII字符例: ORG 1000H DB 34H,0DEH,’A’,’B’ DB 0AH,0BH,20第十四頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1414DW

從指定單元開(kāi)始定義(存儲(chǔ))若干個(gè)字的數(shù)據(jù)或ASCII碼字符。格式:DW

字常數(shù)或ASCII字符

例: ORG2000H DW 1234H,’B’ DW 0AH,20第十五頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1415

BIT位地址符號(hào)指令。把位地址賦于規(guī)定的字符名稱。

格式:字符名稱

BIT

位地址例: ABC BIT P1.1 QQ BIT P3.2第十六頁(yè),共七十四頁(yè),2022年,8月28日2023/3/14164.2簡(jiǎn)單程序設(shè)計(jì)

程序結(jié)構(gòu)一般采用以下三種基本控制結(jié)構(gòu),即順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)來(lái)組成,再加上使用廣泛的子程序及查表程序,共有五種基本結(jié)構(gòu)。

第十七頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1417

順序結(jié)構(gòu)是按照邏輯操作順序,從某一條指令開(kāi)始逐條順序執(zhí)行,直至某一條指令為止。也稱為簡(jiǎn)單程序或直線程序。

4.2.1順序結(jié)構(gòu)程序設(shè)計(jì)

?

特點(diǎn):

從第一條指令開(kāi)始依次執(zhí)行每一條指令,直到程序執(zhí)行完畢,中間沒(méi)有轉(zhuǎn)移指令,沒(méi)有分支。

只有一個(gè)入口一個(gè)出口。第十八頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1418例:將20H單元的壓縮BCD碼拆成兩個(gè)ACSII碼存入21H、22H單元。第十九頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1419方法1(20H)A10HBA/B,A中為高4位BCD碼,B中為低4位BCD碼B+30HBB(21H)A+30HAA(22H)開(kāi)始結(jié)束第二十頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1420源程序ORG2000HMOVA,20HMOVB,#10HDIVABORLB,#30HMOV21H,BORLA,#30HMOV22H,AEND;除以10H;高4位BCD碼轉(zhuǎn)換位ASCII碼;低4位BCD碼轉(zhuǎn)換位ASCII碼第二十一頁(yè),共七十四頁(yè),2022年,8月28日2023/3/14210(21H)

(20H)AA與(21H)的低4位交換(21H)+30H(21H)A的高低半字節(jié)交換A+30HAA(22H)開(kāi)始結(jié)束方法2:第二十二頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1422

ORG2000HMOVR0,#21H

MOV@R0,#0MOVA,20HXCHDA,@R0

ORL21H,#30HSWAPAORLA,#30HMOV22H,AEND;清21H單元;低4位BCD碼送21H單元,;低4位BCD碼轉(zhuǎn)換位ASCII碼;高4位BCD碼轉(zhuǎn)換位ASCII碼源程序第二十三頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1423例:設(shè)兩個(gè)16位數(shù)據(jù)分別存在23H、22H和33H、32H單元,求二者之和,并送入43H和42H單元。第二十四頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1424

分支程序分支程序可根據(jù)要求無(wú)條件或條件地改變程序執(zhí)行流向。編寫(xiě)分支程序主要在于正確使用轉(zhuǎn)移指令。分支程序有:?jiǎn)畏种ЫY(jié)構(gòu)、雙分支結(jié)構(gòu)、多分支結(jié)構(gòu)(散轉(zhuǎn))條件成立?下條指令程序段A單分支結(jié)構(gòu)YN條件成立?程序段AYN程序段A雙分支結(jié)構(gòu)第二十五頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1425K=?程序段nn0程序段1多分支結(jié)構(gòu)程序段01第二十六頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1426例、已知X、Y均為8位二進(jìn)制有符號(hào)數(shù),分別存在30H.31H中,試編制能實(shí)現(xiàn)下列符號(hào)函數(shù)的程序:第二十七頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1427第二十八頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1428例1:設(shè)變量x以補(bǔ)碼形式存放在片內(nèi)RAM30H單元中,變量y與x的關(guān)系是:編程根據(jù)x的值求y值并放回原單元。第二十九頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1429A=?y=x+5<0>0y=20Hy=x0取x即(30h)A開(kāi)始存y即y30h結(jié)束第三十頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1430ORG1000HSTART:MOVA,30HJZNEXT;x=0,轉(zhuǎn)移ANLA,#80H;保留符號(hào)位JZED;x>0,轉(zhuǎn)移MOVA,#05H;x<0,不轉(zhuǎn)移ADDA,30HMOV30H,ASJMPEDNEXT:MOV30H,#20HED:SJMP$第三十一頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1431①S0單獨(dú)按下,紅燈亮,其余燈滅;②S1單獨(dú)按下,綠燈亮,其余燈滅;③其余情況,黃燈亮。例已知電路如圖所示,要求實(shí)現(xiàn):第三十二頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1432解:程序如下SGNL:ANLP1,#11100011B;紅綠黃燈滅

ORLP1,#00000011B;置P1.0、P1.1輸入態(tài),

P1.5~P1.7狀態(tài)不變SL0:JNBP1.0,SL1 ;P1.0=0,S0未按下,轉(zhuǎn)判S1JNBP1.1,RED ;P1.0=1,S0按下;且P1.1=0,S1未按下,轉(zhuǎn)紅燈亮YELW:SETBP1.4 ;黃燈亮

CLRP1.2 ;紅燈滅

CLRP1.3 ;綠燈滅

SJMPSL0 ;轉(zhuǎn)循環(huán)SL1:JNBP1.1,YELW ;P1.0=0,S0未按下;P1.1=0,S1未按下,轉(zhuǎn)黃燈亮GREN:SETBP1.3 ;綠燈亮

CLRP1.2 ;紅燈滅

CLRP1.4 ;黃燈滅

SJMPSL0 ;轉(zhuǎn)循環(huán)RED:SETBP1.2 ;紅燈亮

CLRP1.3 ;綠燈滅

CLRP1.4 ;黃燈滅

SJMPSL0 ;轉(zhuǎn)循環(huán)

第三十三頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1433

4.2.3循環(huán)程序循環(huán)程序一般由:初始化部分循環(huán)體部分--處理部分、修改部分、控制部分結(jié)束部分其結(jié)構(gòu)一般有兩種:先進(jìn)入處理部分,再控制循環(huán)至少執(zhí)行一次循環(huán)體先控制循環(huán),再進(jìn)入處理部分循環(huán)體是否執(zhí)行,取決于判斷結(jié)果。第三十四頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1434開(kāi)始設(shè)置循環(huán)初值循環(huán)處理循環(huán)修改結(jié)束處理結(jié)束循環(huán)結(jié)束?開(kāi)始設(shè)置循環(huán)初值循環(huán)處理循環(huán)修改結(jié)束處理結(jié)束循環(huán)結(jié)束?NYYN第三十五頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1435循環(huán)控制的一般方法:循環(huán)次數(shù)已知利用循環(huán)次數(shù)控制循環(huán)次數(shù)未知利用關(guān)鍵字控制第三十六頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1436例:50ms延時(shí)子程序。設(shè)晶振頻率為12MHz,則機(jī)器周期為1us。第三十七頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1437DEL:MOVR7,#200;1MCDEL1:MOVR6,#123;1MCNOP;1MCDJNZR6,$;2MCDJNZR7,DEL1;2MCRET;2MC延時(shí)時(shí)間:t=1+200[(1+1+2*123)+2]+2≈50000us=50ms第三十八頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1438例、設(shè)在片外RAM中的TAB處開(kāi)始有一個(gè)ASCII碼字符串,該字符串以0結(jié)束,編程將它們從P1口輸出.第三十九頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1439例、設(shè)在片外RAM中的2000H單元處開(kāi)始有一個(gè)數(shù)據(jù)塊,數(shù)據(jù)塊長(zhǎng)度100,試統(tǒng)計(jì)正數(shù)、負(fù)數(shù)及零的個(gè)數(shù),分別存在30H、32H和32H單元。第四十頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1440所謂調(diào)用子程序,暫時(shí)中斷主程序的執(zhí)行,而轉(zhuǎn)到子程序的入口地址去執(zhí)行子程序。

4.2.4子程序RETLCALLSUB圖

子程序的調(diào)用與返回第四十一頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1441子程序設(shè)計(jì)優(yōu)點(diǎn):提高編程效率;程序邏輯結(jié)構(gòu)簡(jiǎn)單,便于閱讀;縮短程序長(zhǎng)度,節(jié)省存儲(chǔ)空間使程序模塊化、通用化,便于交流共享資源便于按照某種功能調(diào)試。第四十二頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1442子程序設(shè)計(jì)時(shí)注意事項(xiàng):1.給子程序賦一個(gè)名字。實(shí)際為入口地址代號(hào)。2.要能正確傳遞參數(shù): 入口條件:子程序中要處理的數(shù)據(jù)如何給予。 出口條件:子程序處理結(jié)果如何存放。(寄存器、存儲(chǔ)器、堆棧方式)3.保護(hù)與恢復(fù)現(xiàn)場(chǎng):

保護(hù)現(xiàn)場(chǎng):壓棧指令PUSH

恢復(fù)現(xiàn)場(chǎng):彈出指令POP4.子程序可以嵌套第四十三頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1443LCALLARETRETLCALLB圖

子程序的嵌套調(diào)用與返回第四十四頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1444第四十五頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1445例:將20H單元開(kāi)始存放的10個(gè)數(shù)據(jù)每隔2ms,從P1口輸出。第四十六頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1446例內(nèi)部RAM20H單元開(kāi)始存有8個(gè)數(shù),試找出其中最大的數(shù),送入MAX單元。(利用子程序)第四十七頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1447例在P1.0腳產(chǎn)生20ms的方波信號(hào)。(利用子程序)第四十八頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1448第四十九頁(yè),共七十四頁(yè),2022年,8月28日2023/3/14494.2.5查表程序用于查表的指令有兩條:⑴MOVCA,@A+DPTR⑵MOVCA,@A+PC

當(dāng)用DPTR作基址寄存器時(shí),查表的步驟分三步:①基址值(表格首地址)→DPTR;②變址值(表中要查的項(xiàng)與表格首地址之間的間隔字節(jié)數(shù))→A;③執(zhí)行MOVCA,@A+DPTR。第五十頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1450【例】要求將30H中的顯示數(shù)字轉(zhuǎn)換為顯示字段碼并通過(guò)P1口輸出。已知共陰字段碼表首址為T(mén)ABD。第五十一頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1451解:編程如下:CHAG:MOVDPTR,#TABD;置共陰字段碼表首址

MOVA,30H;讀顯示數(shù)字

MOVCA,@A+DPTR;查表,轉(zhuǎn)換為顯示字段碼

MOVP1,A;輸出顯示字段碼

RET;TABD:DB3FH,06H,5BH,4FH,66H;0~4共陰字段碼表

DB6DH,7DH,07H,7FH,6FH;5~9共陰字段碼表第五十二頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1452【例】將存在HEX單元的一個(gè)十六進(jìn)制數(shù)的低4位,轉(zhuǎn)換成ASCII碼并送回HEX單元(采用查表程序)。第五十三頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1453例

:利用查表法求平方和,設(shè)a、b、c分別存于內(nèi)部RAM的DA、DB、DC三個(gè)單元中。第五十四頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1454MOVA,DA;取aACALLSQR;調(diào)用查表子程序MOVR1,A;a的平方暫存R1中MOVA,DB

;取bACALLSQR;調(diào)用查表子程序ADDA,R1;求出平方和暫存阿A中MOVDC,A;結(jié)果存于DC中SJMP$SQR:MOVDPTR,#TAB;子程序MOVCA,@A+DPTRRETTAB:DB0,1,4,9,16,25,36,49,64,81END利用累加器或寄存器傳遞參數(shù)第五十五頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1455例

:從200人的檔案中,查找一個(gè)叫張三的人,若查到將其地址存入R3R2中,否則將R3R2清零,表格首地址為T(mén)AB.設(shè)張三的個(gè)人信息在30H單元。第五十六頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1456一.按鍵連接方式

⑴獨(dú)立式按鍵

獨(dú)立式按鍵是每個(gè)按鍵占用一根I/O端線。

特點(diǎn):

①各按鍵相互獨(dú)立,電路配置靈活;

②按鍵數(shù)量較多時(shí),I/O端線耗費(fèi)較多,電路結(jié)構(gòu)繁雜;

③軟件結(jié)構(gòu)簡(jiǎn)單。

適用于按鍵數(shù)量較少的場(chǎng)合。

⑵矩陣式鍵盤(pán)

I/O端線分為行線和列線,按鍵跨接在行線和列線上,按鍵按下時(shí),行線與列線發(fā)生短路。

特點(diǎn):

①占用I/O端線較少;

②軟件結(jié)構(gòu)教復(fù)雜。

適用于按鍵較多的場(chǎng)合。4.3簡(jiǎn)單I/O口的并口直接驅(qū)動(dòng)第五十七頁(yè),共七十四頁(yè),2022年,8月28日2023/3/14578031+5VI/OP1R╳8二、獨(dú)立式按鍵工作原理第五十八頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1458原理----當(dāng)任何一個(gè)鍵被按下時(shí),與其相連的輸入線被置成“0”,未按下時(shí)該線為“1”。獨(dú)立式按鍵電路的結(jié)構(gòu)和處理程序簡(jiǎn)單,擴(kuò)展方便,但其占用的I/O口線相對(duì)較多,不適合在按鍵數(shù)量較多的場(chǎng)合下采用。第五十九頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1459鍵處理程序START:MOVA,#0FFH;先置P1口為“1”MOVP1,AMOVA,P1;輸入鍵狀態(tài)JNBACC.0,P0F;查詢0號(hào)鍵JNBACC.1,P1F;查詢1號(hào)鍵JNBACC.2,P2F;查詢2號(hào)鍵JNBACC.3,P3F;查詢3號(hào)鍵JNBACC.4,P4F;查詢4號(hào)鍵JNBACC.5,P5F;查詢5號(hào)鍵JNBACC.6,P6F;查詢6號(hào)鍵JNBACC.7,P7F;查詢7號(hào)鍵LJMPSTART鍵盤(pán)掃描第六十頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1460P0F:LJMPPROM0;入口地址表P1F:LJMPPROM1P6F:LJMPPROM6P7F:LJMPPROM7……PROM0:…..;0號(hào)鍵功能程序PROM7:…..;7號(hào)鍵功能程序…..LJMPSTART;0號(hào)鍵處理完返回鍵盤(pán)掃描LJMPSTART;7號(hào)鍵處理完返回鍵盤(pán)掃描…......第六十一頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1461三.行列式鍵盤(pán)工作原理(P123)特點(diǎn):節(jié)省I/O口線第六十二頁(yè),共七十四頁(yè),2022年,8月28日2023/3/14622.矩陣式鍵盤(pán)按鍵的識(shí)別方法——采用掃描法①使所有列為低電平,檢查各行線電平是否有變化,有變化則有健按下;②使某列為低電平,其余各列為高電平,再依次檢查各行線電平的變化,某行線電平變低,則此行、列交點(diǎn)處按鍵按下。1.矩陣式鍵盤(pán)的工作原理

無(wú)健按下時(shí),行線處于高電平狀態(tài);當(dāng)有健按下時(shí)行線電平由將由與此行線相連的列線的電平確定。第六十三頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1463健掃描程序流程為:第六十四頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1464先判斷有無(wú)鍵按下列線全置0000,然后讀入行線狀態(tài),若沒(méi)有鍵按下,則行線狀態(tài)為全1(1111);若有任一鍵按下,則行線狀態(tài)不為全(1111);再確認(rèn)哪個(gè)鍵被按下列線逐行輸出0(如1110),然后輸入行線狀態(tài),若沒(méi)有鍵按下,則行線狀態(tài)為全1(1111);若有任一鍵按下,則行線狀態(tài)不為全為1(如0111,說(shuō)明右上角那個(gè)鍵被按下)鍵盤(pán)識(shí)別過(guò)程:第六十五頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1465

健號(hào)的確定

通常都以鍵的排列順序安排鍵號(hào)。這樣,各行的首號(hào)依次是00H、04H、08H、0CH,如列號(hào)按0~3順序,則鍵號(hào)的計(jì)算為:鍵碼=行首號(hào)+列號(hào)。

第六十六頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1466動(dòng)態(tài)顯示方式:在某一瞬時(shí)顯示一位,依次循環(huán)掃描,輪流顯示,由于人的視覺(jué)滯留效應(yīng),人們看到的是多位同時(shí)穩(wěn)定顯示。

特點(diǎn):占用I/O端線少,電路較簡(jiǎn)單,編程較復(fù)雜,CPU要定時(shí)掃描刷新顯示。一般適用于顯示位數(shù)較多的場(chǎng)合。四.LED數(shù)碼管顯示方式靜態(tài)顯示方式:每一位字段碼分別從I/O控制口輸出,保持不變直至CPU刷新。

特點(diǎn):編程較簡(jiǎn)單,但占用I/O口線多,一般適用于顯示位數(shù)較少的場(chǎng)合。第六十七頁(yè),共七十四頁(yè),2022年,8月28日2023/3/14671.靜態(tài)LED----亮度大,硬件、軟件相對(duì)簡(jiǎn)單,可以用并行或串行方式。第六十八頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1468連結(jié)形式:①顯示各位的所有相同字段線連在一起,共8段,由一個(gè)8位I/O口控制;②每一位的公共端(共陽(yáng)或共陰COM)由另一個(gè)I/O口控制。2、動(dòng)態(tài)顯示方式---分時(shí)使各數(shù)碼管輪流點(diǎn)亮,硬件簡(jiǎn)單。第六十九頁(yè),共七十四頁(yè),2022年,8月28日2023/3/1469LED數(shù)碼管動(dòng)態(tài)顯示舉例工作原理:從P0口送段代碼,P1口送位選信號(hào)。段碼雖同時(shí)到達(dá)6個(gè)LE

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論