創作內容

1 GP

LED實驗_MEGAWIN_8051

作者:Ray 先輩│2020-04-02 15:40:56│巴幣:2│人氣:107
作業紀錄一下,可能不是最好的寫法
題目是這樣的
讓板子上的LED燈以1->5->9->13、2->6->10->14、3->7->11->15、4->8->12->16->1....一直LOOP


|
C語言


//其中P0是表示板子上面那排LED,P1是下面的
//P1=255表示下面LED全暗,防止上下都有LED亮的情形
//P0=254也可寫成0xfe
//P0=239也可寫成0xef
|

C的另一種寫法(使用左移右移)

因為題目的要求是第1圈(1、5、9、13),第二圈(2、6、10、14)...
            P07  <----- P01                         P07  <----- P01
假設 P0=0000_0001 亮第一顆         P0=0001_0000 亮第五顆
**要從後面往前看後面才是低位元**

所以使用左移可以達到需求,左移再取補數(~)
P01亮 = 0xfe = ~0000_0001
再加上delay讓他產生延遲,才會看到他亮
亮完之後要在取一次補數,因為之後還會再使用左(右)移,
**左右移完是補一個0進來**

所以在P0這排led使用 左移到P1這排時使用 右移
P1會改成使用右移是因為,題目設計9顆LED是P17,而不是P10,所以方向相反

8051組合語言
1.CALL有分ACALL 、 LCALL ,主要差在跳躍範圍跟吃得容量
(LCALL跳躍範圍跟佔的容量都比較多)

2.CJMP就是compare jmp 比較完後跳躍

3.DJNZ是Dec(減1),等於0的話就跳到指定位址

8051跟x86的寫法有些地方,會有小不同,
可以到網路上8051的語法

大概是這樣,可能不是最好的寫法,僅供參考
如果需要文字檔可以私我





寫完後才發現,字有夠不清楚,都被背景蓋到= =







引用網址:https://home.gamer.com.tw/TrackBack.php?sn=4736610
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 0 篇留言

我要留言提醒:您尚未登入,請先登入再留言

1喜歡★zsp95045 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:蘭華ㄘ肉... 後一篇:格萊普尼爾...

追蹤私訊切換新版閱覽

作品資料夾

xzp83502在線巴哈們
果果日記小屋更新中~ 歡迎進來參觀 謝謝^^看更多我要大聲說昨天22:18


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】