标题:
汇编语言写的51单片机的多种流水灯上位机控制程序与VISIO流程图
[打印本页]
作者:
哈哈151-
时间:
2020-10-24 21:29
标题:
汇编语言写的51单片机的多种流水灯上位机控制程序与VISIO流程图
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
51hei.png
(14.53 KB, 下载次数: 63)
下载附件
2020-10-25 02:49 上传
单片机源程序如下:
ORG 0000H;程序从0000h开始存放
START: MOV SP,#60H;设置堆栈首地址
MOV SCON,#01010000B;方式1,允许接收
MOV TMOD,#20H;定时器工作方式1
ORL PCON,#10000000B;波特率倍数
MOV TH1,#0F3H;设置定时初始值
MOV TL1,#0F3H;设置定时初始值
SETB TR1;启动定时器1
MOV R6,#4;给初始值
LJMP LOOP;跳转到LOOP
A1: CJNE R6,#0,A2;如果R6不等于0,则跳转
MOV P1,#0FEH;点灯
LCALL DELAY130MS;延时
MOV P1,#0FDH
LCALL DELAY130MS
MOV P1,#0FBH
LCALL DELAY130MS
MOV P1,#0F7H
LCALL DELAY130MS
MOV P1,#0EFH
LCALL DELAY130MS
MOV P1,#0DFH
LCALL DELAY130MS
MOV P1,#0BFH
LCALL DELAY130MS
MOV P1,#07FH
LCALL DELAY130MS
A2:CJNE R6,#1,A3;如果R6不等于1,则跳转
MOV P1,#07FH
LCALL DELAY130MS
MOV P1,#0BFH
LCALL DELAY130MS
MOV P1,#0DFH
LCALL DELAY130MS
MOV P1,#0EFH
LCALL DELAY130MS
MOV P1,#0F7H
LCALL DELAY130MS
MOV P1,#0FBH
LCALL DELAY130MS
MOV P1,#0FDH
LCALL DELAY130MS
MOV P1,#0FEH
LCALL DELAY130MS
A3:CJNE R6,#2,A6;如果R6不等于2,则跳转
MOV P1,#0E7H
LCALL DELAY130MS
MOV P1,#0DBH
LCALL DELAY130MS
MOV P1,#0BDH
LCALL DELAY130MS
MOV P1,#7EH
LCALL DELAY130MS
A6:CJNE R6,#3,A5;如果R6不等于3,则跳转
MOV P1,#7EH
LCALL DELAY130MS
MOV P1,#0BDH
LCALL DELAY130MS
MOV P1,#0DBH
LCALL DELAY130MS
MOV P1,#0E7H
LCALL DELAY130MS
A5: JB P2.0,A9
INC R6
CJNE R6,#5,A9
MOV R6,#0
A9:CJNE R6,#4,LOOP;如果R6不等于4,则跳转
MOV P0,#0FFH
SJMP LOOP;跳转
A4:LJMP A1;跳转
LOOP: JNB RI,A4;如果RI不是1,则跳转
CLR RI;清零
MOV A,SBUF;把接收到的数据给累加器
CJNE A,#30H, B1;如果累加器A不等于'0',则跳转
MOV R6,#0
LCALL MSG1;调用子程序
B1: CJNE A,#31H,B2;如果累加器A不等于'1',则跳转
MOV R6,#1
LCALL MSG2;调用子程序
B2: CJNE A,#32H,B3;如果累加器A不等于'2',则跳转
MOV R6,#2
LCALL MSG3;调用子程序
B3: CJNE A,#33H,B4;如果累加器A不等于'3',则跳转
MOV R6,#3
LCALL MSG4;调用子程序
B4: CJNE A,#34H,B5;如果累加器A不等于'4',则跳转
MOV R6,#4
LCALL MSG5;调用子程序
MSG1: MOV DPTR,#M1
LCALL PRINT;调用中断程序
B5:SJMP LOOP;跳转
MSG2: MOV DPTR,#M2;取M2首地址给程序指针
LCALL PRINT
SJMP LOOP
MSG3: MOV DPTR,#M3;取M3首地址给程序指针
LCALL PRINT
SJMP LOOP
MSG4: MOV DPTR,#M4;取M4首地址给程序指针
LCALL PRINT
SJMP LOOP
MSG5: MOV DPTR,#M5;取M5首地址给程序指针
LCALL PRINT
SJMP LOOP
PRINT: MOV R0,#00H
DP1: MOV A,R0
MOVC A,@A+DPTR;查表
CJNE A,#00H,OUTPUT;如果累加器A不等于00H,则跳转
RET
DELAY130MS: ;延时130ms
MOV R4,#255
DELAY10MSA:
MOV R5,#255
DJNZ R5,$
DJNZ R4,DELAY10MSA
RET
OUTPUT: MOV SBUF,A
JNB TI,$
CLR TI
INC R0
SJMP DP1
M1: DB 'Light_Mode0',0DH,00H;发送给pc端的字符串
M2: DB 'Light_Mode1',0DH,00H;发送给pc端的字符串
M3: DB 'Light_Mode2',0DH,00H;发送给pc端的字符串
M4: DB 'Light_Mode3',0DH,00H;发送给pc端的字符串
M5: DB 'Light_OFF',0DH,00H;发送给pc端的字符串
END
复制代码
全部资料51hei下载地址:
(RS232串口)基于 51 单片机的多种流水灯上位机控制系统.rar
(114.22 KB, 下载次数: 17)
2020-10-24 21:27 上传
点击文件名下载附件
下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1