|
去年,有一大学生请我给他做一个毕业设计,要求用DS18B20+51+LCD1602用作温度采集,显示为-55---125同时还要有TL及TH设置,采用ASM 编写,当时考虑到自已很久没有搞过,而且时间也很伧促所以就没答应。前段时间有空突然想起这个事,就想来练练手,虽然经过了十天之久(当然上班除外),但基本上还是能满足要求。系统里的单总线时序要求很严,最后就卡在温度数据比较上面,也不是说程序很难,主要是逻辑关系太强,搞不好就出错。在此把它记录下来,或许会有更好的处理方案,拿出来大家相互学习。因程序太长,就摘录数据比较那一段吧:
WDBJ: MOV A,WDZS ;
LCALL TLBJ ;
MOV A,WDZS ;
LCALL THBJ ;
RET ;
TLBJ: CJNE A,TL,J27 ;
JB HHW,J35 ;
SETB TLOUT ;
RET ;
J35: JB TLFH,J26 ;
CLR TLOUT ;
RET ;
J27: JNC J21 ;
JB HHW,J24 ;
JB TLFH,J25 ;
CLR TLOUT ;
RET ;
J21: JB HHW,J22 ;
SETB TLOUT ;
RET ;
J22: JB TLFH,J23 ;
CLR TLOUT ;
RET ;
J23: CLR TLOUT ;
RET ;
J24: JB TLFH,J26 ;
CLR TLOUT ;
RET ;
J26: SETB TLOUT ;
RET ;
J25: SETB TLOUT ;
RET ;
THBJ: CJNE A,TH,J28 ;
JNB HHW,J36 ;
SETB THOUT ;
RET ;
J36: JB THFH,J31 ;
SETB THOUT ;
RET ;
J28: JNC J29 ;
JB HHW,J33;
JB THFH,J31;
SETB THOUT;
RET;
J29: JB HHW,J30 ;
JB THFH,J31 ;
CLR THOUT ;
RET ;
J31: CLR THOUT ;
RET ;
J30: JB THFH,J32 ;
SETB THOUT ;
RET ;
J32: SETB THOUT ;
RET ;
J33: JB THFH,J34;
SETB THOUT;
RET;
J34: CLR THOUT;
RET;
|
|