文档介绍:
单片机程序:
BZ BIT
DISP EQU P1
INBUFF EQU 30H
INBUFF1 EQU 31H
INBUFF2 EQU 32H
INBUFF3 EQU 33H
INBUFF4 EQU 34H
INBUFF5 EQU 35H
INBUFF6 EQU 36H
INBUFF7 EQU 37H
INBUFF8 EQU 38H
INDATA_A EQU 39H
INDATA_B EQU 40H
INDATA_C EQU 41H
INDATA_D EQU 42H
OUTBUFF EQU 43H
OUTDATA1 EQU 44H
OUTDATA2 EQU 45H
OUTDATA3 EQU 46H
OUTDATA4 EQU 47H
OUTDATA5 EQU 48H
OUTDATA6 EQU 49H
OUTDATA7 EQU 4AH
OUTDATA8 EQU 4BH
OUTDATA_A EQU 4CH
OUTDATA_B EQU 4DH
OUTDATA_C EQU 4EH
OUTDATA_D EQU 4FH
S_AMOUNT EQU 50H
R_AMOUNT EQU 51H
R_COUNT EQU 52H
R_COUNTb EQU 53H
R_COUNTs EQU 54H
R_COUNTg EQU 55H
MYADD EQU 56H
LED EQU 57H
DATAA EQU 20H
DATAB EQU 21H
DATAC EQU 22H
DATAD EQU 23H
LEDDATA EQU 24H
DEL_TIME1 EQU 25H
DEL_TIME2 EQU 26H
LED_STYLE EQU 27H
ORG 0000H
LJMP START
ORG 000BH
LJMP TIMER0
ORG 0023H
LJMP RI_TI
ORG 0100H
START: MOV SP ,#60H
MOV SCON,#0D0H;设置成串口工作方式3
MOV TMOD,#21H ;波特率发生器T1工作在模式2
MOV PCON,#80H ;波特率翻倍为4800*2=9600bps
MOV TH0,#3CH
MOV TL0,#0B0H
MOV TH1,#0FAH ;预置初值(按照波特率4800bps预置初值)
MOV TL1,#0FAH ;预置初值(按照波特率4800bps预置初值)
MOV IE,#92H
SETB PS ;串口中断优先
SETB TR1 ;启动定时器T1
MOV MYADD,#01H
MOV R_COUNT,#0
MOV R_AMOUNT,#8
MOV R0,#INBUFF1
MOV R_COUNTb,#30H
MOV R_COUNTs,#30H
MOV R_COUNTg,#30H
MOV INBUFF1,#94;
MOV INBUFF2,#94;
MOV INBUFF3,#94;
MOV INBUFF4,#94;
MOV LED,#00H
MOV DEL_TIME1,#2
MOV DEL_TIME2,#2
MOV LED_STYLE,#0
LCALL BELL
MOV LEDDATA,#0FFH;SETB LED
;========初始化显示器
MOV
DISP,#0FFH
LJMP $
;=======================
TIMER0:PUSH PSW
PUSH ACC
MOV TH0,#3CH
MOV TL0,#0B0H
DJNZ DEL_TIME1,OUT_T0
MOV DEL_TIME1,DEL_TIME2
T0_TURN:
MOV A,#1
CJNE A,LED_STYLE,T0_SUNDRY
MOV A,DISP
RL A
MOV DISP,A
JMP OUT_T0
T0_SUNDRY:
MOV A,#2
CJNE A,LED_STYLE,T0_FLASH
MOV A,DISP
CPL A
MOV DISP,A
JMP OUT_T0
T0_FLASH:
MOV A,#3
CJNE A,LED_STYLE,OUT_T0
MOV A,DISP
CPL A
MOV DISP,A
OUT_T0:POP PSW
POP ACC
RETI
;========发送子程序==========