P3M0[7:
0]
P3M1[7:
0]
I/O口模式
0
0
准双向口
0
1
强推挽输出
1
0
仅输入
1
1
开漏
●P3寄存器可位寻址,P3M1、P3M0不可位寻址。
P2口设定:
P2M1,P2M0。
P2寄存器可位寻址,P2M1、P2M0不可位寻址。
P1口设定:
P1M1,P1M0。
P1寄存器可位寻址,P1M1、P1M0不可位寻址。
P0口设定:
P0M1,P0M0。
P0寄存器可位寻址,P0M1、P0M0不可位寻址。
P2M0=0x00。
//P2口设为推挽模式,提高数码块亮度
P2M1=0xff。
P3M0=0x00。
//P3口设为推挽模式
P3M1=0xff。
2、DS18B20访问
●INITIALIZATIONTIMING
●READ/WRITETIMESLOTTIMING
负数补码取反+1=负数原码大小
(负数补码-1>取反=负数原码大小
TEMPERATUREREGISTERFORMAT
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
LSByte
23
22
21
20
2-1
2-2
2-3
2-4
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
MSByte
S
S
S
S
S
26
25
24
TEMPERATURE/DATARELATIONSHIP
TEMPERATURE
DIGITALOUTPUT(Binary>
DIGITALOUTPUT(Hex>
+125°C
0000011111010000
07D0h
+85°C*
0000010101010000
0550h
+25.0625°C
0000000110010001
0191h
+10.125°C
0000000010100010
00A2h
+0.5°C
0000000000001000
0008h
0°C
0000000000000000
0000h
-0.5°C
1111111111111000
FFF8h
-10.125°C
1111111101011110
FF5Eh
-55°C
1111110010010000
FC90h
开发工具
Keil开发工具
选择Intel80C51芯片,在源文件中加“#include”
STC-ISP-V4.83下载工具
MCUTypeCOM打开程序文件DOWNLOAD/下载
CP2102下载器驱动软件
程序1.C
#include
#defineuintunsignedint
voiddelay(uinti>//延时函数
{while(i-->。
}
voidmain(>
{delay(1000>。
}
程序1.C的反汇编程序:
传统12T的8051模式<1T模式)
LJMPSTARTUP
STARTUP:
MOVR0,#0X7F
CLRA
IDATALOOP:
MOV@R0,A
DJNZR0,IDATALOOP
MOVSP,#0X07
LJMPMAIN
MAIN:
MOVR7,#0xE8。
12TOSC<2TOSC)
MOVR6,#0x03。
12TOSC<2TOSC)
LJMPDELAY。
24TOSC<4TOSC)
DELAY:
MOVA,R7。
12TOSC<1TOSC)
DECR7。
12TOSC<3TOSC)
MOVR4,0X06。
24TOSC<4TOSC)
JNZD1。
24TOSC<3TOSC)
DECR6。
12TOSC<3TOSC)
D1:
ORLA,R4。
12TOSC<2TOSC)
JNZDELAY。
24TOSC<3TOSC)<若R6,R7都减到0,退出)
RET。
24TOSC<4TOSC)
R6=y,R7=x时,延迟时间=48+108x+[108*256+12]*y+12+24(TOSC>=84+108*(y*256+x>+12y(TOSC>
(或8+16x+[16*256+3]*y+3+4=15+16*(y*256+x>+3y(TOSC>>
附录A电阻电容参数识别
一、电阻
1、电阻的参数标注方法有3种,即数标法、色标法和直标法。
1)数标法。
主要用于贴片等小体积电路,如:
472表示47×100Ω<即4.7K);104则表示100KΩ
2)色环标注法。
常用的有四色环电阻五色环电阻<精密电阻)。
色环顺序识别技巧:
<1)最常用的表示电阻误差的颜色是:
金、银、棕,金环和银环绝少用做电阻色环的第一环,所以电阻上若有金环和银环,则这是最末一环。
<2)棕色环是否是误差标志的判别。
可以根据色环之间的间隔判别:
如一个五道色环的电阻,第五环和第四环之间的间隔比第一环和第二环之间的间隔要宽一些。
<3)利用电阻的生产序列值加以判别。
如一个电阻的色环读序是:
棕、黑、黑、黄、棕,其值为:
100×104Ω=1MΩ误差为1%,属于正常的电阻系列值,若是反顺序读:
棕、黄、黑、黑、棕,其值为140×100Ω=140Ω,误差为1%。
显然后一种排序的电阻值在生产系列中没有,故后一种色环顺序不对。
四色环电阻:
如“棕红红金”,则阻值为12×102=1.2KΩ,误差为±5%
五色环电阻:
如“红红黑棕金”,则阻值为220×101=2.2KΩ,误差为±5%
二、电容
1、电容的参数标注方法有3种,即数标法、色标法和直标法。
大容量电容的容量值直接标明,如10uF/16V
小容量电容的容量值用字母表示或数字表示
字母表示法:
1m=1000uF,1P2=1.2PF,1n=1000PF
数字表示法:
一般用三位数字表示容量大小,前两位表示有效数字,第三位数字是倍率。
如:
102表示10×102PF=1000PF,224表示22×104PF=0.22uF
<其中:
1F=103mF=106uF=109nF=1012pF)
2、电容容量误差表
符号FGJKLM
允许误差±1%±2%±5%±10%±15%±20%
如:
一瓷片电容为104J表示容量为0.1uF、误差为±5%。
附录BSTC12C5608AD单片机
✧STC12C5608AD:
工作电压3.5-5.5V,4KBFlash程序存储器,768BytesSRAM,8路10位A/D转换电路等。
✧若用户板使用外部晶振,必须在下载程序时,在“STC-ISP”下载软件界面设置“外部晶体或时钟”。
✧STC12C5608AD是1T的8051单片机,为了兼容传统的8051,定时器0和定时器1在复位后是传统8051的速度,即12分频。
✧STC12C5608AD单片机上电复位后为准双向口/弱上拉模式,2V以上为高电平,0.8V以下为低电平。
每个I/O口驱动能力可达20mA,但整个芯片不得超过55mA。
I/O口工作方式设定如下P3M0[7:
0]
P3M1[7:
0]
I/O口模式
0
0
准双向口
0
1
强推挽输出
1
0
仅输入
1
1
开漏
举例:
MOVP3M0,#10100000B。
MOVP3M1,#11000000B
P3.7为开漏,P3.6为强推挽输出,P3.5为高阻输入,/P3.4/P3.3/P3.2/P3.1/P3.0为准双向口。
●P3寄存器可位寻址,P3M1、P3M0不可位寻址。
P2口设定:
P2M1,P2M0。
P2寄存器可位寻址,P2M1、P2M0不可位寻址。
P1口设定:
P1M1,P1M0。
P1寄存器可位寻址,P1M1、P1M0不可位寻址。
P0口设定:
P0M1,P0M0。
P0寄存器可位寻址,P0M1、P0M0不可位寻址。
附录CSTC12C5410AD单片机
✧STC12C5410AD:
工作电压3.5-5.5V,10KBFlash程序存储器,512BytesSRAM,8路10位A/D转换电路等。
✧STC12C5410AD是1T的8051单片机,为了兼容传统的8051,定时器0和定时器1在复位后是传统8051的速度,即12分频。
✧STC12C5608AD单片机上电复位后为准双向口/弱上拉模式,2V以上为高电平,0.8V以下为低电平。
每个I/O口驱动能力可达20mA,但整个芯片不得超过55mA。
I/O口工作方式设定如下P3M0[7:
0]
P3M1[7:
0]
I/O口模式
0
0
准双向口
0
1
强推挽输出
1
0
仅输入
1
1
开漏
举例:
MOVP3M0,#10100000B。
MOVP3M1,#11000000B
P3.7为开漏,P3.6为强推挽输出,P3.5为高阻输入,/P3.4/P3.3/P3.2/P3.1/P3.0为准双向口。
●P3寄存器可位寻址,P3M1、P3M0不可位寻址。
P2口设定:
P2M1,P2M0。
P2寄存器可位寻址,P2M1、P2M0不可位寻址。
P1口设定:
P1M1,P1M0。
P1寄存器可位寻址,P1M1、P1M0不可位寻址。
P0口设定:
P0M1,P0M0。
P0寄存器可位寻址,P0M1、P0M0不可位寻址。
附录DDS1820
*DQ<引脚2):
数据输入输出引脚,漏极开路。
单线总线要求5k左右的上拉电阻。
*DS1820的两种充电方式:
1>DQ充电方式。
DQ=H,给内部电容充电;L停止充电。
2>用外部5V电源供电。
*DS18208位数据发送顺序:
先低位D0,再高位
图1DS1820方框图
DS18B20内部寄存器阵列
1>暂存存贮器
0
Temp_read低字节
1
Temp_read高字节
2
高限报警温度值TH
3
低限报警温度值TL
4
保留
5
保留
6
计数7
单位温度计数8
CRC
*2、3字节:
是TH、TL的易失性拷贝,在每一次上电复
位时被刷新。
*7字节:
是计数寄存器,用于获得较高的温度分辨率。
*8字节:
为循环冗余校验CRC字节它,是前面8个字节
的CRC值。
*DS1820在1秒<典型值)内把温度变换为数字。
温度
数字输出/二进制
数字输出十六进制
+125
0000000011111010
00FAh
+25
0000000000110010
0032h
+1/2
0000000000000001
0001h
+0
0000000000000000
0000h
-1/2
1111111111111111
FFFFh
-25
1111111111001110
FFCEh
-55
1111111110010010
FF92h
温度/数据关系<数字输出=<温度/2)的补码)
小数:
0,0.0
1,0.5
7位整数
8位符号
高精度温度计算公式:
*访问DS1820的协议:
初始化→ROM操作命令→存贮器操作命令→处理/数据
1>初始化:
总线主机发一复位脉冲<最短为480µs的低电平信号)后,释放总线;DS1820检测到I/O引脚的上升沿后,等待15-60µs,接着送出存在脉冲<60-240µs的低电平信号)。
2>ROM操作命令:
主机检测到从属器件存在,可发器件ROM操作命令之一:
(1>ReadROM(读ROM>[33h]:
主机读DS1820的8位产品系列编码、48位序列号以及8位CRC。
(2>MatchROM(符合ROM>[55h]:
命令后继以64位的ROM数据序列,允许总线主机对多点总线上特定的DS1820寻址,只有与64位ROM序列严格相符的DS1820才能对后继的存贮器操作命令作出响应,所有与64位ROM序列不符的从片将等待复位脉冲;
(3>SkipROM(跳过ROM>[CCh]:
允许主机不提供64位ROM编码而访问存储器;
(4>SearchROM(搜索ROM>[F0h]:
允许主机使用一种消去elimination处理来识别总线上所有从片的64位ROM编码;
(5>AlarmSearch(告警搜索>[ECh]:
命令流程与搜索ROM命令相同,但仅在最近一次温度测量出现告警的情况下,DS1820才对此命令作出响应,告警的条件定义为温度高于TH或低于TL。
只要DS1820一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者改变TH或TL的设置,使得测量值再一次位于允许的范围之内,贮存在EEPROM内的触发器值用于告警。
3>存贮器操作命令
指令
代码
说明
单总线的操作
注
温度变换
44h
启动温度变换
读温度转换状态:
0,DS1820忙;
1,温度变换完成
温度变换需要2秒钟
读暂存存储器
BEh
从暂存存储器读字节
读9字节数据
始于字节0,直至字节8
写暂存存储器
4Eh
写字节至暂存存储器2和3处
写数据至地址2和 3的2个字节 复制暂存存储器 43h 把暂存存储器复制到非易性存储器E2PROM<仅地址2和3) 读复制状态 重新调出 E2PROM E3h 把贮存在非易失性存储器内的数值重新调入暂存存储器<温度触发器) 读温度忙状态 读电源 B4h 发DS1820电源方式的信号至主机 读电源状态 存储器操作举例: 温度变换与内插假定采用外部电源,且仅有一个DS1820 主机方式 数据注释 TX CCh 跳过ROM命令 TX 44h 启动温度变换命令 RX 1个数据字节 读“忙”标志3次。 主机连续读字节或位,直至数据为FFh<温度变换完成) TX Reset(复位> 复位脉冲<最短为480µs的低电平信号) RX Presence<存在) 存在脉冲<60-240µs的低电平信号) TX CCh 跳过ROM命令 TX BEh ReadScratchpad读暂存存储器命令 RX 9个数据字节 读整个暂存存储器。 主机计算从暂存存储器接收到的8个数据位的CRC,并将它与接收到的CRC相比较。 如果CRC相符,数据有效,主机保存温度的数值,并把计数寄存器和单位温度计数寄存器的内容分别作为COUNT_REMAIN和COUNT_PER_C加以保存 TX Reset(复位> 复位脉冲 RX Presence存在 存在脉冲,操作完成 附录EDS18B20 TEMPERATUREREGISTERFORMAT bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LSByte 23 22 21 20 2-1 2-2 2-3 2-4 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 MSByte S S S S S 26 25 24 TEMPERATURE/DATARELATIONSHIP TEMPERATURE DIGITALOUTPUT(Binary> DIGITALOUTPUT(Hex> +125°C 0000011111010000 07D0h +85°C* 0000010101010000 0550h +25.0625°C 0000000110010001 0191h +10.125°C 0000000010100010 00A2h +0.5°C 0000000000001000 0008h 0°C 0000000000000000 0000h -0.5°C 1111111111111000 FFF8h -10.125°C 1111111101011110 FF5Eh -25.0625°C 1111111001101111 FE6Fh -55°C 1111110010010000 FC90h
展开阅读全文
相关搜索
|