新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 51单片机的LCD1602液晶屏密码锁汇编程序

51单片机的LCD1602液晶屏密码锁汇编程序

作者:时间:2016-11-28来源:网络收藏
;========== 液晶工作方式设置 ============
SELLCD: MOV A,#01H ;清屏,光标复位
ACALL ENABLE
MOV A,#38H ;设置显示模式,8位两行,5*7点阵
ACALL ENABLE
MOV A,#0DH ;显示器开,允许内烁
ACALL ENABLE
MOV A,#06H ;文字不动,光标右移
ACALL ENABLE
RET
;========== 液晶执行指令 ============
ENABLE: CLR RS
CLR RW ;RS,RW同为低电平时写入指令
MOV P0,A
CLR E ;E由高变低时执行指令
ACALL WAIT
SETB E
RET
;========== WAIT ============
;判断液晶是否忙的子程序
WAIT: MOV P0,#0FFH
CLR RS
SETB RW ;RW为高,RS为低时可读忙信号
CLR E
NOP
SETB E
JB P0.7,WAIT
RET
;========== 显示的起始地址 ============
;在第一行
LINE1: MOV A,#80H
ACALL ENABLE
RET
;在第二行
LINE2: MOV A,#0C0H
ACALL ENABLE
RET
;=========== 显示程序 ============
DISPLAY:MOV R7,#00H
NEXT: MOV A,R7
MOVC A,@A+DPTR
CJNE A,#10H,DSP
RET
DSP: ACALL WRDATA
INC R7
AJMP NEXT
;========== 将A里面的数据写入液晶 ============
WRDATA: SETB RS
CLR RW
MOV P0,A
CLR E
ACALL WAIT
SETB E
RET
;=========== 报警程序 ============
WRANING: SETB TR0
ACALL BACK
MOV R4,#00H
ACALL D2
JNB 20H, WRANING
RET
;=========== 发声程序 ============
BACK: MOV R0,#100
KK1: CPL SPEAK
LCALL DELAY2MS
DJNZ R0,KK1 ;不断取反P2.0使其产生一定频率的方波推动扬声器
RET ;延时的长短可以改变输出的频率
;=========== INTT0 ============
;报警时间设定
INTT0: PUSH ACC
PUSH PSW
MOV TH0,#3CH
MOV TL0,#0BH
INC 45H
MOV A,45H
CJNE A,42H,INTT0OUT
MOV 45H,#00H
SETB 20H ;置标志位
CLR TR0 ;关闭定时器
INTT0OUT:POP PSW
POP ACC
RETI
;=========== INTT1 ============
;输入超时
INTT1: PUSH ACC
PUSH PSW
INC 46H
MOV A,46H
CJNE A,47H,INTT1OUT
CLR TR1 ;关闭定时器
SETB 21H ;时间到置标志位
MOV 47H,#00H ;中断次数清零
INTT1OUT:POP PSW
POP ACC
RETI
;=========== 延时程序 ============
DELAY: MOV R4,#38H
D1: MOV R5,#0F9H
DJNZ R5,$
DJNZ R4,D1
DJNZ R6,DELAY ;14R6毫秒
RET
DELAY2MS: MOV R4,#02H
D2: MOV R5,#0F0H
DJNZ R5,$
DJNZ R4,D2
RET
DELAY10ms: MOV R4,#20
D3: MOV R5,#248
DJNZ R5,$
DJNZ R4,D3
RET
PASS: DB "1314520"
MES_P: DB "Password?",10H
MES_C: DB " welcome!",10H
MES_E: DB "Error!",10H
TAB_1: DB "xiao_fa office",10h
END

上一页 1 2 下一页

关键词: 51单片机LCD1602液晶屏密码锁汇编程

评论


相关推荐

技术专区

关闭