单片机接口技术3_第1页
单片机接口技术3_第2页
单片机接口技术3_第3页
单片机接口技术3_第4页
单片机接口技术3_第5页
已阅读5页,还剩190页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1.接口的功能3.MCS-51的并行接口MCS-51的串行接口TIRB8TB8RISM0SM1SM2REN串行口工作方式选择位M1 M0 功能说明0 0 方式0,移位寄存器方式(用于I/O口扩展)0 1 方式1,8位字符,波特率可变(T1溢出率* 2smod.f/32)1 0 方式2, 9位字符,波特率为2smod.f/321 1 方式3, 9位字符,波特率可变(T1溢出率* 2smod.f/32)允许方式2和3得多及通信控制位 。在方式2、3中,若SM2=1,则接受到的第9位数据RB8=0时,不激活RI。在方式1,若=1,则只有受到有效的停止位,才会激活RI。在方式0,设置SM2=0允许串行

2、接受位 。REN=1时允许接受;REN=0时禁止接受在方式2、方式3时发送的第9位数据,需要时,由软件置位或复位在方式2、方式3时接受到的第9位数据。在方式1时,若SM2=0,RB8是接受到的停止位。方式0不使用RB8发送中断标志位。由硬件在方式0串行发送第8位的结束时置位,或在其他方式串行发送停止位的开始时置位。必须由软件清0接受中断标志位。由硬件在方式0串行接受第8位的结束时置位,或在其他方式串行接受到停止位的中间置位。必须由软件清0SMOD串行口波特率系数控制位。SMOD=1时,波特率加倍n设计一个发送程序,将50H5FH的数据块从串口输出。现将串行口定义为工作方式2发送,TB8作为奇偶

3、校验位。TIRB8TB8RISM0 SM1 SM2 REN00001000n工作方式2 SCON初始化参数的确定n取波特率=晶振频率/32,PCON初始化参数的确定SMOD00001000波特率=晶振频率/32n MOV R0, #50H; n MOV R7, #10HnLOOP: MOV A , R0n MOV C , P ;奇偶校验位n MOV TB8 , Cn MOV SBUF, A;数据送SBUF,启动发送nWAIT: JBC TI , CONT ;判断发送标志位n SJMP WAITnCONT: INC R0 n DJNZ R7, LOOPn RETn TIRB8TB8RISM0 S

4、M1 SM2 REN00001101n工作方式3 SCON初始化参数的确定nPCON初始化参数的确定SMOD00000000实验二串行静态显示实验 n利用89C51串行口和8个串行输入并行输出移位寄存器74LS164,扩展8个8位输出通道,用于驱动8个LED数码显示器。8LED显示“89C52”。 n串行口工作在方式0时,可通过外接移位寄存器实现串并行转换。在这种方式下,数据为8位,只能从RXD端输入输出,TXD端总是输出移位同步时钟信号,其波特率固定为晶振频率1/ 12。由软件置位串行控制寄存器(SCON)的REN后才能启动串行接收,在CPU将数据写入SBUF寄存器后,立即启动发送。待8位数

5、据输完后,硬件将SCON寄存器的TI位置1,TI必须由软件清零。n数码管的工作原理abgfhdehgfedcba共阳极hgfedcba共阴极c.数码管显示器接口电路n(b).数码管的显示代码显示字符h g f e d c b a显示代码01234567890 0 1 1 1 1 1 10 0 0 0 0 1 1 00 1 0 1 1 0 1 10 1 0 0 1 1 1 10 1 1 0 0 1 1 00 1 1 0 1 1 0 10 1 1 1 1 1 0 10 0 0 0 0 1 1 10 1 1 1 1 1 1 10 1 1 0 1 1 1 13FH06H5BH4FH66H6DH7DH0

6、7H7FH6FH89C51RXDABCLKQ0Q7ahvcc74LS164TXDA1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9VCC14GND774LS164R1I51DINCLKabfcgdeDPYa1b2c3d4e5f6g7dp8dp910R2I51abfcgdeDPYa1b2c3d4e5f6g7dp8dp910R3I51abfcgdeDPYa1b2c3d4e5f6g7dp8dp910R4I51abfcgdeDPYa1b2c3d4e5f6g7dp8dp910A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9VCC14GND774L

7、S164A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9VCC14GND774LS164A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9VCC14GND7874LS164A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9VCC14GND774LS164A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9VCC14GND774LS164A1B2Q03Q14Q25Q36Q410Q511Q612Q713CLK8MR9VCC14GND774LS164A1B2Q03Q14Q25Q36Q410

8、Q511Q612Q713CLK8MR9VCC14GND774LS164R5I51abfcgdeDPYa1b2c3d4e5f6g7dp8dp910R6I51abfcgdeDPYa1b2c3d4e5f6g7dp8dp910R7I51abfcgdeDPYa1b2c3d4e5f6g7dp8dp910R8I51abfcgdeDPYa1b2c3d4e5f6g7dp8dp910VCCA3VCCA3VCCA3VCCA3VCCA3VCCA3VCCA3VCCA3a1a2a3a4a5a6a7a8b1b2b3b4b5b6b7b8c1c2c3c4c5c6c7c8d1d2d3d4d5d6d7d8e1e2e3e4e5e6e

9、7e8f1f2f3f4f5f6f7f8g1g2g3g4g5g6g7g8dp1dp2dp3dp4dp5dp6dp7dp8a1b1c1d1e1f1g1dp1a2b2c2d2e2f2g2dp2a3b3c3d3e3f3g3dp3a4b4c4d4e4f4g4dp4a5b5c5d5e5f5g5dp5a6b6c6d6e6f6g6dp6a7b7c7d7e7f7g7dp7a8b8c8d8e8f8g8dp8dp1dp2dp3dp5dp6dp7dp4n ; 串行静态显示 DISP1.ASM 8LEDn ; P3.0-DIN P3.1-CLKn DBUF0 EQU 30Hn TEMP EQU 40Hn DIN BIT

10、 P3.0n CLK BIT P3.1n ORG 0000Hn LJMP STARTn ORG 0100HnSTART:n MOV 30H,#10hn MOV 31H,#10Hn MOV 32H,#10hn MOV 33H,#8n MOV 34H,#9n MOV 35H,#0cHn MOV 36H,#5n MOV 37H,#2n DISP:MOV R0, #DBUF0n MOV R1, #TEMPn MOV R2, #8n DP10:MOV DPTR,#SEGTABn MOV A, R0n MOVC A, A+DPTRn MOV R1, An INC R0n INC R1n DJNZ R2,

11、DP10n MOV R0, #TEMPn MOV R1, #8n DP12:MOV R2, #8n MOV A, R0n DP13:RLC An MOV DIN, Cn CLR CLKn SETB CLKn DJNZ R2, DP13n INC R0n DJNZ R1, DP12n OK: SJMP OKnSEGTAB: DB 3FH,06H,5BH,4FH,66H,6DHn DB 7DH,07H,7FH,6FH,77H,7CHn DB 39H,5EH,7BH,71H,00H,40Hn ENDTXDRXD89C511#从机TXDRXD89C51主机TXDRXD89C513#从机TXDRXD89

12、C512#从机多单片机通信方式上位机(IPC)RS232C电平转换89C51控制对象RS232C电平转换89C51控制对象RS232C电平转换89C51控制对象.RS232C两级控制方案单片机与PC机通信电路 P2.1P2.0P0.7P0.6P0.5P0.4P0.3P0.2P0.1P0.0118D1D8D1DCLOCKCLEAR VCCVCC/1G /2GGNDGND8Q1Q1Q8Q+5V+5V/RD/WR89C5174LS27374LS244口地址的确定nP0,P2口未作为地址线的引脚取值均为1n作为选通信号线的引脚必须确保唯一选中该接口的取值。P2.7 P2.6 P2.5 P2.4 P2.

13、3 P2.2 P2.1 P2.0 P0.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 174LS27374LS24474LS273口地址为FEFFH74LS244口地址为FDFFH接口的使用n把接口作为外部数据存储器一样使用。n例如:从74LS244口读入数据,再通过74LS273口输出,则程序段如下:nLOOP: MOV DPTR , #FDFFHn MOVX A , DPTRn MOV DPTR , #FEFFHn MOVX DPTR ,

14、An SJMP LOOP 2. 键盘接口键盘接口q按键的特点及输入原理q独立式按键q矩阵式按键按键的特点及输入原理n按键的分类:按键的分类: 触点式:机械;无触点式:电气触点式:机械;无触点式:电气n键输入原理:键输入原理: 通过按键的接通与断开,产生两种相反的逻辑通过按键的接通与断开,产生两种相反的逻辑状态状态 低电平低电平“0 0”与与高电平高电平“1 1”。 n键功能的实现:键功能的实现: 对于一组键或一个键盘,需通过接口电路与单对于一组键或一个键盘,需通过接口电路与单片机相连。可采用查询或中断方式测试有无键按下片机相连。可采用查询或中断方式测试有无键按下,再确定是哪一个键按下,将该键号

15、送入累加器,再确定是哪一个键按下,将该键号送入累加器ACCACC,然后判断是数字键还是功能键,若是数字键,然后判断是数字键还是功能键,若是数字键,则将键号对应的数字送入相关输入缓冲区;若是,则将键号对应的数字送入相关输入缓冲区;若是功能键,则通过跳转指令转入执行该键的功能程序功能键,则通过跳转指令转入执行该键的功能程序,执行完后再返回主程序。,执行完后再返回主程序。 键盘接口需要解决的问题n是否有键按是否有键按下下n按键识别:按键识别:n键抖动及消除:键抖动及消除:n机械按键抖动时间在机械按键抖动时间在5 5msms10ms10ms之之间间&Q4.7K4.7KKabcc(+5V)n 硬件方案硬

16、件方案双稳态去抖电路双稳态去抖电路n 软件方案软件方案延时延时10ms10ms20ms20ms后再次判断后再次判断n消除方法消除方法:n求键号求键号独立式按键独立式按键8 0 3 1P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7Vc cn接口电路:n例例1 1:用:用P1P1口检测三个按键的状态并完成相应的功口检测三个按键的状态并完成相应的功能能n解:n资源分配:n用P1口的低3位检测3个按键的输入,为1则表示按键没有按下,为0则表示相应按键被按下。n流程图: ORG 0000HKB: MOV P1,#0FFH MOV A,P1 CPL A ANL A,#0FH JZ KB

17、LCALL D10MS MOV A,P1 CPL A ANL A,#0FH JZ KB CJNE A,#01H,KB01 LCALL PGM1 SJMP KBKB01:CJNE A,#02H,KB02 LCALL PGM2 SJMP KBKB02:CJNE A,#04H,KB LCALL PGM3 SJMP KB ENDn编程:按三个按键中的任一键都对应一个特定功能。n若判断键释放应如何修改?矩矩阵阵式式按按键键n关键:如何关键:如何判断键号?判断键号?n3n2n1n0n4n7n6n5n11n10n9n8n15n14n13n12n+5VnP1.4nP1.3nP1.0nMCS-51nP1.7nP

18、1.6nP1.5nP1.2nP1.1n接口电路:n键盘扫描子程序一般包括以下内容:n 1.判别有无键按下;n 2.扫描获取闭合键的行、列值;n 3.用计算法或查表法得到键值;n 4.判断闭合键释放否,如没释放则继续等待;n 5.保存闭合键号。键按下键按下/ /释放判断释放判断n KS: MOV A,#00Hn MOV P1,A ;全扫描字#00H送P1口n MOV P1,#0FH n MOV A,P1 ;读入P1口状态n CPL A ;变正逻辑,高电平表示有键按下n ANL A,#0FH ;取低4位n RET ;返回,A0表示有键按下 按键识别扫描法 流程: 当第当第0 0列处于低电平时,列处

19、于低电平时,逐行逐行查找是否有行线变低,查找是否有行线变低,若有,则若有,则第第0 0列与该行的交叉点列与该行的交叉点按键按下;若无,则表示按键按下;若无,则表示第第0 0列无键按下,再让下一列处在低电平,依此循环,这列无键按下,再让下一列处在低电平,依此循环,这种方式称为种方式称为键盘扫描键盘扫描。 键号键号= =行首键号(行首键号(0 0、4 4、8 8、1212)+ +列号(列号(0 0、1 1、2 2、3 3) n 原理:n 在某一时刻只让在某一时刻只让一条列线一条列线处于处于低低电平,其余列线电平,其余列线均处于高电平,则当这一列有键按下时,该键所在的均处于高电平,则当这一列有键按下

20、时,该键所在的行电平将会由高电平变为低电平,可判定该列相应的行电平将会由高电平变为低电平,可判定该列相应的行有键按下。行有键按下。例2:键盘扫描程序SERCH: MOV R2,#0EFH MOV R3,#00H LINE0: MOV A,R2 MOV P1,A MOV A,P1 JB ACC.3,LINE1 MOV A,#00H AJMP TRYKLINE1: JB ACC.2,LINE2 MOV A,#04H AJMP TRYK LINE2: JB ACC.1,LINE3 MOV A,#08H AJMP TRYKLINE3: JB ACC.3,LINE4 MOV A,#0CH AJMP TR

21、YKLINE4: INC R3 MOV A,R2 RL A JNB ACC.0,BACK MOV R2,A AJMP LINE0 TRYK: ADD A,R3BACK: RETn定时扫描方式n 定时扫描方式就是每隔一段时间对键盘扫描一次,它利用单片机内部的定时器产生一定时间(例如10 ms)的定时,当定时时间到就产生定时器溢出中断。CPU响应中断后对键盘进行扫描,并在有键按下时识别出该键,再执行该键的功能程序。n中断扫描方式n 为提高CPU工作效率,可采用中断扫描工作方式。其工作过程如下:当无键按下时,CPU处理自己的工作,当有键按下时,产生中断请求,CPU转去执行键盘扫描子程序,并识别键号。

22、P1.0P1.1P1.3P1.2P1.4P1.5P1.6P1.7INT08031&PC31PC42TIMERIN3 RESET4PC55TIMEROUT6IO/M7/CE8 /RD9WR1021PA0 ALE11AD012AD113AD214AD315AD416AD517AD618AD719VS2022PA1 23PA2 24PA3 25PA4 26PA5 27PA6 28PA7 30PB1 29PB040VCC 39PC2 38PC1 37PC036PB735PB6 34PB5 33PB4 32PB3 31PB2 A7 A6 A5 A4 A3 A2 A1 A0 选中的寄存器X X X X X

23、 0 0 0命令/状态寄存器X X X X X 0 0 1通用I/O口AX X X X X 0 1 0通用I/O口BX X X X X 0 1 1C口(通用I/O口或控制口)X X X X X 1 0 0计数器的低8位X X X X X 1 0 1计数器的高6位和两位计数方式字P0.0P0.7AD0AD7ALEALEP2.4P2.3/WR/RDRESETIO/M/WR/RDRESET/CEVSSVCC89C51VSSVCC8155+5VPAPBPCTIMERINTIMEROUT接AD线I/O口和RAM地址的确定P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 P0

24、.7 P0.6 P0.5 P0.4 P0.3 P0.2 P0.1 P0.0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 0 1 1 1 1 0 0 0 0 0 1 0 0 1 1 1 0 1 1 1 1 0 0 0 0 0 1 0 1RAM首地址首

25、地址E700HRAM末地址末地址E7FFH命令命令/状态状态:EF00HA口口:EF01HB口口: EF02HC口口: EF03H计数器低计数器低8位位EF04H计数器高位和计数器高位和计数方式计数方式EF05H接片选信号线接IO/M信号线8155片内I/O口使用n(1) 命令寄存器的用法PBPC1PC2PATM2TM1IEBIEA0:A口输入1:A口输出0:B口输入1:B口输出1:允许A口中断0:禁止A口中断1:允许B口中断0:禁止B口中断00:C口输入11:C口输出01:A口选通I/O。PC0:AINTR; PC1:ABF;PC2:/ASTB。PC3PC5:输出10:A、B口选通I/O。

26、PC0:AINTR;PC1:ABF;PC2:/ASTB。 PC3:BINTR;PC4:BBF;PC5:/BSTB。00:空操作01:停止计数器工作10:若定时器正在计数,长度健为1时停止11:启动计数器工作8155片内I/O口使用n(2) 状态寄存器的用法ABFAINTEBINTRBINTRXTIMER BINTEBBFA口中断请求标志A口缓冲器空满标志B口中断请求标志B口缓冲器空满标志A口中断允许标志B口中断允许标志定时器中断标志(3) A口、B口、C口的使用n通过设置命令寄存器中的控制字来确定这3个口的工作方式n用指令 MOVX DPTR , A和n MOVX A , DPTR实现单片机与

27、接口之间的数据输入输出。(3) 8155的定时器n命令寄存器的最高位控制计数器的启动和停止计数:nTM2 TM1n0 0 空操作,不影响计数器操作n0 1 若计数器正在计数,计数器长度减为0时停n 止计数n1 0 若计数器不在计数状态时,装入计数器长n 度和计数方式后,立即开始计数;n 若计数器正在计数,待计数器溢出后以新n 装入计数器长和计数方式计数。(3) 8155的定时器n8155是一个14位的减法计数器,对输入脉冲进行减法计数,定时器由两个字节组成。n定时器有4种输出方式,由M2,M1两位定义。T9T10T11T8M2M1T13T12T1T2T3T0T7T6T5T4计数长度低位计数长度

28、高位及输出方式(3) 8155的定时器nM2 M1n0 0 单方波n0 1 连续方波n1 0 单脉冲n1 1 连续脉冲举例P0.0P0.7AD0AD7ALEALEP2.4P2.3/WR/RDRESETIO/M/WR/RDRESET/CEVSSVCC89C51VSSVCC8155+5VPAPBPCTIMERINTIMEROUT8位输入锁存器8位DAC寄存器8位DAC转换器&ILE/CS/WR1/WR2/XFERDI0DI7VREFIOUT2IOUT1RFBVCCAGNDDGNDn引脚功能nDI7DI0:数字量输入端数字量输入端n/CS:片选信号片选信号nILE:数据锁村允许信号:数据锁村允许信号

29、n/WR1:第第1写信号写信号n/WR2:第第2写信号写信号n/XFER:数据传输控制信号:数据传输控制信号nIOUT1:电流输出端电流输出端1nIOUT2:电流输出端电流输出端2nRBF:反馈电阻端:反馈电阻端nVREF:基准电压,基准电压,-10+10VnDGND:数字地:数字地nAGND:模拟地模拟地P0P2.7/WRID7ID0/CS/XFER/WR1/WR2IOUT2IOUT1RBFILE+5VVOUTAGND DGND-+89C51DAC0832DAC0832的口地址为的口地址为7FFFHn例:下图为DAC0832于89C51的连接电路。要求输出一个锯齿波信号。n ORG 1000

30、HnDIRE:MOV DPTR,#07FFFH; DAC0832口地址n MOV R0,#00H ; 输出数字量初值n mov a,r0nNEXT:MOVX DPTR, An INC R0; 数字量递增n MOV A, R0n NOP ; 延时n NOPn NOPn NOPn AJMP NEXTn ENDSTART CLK8位模拟开关8位A/D转换电路三态输出锁存器地址锁存与译码IN0IN7ABCALEVREF(+) VREF(-)D0D7EOCn引脚功能nIN7IN0:8个输入通道的模拟量输入端个输入通道的模拟量输入端nD0D7:8位数字量输出端位数字量输出端nSTART,ALE:START

31、为启动控制输入端,为启动控制输入端, ALE地址锁存控制信地址锁存控制信号端,可连接在一起,号端,可连接在一起,nEOC, OE :转换结束脉冲输出端;转换结束脉冲输出端;OE为输出允许控制端。可接为输出允许控制端。可接在一起。在一起。nVREF(+),VREF(-),VCC,GND:VREF为参考电源输入端;为参考电源输入端;VCC为主电源输入端,为主电源输入端,GND为地。可将为地。可将VREF(+)与与VCC连在一起;连在一起;VREF(-)与与GND连在一起。连在一起。nCLK:时钟输入端时钟输入端n引脚功能nA,B,C:8路模拟量的选通端,其对应关系如下:路模拟量的选通端,其对应关系

32、如下:C B A选通端0 0 00 0 11 1 1IN0IN1IN72021-10-2471nA/D转换接口编程示例【例10-4】 ADC0809与单片机的接口电路如图。2021-10-2472# include “reg51.h”# include “absacc.h”# define uchar unsigned char# define IN0 XBYTE0 x7ff8sbit ad_busy = P33; 2021-10-2473void ad0809(uchar idata *x) uchar i; uchar xdata * ad_adr; ad_adr = & IN0; for

33、(i = 0;i 8;i +) * ad_adr = 0; /*启动转换*/ i = i; /*延时等待*/ i = i; while(ad_busy ! = 0); xi = * ad_adr; /*存转换结果*/ ad_adr +; /*下一通道*/ 2021-10-2474void main(void) static uchar idata ad10 ; ad0809(ad); 实验三. 16位串行A/D转换芯片ADS1100 nADS1100是美国TI(Texas Instruments Incorporated)公司生产的全差分输入、16位分辨率、SOT236封装、有自校准功能的精密

34、A/D转换器,该芯片的内置自校准系统对于用户是透明的。ADS1100使用I2C串行接口以电源电压作用参考电压,片内可编程增益放大器(PGA)可提供最大的为8的增益,因此,即使在高分辨情况下也能采样到小信号,在单次转换模式下,ADS1100在一次转换结束后可自动关闭自身电源,因而可减少系统在空闲周期的电流消耗,由于ADS1100的易用性,故可以大大降低精密测量设备工作的工作量,ADS1100主要应用在空间和功耗方面要求比较严格的高分辨率采样测量电路中,其典型应用包括便携设备、工业过程控制和智能发射机等。ADS1100以其独特的精度特性可广泛应用便携设备、工业过程控制器、智能发射器、消费类产品、工

35、厂自动化设备和温度测量等系统之中。实验三. 16位串行A/D转换芯片ADS1100n2、技术性能、技术性能n(1)ADS1100的主要性能与特点:n16位无丢码; n8个地址范围; n有连续自校准功能;n单周期转换;n内部带有系统时钟; n具有I2C接口;n精度:0.0125(FSR MAX);n可编程增益放大器的增益可在1、2、4或8中进行选择;n低噪声:4Vpp;n可编程数据采样速率:8SPS128SPS; n电源电压为2.75.5V; n电流损耗可低至90A。实验三. 16位串行A/D转换芯片ADS1100n(2)ADS1100的极限参数,引脚功能和内部结构n为了保证器件的使用可靠性,在

36、设计时,建议在表1所列条件范围内使用ADS1100芯片,ADS1100的外部引脚图如图1所示,表2是其引脚功能说明。项目极限条件VDD至GND-0.3V6V输入电流100mA,瞬间输入电流10mA,持续到GND,VIN+、VIN-引脚的电压-0.3VVDD+0.3V到GND,SDA+、SCL-引脚的电压-0.5V6V 最高结温+150工作温度-40+85焊接温度+300引脚号引脚名称功能1VIN+输入正2GND地3SCL时钟线4SDA数据线5VDD电源6VIN-输入负图1:外部引脚图2:内部结构表1:极限参数表2:引脚功能说明实验三. 16位串行A/D转换芯片ADS1100n3、工作原理、工作

37、原理n(1)上电和复位 nADS1100上电时会自动复位并将控制字寄存器设置成默认值。此外,它也能响应I2C复位指令(全局调用复位指令GENERAL CALL RESET:地址字节是00H接着是数据字节06H),在接收到复位指令后,ADS1100将执行内部复位,此时如果正在转换,则中断,输出寄存器置0,并将控制字寄存器恢复默认值。实验三. 16位串行A/D转换芯片ADS1100n(2)ADS1100的I2C地址nADS1100的I2C地址是1001xxxB,其中xxx由厂家设定,ADS1100有8个不同的I2C地址(从000到111)。根据I2C的不同地址可分为8个独立器件,其各自封装的打标字

38、样(在芯片的顶部)如表所列。芯片名称I2C地址片上标识ADS1100A01001 000BAD0ADS1100A11001 001BAD1ADS1100A21001 010BAD2ADS1100A31001 011BAD3ADS1100A41001 100BAD4ADS1100A51001 101BAD5ADS1100A61001 110BAD6ADS1100A71001 111BAD7实验三. 16位串行A/D转换芯片ADS1100n(3)输出编码n输出编码是一个和输出电压成正比例的数,并与位数相关,而位数又与转换速率有关,SPS(sample per sencond)为每秒采样点数,它们的

39、对应如表所列。转换速率位数最小编码最大编码8SPS16-32,76832,76716SPS15-16,38416,38332SPS14-81928191128SPS12-20482047实验三. 16位串行A/D转换芯片ADS1100n对于给定的最小编码、PGA增益设置,正负输入端电压VIN和VIN、以及电源电压来说,输出编码可由表达式(1)给出,由于ADS1100集成了自校准系统且具有自校准功能,故可以补偿增益和失调所引起的误差,因此该表达式不必考虑这些参数。实验三. 16位串行A/D转换芯片ADS1100n注意,最大输出编码和最小输出编码的绝对值是不同的,位数为n的最大编码是2-1,最小编

40、码是12n1,另外,下表给出了不同输入电平所对应的输出编码。转换速率输入信号负满量程-1LSB0+1LSB正满量程8SPS8000HFFFFH0000H0001H7FFFH16SPSC000HFFFFH0000H0001H3FFFH32SPSE000HFFFFH0000H0001H1FFFH128SPSF000HFFFFH0000H0001H07FFH实验三. 16位串行A/D转换芯片ADS1100n(4)寄存器nADS1100有两个寄存器,输出寄存器和控制字寄存器,输出寄存器用于存放最后一次的转换结果,控制字寄存器则可以改变ADS1100的操作模式和进行状态查询。 na) 输出寄存器 n16

41、位的输出寄存器存储的是以二进制补码表示的最后一次的转换结果,在ADS1100复位或上电之后,输出寄存器清零,输出寄存器的格式如表所示。位1514131211109876543210名称D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0实验三. 16位串行A/D转换芯片ADS1100nb) 控制字寄存器n8位控制字寄存器用于控制ADS1100的工作模式,转换速率和PGA设置,控制字寄存器的格式如表所列,默认值是8CH。位76543210名称ST/BSY00SCDR1DR0PGA1PGA0实验三. 16位串行A/D转换芯片ADS1100n位7(ST/BSY):在单次转换模

42、式下,向ST/BSY写入1可使一次开始,写入0无影响,在连续转换模式下,ADS1100忽略写入ST/BSY的值。 另外,在单次转换模式下,如果ST/BSY读到了1值,表明A/D转换器正忙,即正在转换中;如果是0,则表明当前没有转换工作,输出寄存器保存的是最后一次的转换结果,在连续模式下,ST/BSY总是读到1。n位65:保留字。使用时必须设置成0。n位4(SC):用于控制ADS1100是连续转换模式还是单次转换模式,当SC为1时,ADS1100是单次转换模式(Single Conversion),为0则为连续转换模式,该位的默认值是0。n位32(DR);用于控制ADS1100的转换速率,见表所

43、列。DR1DR0转换速率00128SPS0132SPS1016SPS118SPS(默认值)实验三. 16位串行A/D转换芯片ADS1100n位10(PGA):用于ADS1100的增益设置,设置方法见表所列。 实验三. 16位串行A/D转换芯片ADS1100n4、工作模式、工作模式nADS1100有两种工作模式:连续转换模式和单次转换模式,连续转换模式下,当一次转换结束后,ADS1100将结果放入输出寄存器并立刻开始下一次转换,ST/BSY位在控制字寄存器中始终读到的是1。n如果是单次转换模式,则在ST/BSY位被置1后,ADS1100上电并执行一次转换,转换结束后,ADS1100会把结果放入输

44、出寄存器,并复位ST/BSY成0,关断电源。在转换中,ST/BSY置1无效,如果要从连续模式切换到单次模式,ADS1100可在执行完当前转换后ST/BSY置0,然后断电。实验三. 16位串行A/D转换芯片ADS1100n5、读、读/写操作写操作 nADS1100的输出寄存器和控制字寄存器的内容是可读的。要读ADS1100,可将其设为读状态(7位的ADS1100地址后加1位高电平有效的读信号,高位在前,如ADS1100A0则是10010001),以读取三个字节的内容,其中前两个字节是输出寄存器的内容(高位在前),第三个字节是控制字寄存器的内容(高位在前,从第四个字节开始起均为FFH。如果只想知道

45、输出寄存器的内容是否合理,可仅读取前两个字节而忽略其后的字节。nADS1100的输出寄存器是只读的,只能向控制字寄存器写内容,写的方法是将ADS1100设置为写(在ADS1100地址后加1位低电平有效的写信号,高位在前),然后写入一个字节(高位在前)。ADS1100忽略在第一个字节以后的内容。实验三. 16位串行A/D转换芯片ADS1100n6、应用实例、应用实例 n(1)基本连接 n因为ADS1100的输入只能接受正电压,因此两个模拟量输入端都接正电压,由于ADS1100在转换时会从电源拉电流而产生短暂的尖脉冲,因此要在电源端加旁路电容。由于SDA和SCL端是漏极开路结构,故也需要接上拉电阻

46、。P2.0P2.1P1.0P1.1接串静态led显示器89c51ADS1100VDDGNDSDASCLVCCGNDVin-Vin+GND被采样信号VCCVCCGND程序设计ninclude n#include n#include n#include nvoid Init_ads1100(unsigned char mdata);nunsigned int Rd_ads1100(void);n/*延时*/nvoid delay(uchar x)nn uchar i,j;n for(i=0;ix;i+)n for(j=0;j=32768) Volt = 0; / 屏蔽最高位n Volt=Volt/

47、64; / 数据处理:舍弃最后4位n Led_Disp(Volt); / 数据显示n delay(30);n nn/*/n/* ADS1100.c */n/*/n#include n#include n#include n/-内部函数-nvoid Delay(void);nvoid Start(void);nvoid Stop(void);nvoid WriteACK(unsigned char ack);nvoid WaitACK(void);nvoid writebyte(unsigned char wdata);nunsigned char Readbyte(void);n/-n/*n初

48、始化ads1100(0 x8C)-外部调用,转换12位n*/nvoid Init_ads1100(unsigned char mdata)nn Start();n writebyte(0 x90);单次转换n writebyte(mdata);n Stop();nn/*n读数据-外部调用n*/nunsigned int Rd_ads1100(void)nn unsigned char H_AD; /H_AD 用于存储高八位A/D转换结果n unsigned char L_AD; /L_AD 用于存储低八位A/D转换结果n unsigned int T_AD; /T_AD 用于存储总的A/D转换

49、结果n Start();n writebyte(0 x91); /*写命令*/n H_AD=Readbyte();n WriteACK(0);n L_AD=Readbyte();n WriteACK(1);n Stop();n T_AD=(0 x00ff&H_AD)8|L_AD;n return T_AD;nn/*n内部函数,延时1n*/nvoid Delay(void)nn _nop_();n _nop_(); /*根据晶振频率制定延时时间*/nn/*n内部函数,I2C开始n*/nvoid Start(void)nn EA=0;n SDA=1;n SCL=1;n Delay();n SDA=

50、0;n Delay();n SCL=0;nn/*n内部函数,I2C结束n*/nvoid Stop(void)nn SDA=0;n SCL=0;n Delay();n SCL=1;n Delay();n SDA=1;n Delay();n EA=1;nn/*n内部函数,输出ACK ,每个字节传输完成,输出ack=0,结束读数据,ack=1;n*/nvoid WriteACK(unsigned char ack)nn SDA=ack;n Delay();n SCL=1;n Delay();n SCL=0;nn/*n内部函数,等待ACKn*/nvoid WaitACK(void)nn unsigne

51、d char errtime=20;n SDA=1;n Delay(); /*读ACK*/n SCL=1;n Delay();n while(SDA)n n errtime-;n if(!errtime) Stop();n n SCL=0;n Delay();nn/*n内部函数.输出数据字节n入口:B=数据n*/nvoid writebyte(unsigned char wdata)nn unsigned char i;n for(i=0;i8;i+)n n if(wdata&0 x80) SDA=1;n else SDA=0;n wdata=1;n SCL=1;n Delay();n SCL

52、=0;n n WaitACK(); /I2C器件或通讯出错,将会退出I2C通讯nn/*n内部函数.输入数据n出口:Bn*/nunsigned char Readbyte(void)nn unsigned char i,bytedata;n SDA=1;n for(i=0;i8;i+)n n SCL=1; n bytedata=1;n bytedata|=SDA;n SCL=0;n Delay();n n return(bytedata);nn/-ADS1100.H END-实验四 DS18B20温度传感器实验 n实验目的实验目的n了解温度传感器电路的工作原理n了解温度控制的基本原理n掌握一线总

53、线接口的使用数字温度传感器DS18B20简介 nDallas 半导体公司的数字化温度传感器DS1820是世界上第一片支持 “一线总线”接口的温度传感器。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。与前一代产品不同,新的产品支持3V5.5V的电压范围,使系统设计更灵活、方便。数字温度传感器DS18B20简介nDS18B20测量温度范围为 -55C+125C,在-10+85C范围内,精度为0.5C。DS18B20可以程序设定912位的分辨率,及用户设定的报警温度存储在EEPROM中,掉电后依然

54、保存。数字温度传感器DS18B20简介nDS18B20内部结构nDS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。DS18B20的管脚排列如下:nDQ为数字信号输入/输出端;GND为电源地;VDD为外接供电电源输入端(在寄生电源接线方式时接地)。nDS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为符号位。Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0232221202-12-22-32-4nLS Byte:nMS

55、Byte:Bit15Bit14Bit13Bit12Bit11Bit10Bit9Bit8SSSSS262524n这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘以0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘以0.0625即可得到实际温度。n例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。温度数据输出(二进制)数据输出(十六进制)+1250000 0111

56、1101 000007D0h+850000 0101 0101 00000550h+25.06250000 0001 1001 00010191h+10.1250000 0000 1010 001000A2h+0.50000 0000 0000 10000008h00000 0000 0000 00000000h-0.51111 1111 1111 1000FFF8h-10.1251111 1111 0101 1110FF5Eh-25.06251111 1110 0110 1111FE6Fh-551111 1100 1001 0000FC90hDS18B20温度传感器的存储器nDS18B20温

57、度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的E2RAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。n暂存存储器包含了8个连续字节,前两个字节是测得的温度信息,第一个字节的内容是温度的低八位,第二个字节是温度的高八位。第三个和第四个字节是TH、TL的易失性拷贝,第五个字节是结构寄存器的易失性拷贝,这三个字节的内容在每一次上电复位时被刷新。第六、七、八个字节用于内部计算。第九个字节是冗余检验字节。n该字节各位的意义如下: TMR1R011111n低五位一直都是1 ,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为

58、0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)n分辨率设置表: R1R0分辨率温度最大转换时间009位93.75ms0110位187.5ms1011位375ms1112位750msn根据DS18B20的通讯协议,主机控制DS18B20完成温度转换必须经过三个步骤:每一次读写之前都要对DS18B20进行复位,复位成功后发送一条ROM指令,最后发送RAM指令,这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500微秒,然后释放,DS18B20收到信号后等待1660微秒左右,后发出60240微秒的存在低脉冲,主CPU收到此信号表示

59、复位成功。n本实验在读取温度的基础上,完成类似空调恒温控制的实验。用加热电阻代替加热电机。温度值通过LED静态显示电路以十进制形式显示出来,制冷采用自然冷却。本实验需要用到单片机最小应用系统(F1区)、串行静态显示(I3区)和温度传感器模块(C3区)。CONTROL接最小应用系统P1.4, DS18B20的DQ接最小应用系统P2.0,最小系统的P1.0,P1.1接串行静态显示的DIN,CLK端。12D1 CI N4 0 0 7+1 2 V213T2 C9 0 1 3VC C+1 2 VS1 CC ONTR OL+1 2 VR1 4 C7 5 / 2 W+1 2 VC 3 C0 . 1 u F1

60、2354678J DQ1 0 0J DQA1K2C8E7U3 CTLP5 2 1C ONTR OL213T1 C9 0 1 3R 8 C1 KR 7 C1 0 KR 9 C1 0 KR 1 0 C1 0 0 KR 1 1 C2 2 KR 1 2 C1 0 0R 1 3 C2 . 2 KP1.489C51VCCVDDDQGNDDS18B20P2.0 接串静态led显示器P1.0P1.1DINCLK参考程序;单片机内存分配申明! TEMPER_L EQU 29H ;用于保存读出温度的低8位 TEMPER_H EQU 28H ;用于保存读出温度的高8位 FLAG1 EQU 38H ;是否检测到DS1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论