授课日期 班次 授课时数 2
课题,任务十三 可调速加热炉控制器教学目的:熟悉 I2C总线编程技术,键盘扫描编程技术提高单片机综合设计能力重点,单片机开发项目的设计能力培养难点,硬件和软件设计教具,多媒体作业,附加自用参考书:《单片机应用技术》耿长清主编、《单片机应用技术》刘守义主编教学过程:
复习:
潜水泵自动控制保护器总体设计任务十三 可调速加热控制器
1.任务描述
2.总体设计结合上次课的内容来进行需求分析、方案设计、测试计划
3.详细设计
1)硬件设计(原理图、主要元器件)
2)软件设计以其中一个程序为例讲解,其他程序由学生自己完成
4.课堂小结课后小结:
任务描述,本控制器能根据用户设定的加温温限 ( 最高温度 ),以及加热时间,冷却时间,自动调节加热功率,从而达到可调速加热的目的 。
7.2 任务十三 可调速加热控制炉
总体设计
需求分析
需求获取本项目最初由湘潭大学理化实验室提出需求,在化学实验金属相图实验中,原有的实验仪
( 一台 PC机,一台加热炉,一台测温仪 ) 要做一个完整的实验需要四五个小时以上,并且数据要学生自己记录并自己计算和给制图形,往往几个小时不能完成一个实验,为了解决这个问题,提出开发一种新的实验设备,新的实验仪 ( PC机一台,两台测温仪,每台测温仪可以接六路温度传感器,两台加热炉 ),这样一台 PC机可同时采集 12路数据,整个过程由 PC机上软件完成,不需学生记录数据和绘制图形和表格,大大提高了实验速度,实验结果更准确和直观 。 同时一个实验室可以省下一半 PC机,节约了设备成本 。 本项目只是该实验仪中一部分,也就是加热炉的控制部分 。
设计开发任务书本项目开发人员如下:项目负责人一名,软件工程师四名,硬件工程师一名,结构工程师一名,技术员一名,采购员一名 。 其中两名软件工程师负责 PC软件开发,一名软件工程师负责测温仪软件开发,一名软件工程师负责加热炉软件开发 。
7.2 任务十三 可调速加热控制器
总体设计
方案设计整个方案在这里就不详述,这里只就加热炉部分进行说明,由于一台 PC
机同时控制两台加热仪和两台测温仪,所以本台都有相应地址,与 PC机通讯采用 CAN总线,地址用 24C01存储,加温速度由 PC机根据当时室温发送相应加热功率百分比来控制加热炉 。 加热炉由 89C1051控制 。 如接收到 PC机发送的功率是 80,则可通过控制加热炉 80%时间打开电源,20%时间关断电源,具体通讯协议读者可以自己制订,并完整好程序,并在做实验或实训时调试 。
测试计划硬件测试:主要测试各部分硬件是否能正常工作,每部分通过简单程序来检测 。
软件测试:加热炉在不同室温下能不能在相同时间加热到指定温度 。
7.2 任务十三 可调速加热控制器
详细设计
硬件设计
主要元器件
89C2051 一片,24C01,双向可控硅等 。
I2C总线原理及工作时序:
引脚图
7.2 任务十三 可调速加热控制器读写命令字当前读时序
7.2 任务十三 可调速加热控制器字节写、页写时序
7.2 任务十三 可调速加热控制器随机读时序图
7.2 任务十三 可调速加热控制器
详细设计
原理图
7.2 任务十三 可调速加热控制器
详细设计
软件设计
I2C总线的 24C02读写程序:;**********************************************;*Title:AT24C02与 51单片机连接读写程序 *;*Date:2005.7.7 *;*********************************************************;连线,SCL— P3.4,SDA— P3.5,WP— 接地;( R3) =器件地址,( R4) =片内字节地址,;( R5) =连续读写字节数,( R1) =欲读写数据存放地址指针;*********************************************************
7.2 任务十三 可调速加热控制器
SCL EQU P30
SDA EQU P31;写 24C02子程序
I2C_WRITE:
SETB SDA
SETB SCL
CLR SDA ;发开始信号
MOV A,R3 ;发器件地址
ACALL SEND ;调发送单字节子程序
MOV A,R4 ;送片内字节地址
ACALL SEND
I2CW_AGAIN:
MOV A,@R1
ACALL SEND
INC R1
DJNZ R5,I2CW_AGAIN ;连续写 N个字节
CLR SDA ;SDA位置 0,准备送停止信号
ACALL DELAY ;延时以满足传输速率要求
SETB SCL ;发送停止信号
ACALL DELAY
SETB SDA
RET
SEND:
MOV R0,#08H
I2CW_LOOP:
CLR SCL ; 开始 [ 信号之后的 ] 写地址操作
SCL清 '0'
RLC A
MOV SDA,C
7.2 任务十三 可调速加热控制器
NOP
SETB SCL ;写完一位打操作后,SCL 置 '1'
ACALL DELAY
DJNZ R0,I2CW_LOOP
CLR SCL
CALL DELAY
SETB SCL ;
ACKLP,MOV C,SDA
JC ACKLP ;判断应答到否,未到则等待
CLR SCL
RET;********************************;读 24C02子程序
I2C_READ:
SETB SDA
SETB SCL
7.2 任务十三 可调速加热控制器
CLR SDA ;发开始信号
MOV A,R3 ;发器件地址
ACALL SEND ;调发送单字节子程序
MOV A,R4 ;送片内字节地址
ACALL SEND
SETB SDA
SETB SCL
CLR SDA ;发开始信号
MOV A,R3 ;发器件地址
SETB ACC.0 ;发读命令
ACALL SEND
I2CR_AGAIN:
ACALL READ
MOV @R1,A
INC R1
DJNZ R5,I2CR_AGAIN
7.2 任务十三 可调速加热控制器
CLR SDA ;SDA位置 0,准备送停止信号
ACALL DELAY ;延时以满足传输速率要求
SETB SCL ;发送停止信号
ACALL DELAY
SETB SDA
RET
READ:MOV R0,#08H
I2CR_LOOP:
SETB SCL
ACALL DELAY
MOV C,SDA
RLC A
CLR SCL
ACALL DELAY
DJNZ R0,I2CR_LOOP
7.2 任务十三 可调速加热控制器
CJNE R5,#01H,LW
SETB SDA ;若是最后一个字节,置 ACK=1
AJMP SETOK
LW,CLR SDA ;否则置 ACK=0
SETOK,ACALL DELAY
SETB SCL
ACALL DELAY
CLR SCL
ACALL DELAY
SETB SDA ;应答完毕,SDA置 1
RET
DELAY:
NOP
NOP
RET
END
课堂小结:
1、可调速加热炉控制器任务要求
2、可调速加热炉控制器方案设计
3、可调速加热炉控制器硬件电路
4,I2C总线原理及工作时序作业:
画出可调速加热炉控制器的程序流程图,并编写控制程序