24h購物| | PChome| 登入
2015-01-02 23:21:47| 人氣752| 回應0 | 上一篇 | 下一篇

單晶片實習 基本程式及數字顯示器八進制密碼

推薦 0 收藏 0 轉貼0 訂閱站台



禮拜三實習課又來上8051,一開始先搞兩組八個LED燈依序閃爍,
而且不能延遲,程式如下:
            ORG    0                           (註解一)
START   MOV    A,#11111111B         (註解二)
            CPL     A                           (註解三)
            MOV    P0,A                      (註解四)
            CALL    DELAY                    (註解五)
            
            MOV    A,#00000000B
            CPL     A
            MOV    P0,A
            CALL   DELAY

            JMP     START                   (註解六)
;=============================================
DELAY:   MOV    R5,#100                 (註解七)
D1:        MOV    R6,#255                 
             MOV    R7,#255
             DJNZ   R6,$
             DJNZ   R7,$
             DJNZ   R5,D1
             RET
             END                               (註解八)

(註解一)ORG為程式開頭。
(註解二)A指的是記憶占存區A區,要打數字要加#號,打八位數後面要加B(八進制),1為亮(有輸出),0為滅(無輸出)。
(註解三)指定程式的A區。
(註解四)P0是輸出組別,每一組八個腳位,8051總共四組,P0到P3。
(註解五)CALL DELAY是延遲指令,如果輸出不希望延遲則刪除即可。
(註解六)執行程式到最後時跳回到開始處繼續執行。
(註解七)附屬程式為程式執行速度,最高255,數字愈低則速度越快。
(註解八)全部程式編寫完畢。

數字顯示器是上圖的左邊數來第二個零件,有一個八的那個~
想要讓它變成像數字燈一樣跑?依序1234567890這樣跑,程式如下:
1、#00000110B
2、#01011011B
3、#01001111B
4、#01100110B
5、#01101101B
6、#01111101B
7、#00100111B
8、#01111111B
9、#01101111B
0、#00111111B
小數點、#10000000B

(每個人麵包板接線不同,僅供參考,請依實際狀況作調整)

簡易程式如下:
            ORG    0                           
START   MOV    A,#00000110B        
            CPL     A                           
            MOV    P2,A                      
            CALL    DELAY      
            MOV    A,#00000000B        
            CPL     A                           
            MOV    P2,A  

            MOV    A,#01011011B
            CPL     A                           
            MOV    P2,A                      
            CALL    DELAY      
            MOV    A,#00000000B        
            CPL     A                           
            MOV    P2,A  

            JMP     START

以此類推!!!
(程式僅供參考用,不代表一定對,輸出有誤請自行修正)

老師說電腦和單晶片很笨,人的邏輯和語言他不懂,
但轉換成程式才會有正確輸出!!打錯就跟著錯~
假如說數字顯示只有1和2,因為只有兩個數字所以JMP,START之後就會變交替,
但是三位數之後就會變成從頭開始而不是倒著回去,比如說12345678901234567890,
如果要12345678909876543210,程式就要顛倒打回去,
但是不能重複XDD重複就會延遲!!
在這邊程式就不打了給各位大大一個思考的空間!!
自己想程式才會進步!!不然抄答案我阿公也會XDDD(遭毆)


以上都是我個人上課有認真上所學到的,不是抄網路的唷!!
然後8051要另外買一個燒錄器才能燒程式進去,這樣才有用喔!!





台長: fant
人氣(752) | 回應(0)| 推薦 (0)| 收藏 (0)
全站分類: 心情日記(隨筆、日記、心情手札) | 個人分類: 8051實習 |
此分類下一篇:高三下畢業專題製作8051字幕機
此分類上一篇:20141119單晶片實習 麵包板成品

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文