微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机入门程序二

单片机入门程序二

时间:11-24 来源:互联网 点击:
;*****************************************;

;实验名称:广告灯左右移动实验
;作者: 龙谊
;版本: VER 1.0
;说明: 初学者学习单片机编程入门实验
;修改:
;编程语言: 汇编语言
;*****************************************;

方法一:

ORG00H
START:MOVA,#0FFH ;设置左移初值
CLRC ;进位清零
MOVR1,#08H ;设定左移次数8
ZUOYI:RLCA ;开始左移
MOVP0,A ;由P0口显示左移值
CALLDELAY ;调延时子程序
DJNZR1,ZUOYI ;判断左移次数=8?不等就继续左移
MOVR1,#07H ;等于就设定右移次数7
YOUYI:RRCA ;开始右移
MOVP0,A ;由P0口显示右移值
CALL DELAY ;调延时子程序
DJNZR1,YOUYI ;判断右移次数=7?不等就继续右移
JMPSTART ;等于就返回开始形成程序的循环功能
DELAY:MOVR5,#20 ;采用晶振12MHZ,延时时间为0.2秒
D1: MOVR6,#20
D2: MOVR7,#248
DJNZR7,$
DJNZR6,D2
DJNZR5,D1
RET
END

方法二:

ORG00H
START: MOVDPTR,#TABLE;TABLE表的地址存入数据指针
YIDONG:CLRA ;清除ACC
MOVCA,@A+DPTR ;到数据指针所指的地址取码
CJNEA,#01,QIDONG;取出的码=01H?不是则跳到QIDONG
JMPSTART;是01H返回重新开始
QIDONG:MOVP0,A ;取到的码由P0显示
CALLDELAY ;调延时子程序
INCDPTR ;数据指针加1,取下一个码
JMPYIDONG
DELAY: MOVR5,#20 ;采用晶振12MHZ,延时时间为0.2秒
D1: MOVR6,#20
D2: MOVR7,#248
DJNZR7,$
DJNZR6,D2
DJNZR5,D1
RET
TABLE: DB0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH;左移码
DB0BFH,0DFH,0EFH,0F7H,0FBH,0FDH,0FEH ;右移码
DB01H ;结束码
END

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top