1《单片机原理应用》课程设计指导书2010-6-8
《单片机原理与应用》课程设计指导书
一、课程设计的基本任务
本课程设计的基本要求是使学生熟悉掌握MCS-51系列单片机的编程方法,学生在DP-51DPROC单片机综合仿真实验仪的平台环境下,完成一个简单的单片机温度检测系统。
二、设备及器件
PC机 一台
DP-51PROC单片机综合仿真实验仪 一台
导线若干
三、课程设计的基本要求
设计题目:数字温度计
(1)编写程序,通过单片机的P3.3口控制一个DS18B20完成数字温度的采集,然后用程序处理采集到的数据结果。(2)编写程序,通过I2C总线器件ZLG7290实现温度数据的输出显示。(3)结合以上两部分程序,编程实现数字式温度计的程序设计。要求熟练掌握单总线方式器件的应用,熟悉I2C总线协议,学习I2C器件的使用方法。
(上述设计完成的同学可以选做万年历时钟设计)
四、课程设计的基本步骤
数字温度计的设计步骤:
(1)安装B4区JP12接口上的短路帽,将B4区的DQ与A2区INT1 (P3.3)相连。
(2)安装D5区JP1接口上的短路帽,将D5区的SDA. SCL分别与A2区的P17, P16相连。
(3)将D5区的RST_L针接上高电平。
(4)运行编写好的软件程序,观察D5区数码管显示的温度数据。然后改变DS18B20的表面温度,查看显示的温度数据是否有变化,并调整实验程序使测量值更准确。
五、设计题目中部分单元电路
1、B4区数字温度采集区
B4区上面是一片DS18B20单总线数字温度传感器,可在上面进行单总线和温度采集等相关实验,电路图如下图,DQ为控制信号输入端,JP12为电源控制(使用前先短接,做完实验后断开)
图1 单总线数字温度采集电路
2、D5区IIC实验区
D5区上面是IIC实验区,有3个芯片,分别是键盘LED驱动芯ZLG7290、EEPROM(256个字节)CAT24WC02、实时时钟芯片(RTC> RCF8563T,可以在上面进行各种相关的IIC实验。电路如图2所示
如图2所示SCL和SDA为IIC控制信号端,RST_L和INT_KEY为ZLG7290的复位控制和键盘中断接口,CLKOUT和INT_RTC为PCF8563T的时钟输出和中断接口,JP1为电源控制(使用前先短接,做完实验后断开)。另外ZLG7290芯片同时驱动了8个数码管和16个按键(键值为0X01- OX10)。
图2 IIC实验电路
六、设计参考程序
TEMPER_L EQU 36H ;存放读出温度低位数据
TEMPER_H EQU 35H ;存放读出温度高位数据
TEMPER_NUM EQU 37H ;存放转换后的温度值
FLAG1 BIT 00H
DQ BIT P3.3 ;单总线控制端口
SDA BIT P1.7 ;I2C 总线定义
SCL BIT P1.6
MTD EQU 40H ;发送数据缓冲器
MRD EQU 49H ;接收数据缓冲区
;定义器件地址,变量
ZLG7290 EQU 70H ;ZLG7290 的器件地址
ACK BIT 10H ;应答标志位
SLA DATA 50H ;器件的从地址
SUBA DATA 51H ;器件的子地址
NUMBYTE DATA 52H ;读/写的字节数变量
ORG 8000H
LJMP MAIN
ORG 8100H
;温度计主程序如下:
MAIN:
MOV SP,#70H
DISP_LOOP:
LCALL GET_TEMPER ;从 DS18B20 读出温度数据
LCALL TEMPER_COV ;转换读出的温度数据并保存
LCALL DELAY
MOV MTD,#60H
MOV MTD+1,TEMPER_NUM ;温度值低位
ANL MTD+1,#0FH
MOV SLA,#ZLG7290 ;指定器件地址
MOV SUBA,#07H ;指定子地址
MOV NUMBYTE,#02H ;发送 2 字节数据
LCALL IWRNBYTE ;调用写 2 字节数据程序
MOV MTD,#61H
MOV A,TEMPER_NUM
SWAP A
ANL A,#0FH
MOV MTD+1,A ;温度值高位
MOV SLA,#ZL