单片机原理及应用(C语言版)9PPT课件_第1页
单片机原理及应用(C语言版)9PPT课件_第2页
单片机原理及应用(C语言版)9PPT课件_第3页
单片机原理及应用(C语言版)9PPT课件_第4页
单片机原理及应用(C语言版)9PPT课件_第5页
已阅读5页,还剩113页未读 继续免费阅读

下载本文档

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

文档简介

精选,1,单片机原理及应用(C语言版)第9章单片机系统配置及接口,主编:周国运本章制作:鲁庆宾中国水利水电出版社,精选,2,第9章单片机系统配置及接口,目录9.1键盘接口9.2LED显示接口9.3A/D转换接口9.4D/A转换接口9.5开关器件接口,精选,3,本章要点单片机主要应用于测控系统中,应用系统通常需要人的干预。本章主要讲述键盘、显示器、A/D转换器、D/A转换器、开关器件等的工作原理及接口电路。,精选,4,第9章单片机系统配置及接口,图9-1单片机应用系统配置框图,精选,5,9.1键盘接口,主要内容9.1.1键盘基本问题9.1.2键盘结构及处理程序9.1.3中断扫描方式,精选,6,1、键的识别当按键K未被按下时,P1.0输入为高电平;当K闭合时,P1.0输入为低电平。,9.1.1键盘基本问题,图9-2按键电路,精选,7,2、键的抖动由于机械触点的弹性作用,按键在闭合时不会马上稳定地接通,在断开时也不会一下子断开。在闭合及断开的瞬间均伴随有一连串的抖动,如图9-3所示。抖动时间一般为510ms。抖动会引起一次按键被误读多次。为确保CPU对键的一次闭合仅做一次处理,必须去除键抖动。,9.1.1键盘基本问题,精选,8,9.1.1键盘基本问题,精选,9,图9-3按键时的抖动,9.1.1键盘基本问题,精选,10,一独立式键盘独立式按键是指各按键相互独立地接通一条输入数据线。当任何一个键按下时,与之相连的输入数据线即可读入数据0,而没有按下时读入1。,9.1.2键盘结构及处理程序,优点:电路简单;缺点:键数较多时,要占用较多的I/O线。,图9-4独立式键盘,精选,11,例9-1设计一个独立式按键的键盘接口,并编写键扫描程序,电路原理图如图9-4所示,键号从上到下分别为07。C语言程序清单:#includevoidkey()unsignedchark;P1=0 xff;/输入时P1口置全1k=P1;/读取按键状态if(k=0 xff)/无键按下,返回return;delay20ms();/有键按下,延时去抖,9.1.2键盘结构及处理程序,精选,12,k=P1;if(k=0 xff)/确认键按下return;/抖动引起,返回while(P1!=0 xff);/等待键释放switch(k)case:0 xfe/0号键按下时执行程序段break;case:0 xfd/1号键按下时执行程序段break;,9.1.2键盘结构及处理程序,精选,13,/26号键程序省略case:0 x7f/7号键按下时执行程序段break;汇编语言程序清单:KEY:MOVP1,#0FFH;P1口为输入口MOVA,P1;读取按键状态CPLA;取正逻辑JZEKEY;无键按下,返回,9.1.2键盘结构及处理程序,精选,14,LCALLDELAY20MS;有键按下,去抖MOVA,P1CPLAJZEKEY;抖动引起,返回MOVB,A;存键值KEY1:MOVA,P1;以下等待键释放CPLAJNZKEY1;未释放,等待MOVA,B;取键值送AJBACC.0,PKEY0;K0按下转PKEY0JBACC.1,PKEY1;K1按下转PKEY1,9.1.2键盘结构及处理程序,精选,15,JBACC.7,PKEY7;K7按下转PKEY7EKEY:RETPKEY1:LCALLK0;K0命令处理程序RETPKEY2:LCALLK1;K1命令处理程序RETPKEY4:LCALLK7;K7命令处理程序RET,9.1.2键盘结构及处理程序,精选,16,二行列式键盘为了减少键盘与单片机接口时所占用I/O线的数目,在键数较多时,通常都将键盘排列成行列矩阵形式。每一水平线(行线)与垂直线(列线)的交叉处通过一个按键来连通。,图9-544矩阵键盘接口,利用这种结构只需N条行线和M条列线,即可组成具有NM个按键的键盘。,9.1.2键盘结构及处理程序,精选,17,图9|544矩阵键盘接口,9.1.2键盘结构及处理程序,精选,18,1.行扫描法工作原理判别键盘中有无键按下。向行线输出全0,读入列线状态。如果有键按下,总有一列线被拉至低电平,从而使列输入不全为1。查找按下键所在位置。依次给行线送低电平,查列线状态。全为1,则所按下的键不在此行;否则所按下的键必在此行且是在与零电平列线相交的交点上的那个键。对按键位置进行编码。找到所按下按键的行列位置后,对按键进行编码,即求得按键键值。,9.1.2键盘结构及处理程序,精选,19,2.键盘扫描识别子程序C语言程序清单:#includecharkey()charrow,col,k=-1;/定义行、列、返回值P1=0 xf0;if(P1/抖动引起,返回,9.1.2键盘结构及处理程序,精选,20,for(row=0;row4;row+)/行扫描P1=(1i);/命令字按位送出result=1;result|=DOUT;/按位接收转换结果CLK=1;/产生一个时钟_nop_();/高电平有一定宽度CLK=0;returnresult;/返回转换结果,9.3.1多通道串行输出A/D芯片TLC2543及接口,精选,61,汇编语言程序清单:TLC2543:MOVR4,#04H;控制字,AIN0,8位MOVA,R4CLRP1.3;片选有效,选中2543MSB:MOVR5,#08H;传送8位LOOP:MOVP1,#04H;P1.2为输入MOVC,P1.2;读结果到C中RLCA;带进位循环左移MOVP1.1,C;将控制字(ACC中)的一位经DIN送入,9.3.1多通道串行输出A/D芯片TLC2543及接口,精选,62,SETBP1.0;产生一个时钟NOPCLRP1.0DJNZR5,LOOPMOVR2,A;将转换的数据存入R2RET执行上述子程序,经8次循环,执行“RLCA”指令8次,最后命令字00000100经P1.1、DIN进入TLC2543的输入寄存器,8位A/D转换数据.读入累加器。,9.3.1多通道串行输出A/D芯片TLC2543及接口,精选,63,9.3.2逐次逼近型并行输出A/D转换器及接口,1ADC0809的片内结构及引脚功能ADC0809是CMOS工艺,采用逐次逼近法的8位A/D转换芯片。多路开关有8路模拟量输入端,最多允许8路模拟量分时输入,共用一个A/D转换器进行转换。图9-13为ADC0809的内部逻辑结构图。它由8路模拟开关、8位A/D转换器、三态输出锁存器以及地址锁存译码器等组成。,精选,64,图9-13ADC0809内部逻辑结构结构,9.3.2逐次逼近型并行输出A/D转换器及接口,精选,65,引脚功能说明如下:IN0IN7:8个通道的模拟输入端。D0D7:8位数字量输出端。START:启动信号。ALE:地址锁存信号。EOC:转换结束信号。OE:输出允许控制端。CLOCK:时钟信号。VREF+和VREF-:A/D转换器的参考电压。VCC电源电压。,9.3.2逐次逼近型并行输出A/D转换器及接口,精选,66,8位模拟开关地址输入通道的关系见表9-3。模拟开关的作用和8选1的CD4051作用相同。,表9-38位模拟开关功能表,9.3.2逐次逼近型并行输出A/D转换器及接口,精选,67,2ADC0809与89C52接口ADC0809芯片的转换速度在最高时钟频率下为100s左右。ADC0809与89C52连接可采用查询方式,也可采用中断方式。图9-14为中断方式连接电路图。由于ADC0809片内有三态输出锁存器,因此可直接与89C52接口。,9.3.2逐次逼近型并行输出A/D转换器及接口,精选,68,图9-14ADC0809与89C52的连接,9.3.2逐次逼近型并行输出A/D转换器及接口,精选,69,这里将ADC0809作为外部扩展并行I/O口,采用线选法寻址。ADC0809的ADDA、ADDB和ADDC端由P0.0、P0.1、P0.2送出,ADC0809的地址由P2.7控制,其他地址位与此无关,设为1,于是ADC0809地址为为7FFFH。在图9-14所示的接口电路中,ADC0809与片外RAM统一编址。,9.3.2逐次逼近型并行输出A/D转换器及接口,精选,70,启动ADC0809的工作过程是:先送数据(通道地址)到ADC0809,由ALE信号锁存,同时START有效,启动A/D转换。A/D转换完毕,EOC端发出一正脉冲,申请中断。在中断服务程序中,使OE端有效,8位数据便读入到CPU中。,9.3.2逐次逼近型并行输出A/D转换器及接口,精选,71,38路巡回检测系统例9-2某粮库或某冷冻厂需对8点(8个冷冻室或8个粮仓)进行温度巡回检测。要求设计一个单片机巡回检测系统,使其能对各冷冻室或各粮仓的温度巡回检测并加以处理。设被测温度范围为-30+50,温度检测精度要求不大于l。温度传感器可选用热电阻、热敏电阻、PN结或集成温度传感器AD590和SL134等芯片。,9.3.2逐次逼近型并行输出A/D转换器及接口,精选,72,C语言程序清单:#include#include/绝对地址定位#defineDAC0809XBYTE0 x7fff/定义C0809地址unsignedcharxdatabuffer8;/数据存放定义unsignedchari=0;voidmain()IT1=1;/边沿触发EA=1;EX1=1;DAC0809=i;/启动0通道转换while(1);,9.3.2逐次逼近型并行输出A/D转换器及接口,精选,73,voidint1_srv()interrupt2bufferi=DAC0809;/读数存放if(+i!=8)/最后一个通道没结束DAC0809=i;/启动下一个通道转换,9.3.2逐次逼近型并行输出A/D转换器及接口,精选,74,汇编语言主程序:MAIN:MOVR0,#0A0H;数据暂存区首地址MOVR2,#8;8路计数初值MOVR3,#0;R3存放通道号SETBIT1;边沿触发SETBEA;开中断SETBEX1MOVDPTR,#7FFFH;指向0809MOVA,R3MOVXDPTR,A;送通道号,启动转换SJMP$,9.3.2逐次逼近型并行输出A/D转换器及接口,精选,75,中断服务程序:MOVXA,DPTR;读数MOVXR0,A;存数INCR0;更新存放单元INCR3;更新通道DJNZR2,DONERETIDONE:MOVA,R3MOVXDPTR,ARETI,9.3.2逐次逼近型并行输出A/D转换器及接口,精选,76,9.3.3单片机内部集成的A/D转换器,目前,很多单片机片内集成有A/D转换器,下面以STC89LE516AD/X2为例,说明A/D转换的使用方法。1STC89LE516AD/X2片内A/D转换器特点STC89LE516AD/X2的模拟量输入在P1口,有8位精度的高速A/D转换器,P1.0-P1.7共8路,为电压输入型,可做按键扫描、电池电压检测、频谱检测等。,精选,77,2特殊功能寄存器(1)P1_ADC_EN特殊功能寄存器。P1.x作为A/D转换输入通道允许特殊功能寄存器,地址为97H,复位值为00000000B。格式如图9-15所示。,图9-15P1_ADC_EN特殊功能寄存器,9.3.3单片机内部集成的A/D转换器,精选,78,(2)ADC_DATA特殊功能寄存器。A/D转换结果特殊功能寄存器,地址为0C6H,复位值为00000000B,模拟/数字转换结果计算公式如下:结果=256*Vin/VCC。(3)ADC_CONTR特殊功能寄存器。A/D转换控制特殊功能寄存器,地址为0C5H,复位值为xxx00000B。格式如图9-16所示。,图9-16ADC_CONTR特殊功能寄存器,9.3.3单片机内部集成的A/D转换器,精选,79,相关位说明如下:1)ADC_FLAG:模拟/数字转换结束标志位,当A/D转换完成后,ADC_FLAG=1。2)ADC_START:模拟/数字转换(ADC)启动控制位,设置为“1”时,开始转换。3)CHS2/CHS1/CHS0:模拟输入通道选择,如表9-4所示。,9.3.3单片机内部集成的A/D转换器,精选,80,表9-4模拟输入通道选择,9.3.3单片机内部集成的A/D转换器,精选,81,3A/D转换程序用P1.0为模拟量输入端进行A/D转换,程序如下:#includesfrP1_ADC_EN=0 x97;/A/D转换功能允许寄存器sfrADC_CONTR=0 xC5;/A/D转换控制寄存器sfrADC_DATA=0 xC6;/A/D转换结果寄存器,9.3.3单片机内部集成的A/D转换器,精选,82,/延时函数voiddelay(unsignedchardelay_time)unsignedinti;while(delay_time-)for(i=0;i10000;i+);,9.3.3单片机内部集成的A/D转换器,精选,83,unsignedcharADC()/AD转换函数delay(1);/使输入电压达到稳定ADC_CONTR=0 x08;/P1.0为模拟量输入端,启动A/D转换while(ADC_CONTR/返回转换结果,9.3.3单片机内部集成的A/D转换器,精选,84,9.4D/A转换接口,主要内容9.4.1位并行D/A转换器DAC0832接口技术9.4.2串行输入D/A转换器TLC5615接口技术,精选,85,9.4.1并行D/A转换器DAC0832接口技术,1DAC0832的结构原理(1)DAC0832的特性。具有两级输入数据寄存器的8位单片D/A转换器,它能直接与单片机89C52相连接,采用二次缓冲方式,可以在输出的同时,采集下一个数据,从而提高转换速度,能够在多个转换器同时工作时,实现多通道D/A的同步转换输出。,精选,86,主要的特性参数如下:分辨率为8位。只需在满量程下调整其线性度。可与所有的单片机或微处理器直接接口。电流稳定时间为1s。可双缓冲、单缓冲或直通数据输入。功耗低,约为200mW。逻辑电平输入与TTL兼容。单电源供电(+5V+15V)。,9.4.18位并行D/A转换器DAC0832接口技术,精选,87,(2)DAC0832的引脚及逻辑结构。DAC0832的逻辑结构如下图所示,由8位锁存器、8位DAC寄存器和8位D/A转换器构成。,图9-17DAC0832结构,9.4.18位并行D/A转换器DAC0832接口技术,精选,88,DAC0832各引脚的功能说明如下:D0D7:数字量数据输入线。ILE:数据锁存允许信号,高电平有效。CS:输入寄存器选择信号,低电平有效。WR1:输入寄存器的“写”选通信号,低电平有效。WR2:DAC寄存器的“写”选通信号,低电平有效。XFER:数据传送信号,低电平有效。VREF:基准电压输入线。,9.4.18位并行D/A转换器DAC0832接口技术,精选,89,RFB:反馈信号输入线,片内已有反馈电阻。IOUT1和IOUT2:电流输出线。IOUT1与IOUT2的和为常数,DAC寄存器的内容线性变化。一般在单极性输出时,IOUT2接地。VCC:工作电源。DGND:数字地。AGND:模拟信号地。,9.4.18位并行D/A转换器DAC0832接口技术,精选,90,2DAC0832与单片机的接口(1)单缓冲器方式接口。,图9-18DAC0832单缓冲方式接口,9.4.18位并行D/A转换器DAC0832接口技术,精选,91,将ILE接+5V,寄存器选择信号及数据传送信号都与地址选择线相连(图中为P2.7),两级寄存器的写信号都由89C52的WR端控制。当地址线选通DAC0832后,只要输出控制信号,DAC0832就能一步完成数字量的输入锁存和D/A转换输出。,9.4.18位并行D/A转换器DAC0832接口技术,精选,92,C语言程序清单:/*-头文件声明及端口地址定义-*/#include#defineDAC0832XBYTE0 x7FFF/*-在需要输出时,data1为输出模拟量的数字值-*/DAC0832=data1;汇编语言程序清单:MOVDPTR,#7FFFHMOVA,#DATA1MOVXDPTR,A,9.4.18位并行D/A转换器DAC0832接口技术,精选,93,(2)双缓冲器同步方式接口。图9-19是一个二路同步输出的D/A转换接口电路。89C52的P2.5和P2.6分别选择两路D/A转换器的输入寄存器,控制输入锁存;P2.7连到两路D/A转换器的XFER端控制同步转换输出;WR与所有的WR1、WR2端相连,在执行MOVX指令时,89C52自动输出WR信号。,9.4.18位并行D/A转换器DAC0832接口技术,精选,94,图9-19DAC0832双缓冲方式接口,9.4.18位并行D/A转换器DAC0832接口技术,精选,95,C语言程序清单:#include/*定义两片0832输入寄存器端口地址和/同步输出地址*/#defineDAC0832_1XBYTE0 xDFFF#defineDAC0832_2XBYTE0 xBFFF#defineDAC_ALLXBYTE0 x7FFF/*在需要模拟量同步输出时*/DAC0832_1=data1;/第一片0832输出数字值DAC0832_2=data2;/第二片0832输出数字值DAC_ALL=0;/0无意义,使XFER同时有效,9.4.18位并行D/A转换器DAC0832接口技术,精选,96,(3)DAC0832应用阶梯波的产生。阶梯波是在一定的时间内每隔一段时间输出的幅值递增一个恒定值。如图9-20所示,每隔1ms输出增长一个定值,经10ms后循环。用DAC0832的单缓冲方式就可以实现这样的波形。,图9-20阶梯波波形,9.4.18位并行D/A转换器DAC0832接口技术,精选,97,C语言程序清单:/为了使输出波形有一定高度,设n,取值125#include#defineDAC0832XBYTE0 x7FFFvoidmain()unsignedchari,n=20;while(1)for(i=0;i10;i+)DAC0832=i*n;delay(1);/延时1ms,9.4.18位并行D/A转换器DAC0832接口技术,精选,98,9.4.2串行D/A转换器TLC5615接口技术,数/模转换器从接口上可分为两大类:并行接口和串行接口。并行接口:引脚多,体积大,占用I/O线多;串行接口:体积小,占用单片机的I/O线少。1TLC5615的结构原理TLC5615是具有3线串行接口的数/模转换器。其输出为电压型,最大输出电压是基准电压值的两倍。带有上电复位功能。TLC5615的性价比较高。,精选,99,(1)TLC5615的特点。10位CMOS电压输出。5V单电源工作。与微处理器3线串行接口(SPI)。最大输出电压是基准电压的2倍。建立时间12.5s。内部上电复位。低功耗,最高为l.75mW。引脚与MAX515兼容。,9.4.2串行输入D/A转换器TLC5615接口技术,精选,100,(2)功能方框图。,图9-21TLC5615功能方框图,9.4.2串行输入D/A转换器TLC5615接口技术,精选,101,(3)引脚功能说明:DIN:串行数据输入。SCLK:串行时钟输入。CS:芯片选择,低电平有效。DOUT:用于菊花链(daisychaining)的串行数据输出。AGND:模拟地。REFIN:基准电压输入。OUT:DAC模拟电压输出。VDD。正电源(4.55.5V)。,9.4.2串行输入D/A转换器TLC5615接口技术,精选,102,(4)TLC5615的输入/输出关系。图9-23所示的D/A输入/输出关系如表9-5所列。,表9-5D/A转换关系表,9.4.2串行输入D/A转换器TLC5615接口技术,精选,103,因为TLC5615芯片内的输入锁存器为12位宽,所以要在10位数字的低位后面再填以数字XX。XX为不关心状态。串行传送的方向是先送出高位MSB,后送出低位LSB。,如果有级联电路,则应使用16位的传送格式,即在最高位MSB的前面再加上4个虚位,被转换的10位数字在中间。,9.4.2串行输入D/A转换器TLC5615接口技术,精选,104,2TLC5615与89C52的串行接口电路及程序在下图电路中,89C52单片机自P3.0P3.2口分别控制TLC5615的片选CS、串行时钟输入SCLK和串行数据输入DIN。,图9-23TLC5615与89C51接口电路,9.4.2串行输入D/A转换器TLC5615接口技术,精选,105,D/A转换程序如下:sbitCS=P30;sbitSCLK=P31;sbitDIN=P32;voidDAC(unsignedintadata)chari;adata=0;i-)SCLK=0;/时钟低电平DIN=adata/片选高电平,9.4.2串行输入D/A转换器TLC5615接口技术,精选,107,9.5开关器件接口,在单片机控制系统中,单片机总要对被控对象实现控制操作。后向通道是计算机实现控制运算处理后,对被控对象的输出通道接口。后向通道的特点是弱电控制强电,即小信号输出实现大功率控制。常见的被控对象有电机、电磁开关等。数字信号形态的开关量、二进制数字量和频率量可直接用于开关量、数字量系统及频率调制系统的控制。,精选,108,1继电器及接口(1)单片机与继电器的接口。,图9-24继电器接口,9.5开关器件接口,精选,109,只要让继电器的吸合线圈通过一定的电流,线圈产生的磁力就会带动衔铁移动,从而带动开关点的接通和断开,由此控制电路的通或断。由于继电器的强电触点与吸合线圈之间是隔离的,所以继电器控制输出电路不需要专

温馨提示

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

评论

0/150

提交评论