更新时间:2022-04-19 02:30:13
本节书摘来自异步社区《例说8051:单片机程序设计案例教程》一书中的第1章,第1-4节,作者 张义和,陈敌北,更多章节内容可以访问云栖社区“异步社区”公众号查看。
单片机系统的设计中,软件与硬件息息相关,采用不同的电路设计,程序可能就不太一样。因此,在编写程序之前,必须确定电路的连接状态,例如要利用8051的Port 2来控制8个LED,让这8个LED分成两组(高四位与低四位),交互闪烁,其设计步骤如下:
ORG 0 ;程序从0地址开始
START: MOV A, #0FH ;让ACC的内容为00001111
LOOP: MOV P2, A ;从Port 2输出ACC的内容
CPL A ;对ACC的内容取补码(即反相)
CALL DELAY ;调用延迟子程序
JMP LOOP ;跳到LOOP处执行
;=======================================================
DELAY: ;延迟子程序
MOV R7, #20 ;R7寄存器加载次数20
D1: MOV R6, #25 ;R6寄存器加载次数25
DJNZ R6, $ ;本行执行R6次
DJNZ R7, D1 ;D1循环执行R7次
RET ;返回主程序
END ;结束程序
ch1.asm
屏幕将出现一连串操作,最后停止,如图1-21所示。
屏幕出现如图1-22所示画面。