当前位置:首页 > 基于单片机电风扇智能控制系统设计
第三节 系统软件设计
3.1 数字温度传感器模块程序设计
本系统的运行程序采用汇编语言编写,采用模块化设计,整体程序由主程序和子程序构成。
图3-1 数字温度传感器模块程序流程图
如图3-1所示,主机控制DS18B20完成温度转换工作必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。单片机所用的系统频率为12MHz。根据DS18B20初始化时序、读时序和写时序分别可编写4个子程序:初始化子程序、写子程序、读子程序、显示子程序。
9
DS18B20芯片功能命令表如下:
表2 DS18B20功能命令表
命令 功能描述 命令代码 CONVERT 开始温度转换 44H READ SCRATCHPAD 读温度寄存器(共9字节) BEH READ ROM 读DS18B20序列号 33H WRITE SCRATCHPAD 将警报温度值写如暂存器第2、3字节 4EH MATCH ROM 匹配ROM 55H SEARCH ROM 搜索ROM F0H ALARM SEARCH 警报搜索 ECH SKIP ROM 跳过读序列号的操作 CCH READ POWER SUPPLY 读电源供电方式:0为寄生电源,1为外电源 B4H
主要程序如下: ? MAIN:
;初始化
LCALL RST_DS18B20 LCALL GET_TEMPER MOV A,20H MOV C,08H RRC A MOV C,09H RRC A MOV C,10H
10
RRC A MOV C,11H RRC A MOV 20H,A LCALL DISPLAY AJMPMAIN RST_DS18B20: SETB P3. 7 NOP CLR P3. 7 MOV R1, #3 RST1:MOV R0, #110 DJNZ R0, $ DJNZ R1,RST1 SETB P3. 7 NOP NOP
MOV R0, #25H RST2:JNB P3. 7,RST3 DJNZ R0,RST2 LJMP RST4 RST3: SETB FLAG LJMP RST5 RST4:CLR FLAG
11
LJMP RST7
RST5:MOV R0, #115 RST6:DJNZ R0, $ RST7: SETB P3. 7 RET
WR_DS18B20: MOV R2, #8 CLR C
WR1: CLR P3. 7 MOV R3, #6 DJNZ R3, $ RRC A MOV P3. 7,C MOV R3, #25 DJNZ R3, $ SETB P3. 7 NOP
DJNZ R2,WR1 SETB P3. 7 RET
RD_DS18B20: MOV R4, #2 MOV R1, #20H READ1:
;写数据子程序
12
;读数据子程序
共分享92篇相关文档