用單片機89S51,4×4矩陣鍵盤,控制16個發光二極管,程序有點錯誤哪位高手給指點一下。
我所做的矩陣鍵盤控制的發光二極管只有8個亮8個不亮,和P2口連接的亮和P0口連接的不亮,高手給點意見。
回答:
下列程序已經經過了 PROTEUS 驗證,可以滿足題目要求。
;----------------------------------------------------------
ORG 0000H
START:
MOV P0, #0 ;顯示初始化
MOV P2, #0 ;全亮
;----------------------------------------------------------
M_LOOP:
CALL KEY_SCAN
JB ACC.4, M_LOOP ;A=16, 就是沒有按下鍵
CALL DISPLAY
SJMP M_LOOP
;----------------------------------------------------------
KEY_SCAN: ;用反轉法掃描鍵盤
PUSH B
CLR A ;將用A保存按鍵信息
MOV P3, #0FH ;列線置低電平,行線置高電平
MOV B, P3
JNB B.0, L_J0 ;逐行掃描
JNB B.1, L_J1
JNB B.2, L_J2
JNB B.3, L_J3
MOV A, #16 ;沒有按鍵,A=16
SJMP KEY_END
;------------------------------
L_J3: INC ACC ;加行值
L_J2: INC ACC
L_J1: INC ACC
L_J0: RL A ;行號×4
RL A
;------------------------------
MOV P3, #0F0H ;行線列線電平互換
MOV B, P3
JNB B.4, R_J0 ;逐列掃描
JNB B.5, R_J1
JNB B.6, R_J2
JNB B.7, R_J3
MOV A, #16
SJMP KEY_END
;------------------------------
R_J3: INC ACC ;加列值
R_J2: INC ACC
R_J1: INC ACC
R_J0: ;A=0~F
KEY_END:
POP B
RET
;----------------------------------------------------------
DISPLAY:
MOV P1, A ;輸出到數碼顯示器
RL A ;乘以2,因為每個鍵值要顯示兩個字節
MOV B, A ;保存
MOV DPTR, #TABLE1 ;顯示碼表首地址
MOVC A, @A+DPTR ;根據鍵值查顯示碼
MOV P2, A ;輸出顯示
MOV A, B
INC A ;準備查第二字節
MOVC A, @A+DPTR ;根據鍵值查顯示碼
MOV P0, A
RET
;----------------------------------------------------------
TABLE1:
DB 00H, 01H, 00H, 02H, 00H, 04H, 00H, 08H
DB 00H, 10H, 00H, 20H, 00H, 40H, 00H, 80H
DB 01H, 00H, 02H, 00H, 04H, 00H, 08H, 00H
DB 10H, 00H, 20H, 00H, 40H, 00H, 80H, 00H
END
;----------------------------------------------------------
用PROTEUS仿真圖像如下:
上一篇:利用定時方式0,測量外部脈沖寬度(5到250ms),74HC595輸出顯示
下一篇:如何正確計算多重循環延時程序的延時時間
推薦閱讀
史海拾趣
作為汽車電子領域的佼佼者,Hosiden在汽車市場的深耕與布局尤為引人注目。公司針對汽車行業的特殊需求,開發了一系列高性能、高可靠性的電子連接器和電纜產品。這些產品不僅滿足了汽車制造商對產品質量和性能的高標準要求,還通過提升數據傳輸速度和降低電磁干擾等方式,為汽車行業的發展提供了有力支持。同時,Hosiden還積極參與汽車行業的標準制定和技術交流活動,為行業的發展貢獻了自己的智慧和力量。
APT公司的成功引起了業界的廣泛關注。2007年5月,日本上市公司SMC對APT公司進行了戰略收購。這一收購不僅為APT公司提供了更強大的資金和技術支持,也為其未來的發展注入了新的活力。雖然被收購,但APT公司仍然保持其獨立運作的特色,繼續專注于氣體輸送技術的研發和生產。在SMC的支持下,APT公司得以進一步擴大生產規模、提升技術水平,并持續推出更多創新產品。
APT公司成立于1987年,創始人憑借對氣體輸送技術的深刻理解和前瞻眼光,在加利福尼亞州圣拉斐爾創立了這家公司。初始階段,公司專注于制造堅固、可靠的氣體輸送產品,尤其是壓力調節器和閥門。盡管市場充滿競爭,但APT公司憑借出色的產品性能和可靠的品質,在1988年成功推出了一小部分產品,并迅速獲得了市場的認可。銷售額的迅速增長和產品供應的緊張,都預示著APT公司正步入快速發展的軌道。
隨著公司規模的擴大和技術的不斷積累,AVAGO公司開始尋求多元化的發展道路。除了繼續深耕半導體領域外,公司還積極拓展其他相關領域,如傳感器、無線通信等。同時,公司還與其他行業的領軍企業建立了緊密的戰略合作關系,共同推動技術創新和市場拓展。
盡管AVAGO公司在發展過程中取得了顯著成就,但也面臨著諸多挑戰。隨著全球半導體市場的競爭日益激烈,公司需要不斷投入研發資金、加強人才培養、優化生產流程等方面來保持競爭優勢。同時,公司還需要密切關注行業動態和市場需求變化,以便及時調整戰略和產品線。在未來,AVAGO公司將繼續致力于技術創新和市場拓展,為全球客戶提供更優質的產品和服務。
以上五個故事僅是對AVAGO公司發展歷程的簡要描述,實際上公司在發展過程中還經歷了許多其他重要事件和階段。這些故事展示了AVAGO公司如何憑借技術實力、市場洞察力和戰略眼光在電子行業中脫穎而出,并成為全球領先的半導體企業之一。
宜源科技公司非常重視人才培養和團隊建設。公司建立了一套完善的人才培養體系,為員工提供豐富的培訓和發展機會。同時,宜源科技還積極引進優秀人才,打造高素質、專業化的技術和管理團隊。這些團隊在公司的各個領域中發揮著重要作用,為公司的長遠發展提供了有力的人才保障。
隨著時代的發展,獲取信息的速度已經成為制約互聯網發展的重要因素。 但一直以來,由于電信企業的競爭和限制,國內南北兩地網民一直飽受 “網絡瓶頸”問題的困擾。對此,許多企業機構只能采取大量增設基礎 設施,購買帶寬或某些技術措施來進行解 ...… 查看全部問答∨ |
|
誰有Protel 99 SE的視頻教程或課件?視頻麻煩你發到我QQ郵箱里或者在線發給我也可以!本人是個菜鳥,初學硬件,需要各位幫助!謝謝!… 查看全部問答∨ |
如題,三星6410默認的顯示驅動打開了2D加速,使用它的ALPHABLEND加速時,顯示一小幅圖片,要34到35MS 的樣子,將2D加速全部關掉,顯示一小幅圖片,反而降到了27到28MS的樣子,但是用同樣的程序在魅族的M8機器 上試,顯示該幅圖片只 ...… 查看全部問答∨ |
我對GPL的理解有一點疑惑,如果按照GPL公約,是不是如果該款設備使用的嵌入式系統是LINUX,那么它就必須開源? 那么是不是說,現在像LINKSYS,NETGEAR等公司沒有開源的路由器,使用的都不是linux?… 查看全部問答∨ |
|
懂得西門子SAB-C165-LM芯片的編程環境及編程器的高手快進來看看!~~~ 小弟公司的一臺設備的一塊電路板壞了,檢修人員說是主芯片程序丟了,主芯片為西門子公司的SAB-C165-LM,我們也不知道到底是不是程序丟了,所以想自己測試一下,原程序都有(c的),但是因為以前沒用過這種芯片,不知道它的編譯環境和程序是怎么下載 ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 看專題答題贏好禮!PI 穩定可靠的TOPSwitch-JX開關電源IC
- 閱讀Microchip多種連接接口SAM單片機精彩專題,參與活動贏好禮
- 有獎直播|TI Sitara™ 產品在智能電網中的應用
- 預約有禮:以光代電,硅光芯片了解一下~ 走進工程師網絡學堂直播,贏好禮
- 直播報名:TI 用于感測應用、帶可配置信號鏈元素的新型MSP430™ MCU,報名直播贏雙重好禮!
- 有獎直播:DIY 家用監控邊緣 AI Box——基于 8TOPS 算力,售價 199 美元的開發套件搭建深度學習案例
- 【DIY數控電源】入圍方案及后續活動安排!
- EEWorld加磅雙重禮 ELEXCON深圳國際電子展誠邀您參加
- DEYISUPPORT:【全新FAQ來襲】今夏且聽風吟,你不能錯過的精華!