接口技术试验报告解剖.docx
- 文档编号:521389
- 上传时间:2023-04-29
- 格式:DOCX
- 页数:29
- 大小:150.55KB
接口技术试验报告解剖.docx
《接口技术试验报告解剖.docx》由会员分享,可在线阅读,更多相关《接口技术试验报告解剖.docx(29页珍藏版)》请在冰点文库上搜索。
接口技术试验报告解剖
接口技术课程
设计报告
姓名:
罗正鸿学号:
2011310692
李帅2011313635
张文彬2011310721
基于单片机点对点通信设计
摘要
随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测和显示系统应用于诸多领域。
传统的温度检测以热敏电阻为温度敏感元件。
热敏电阻的成本低,但需后续信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差,这里设计的数字温度计具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。
本设计选用AT89C51单片机作为主控制器件,DS18B20作为测温传感器,通过LM016L实现温度显示。
通过DS18B20直接读取被测温度值,进行数据转换,该器件的物理化学性能稳定,线性度较好,在0℃~100℃最大线性偏差小于0.01℃。
该器件可直接向单片机传输数字信号,便于单片机处理及控制。
另外,该温度计还能直接采用测温器件测量温度,从而简化数据传输与处理过程。
关键词:
DS18B20,数字式,温度测量,点对点通信
一、方案论证与比较
方案一:
热电偶型电路
由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。
优点:
测量温度精度高。
缺点:
电路复杂,不利于硬件连线。
总结:
从电路设计方向来看,不选用该方案。
方案二:
TC1047电路
采用AT89S52作为系统处理器对采集的温度信号进行处理,温度的范围是0~100度。
温度传感器TC1047首先将温度信号转化成电压信号,再经过信号处理,最后送到TLC5510进行A/D转换,最后将结果通过数码管显示出来。
优点:
测量温度精度高、消耗低,电路比方案一简单。
缺点:
成本价太高。
结论:
从成本方面考虑,该方案不合适。
方案三:
DS18B20电路
采用数字温度传感器DS18B20采集温度,温度测量范围为-55~125℃,通过AT89S52处理信号,不需要进行A/D转换,其自身可将模拟信号转化成数字信号,然后再通过数码管输出结果。
优点:
无需进行A/D转换,且DS18B20芯片的管脚简单,无需外围硬件设备即可进行温度测量,与单片机交换信息仅需一根I/O口线,占用微处理器的端口较少,可以节省大量的引线和逻辑电路。
缺点:
测量温度精度适中。
总结:
综合考虑,该方案能很好的实现题目的要求。
二、系统设计与分析
1、设计要求
⑴基本要求
①采用DS18B20实现温度的采集;
②通过数码管显示温度;
③能用键盘输入预设数值,并进行操作。
⑵发挥部分
①能实现甲乙机之间的通信。
⑶改进:
①提高温度测量精度。
2、总体设计
系统框图,如图所示
MAX485通信收发器
系统采用数字温度芯片DS18B20测量温度,输出信号全数字化。
采用了单总线的数据传输,由数字温度计DS18B20和AT89C51单片机构成的温度测量装置,DS18B20的DQ与AT89C51的P1.1口相连,与它直接输出温度的数字信号,采用AT89C51单片机控制。
温度显示由74LS164和数码管配合完成。
3、模块说明
该系统有以下几部分组成:
(1)显示模块
(2)控制模块
(3)测量模块
(4)按键模块
(5)通信模块
3.1、显示模块
在74LS164中,RXD、TXD都是当作IO口使用的,每个74LS164在收到一个时钟后,D0(A/B)、Q0~Q6顺次移到Q0~Q7中,而前两个芯片的Q7分别接到后两个的A/B端,由于它们的时钟都是共用的,所以在时钟输入时,前一个芯片的Q7就通过后一芯片的A/B端锁存到其Q0了,而各芯片原来的Q0~Q6移到Q1~Q7。
这样只要连续发送24个时钟就可以把24位数据分别移到3个芯片的24个输出脚上。
3.2、控制模块
本系统中采用AT89C51系列单片机完成整个数控部分的功能,同时,AT89C51作为一个智能化的可编程器件,便于系统功能的扩展。
VCC:
供电电压。
GND:
接地。
P0口:
P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入。
P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:
P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:
P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:
P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3.3、测量模块
在该系统中,测量模块采用温度传感器DSl8820。
DSl8820是美国达拉斯(DALLAS)半导体公司推出的应用可组网的数字温度传感器,不需A/D转换电路,直接将温度值转换成数字量。
(1)DQ为数字信号输入输出端
(2)GND为电源地
(3)VDD为外接供电电源输入端
温度寄存器(0和1字节)
DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:
16位符号扩展的二进制补码读数形式提供,以0.0625℃/LSB形式表达,其中S为符号位。
这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。
DS18B20的温度操作是使用16位,也就是说分辨率是0.0625。
BIT15~BIT11是符号位,为了就是表示转换的值是正数还是负数。
3.4、键盘模块
矩阵键盘又称为行列式键盘,它是用4条I/O线作为行线,4条I/O线作为列线组成的键盘。
在行线和列线的每一个交叉点上,设置一个按键。
这样键盘中按键的个数是4×4个。
这种行列式键盘结构能够有效地提高单片机系统中I/O口的利用率。
3.5、通信模块
MAX485是用于RS-485与RS-422通信的低功耗收发器。
MAX485的驱动器摆率不受限制, 可以实现最高2.5Mbps的传输速率。
这些收发器在驱动器禁用的空载或满载状态下,吸取的电源电流在120μA至500μA之间。
所有器件都工作在5V 单电源下。
驱动器具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态。
接收器输入具有失效保护特性,当输入开路时,可以确保逻辑高电平输 出。
具有较高的抗干扰性能。
三、系统软件设计
1、程序框图:
2、程序代码:
CPBITP1.1;数码管CP
MRBITP1.2;数码管MR
SDBBITP1.3;数码管
LEDBITP1.0;最小系统灯
DQBITP1.4;18B20接口
M485BITP1.5;485接口读写控制线
FLAG1BIT22H.7;18B20存在标志位
a_BITEQU35H
b_BITEQU36H;温度转换结果存放地址
GNBJEQU55H;功能标记
TEMPEQU33H;EEROM传送入口
KEYBUFEQU30H;键盘值
ORG0000H
SJMPMAIN
;ORG0023H
;LJMPTXXY
ORG0030H
MAIN:
MOVSP,#60H
CLR20H.7;是否有键按下的标志位
CLR21H.7;温度测量位
MOV50H,#00H
MOV51H,#00H
MOV52H,#00H
MOVR0,#50H;R0初值
LCALLdisplay
START:
LCALLdelay
LCALLdelay
LCALLSCAN
JB21H.7,WDX
DIS:
LCALLdisplay
LCALLZSD
JMPSTART
WDX:
LCALLWDXS
JMPDIS
;----------最小系统指示灯--------
ZSD:
CPLLED
RET
;---------------------------------
;-------------数码管的写操作------
W08:
;入口为A
CLRC
MOVR7,#8
W1:
CLRCP
RRCA
MOVSDB,C
SETBCP
DJNZR7,W1
CLRCP
RET
;---------------------------------
;---------------数码管显示------------
display:
;入口为50H,51H,52H;输出显示,入口50H
PUSHACC
;MOV50H,KEYBUF
;MOV51H,50H
;MOV52H,51H
MOVDPTR,#TAB
MOVA,52H
ANLA,#0FH
MOVCA,@A+DPTR
LCALLW08
MOVA,51H
MOVDPTR,#TAB1
ANLA,#0FH
;SWAPA
MOVCA,@A+DPTR
LCALLW08
MOVDPTR,#TAB
MOVA,50H
ANLA,#0FH
MOVCA,@A+DPTR
LCALLW08
POPACC
RET
;----------------------------------------
;----------------键盘SCAN---------
SCAN:
MOVP3,#0FFH
CLRP3.4
MOVA,P3
ANLA,#0FH
XRLA,#0FH
JZNOKEY1
LCALLDELY10MS
MOVA,P3
ANLA,#0FH
XRLA,#0FH
JZNOKEY1
MOVA,P3
ANLA,#0FH
SETB20H.7
CJNEA,#0EH,NK1
MOVKEYBUF,#0
LJMPDK1A
NK1:
CJNEA,#0DH,NK2
MOVKEYBUF,#4
LJMPDK1A
NK2:
CJNEA,#0BH,NK3
MOVKEYBUF,#8
LJMPDK1A
NK3:
CJNEA,#07H,DK1A
MOVKEYBUF,#12
;SETB21H.7
DK1A:
MOVA,P3;等待释放
ANLA,#0FH
XRLA,#0FH
JNZDK1A
NK4:
LJMPSCA
NOKEY1:
MOVP3,#0FFH
CLRP3.5
MOVA,P3
ANLA,#0FH
XRLA,#0FH
JZNOKEY2
LCALLDELY10MS
MOVA,P3
ANLA,#0FH
XRLA,#0FH
JZNOKEY2
MOVA,P3
ANLA,#0FH
SETB20H.7
CJNEA,#0EH,NK5
MOVKEYBUF,#1
LJMPDK1A
NK5:
CJNEA,#0DH,NK6
MOVKEYBUF,#5
LJMPDK1A
NK6:
CJNEA,#0BH,NK7
MOVKEYBUF,#9
LJMPDK1A
NK7:
CJNEA,#07H,DK1A
MOVKEYBUF,#13
;CLR21H.7;
LJMPDK1A
NOKEY2:
MOVP3,#0FFH
CLRP3.6
MOVA,P3
ANLA,#0FH
XRLA,#0FH
JZNOKEY3
LCALLDELY10MS
MOVA,P3
ANLA,#0FH
XRLA,#0FH
JZNOKEY3
MOVA,P3
ANLA,#0FH
SETB20H.7
CJNEA,#0EH,NK9
MOVKEYBUF,#2
LJMPDK1A
NK9:
CJNEA,#0DH,NK10
MOVKEYBUF,#6
LJMPDK1A
NK10:
CJNEA,#0BH,NK11
MOVKEYBUF,#10
LJMPDK1A
NK11:
CJNEA,#07H,SCA
MOVKEYBUF,#14
LJMPDK1A
NOKEY3:
MOVP3,#0FFH
CLRP3.7
MOVA,P3
ANLA,#0FH
XRLA,#0FH
JZSCA
LCALLDELY10MS
MOVA,P3
ANLA,#0FH
XRLA,#0FH
JZSCA
MOVA,P3
ANLA,#0FH
SETB20H.7
CJNEA,#0EH,NK13
MOVKEYBUF,#3
LJMPDK1A
NK13:
CJNEA,#0DH,NK14
MOVKEYBUF,#7
LJMPDK1A
NK14:
CJNEA,#0BH,NK15
MOVKEYBUF,#11
LJMPDK1A
NK15:
CJNEA,#07H,SCA
MOVKEYBUF,#15
LJMPDK1A
SCA:
JNB20H.7,L1;判断是否有键按下
CLR20H.7;有键按下
MOVR5,KEYBUF;把键值存入R5中
CJNER5,#10,SCAN1;清零键
MOV50H,#00H
MOV51H,#00H
MOV52H,#00H
MOVR0,#50H
CLR21H.7;显示键值
LJMPL1
SCAN1:
CJNER5,#11,SCAN2;发送数据给乙机键
LCALLTXXY
LJMPL1
SCAN2:
CJNER5,#12,KEY;显示温度
SETB21H.7
LJMPL1
;SCAN3:
CJNER5,#13,KEY;显示键值
;CLR21H.7
;LJMPL1
KEY:
MOV@R0,KEYBUF;键值存到50H
INCR0
CJNER0,#53H,L1
MOVR0,#50H
L1:
RET
;---------------------延时子程序5ms----------
DELY10MS:
MOVR6,#5
D1:
MOVR7,#248
DJNZR7,$
DJNZR6,D1
RET
;-----------------------------------
;---------------延时---------------
delay:
movr7,#0FFH;
DE2:
movr6,#0FFH
DE1:
djnzr6,DE1
djnzr7,DE2
ret
;----------------------------------
;------------发送数据子程序(甲机通信协议)-------
TXXY:
;查询法
MOVSCON,#50H
MOVTMOD,#20H
MOVTH1,#232;1200bit/s
MOVTL1,#232
SETBTR1
LOOP1:
MOVA,#11H
MOVSBUF,A
JNBTI,$
CLRTI
JNBRI,$
CLRRI
MOVA,SBUF
XRLA,#11H
JNZLOOP1
LOOP3:
MOVR7,#3
MOVR1,#50H
MOVR6,#00H
LOOP:
MOVA,@R1
MOVSBUF,A
ADDA,R6
MOVR6,A
JNBTI,$
CLRTI
INCR1
DJNZR7,LOOP
JNBRI,$
CLRRI
MOVA,SBUF
XRLA,R6
JNZLOOP2
MOVA,#22H
MOVSBUF,A
JNBTI,$
CLRTI
SJMP$
LOOP2:
MOVA,#33H
MOVSBUF,A
JNBTI,$
CLRTI
LJMPLOOP3
RET
;---------------------
;-----------温度显示子程序-----
;**************18B20程序************
WD_18B20:
CLRP3.6
LCALLINIT_18B20
LCALLGET_TEMPER
AJMPCHANGE
ret
;----------------------------
;------------------读出转换后的温度值
GET_TEMPER:
LCALLINIT_1820;初始化程序
SETBDQ;定时入口
BCD:
JBFLAG1,S22
LJMPBCD;若DS18B20不存在则返回
S22:
LCALLDELAY1
MOVA,#0CCH;跳过ROM匹配------0CC
LCALLWRITE_1820
MOVA,#44H;发出温度转换命令
LCALLWRITE_1820
NOP
LCALLDELAY
LCALLDELAY
CBA:
LCALLINIT_1820
JBFLAG1,ABC
LJMPCBA
ABC:
LCALLDELAY1
MOVA,#0CCH;跳过ROM匹配
LCALLWRITE_1820
MOVA,#0BEH;发出读温度命令
LCALLWRITE_1820
LCALLREAD_18200;或者READ_1820
RET
;------------------读DS18B20的程序,从DS18B20中读出一个字节的数据
READ_1820:
MOVR2,#8
RE1:
CLRC
SETBDQ
NOP
NOP
CLRDQ
NOP
NOP
NOP
SETBDQ
MOVR3,#7
DJNZR3,$
MOVC,DQ
MOVR3,#23
DJNZR3,$
RRCA
DJNZR2,RE1
RET
;-------------------写DS18B20的程序
WRITE_1820:
MOVR2,#8
CLRC
WR1:
CLRDQ
MOVR3,#6
DJNZR3,$
RRCA
MOVDQ,C
MOVR3,#23
DJNZR3,$
SETBDQ
NOP
DJNZR2,WR1
SETBDQ
RET
;-------------------读DS18B20的程序,从DS18B20中读出两个字节的温度数据
READ_18200:
MOVR4,#2;将温度高位和低位从DS18B20中读出
MOVR1,#36H;低位存入36H(TEMPER_L),高位存入35H(TEMPER_H)
RE00:
MOVR2,#8
RE01:
CLRC
SETBDQ
NOP
NOP
CLRDQ
NOP
NOP
NOP
SETBDQ
MOVR3,#7
DJNZR3,$
MOVC,DQ
MOVR3,#23
DJNZR3,$
RRCA
DJNZR2,RE01
MOV@R1,A
DECR1
DJNZR4,RE00
RET
;-------------------将从DS18B20中读出的温度数据进行转换
TEMPER_COV:
MOVA,36H
CLRC
RRCA
JNCJj1
MOV52H,#05H
SJMPJj2
Jj1:
MOV52H,#00H;小数位
Jj2:
MO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 接口 技术 试验报告 解剖