本站近期与电子报单片机公共实验室合作推出系列教学文章!

欢迎来到51单片机学习网:庆祝51单片机学习网全面改版

返回主页xl1000实验仪 51论坛 单片机教学 本站例程  技术资料  软件下载  产品介绍 学液晶显示 如何购买  

         步进电机  xl600实验仪  红外线遥控  c语言集锦 自制编程器 音响技术 品质技术 音响网址   更新中..51论坛

51单片机学习网xl1000开发套件火热推出,全自动smt贴片工艺,推广期间每套单价998元

点击察看说明书(64页彩色PDF文档)

第一章:XL1000 单片机综合仿真试验仪简介

5.1 仿真概述

实验12 DA转换dac0832的原理与应用

1.1 系统简介

5.2 KEIL UV2软件操作指南

实验13 模拟/数字转换器ADC0804

1.2各个模块接口的定义

第六章:XL1000单片机系统实验

实验14 小喇叭警报器试验
第二章: 快速入门篇用XL1000作跑马灯实验

MCS-51单片机引脚说明

/实验15 红外线遥控试验
2.1软件安装 

实验1  最简单的八路跑马灯

实验16 汉字显示屏显示倚天一出宝刀屠龙
2.2软件界面介绍 

实验2  用xl1000试验仪做8路彩灯控制器

实验17  1602液晶显示屏显示A 
2.3软件操作

实验3  8路指示灯读出8路拨动开关的状态 

实验18  8155试验

第三章  USB接口安装指南

实验4  数码管静态扫描 

实验19  24C02储存开机次数实验

3.1 USB驱动程序安装

实验5  数码管动态扫描显示01234567

实验20  步进电机实验 
3.2特别情况下的usb安装 

实验6  端口按键判断技术(按键显示数字)

实验21  93c46 演示程序 

第四章ISP 下载部份的应用

实验7  矩阵按键识别技术

实验22 串行双向通信实验 
4.1   ISP 下载部份介绍 

实验8 74LS14反向器实验 

实验23 综合实验 18B20数字温度显示系统 
4.2  XL1000下载头之插头定义  实验9  74LS138 38译码器部分实验 第七章 怎样产生hex文件?
4.3常用芯片的ISP相关引脚连接方法 实验10  74LS164 串入并出实验 第八章   常见问题解答
第五章 XL1000 仿真操作指南 实验11 74LS165并入串出实验 第九章 系统配置和售后服务指南

 

*实验23综合实验 18B20数字温度显示系统

 

综合实验:用18B20(数字温度采集)74LS47(数码管译码)74LS138(三八译码) DS18B20DALLAS公司生产的一线式数字温度传感器,具有3引脚TO92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出.

主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。本程序仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,读取的温度值高位字节送WDMSB单元,低位字节送WDLSB单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值。

 

DS18B20的引脚: 18b20原理图

 

运行程序数码管后4位显示当前测试到的温度。

 

在本系统中: 为了简化程序, 采用了74LS47(数码管译码)74LS138(三八译码)。即P0口的P0.0,P0.1,P0.2,P0.3 四个端口接到74LS47进行硬件数码管译码,然后输出到数码管部分的数据口JP5。

P0.4,P0.5,P.0.6三个端口接到74LS138进行38译码, 然后输出到数码管的位控制JP8.

系统综合原理图:

;

  ;本程序测量温度范围:0~125度,精确到0.06;
DAT BIT P3.0 ;数据通信口
WDLSB DATA 30H ;读出的温度低字节
WDMSB DATA 31H ;读出的温度高字节
;***************************************************************
ORG 0000H
LJMP MAIN
ORG 000BH
SJMP TIMER0 ;定时显示

;****************************************************************
;定时显示子程序,采用循环扫描方式
;显示缓冲区40H~47H
ORG 0040H
TIMER0:

MOV P0,40H ;最后一位值送p0
ORL P0,#70H; 点亮最后一位
CALL T1MS
MOV P0,41H
ORL P0,#60H
CALL T1MS
MOV P0,42H
ORL P0,#50H
CALL T1MS
MOV P0,43H
ORL P0,#40H
MOV TH0,#LOW(65536-10000) ;定时器10MS中断
MOV TL0,#HIGH(65536-10000)
RETI
T1MS: mov r5,#00h ;延时子程序
tt: mov r6,#9
djnz r6,$
djnz r5,tt
ret

;*********************************************************
;主程序:

MAIN: MOV SP,#60H
MOV P2,#0FFH
MOV R2,#8
MOV R0,#40H ;
OVER: MOV @R0,#00H
INC R0
DJNZ R2,OVER
MOV TMOD,#01H
MOV TH0,#LOW(65536-10000)
MOV TL0,#HIGH(65536-10000)
SETB EA
SETB ET0
SETB TR0
LOOP: LCALL DSWD ;调用读出DS18B20温度程序
SJMP LOOP ; 读出DS18B20温度程序
DSWD:
CLR EA
LCALL RST
JNB F0,KEND ;如果没有应答,返回主程序
MOV R0,#0CCH
LCALL SEND_BYTE ;跳过ROM匹配
MOV R0,#44H ;发出温度转换命令
LCALL SEND_BYTE
SETB EA
MOV P1,#00001111B
MOV 48H,#1 ;廷时75ms以上准备读
SS2: MOV 49H,#255
SS1: MOV 4AH,#255
SS0: DJNZ 4AH,SS0
DJNZ 49H,SS1
DJNZ 48H,SS2
MOV P1,#11111100B
CLR EA
LCALL RST
JNB F0,KEND
MOV R0,#0CCH ;跳过ROM匹配
LCALL SEND_BYTE
MOV R0,#0BEH ;发出读温度命令
LCALL SEND_BYTE
LCALL READ_BYTE
MOV WDLSB,A
LCALL READ_BYTE
MOV WDMSB,A
LCALL TRANS12
KEND: mov p1,#01010101b
SETB EA
RET
;**********************************************************
;温度转换程序:精确到:0.06 ;
TRANS12:MOV A,30H
ANL A,#0F0H
MOV 3AH,A
MOV A,31H
ANL A,#0FH
ORL A,3AH
SWAP A
MOV B,#10
DIV AB
MOV 43H,A
MOV 42H,B ;
MOV DPTR,#TABB
MOV A,30H
ANL A,#0FH
MOV B,#2
MUL AB
MOVC A,@A+DPTR
MOV 41H,A
MOV A,30H
ANL A,#0FH
MOV B,#2
MUL AB
INC A
MOVC A,@A+DPTR
MOV 40H,A
RET
TABB: DB 0,0,0,6,1,2,1,8,2,5,3,1,3,7,4,3,5,0
DB 5,6,6,2,6,8,7,5,8,1,8,7,9,3
;*************************************************

SEND_BYTE: ;发送一个字节程序
MOV A,R0
MOV R5,#8
SEN3: CLR C
RRC A
JC SEN1
LCALL WRITE_0
SJMP SEN2
SEN1: LCALL WRITE_1
SEN2: DJNZ R5,SEN3 ; 循环8次,写一个字节
RET
READ_BYTE: ;读一个字节程序
MOV R5,#8
READ1: LCALL READ
RRC A
DJNZ R5,READ1 ; 循环8次,读一个字节
MOV R0,A
RET
;复位程序,如果复位置位F0,没有就复位F0
RST: SETB DAT
NOP
NOP
CLR DAT
MOV R6,#250 ;主机发复位脉冲持续3μs×200=600μs
DJNZ R6,$
MOV R6,#50
DJNZ R6,$
SETB DAT ;主机释放总线,口线改为输入
MOV R6,#15
DJNZ R6,$
CALL CHCK ;调用应答检查程序
MOV R6,#60
DJNZ R6,$
SETB DAT
RET
CHCK: MOV C,DAT
JC RST0
SETB F0 ;检测到信号,置位F0
SJMP CHCK0
RST0: CLR F0 ;未准备好F0复位
CHCK0: RET

WRITE_0: ;写0
CLR DAT
MOV R6,#30
DJNZ R6,$
SETB DAT
RET
WRITE_1:CLR DAT ;写1
NOP
NOP
NOP
NOP
NOP
SETB DAT
MOV R6,#30
DJNZ R6,$
RET

;读一位数据程序
READ: SETB DAT ;先复位至少1US产生读起始信号
NOP
NOP
CLR DAT
NOP
NOP
SETB DAT ;置位DAT准备接收数据
NOP
NOP
NOP
NOP
NOP
NOP
NOP
MOV C,DAT
MOV R6,#23
DJNZ R6,$
RET
END

本程序测量温度范围:0~125度,精确到0.06

综合接线图:

1 用一根单条数据线把18B20的JP39接到CPU部分的JP53(P3口)的P3.0

2用一条4PIN的排线,把数码管译码部份的JP19接到CPU部份P0口的JP51的P0.0,P0.1,P0.2,0.3 四个端口。(即插入P0口的上半部分)。

3 用一条8PIN的排线。 把数码管译码部份的输出端JP88,接到数码管部分的数据口JP5

4用一条4PIN的排线,把38译码部份的JP22接到CPU部份P0口的JP51的P0.4,P0.5,P0.6,07 四个端口。(即插入P0口的下半部分)。此处不太好插入, 小心操作。

5 用一条8PIN的排线。 把38译码部份的输出端JP25,接到数码管部分的显示位口JP8。  

精致外观

精致外观

精致外观

精致外观

精致外观

精致包装

精致包装

精致包装

配套附件

配套附件

使用手册

使用手册

使用手册

配套附件

配套附件

配套附件

配套附件

配套附件

配套附件

配套附件

精致细节

精致细节

精致细节

精致细节

配套光盘