系统程序设计.docVIP

  • 7
  • 0
  • 约2.99千字
  • 约 5页
  • 2017-08-09 发布于重庆
  • 举报
系统程序设计.doc

系统程序设计 1.主程序 主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量温度值,温度测量每1s进行一次。其程序流程图如图9-12所示。 2.读出温度子程序 读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如图9-13所示。 3.温度转换命令子程序 温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率,时转换时间约为750ms。在本程序设计中采用1s显示程序延时法等待转换的完成。 图 2—3主程序流程图 图 2—4 读出温度子程序流程图 4.计算温度子程序 计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图9-14所示。 5.显示数据刷新子程序 显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高位显示位为0时,将符号显示位移入下一位。程序流程图如图18所示。 图 2-5 计算温度子程序 图 2-6 显示数据刷新子程序流程图 6.源程序清单 TIMEL EQU 0E0H TIMEH EQU 0B1H TEMPHEAD EQU 36H BITST DATA 20H TIMELSOK BIT BITST.1 TEMPONEOK BIT BITST.2 TEMPL DATA 26H TEMPH DATA 27H TEMPHC DATA 28H TEMPLC DATA 29H TEMPDIN BIT P3.7 ORG 0000H LJMP START ORG 000BH LJMP T0IT ORG 100H START: MOV SP, #60H CLSMEM: MOV R0, #20H MOV R1, #60H CLSMEM1:MOV @R0,#00H INC R0 DJNZ R1,CLSMEM1 MOV TMOD, MOV THO,#TIMEL MOV TLO,#TIMEH SJMP INIT ERROR: NOP LJMP START NOP INIT: NOP SETB ET0 SETB TR0 SETB EA MOV PSW,#00H CLR TEMPONEOK LJMP MAIN T0IT: PUSH PSW MOV PSW,#10H MOV TH0,#TIMEH MOV TL0,#TIMEL INC R7 CJNE R7,#32H,T0IT1 MOV R7,#00H SETB TIMELSOK TOIT1: POP PSW RETI MAIN: LCALL DISP1 JNB TIMELSOK,MAIN CLR TIMELSOK JNB TEMPONEOK,MAIN2 LCALL READTEMP1 LCALL CONVTEMP LCALL DISPBCD LCALL DISP1 MAIN2: LCALL READTEMP SETB TEMPONEOK LJMP MAIN INITDS1820:SETB TEMPDIN NOP NOP CLR TEMPDIN MOV R6,#0A0H DJNZ R6,$ MOV R6,#0A0H DJNZ R6,$ SE

文档评论(0)

1亿VIP精品文档

相关文档