2015-01-02 23:21:47fant
單晶片實習 基本程式及數字顯示器八進制密碼
禮拜三實習課又來上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要另外買一個燒錄器才能燒程式進去,這樣才有用喔!!
下一篇:高三下畢業專題製作8051字幕機