POP B
MOV A,B
ADD A,#30H
INC LCD_X
MOV B,LCD_X
CALL LCDP2
RET
;-----------------------------------------------------
DELAY1: ;延时3MS
MOV R6,#15
D2: MOV R7,#100
DJNZ R7,$
DJNZ R6,D2
RET
; ----------------- 定时器设置 ------------------------
;设置定时器0工作在定时方式1,定时器1工作在计数方式1
;---------------------------------------------------------
TIM_T0: MOV TMOD,#0D1H
MOV TH0,TIMER_H ;设置定时初值高位
MOV TL0,TIMER_L ;设置定时初值低位
MOV TH1,#00H ;清T1计数器
MOV TL1,#00H
MOV IE,#8AH ;开中断总允许,允许T0溢出中断
SETB PT1
SETB TR1
SETB TR0 ;定时器开始工作
RET
;--------------------------------------------------------
;定时器0中断服务程序
;--------------------------------------------------------
TIMER_INT:
CLR TR0 ;关闭定时器
MOV TL0,TIMER_L ;重新赋初值
MOV TH0,TIMER_H ;
INC TIMCOUNT ;定时1S,时间单位
MOV A,TIMCOUNT ;查看数量值
CPL P1.4 ;产生自测信号
CJNE A,#20,T_END ;如果没有到1S返回
CLR TR1 ;关闭计数器T1
MOV TIMCOUNT,#00H ;到1S则清零
MOV INT_L,TL1 ;取出计数值低位
MOV INT_H,TH1 ;取出计数值高位
MOV INT_G,2AH ;取出溢出计数值位
MOV TH1,#00H
MOV TL1,#00H
MOV 2AH,#00H
SETB TR1
T_END: SETB TR0 ;重新开始定时操作
RETI
;---------------------------------------------------------------
;三字节二进制整数转换成四字节BCD码子程序
;二进制数从低位到高位分别存放在INT_L、INT_H、INT_G单元中
;BCD码从低位到高位分别存放在T_S、T_M、T_H、T_G 单元中
;---------------------------------------------------------------
SBIN_SBCD:
PUSH PSW
SETB PSW.3 ;设置当前寄存器
CLR PSW.4
CLR A ;清累加器
MOV T_G,A
MOV T_H,A ;清除出口单元,准备转换
MOV T_M,A
MOV T_S,A
MOV R5,INT_G
MOV R7,INT_L ;设置二进制数起始地址
MOV R6,INT_H
MOV R2,#24
CLR C
HH1:
MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R5
RLC A
MOV R5,A
上一页 [1] [2] [3] [4] [5] 下一页
本文关键字:暂无联系方式51单片机,单片机-工控设备 - 51单片机