;------------------------------------------------------------
;T1计数器中断服务子程序
;计T1计数器溢出次数
;------------------------------------------------------------
TIMER1:
INC 2AH
RETI
;------------------------------------------------------------
;初始化程序
;------------------------------------------------------------
PRO_SET: MOV A,#00H
MOV B,#00H
MOV 2AH,A
MOV P0,#0FFH
MOV P1,#0FFH
MOV P2,#0FFH
MOV INT_H,#00H
MOV INT_L,#00H
MOV INT_G,#00H
MOV T_S,#00H
MOV T_H,#00H
MOV T_M,#00H
MOV T_G,#00H
MOV TIMCOUNT,#00H
MOV TIMER_H,#04CH ;定时 50 MS
MOV TIMER_L,#10H ;
CLR BEEP
SETB P3.5 ;P3.5端口置输入状态
RET ;T1(TIMER1的外部输入脚)
;-----------------------------------------------------
;LCD 初始化设置
;-----------------------------------------------------
SET_LCD:
CLR LCD_EN
CALL INIT_LCD ;初始化 LCD
CALL DELAY1
MOV DPTR,#INFO1 ;指针指到显示信息1
MOV A,#1 ;显示在第一行
CALL LCD_SHOW
MOV DPTR,#INFO2 ;指针指到显示信息2
MOV A,#2 ;显示在第二行
CALL LCD_SHOW
RET
;-----------------------------------------------------
INFO1: DB " CYMOMETER ",0 ;LCD 第一行显示信息
INFO2: DB "FREQ: HZ ",0 ;LCD 第二行显示信息
;-----------------------------------------------------
;LCD 接口初始化
;8位I/O控制
;-----------------------------------------------------
INIT_LCD:
MOV A,#38H ;双列显示,字形5*7点阵
CALL WCOM
CALL DELAY1
MOV A,#38H ;双列显示,字形5*7点阵
CALL WCOM
CALL DELAY1
MOV A,#38H ;双列显示,字形5*7点阵
CALL WCOM
CALL DELAY1
MOV A,#0CH ;开显示,关光标,
CALL WCOM
CALL DELAY1
MOV A,#01H ;清除 LCD 显示屏
CALL WCOM
CALL DELAY1
RET
;----------------------------------------------------
LCD_SHOW: ;在LCD的第一行或第二行显示信息字符
CJNE A,#1,LINE2 ;判断是否为第一行
LINE1: MOV A,#80H ;设置 LCD 的第一行地址
CALL WCOM ;写入命令
CALL CLR_LINE ;清除该行字符数据
MOV A,#80H ;设置 LCD 的第一行地址
CALL WCOM ;写入命令
JMP FILL
LINE2: MOV A,#0C0H ;设置 LCD 的第二行地址
CALL WCOM ;写入命令
CALL CLR_LINE ;清除该行字符数据
MOV A,#0C0H ;设置 LCD 的第二行地址
CALL WCOM
FILL: CLR A ;填入字符
MOVC A,@A+DPTR ;由消息区取出字符
CJNE A,#0,LC1 ;判断是否为结束码
上一页 [1] [2] [3] [4] [5] 下一页
本文关键字:暂无联系方式51单片机,单片机-工控设备 - 51单片机