实现的功能:此单片机模拟电梯用绿色发光二极管组成的箭头来指示电梯当前是处于上升状态还是下降状态,用数码管显示当前是处于哪一层,用红色发光二极管指示电梯走到哪一层会停.电源接通后,若没有人按下停止按键,它就以每层2秒的速度一直上下运行,若有人按下某一层的停止按键,它就会在相应的那一层停止4秒钟,并伴有开门和关门的声音提示。
1.程序初始化
TCOUNT EQU 4CH
CENG EQU 4DH
ORG 0000H
LJMP START
ORG 000BH
LJMP INT0X
ORG 0030H
;;;;;;;;;;;;初始化;;;;;;;;;;;;;;;;;
START: MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H ;50MS
MOV IE,#82H
SETB TR0
MOV TCOUNT,#4
CLR F0
MOV 20H,#0
MOV R0,#30H
MOV R1,#30
QING: MOV @R0,#00H
INC R0
DJNZ R1,QING ;把30H到4DH这30个单元清0
MOV P0,#06H
MOV P3,#0F8H
2主程序调用
XUN: JB P1.0,ONE
LCALL YS10MS
JB P1.0,ONE ;判断一层的停止按键是否按下
CLR P2.0 ;若按下则把对应的红色发光二极管点亮
ONE: JB P1.1,TWO
LCALL YS10MS
JB P1.1,TWO ;判断二层的停止按键是否按下
CLR P2.1 ;若按下则把对应的红色发光二极管点亮
TWO: JB P1.2,THR
LCALL YS10MS
JB P1.2,THR
CLR P2.2
THR: JB P1.3,FOU
LCALL YS10MS
JB P1.3,FOU
CLR P2.3
FOU: JB P1.4,FIV
LCALL YS10MS
JB P1.4,FIV
CLR P2.4
FIV: JB P1.5,SIX
LCALL YS10MS
JB P1.5,SIX
CLR P2.5
SIX: JB P1.6,SEV
LCALL YS10MS
JB P1.6,SEV
CLR P2.6
SEV: JB P1.7,XUN
LCALL YS10MS
JB P1.7,XUN
CLR P2.7
LJMP XUN
3.中断程序调用
INT0X: MOV TH0,#3CH
MOV TL0,#0B0H
INC TCOUNT
MOV A,TCOUNT
CJNE A,#5,ZHUAN2 ;50MS*5=250MS
MOV TCOUNT,#00H
JB F0,ZHUAN
LJMP ZHUAN1
ZHUAN: LJMP XIAJIANG
ZHUAN1: MOV P3,#0F8H ;上升的箭头
MOV A,CENG
CJNE A,#00H,SS2
MOV P0,#06H ;显示
JB P2.0,SS1_1
INC 30H
MOV A,30H
CJNE A,#1,SSX1_1
CLR P3.4 ;一层门开的声音开
SSX1_1: CJNE A,#2,SSX1_2
SETB P3.4 ;一层门开的声音关
SSX1_2: CJNE A,#16,SSX1_3
CLR P3.4 ;一层门关的声音开
SSX1_3: CJNE A,#17,ZHUAN2 ;16*250MS=4S(总共次,但实际在这里停止的时间只有次MS)
MOV 30H,#0
SETB P3.4 ;一层门关的声音关
SETB P2.0 ;熄灭对应的红色发光二极管
SS1_1: INC 31H
MOV A,31H
CJNE A,#9,ZHUAN2 ;8*250MS=2S(总共次,但实际上升一层只用次MS)
MOV 31H,#0
INC CENG
SS2: MOV A,CENG
CJNE A,#01H,SS3
MOV P0,#5BH ;显示
JB P2.1,SS2_1
INC 32H
MOV A,32H
CJNE A,#1,SSX2_1
CLR P3.4 ;二层门开的声音开
SSX2_1: CJNE A,#2,SSX2_2
SETB P3.4 ;二层门开的声音关
SSX2_2: CJNE A,#16,SSX2_3
CLR P3.4 ;二层门关的声音开
SSX2_3: CJNE A,#17,ZHUAN2 ;16*250MS=4S(总共次,但实际在这里停止的时间只有次MS)
MOV 32H,#0
SETB P3.4 ;二层门关的声音关
SETB P2.1 ;熄灭对应的红色发光二极管
SS2_1: INC 33H
MOV A,33H
CJNE A,#9,ZHUAN2 ;8*250MS=2S(总共次,但实际上升一层只用次MS?
MOV 33H,#0
LJMP ZHUAN3
tcount航天4ch
航天4dh曾
0000h丙
ljmp开始
000bh丙
ljmp int0x
是什么意思啊 能写的具体一点吗 好像你你回答的有点乱码啊
那个,额不是专业,这些是翻词典打上去的,抱歉啊。。