1、8.1 I/O接口技术概述接口技术概述l数字计算机系统CPU对外设的控制、处理,或者CPU与各种外设之间交换数据信息,往往是通过挂在系统总线上的接口电路实现的。在单片机诞生之前就有接口电路的概念,早期专指外部设备与CPU总线相连的电路。l接口技术指的就是这部分电路相应的硬件和软件技术。 8.2 单片机与单片机与LED显示器的接口技显示器的接口技术术 1)单个)单个LED的控制的控制 2)多个)多个LED的控制的控制 l例8.1利用图8-2电路实现“跑马灯”功能,使8个指示灯循环点亮。 LIGHTEQU62H ORG0000HAJMPSTARTORG0030H START:MOVSP,#30HC
2、LRP1.0CLRP1.1CLRP1.2CLRP1.3MOVLIGHT,#01HNOP MAIN:LCALLFLY_LEDLCALLDELAYAJMPMAIN FLYLED:MOVA,LIGHTCLRCRLCACPLCMOVP1.0,CSETBP1.1NOPCLRP1.1 SETBP1.2NOPCLRP1.2CJNEA,#0,FLYCONMOVA,#01H FLYCON:MOVLIGHT ,ARET8.2.2 单片机与单片机与LED数码管显示器数码管显示器的接口的接口 LED显示器的串行静态控制电路显示器的串行静态控制电路 l例8.2假定需输出显示的数据存储在内部RAM以LEDDATA命名的2
3、个存储单元中,试基于图8-4所示的控制电路编写数码管显示程序。 nLEDO:MOVR0,#LEDDATAnMOVR1,#2nOUT1:MOVA,R0nMOVR2,#8nOUT2:RLCAnMOVP1.0,CnSETB P1.1nNOPnCLRP1.1nDJNZ R2,OUT2nINCR0nDJNZ R1,OUT1nSETB P1.2nNOPnCLRP1.2nRETLED显示器的并行动态控制电路显示器的并行动态控制电路 nD_DAT0EQU6AHnD_DAT1EQU6BHnD_DAT2EQU6CHnD_DAT3EQU6DH ORG0000HnAJMPSTART ORG0030H START:MO
4、VSP,#30H MOVD_DAT0,#0 MOVD_DAT1,#1 MOVD_DAT2,#2 MOVD_DAT3,#3 MOVD_DAT2,#4 MOVD_DAT3,#5MOVP0,#0CLRP1.1CLRP1.2MOVR0,#D_DAT0MOVR1,#01HNOP MAIN:LCALLDISPLCALLDELAYAJMPMAIN DISP:MOVA,R1 MOVP0,ASETBP1.1NOPCLRP1.1 MOVA,R0MOVDPTR,#DISPDMOVCA,A+DPTRMOVP0,ASETBP1.2NOPCLRP1.2INCR0 MOVA,R1CLRCRLCAMOVR1,AJNBACC.
5、4,DISP1 MOVR0,#D_DAT0MOVR1,#1DISP1:RET;数字笔画代码表;数字笔画代码表l; 0 1 2 3lDISPD:DB 3FH,06H,5BH,4FH,8.4 单片机与按键的接口技术单片机与按键的接口技术 l例8.5将3个按键设计为一个实用的温度控制系统的按键功能,通过按键设定一个上限值和一个下限值。 lKBMEQU63HlD_MAXEQU64HlD_MINEQU65HlT_DAT0EQU66HlT_DAT1EQU67Hl l MOVKBM,#0lMOVD_MAX,#80lMOVD_MIN,#70lMOVT_DAT0,#66lMOVT_DAT1,#0lMOVH_DA
6、T0,T_DAT0lMOVH_DAT1,T_DAT1lLCALLHTDlMAIN:LCALLDISPLCALLDELAY l JBP1.7,KEY1lLCALLDISPlLCALLDELAYlJBP1.7,KEY1lINCKBMlMOVA,KBMlCJNEA,#3,KEY01lMOVKBM,#0lKEY01:NOPlAJMPKEND lKEY1:JBP1.6,KEY2LCALLDISPlLCALLDELAYlJBP1.6,KEY2lMOVA,KBMlCJNEA,#1,KEY11lINCD_MAXlAJMPKENDlKEY11:CJNEA,#2,KEY12lINCD_MINlKEY12:AJMP
7、KEND 8.7 单片机与单片机与A/D转换器的接口技转换器的接口技术术l工程实际中需要测量的信号,一般都是模拟信号,而计算机系统只能对数字信号进行运算、处理和存储。因此要用计算机系统测量模拟信号,必须先将模拟电压信号转换为数字信号,这一过程称为模/数(A/D)转换。A/D转换原理转换原理 输入模拟信号电压范围比较器输出Q2 Q1 Q0转换结果输出D1 D00(1/4)VREF0 0 00 0(1/4)(2/4)VREF0 0 10 1(2/4)(3/4)VREF0 1 11 0(3/4)(4/4)VREF1 1 11 12、采样/保持电路 3、模拟多路开关 CD405110位位A/D转换器件
8、转换器件TLC1551及应及应用用 TLC1551D0D7MCS51D8D9/CS/RD/WREOCP0.07P2.0P2.1P1.0P1.1P1.2P1.3VDD1VDD2REF- AGNDVrfREF+ VDD3GND1GND2VCC时序图时序图lADC:CLRP1.0lCLRP1.2lNOPlSETBP1.2lSETBP1.0lADCON:JBP1.3,$l CLRP1.0lCLRP1.1lMOVADCL,P0lMOVADCH,P2 lSETBP1.1lSETBP1.0lRET 10位位A/D转换器件转换器件TLC1543及应及应用用 时序图时序图lAD_ADDREQU 21HlAD_D
9、AT0EQU 64HlAD_DAT1EQU 65HlMAIN:lCLRP1.7lCLRP1.5lCLRP1.4lMOVAD_ADDR,#0lLCALLAD_ClLCALLAD_C lAD_C:CLRP1.4l MOVA,#00Hl MOVC,0BHlMOVP1.6,ClSETBP1.7l;第一个时钟信号lMOVC,P1.5lRLCAlCLRP1.7l MOVC,0AHlMOVP1.6,ClSETBP1.7l;第二个时钟信号l MOVC,P1.5lRLCAlCLRP1.7lMOVAD_DAT1,AlMOVA,#00Hl MOVC,09HlMOVP1.6,ClSETBP1.7l;第三个时钟信号lM
10、OVC,P1.5lRLCAlCLRP1.7l MOVC,08Hl MOVP1.6,ClSETBP1.7l;第四个时钟信号l MOVC,P1.5lRLCAlCLRP1.7lCLRP1.6lSETBP1.7l;第五个时钟信号lMOVC,P1.5lRLCAlCLRP1.7lSETBP1.7l;第六个时钟信号l l;第十个时钟信号lMOVC,P1.5lRLCAlCLRP1.7lMOVAD_DAT0,AlSETBP1.4lRET8.8 单片机与单片机与D/A转换器的接口技转换器的接口技术术 l在利用计算机的电气测量与控制系统中,有时只要将测量、计算的结果以数字量的方式显示、存储,或者直接以数字信号输出的
11、方式控制输出开关,起到控制的作用;有时则需将数字信号转换成模拟电压信号输出。将数字信号转换成模拟电压信号的过程称为数/模(D/A)转换。 D/A转换原理l 一个多位二进制数中每一位的1所代表的数值大小称为这一位的权。如果一个n位二进制自然数用l aDn-1Dn-2D1D0 B 表示l从最高位Dn-1(简写作MSB)到最低位D0 (简写作LSB)的权依次为l2n-1、2n-2、21、20。 )2222(2001122334DDDDVuREFol显然上式括号中的值即为输入二进制数值,也就是说输出模拟电压值对应于输入二进制数值。增加权电阻和电子开关的数量,就可以增加输入数据的位数,输出模拟电压值能够
12、反映更多位数输入二进制数字的值,从而提高D/A转换的精度。 并行接口8位D/A转换器件DAC0832lDAC0832是采用CMOS工艺制成的电流输出型8位数/模转换器,是一种较早出现,至今仍应用较广泛的一种D/A转换器件。 0832工作原理工作原理P0.07ALEP2.7MCS515730832LE/CSD07/OE/WR1地址译码P2.6P2.5P2.4/WR/WR2+-IOUT1IOUT2RFB电压输出/XFERILEDGNDAGNDVCCVCCVREFVRFl片选信号由高4位地址信号译码产生。假定连接到DAC0832的地址为0A800H,则向该地址写数据,就能够产生相应的D/A输出。例如
13、执行指令:lMOVDPTR,#0A800HlMOVA,#100lMOVXDPTR,Al就能够将数值100转换为相应的电压信号输出。 串行接口10位D/A转换器件TLC5617lTLV5617A 是带有灵活3 线串行接口的双10 位电压输出数/模转换器件。串行接口可与串行外设接口SPI兼容,也可用串行16 位字符方式接口。MCS51没有串行外设接口SPI,只能采用采用字符方式接口的方法。时序图时序图D15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0R1SPDPWRR0MSB 10 Data bits LSB00lSPD:速度控制位l 1 快速方式 0 慢速方式l当设定为
14、快速方式,转换时间为2.5s,当设定为慢速方式,转换时间为12slPWR:功率控制位,若不进行D/A转换,可以使器件处于关断(不工作)状态以省电l 1 低功耗省电状态 0 正常工作状态l在上电时,SPD和 PWR都被复位为 0(设定为慢速方式和正常工作状态) lR1、R0:寄存器操作选择位l00写数据到DAC B寄存器和缓冲寄存器l01写数据到缓冲寄存器l10写数据到DAC A寄存器并且用缓冲寄 l 存器内容更新DAC B寄存器l11保留 在TLV5617A内部有3个数据寄存器: DAC A数据寄存器用于存放A路D/A转换的数据,当将A路需转换的数据写入DAC A寄存器时,即启动A路D/A转换
15、; DAC B数据寄存器用于存放B路D/A转换的数据,当将B路需转换的数据写入DAC B寄存器时,即启动B路D/A转换; 另外还有一个缓冲寄存器,当先将B路需转换的数据写入缓冲寄存器,再将A路需转换数据写到DAC A寄存器并且同时用缓冲寄存器内容更新DAC B寄存器,就能够实现两路D/A转换同步启动。 例8.11 电路连接如图8-34所示,定义4个变量存储单元DATA_AH、DATA_AL和DATA_BH、DATA_BL,分别存放需D/A转换输出的两个10位数据,其中高位字节只有最低2位有效。将这两个10位数据,通过TLC5617的OUTA、OUTB转换为模拟电压输出,请编写程序实现 。 DA
16、TA_ALEQU60H DATA_AH EQU61H DATA_BL EQU62H DATA_BH EQU63H DA_C:MOVR2,#2 CH1:CLRCMOVA,DATA_ALRLCAMOVDATA_AL,AMOVA,DATA_AHRLCAMOVDATA_AH,ADJNZR2,CH1 MOVR2,#2 CH2:CLRCMOVA,DATA_BLRLCAMOVDATA_BL,AMOVA,DATA_BHRLCAMOVDATA_BH,ADJNZR2,CH2 CLRP3.7 MOVR2,#8 MOVA,DATA_BH ORA,#10H SBYTE1:RLCAMOVP3.4,CSETBP3.5NOPCLRP3.5DJNZR2,SBYTE1 MOVR2,#8 MOVA,DATA_BL SBYTE2:RLCAMOVP3.4,CSETBP3.5NOPCLRP3.5DJNZR2,SBYTE2 SETBP3.7NOP CLRP3.7 MOVR2,#8 MOVA,DATA_AH ORA,#80H SBYTE3:RLCAMOVP3.4,CSETBP3.5NOPCLRP3.5DJNZR2,SBYTE3 MOVR2,#8 MOVA,DATA_AL SBYTE4:RLCAMOVP3.4,CSETBP3.5NOPCLRP3.5DJNZR2,SBYTE4SETBP3.7RET
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。