51测试网 单片机教程XL2000开发板 单片机学习 自制编程器 单片机资料 软件下载 电子技术产品介绍如何购买 论坛

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

        1.1 系统简介

        4.3 ISP引脚连接

        端口按键判断

        红外线遥控555硬件振荡器

        1.2 模块接口定义

        5.1 仿真概述

        矩阵按键识别技术

        汉字显示屏PS2键盘实验
        2.1 软件安装  5.2 KEIL软件指南

        74LS14反向器

        1602液晶显示屏SD卡实验
        2.2 软件界面介绍 

        51引脚说明

        74LS138译码器

        8155试验

        485通信实验 
        2.3 软件操作

        八路跑马灯

        74LS164串入并出

        24C02储存

        DS1302实时时钟
        3.1 USB驱动安装

        继电器控制

        74LS165并入串出步进电机产生hex文件
        3.2 特别usb安装 

        8路拨动开关

        dac0832应用

        93c46演示

        常见问题解答
        4.1 ISP介绍 

        数码管静态扫描 

        模拟/数字转换器

        串行双向通信系统配置指南
        4.2 下载头之插头定义

        数码管动态扫描

        小喇叭警报器18B20温度显示购买方式

                                        实验22 18B20数字温度显示系统

              DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃。
            主机控制DS18B20完成温度转换必须经过三个步骤:初始化、ROM操作指令、存储器操作指令。必须先启动DS18B20开始转换,再读出温度转换值。本程序仅挂接一个芯片,使用默认的12位转换精度,外接供电电源,读取的温度值高位字节送WDMSB单元,低位字节送WDLSB单元,再按照温度值字节的表示格式及其符号位,经过简单的变换即可得到实际温度值.

        相关原理:                                  18B20封装引脚:

               

        程序运行的照片:

        接线方法:

        1、用一根单条数据线把18B20的JP39接到CPU部份的JP53(P3口)的P3.0
        2、用一条4PIN的排线,把JP19接到P0口的JP51的P0.0,P0.1,P0.2,0.3 四个端口。(即插入P0口的上半部份)。
        3、用一条8PIN的排线。 把数码管译码部份的输出端JP88,接到数码管部份的数据口JP5
        4、用一条4PIN的排线,把JP22接到P0口的JP51的P0.4,P0.5,P0.6,07 四个端口。(即插入P0口的下半部份)。
        5、用一条8PIN的排线。 把38译码部份的输出端JP25,接到数码管部份的显示位口JP8。
           在本系统中,为了简化程序, 采用了74LS47(数码管译码)74LS138(三八译码)。即P0口的P0.0,P0.1,P0.2,P0.3 四个端口接到74LS47进行硬件数码管译码,然后输出到数码管部分的数据口JP5。 P0.4,P0.5,P.0.6三个端口接到74LS138进行38译码, 然后输出到数码管的位控制JP8.

        系统综合原理图:

        汇编语言参考程序:

        ;定时显示子程序,采用循环扫描方式
        ;显示缓冲区40H~47H
        ORG 0080H
        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

        精致外观

        精致外观

        精致外观

        精致外观

        精致外观

        精致包装

        精致包装

        精致包装

        配套附件

        配套附件

        使用手册

        使用手册

        使用手册

        配套附件

        配套附件

        配套附件

        配套附件

        配套附件

        配套附件

        配套附件

        精致细节

        精致细节

        精致细节

        精致细节

        配套光盘