值就可以控制功率的输出大
小这就达到调节风扇的转速。
图43电机控制原理图
5控制器软件设计本系统的程序选用C语言进行编写,采用模块化的设计方法,整体的程序由主程序
和显示,键盘扫描,红外线接收,电机控制等子程序模块组成。51主程序
当主程序初始化以后,就开始反复的检测各个模块相关部分的缓冲区的标志,假设缓冲区进行了置位,就说明了相应的数据需要进行处理,随后主程序就调用相应的处理子模块。如下图51所示。
9
f程序启动初始化温度初始化电机
读取键盘子程序运行温度判断子程序运行电控制子程序
读取测温子程序
结束
温度赋值处理程序
图51主程序的模块流程图
52温度传感器模块和显示模块如下图52所示,本设计用的是4位共阴极数码管。在硬件连接上,利用MCU的
A口控制8个位段(数据),用B口的低四位控制数码管的位选信号。图中,PTA7~0分别接h~a位段,PTB3~0分别过1K电阻与CS3~0位选端相接,这样PTB3就控制最左边一个数码管的显示,PTB0则控制最右边一个数码管的显示。接在位选线上的1K电阻是限流电阻,避免电流过大烧坏数码管。
PTA1PTB2PTB1PTA5PTA0PTB0
1K
CS0a
78
1K1K
fCS1CS2b
9101112
a
f
b
g
a
f
b
g
a
f
b
g
a
f
b
g
e
ce
ce
ce
c
dh
dh
dh
dh
123456
edhcgCS3
1K
PTB3PTA6PTA2PTA7PTA3PTA4
图52MCU与4位数码管的连接
10
f如下图53所示,单片机控制DS18B20数字温度传感器完成温度转换工作必须经过三个步骤:1初始化。2ROM操作指令。3存储器操作指令。单片机使用的系统频率为12MHz12M是比较常用的晶,51单片机是12分频的,如果选用12M晶振,如果是单指令周期的语句,刚好是1us,其他语句正好是1us的整数倍。很轻松算出每个语句用了多长时间。
依据DS18B20温度传感器进行初始化时序、读时序和写时序分别可编写3个子程序:初始化子程序、写子程序、读子程序。
开始
DS18B20初始化
启动DS18B20测温
内部判断?正常
调用读子程序
异常
调用相应的控制程序
调用相应的键值处理程序
调用写子程序
显示子程序
结束图53数字温度传感器模块的程序流程图
11
fDS18B20芯片功能命令表如下表51。
表51DS18B20功能命令表
命令
说明
READROM
读取激光ROM64位
MATCHROM
匹配ROM
SKIPROM
跳过ROM
SEARCHROM
搜索ROM
ALARMSEARCH
告警搜索
WRITESCRATCHPAD
把字节写入暂存器的地址2和3
READSCRATCHPAD
读取暂存器和CRC字节
COPYSCRATCHPAD
把暂存器内容拷贝到非易失性存储器中
CONVERTT
开始温度转换
RECALLE2
把非易失性存储器中的值召回暂存器
READPOWr