開發過程
這里所說的開發過程并不是一般書中所說的從任務分析開始,我們假設已設計并制作好硬件,下面就是編寫軟件的工作。在編寫軟件之前,首先要確定一些常數、地址,事實上這些常數、地址在設計階段已被直接或間接地確定下來了。如當某器件的連線設計好后,其地址也就被確定了,當器件的功能被確定下來后,其控制字也就被確定了。然后用文本編輯器(如EDIT、CCED等)編寫軟件,編寫好后,用編譯器對源程序文件編譯,查錯,直到沒有語法錯誤,除了極簡單的程序外,一般應用仿真機對軟件進行調試,直到程序運行正確為止。運行正確后,就可以寫片(將程序固化在EPROM中)。在源程序被編譯后,生成了擴展名為HEX的目標文件,一般編程器能夠識別這種格式的文件,只要將此文件調入即可寫片。在此,為使大家對整個過程有個認識,舉一例說明:
單片機試驗板
ORG 0000H
LJMP START
ORG 040H
START:
MOV SP,#5FH ;設堆棧
LOOP:
NOP
LJMP LOOP ;循環
END ;結束
單片指令
傳送操作
助記符代碼 說明
MOV A,Rn E8~EF寄存器A
MOV A,direct E5 direct 直接字節送A
MOV A,@Ri ER~E7 間接RAM送A
MOV A,#data 74 data立即數送A
MOV Rn,A F8~FF A送寄存器
MOV Rn,direct A8~AF direct 直接字節送寄存器
MOV Rn,#data 78~7F data立即數送寄存器
MOV direct,A F5 direct A送直接字節
MOV direct,Rn 88~8F direct 寄存器送直接字節
MOV direct1,direct2 85 direct1 direct2 直接字節送直接字節
MOV direct,@Ro 86~87 間接RAM送直接字節
MOV direct,#data 75 direct data立即數送直接字節
MOV @Ri,A F6~F7 A送間接RAM
MOV @Ri,direct 76~77 direct 直接字節送間接RAM
MOV @Ri,#data 76~77 data 立即數送間接RAM
MOV DPTR,#data16 90 data 15~8 16位常數送數據指針
data7~0
MOVC A,@A+DPTR 93 由((A)+(DPTR))尋址的程序存貯
器字節選A
MOVC A,@A+PC 83 由((A)+(PC));尋址的程序存貯器字節送A
MOVX A,@Ri E2~E3 送外部數據(8位地址)送A
MOVX A,@DPTR E0 送外部數據(16位地址)送A
MOVX @Ri,A F2~F3 A送外部數據(8位地址)
MOVX @DPTR,A F0 A送外部數據(16位地址)
PUSH direct C0 direct 直接字節進棧,SP加1
POP direct D0 direct 直接字節退棧,SP減1
XCH A,Rn C8~CF 交換A和寄存器
XCH A,direct C5 direct 交換A和直接字節
XCH A,@Ri C6~C7 交換A和間接RAM
XCH A,@Ri D6~D7 交換A和間接RAM的低位
SWAP A C4
算術操作
(A的二個半字節交換)
ADD A,Rn 28~2F 寄存器加到A
ADD A,direct 25 direct 直接字節加到A
ADD A,@Ri 26~27 間接RAM加到A
ADD A,#data 24data立即數加到A
ADD A,Rn 38~3F 寄存器和進位位加到A
ADD A,direct 35direct 直接字節和進位位加到A
ADD A,@Ri 36~37 間接字節和進位位加到A
ADD A,data 34 data立即數和進位位加到A
ADD A,Rn 98~9F A減去寄存器和進位位
ADD A,direct 95 direct A減去直接字節和進位位
ADD A,@Ri 36~37 間接RAM和進位位加到A
ADD A,data 34 data 立即數和進位位加到A
SUBB A,Rn 98~9F A減去寄存器和進位位
SUBB A,direct 95 direct A減去直接字節和進位位
SUBB A,@Ri 96~97 A減去間接RAM和進位位
SUBB A,#data 94 data A減去立即數和進位位
INC A 04 A加1
INC Rn 08~0F 寄存器加1
INC direct 05 direct 直接字節加1
INC @Ri 06~07 間接RAM加1
DEC A 14 A減1
DEC Rn 18~1F 寄存器減1
DEC direct 15 direct 直接字節減1
DEC @Ri 16~17 間接RAM減1
INC DPTR A3 數據指針加1
MUL AB A4 A乘以B
DIV AB 84 A除以B
DA A D4 A的十進制加法調整
邏輯操作
ANL A,Rn 58~5F 寄存器“與”到A
ANL A,direct 55 direct 直接字節“與”到A
ANL A,@Ri 56~57 間接RAm“與”到A
ANL A,#data 54 data立即數“與”到A
ANL direct A 52 direct A“與”到直接字節
ANL direct,#data 53 direct data立即數“與”到直接字節
ORL A,Rn 48~4F 寄存器“或”到A
ORL A,direct 45 direct 直接字節“或”到A
ORL A,@Ri 46~47 間接RAM“或”到A
ORL A,#data 44 data立即數“或”到A
ORL direct,A 42 direct A“或”到直接字節
ORL direct,#data 43 direct data立即數“或”到直接字節
XRL A,Rn 68~6F 寄存器“異或”到A
XRL A,direct 65 direct 直接字節“異或”到A
XRL A,@Ri 66~67 間接RAM“異或”到A
XRL A,#data 64 data立即數“異或”到A
XRL direct A 62 direct A“異或”到直接字節
XRL direct,#data 63 direct data立即數“異或”到直接字節
CLR A E4 清零
CPL A F4 A取反
RL A 23 A左環移
RLC A 33 A通過進位左環移
RR A 03 A右環移
RRC A 13 A通過進位右環移
程序轉移