周国运单片机原理及应用C语言

上传人:Tomo****.明天 文档编号:240445751 上传时间:2024-04-11 格式:PPT 页数:126 大小:2.50MB
返回 下载 相关 举报
周国运单片机原理及应用C语言_第1页
第1页 / 共126页
周国运单片机原理及应用C语言_第2页
第2页 / 共126页
周国运单片机原理及应用C语言_第3页
第3页 / 共126页
点击查看更多>>
资源描述
单片机原理及应用单片机原理及应用(C语言版)语言版)第第9章章 单片机系统配置及接口单片机系统配置及接口主主 编:编:周国运周国运本章本章制作:制作:鲁庆宾鲁庆宾中国水利水电出版社中国水利水电出版社第第9章章 单片机系统配置及接口单片机系统配置及接口目目 录录9.1 键盘接口键盘接口9.2 LED显示接口显示接口9.3 A/D转换接口转换接口9.4 D/A转换接口转换接口9.5 开关器件接口开关器件接口本章要点本章要点单片机主要应用于测控系统中,应用系单片机主要应用于测控系统中,应用系统通常需要人的干预。统通常需要人的干预。本章主要讲述本章主要讲述键盘键盘、显示器显示器、A/D转换器、转换器、D/A转换器、转换器、开关器件开关器件等的工作原理及接口等的工作原理及接口电路电路。第第9章章 单片机系统配置及接口单片机系统配置及接口图图9-1 单片机应用系统配置框图单片机应用系统配置框图9.1 键盘接口键盘接口主要内容主要内容9.1.1 键盘基本问题键盘基本问题9.1.2 键盘结构及处理程序键盘结构及处理程序9.1.3 中断扫描方式中断扫描方式 1、键的识别、键的识别 当按键当按键K未被按下未被按下时,时,P1.0输入为输入为高电高电平平;当;当K闭合闭合时,时,P1.0输入为输入为低电平低电平。9.1.1 键盘基本问题键盘基本问题 图图9-2 按键电路按键电路 9.1.1 键盘基本问题键盘基本问题 2、键的抖动、键的抖动 由于由于机械触点的弹性作用机械触点的弹性作用,按键在闭合时不会马,按键在闭合时不会马上稳定地接通,在断开时也不会一下子断开。在闭上稳定地接通,在断开时也不会一下子断开。在闭合及断开的瞬间均伴随有一连串的抖动,如图合及断开的瞬间均伴随有一连串的抖动,如图9-3所所示示。抖动时间一般为抖动时间一般为510ms。抖动会引起一次按。抖动会引起一次按键被键被误读误读多次。多次。为确保为确保CPU对键的一次闭合仅做一对键的一次闭合仅做一次处理,必须去除键抖动次处理,必须去除键抖动。9.1.1 键盘基本问题键盘基本问题图图9-3 按键时的抖动按键时的抖动9.1.1 键盘基本问题键盘基本问题一独立式键盘一独立式键盘独立式按键是指各按独立式按键是指各按键相互独立地接通一条键相互独立地接通一条输入数据线输入数据线。当任何一。当任何一个键按下时,与之相连个键按下时,与之相连的输入数据线即可的输入数据线即可读入读入数据数据0,而没有按下时,而没有按下时读读入入1。9.1.2 键盘结构及处理程序键盘结构及处理程序 优点优点:电路简单;:电路简单;缺点缺点:键数较多时,要占用较多的:键数较多时,要占用较多的I/O线。线。图图9-4 独立式键盘独立式键盘键键号号0123456710k*8例例9-1 设计一个独立式按键的键盘接口,并编设计一个独立式按键的键盘接口,并编写键扫描程序,电路原理图如图写键扫描程序,电路原理图如图9-4所示,键号从上所示,键号从上到下分别为到下分别为07。C语言程序清单语言程序清单:#includevoid key()unsigned char k;P1=0 xff;/输入前输入前P1口输出全口输出全1k=P1;/读取按键状态读取按键状态if(k=0 xff)return;/无键按下,返回无键按下,返回delay20ms();/有键按下,延时去抖有键按下,延时去抖9.1.2 键盘结构及处理程序键盘结构及处理程序 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 键盘结构及处理程序键盘结构及处理程序 /26号键程序号键程序case:0 x7f /7号键按下时执行程序段号键按下时执行程序段break;汇编语言程序清单汇编语言程序清单:KEY:MOVP1,#0FFH ;P1口为输入口口为输入口MOVA,P1 ;读取按键状态读取按键状态CPL A ;取正逻辑取正逻辑JZEKEY ;无键按下,返回无键按下,返回9.1.2 键盘结构及处理程序键盘结构及处理程序 LCALL DELAY20MS ;有键按下,去抖有键按下,去抖 MOV A,P1 CPL A JZ EKEY ;抖动引起,返回抖动引起,返回 MOV B,A ;存键值存键值KEY1:MOV A,P1 ;以下等待键释放以下等待键释放 CPL A JNZ KEY1 ;未释放,等待未释放,等待 MOV A,B ;取键值送取键值送A JB ACC.0,PKEY0 ;0号按下转号按下转PKEY0 JB ACC.1,PKEY1 ;1号按下转号按下转PKEY1 9.1.2 键盘结构及处理程序键盘结构及处理程序 JB ACC.7,PKEY7 ;7号按下转号按下转PKEY7EKEY:RETPKEY0:LCALL K0 ;K0命令处理程序命令处理程序 RETPKEY1:LCALL K1 ;K1命令处理程序命令处理程序 RET PKEY7:LCALL K7 ;K7命令处理程序命令处理程序 RET9.1.2 键盘结构及处理程序键盘结构及处理程序 二行列式键盘二行列式键盘 为了减少键盘与单为了减少键盘与单片机接口时所占用片机接口时所占用I/O线线的数目的数目,在键数较多时,在键数较多时,通常都将键盘排列成通常都将键盘排列成行行列矩阵列矩阵形式。每一水平形式。每一水平线(行线)与垂直线线(行线)与垂直线(列线)的(列线)的交叉处交叉处通过通过一个按键来连通。一个按键来连通。利用这种结构只需利用这种结构只需N条行线和条行线和M条列线,条列线,即可组成具有即可组成具有NM个按键的键盘。个按键的键盘。9.1.2 键盘结构及处理程序键盘结构及处理程序 图图9-5 44矩阵键盘接口矩阵键盘接口89C52P1.0P1.1P1.2P1.3 P1.4P1.5P1.6P1.7+5v01234567BAD98CEF10k4图图9|544矩矩阵阵键键盘盘接接口口9.1.2 键盘结构及处理程序键盘结构及处理程序 1、行扫描法工作原理行扫描法工作原理 判别键盘中有无键按下。判别键盘中有无键按下。向行线输出向行线输出全全0,读入列,读入列线状态。如果有键按下,总有一列线被拉至低电平,线状态。如果有键按下,总有一列线被拉至低电平,从而使从而使列输入不全为列输入不全为1。查找按下键所在的行。查找按下键所在的行。依次依次给各行线送低电平,给各行线送低电平,查查列线列线状态。全为状态。全为1,则所按下的键不在此行;否则按,则所按下的键不在此行;否则按下的键必下的键必在此在此行。行。查找按下键所在的列。查找按下键所在的列。在上面读入的列值从第在上面读入的列值从第0位位开始逐位判断,找出为开始逐位判断,找出为0的位号,即为按下键的列号。的位号,即为按下键的列号。按键编码(编号、键号、键值):按键编码(编号、键号、键值):为了方便找到为了方便找到所按下按键及功能,对按键进行所按下按键及功能,对按键进行编码、即编号编码、即编号。键号键号=行首号行首号+列号列号=行号行号4 +列号列号键号要与键名相区分;一般编号与键号相同键号要与键名相区分;一般编号与键号相同9.1.2 键盘结构及处理程序键盘结构及处理程序 2.键盘扫描子程序键盘扫描子程序C语言程序清单语言程序清单:#includeunsigned char key(void)unsigned char row,col=0,k=0 xff,dd;/定义行、列、返回值定义行、列、返回值P1=0 xf0;/各行输出各行输出0,各列输出各列输出1dd=P1;/从从P1口输入口输入if(dd=0 xf0)return k;/无键按下,返回无键按下,返回0 xffdelay5ms(3);/延时延时15ms去抖动去抖动dd=P1;/各行输出各行输出0,各列输出各列输出1if(dd=0 xf0)return k;/无键按下,返回无键按下,返回0 xff9.1.2 键盘结构及处理程序键盘结构及处理程序 判判断断是是否否有有键键按按下下判判断断是是否否有有键键按按下下scan=0 xfe;/行扫描码行扫描码for(row=0;row4;row+)/行扫描行扫描 P1=scan;dd=P1/16;/扫描值送扫描值送P1 if(dd!=0 x0f)/列线不全为列线不全为1,for(col=0;col1;break;/跳出外层循环跳出外层循环 scan=scan*2+1;/左移左移1位位return k;/返回键值返回键值9.1.2 键盘结构及处理程序键盘结构及处理程序 2.键盘扫描子程序键盘扫描子程序C语言程序清单语言程序清单:#includechar key()char row,col=0,k=-1;/定义行、列、返回值定义行、列、返回值P1=0 xf0;/各行全输出各行全输出0if(P1=0 xf0)return k;/无键按下,返回无键按下,返回-1delay20ms();/延时去抖延时去抖if(P1=0 xf0)return k;/抖动引起,返回抖动引起,返回-19.1.2 键盘结构及处理程序键盘结构及处理程序 for(row=0;row4;row+)/行扫描行扫描 P1=(1row);/扫描值送扫描值送P1 k=P1&0 xf0;if(k!=0 xf0)/列线不全为列线不全为1,while(k&(0 x10col)/查按键所在列查按键所在列 col+;/不是该列,列号不是该列,列号+1 k=row*4+col;/计算键值计算键值 P1=0 xf0;while(P1&0 xf0)!=0 xf0);/等待键释放等待键释放 break;return k;/返回键值返回键值9.1.2 键盘结构及处理程序键盘结构及处理程序 汇编语言程序清单汇编语言程序清单(返回键值:在累加器返回键值:在累加器A中中):KEY:LCALL KS ;判断是否有键按下判断是否有键按下JZ EKEY ;无键按下,返回无键按下,返回LCALL DELAY20MS ;延时去抖延时去抖LCALL KSJZ EKEY ;抖动引起,返回抖动引起,返回SKEY:MOV R0,#0 ;行扫描计数器行扫描计数器R0清清0MOV R3,#0FEH ;R3为行扫描字为行扫描字 ;R1存读取的列值存读取的列值 ;R2存计算出的键号存计算出的键号SKEY1:MOV P1,R3 ;做行扫描做行扫描 ;输出行扫描字输出行扫描字9.1.2 键盘结构及处理程序键盘结构及处理程序 MOVA,P1;读列值读列值MOVR1,A;暂存列值暂存列值CPLAANLA,#0F0HJNZSKEY2;键在该行,转键在该行,转INCR0;行计数器行计数器R0加加1MOVA,R3;R3行扫描字行扫描字RLAMOVR3,A ;下一行扫描字下一行扫描字CJNER0,#4,SKEY1;行未扫描完转行未扫描完转 EKEY:MOVA,#0FFH;无键返回无键返回0FFH RET9.1.2 键盘结构及处理程序键盘结构及处理程序 SKEY2:MOVA,R1;查找按键所在列查找按键所在列JNB ACC.4,SKEY3;在第在第0列列JNB ACC.5,SKEY4;在第在第1列列JNB ACC.6,SKEY5;在第在第2列列JNB ACC.7,SKEY6;在第在第3列列SKEY3:MOVR2,#0 ;存列号于存列号于R2SJMPDKEYSKEY4:MOVR2,#1;存列号于存列号于R2SJMPDKEY;转去计算键号转去计算键号SKEY5:MOVR2,#2;存存2列号列号SJMPDKEY9.1.2 键盘结构及处理程序键盘结构及处理程序 SKEY6:MOVR2,#3 ;存存3列号列号 SJMPDKEYDKEY:MOVA,R0 ;计算键号计算键号.行号送行号送A MOVB,#4 MULAB ADDA,R2 ;行号行号4+列号列号=键值键值 PUSHACCLK:LCALLKS ;等待键释放等待键释放 JNZLK POPACC RET9.1.2 键盘结构及处理程序键盘结构及处理程序;是否有键按下子程序,有返回非是否有键按下子程序,有返回非0,无返回,无返回0KS:MOVP1,#0F0HMOVA,P1CPLAANLA,#0F0HRET9.1.2 键盘结构及处理程序键盘结构及处理程序 3.行列反转法识别按键行列反转法识别按键 判别键盘中有无键按下判别键盘中有无键按下(方方 法同行扫描法法同行扫描法)行列反转输出、输入行列反转输出、输入各行输出各行输出0(各列输出(各列输出1),只输入列值),只输入列值(或输或输入的各行清入的各行清0)各列输出读入的值(各行输出各列输出读入的值(各行输出1),只输入行),只输入行值值(或输入的各列清或输入的各列清0)。合并行列值,得到所按下键的唯一的行列值,合并行列值,得到所按下键的唯一的行列值,由行列值查表确定其键值。由行列值查表确定其键值。9.1.2 键盘结构及处理程序键盘结构及处理程序 行列不能独立操作行列不能独立操作4.4.行列行列反转反转法识别按键子程序法识别按键子程序C语言程序代码语言程序代码:#includeunsigned char key()char code keycode=0 xee,0 xde,0 xbe,0 x7e,0 xed,0 xdd,0 xbd,0 x7d,0 xeb,0 xdb,0 xbb,0 x7b,0 xe7,0 xd7,0 xb7,0 x77;/16个按键的键值与行列组合值的对应关系个按键的键值与行列组合值的对应关系9.1.2 键盘结构及处理程序键盘结构及处理程序 unsigned char row,col,i,k=0 xff;/定义行、列、返回值、循环控制变量定义行、列、返回值、循环控制变量P1=0 xf0;if(P1&0 xf0)=0 xf0)return k;/无键按下,返回无键按下,返回-1delay15ms();/延时去抖延时去抖if(P1&0 xf0)=0 xf0)return k;/抖动引起,返回抖动引起,返回-1P1=0 xf0;/行输出全行输出全0col=P1&0 xf0;/读取列值读取列值P1=col|0 x0f;/输出读入的列值输出读入的列值row=P1&0 x0f;/读取行值读取行值9.1.2 键盘结构及处理程序键盘结构及处理程序/查找行列组合值在键盘表中位置查找行列组合值在键盘表中位置row=row|col;/把读入的行列值合并把读入的行列值合并for(i=0;i16;i+)/查表查表if(row=keycodei)/找到,找到,i即为键值即为键值 k=i;break;/对重复键,该方法对重复键,该方法/处理为无键按下处理为无键按下P1=0 xf0;while(P1&0 xf0)!=0 xf0);/等待键释放等待键释放return k;/返回键值返回键值9.1.2 键盘结构及处理程序键盘结构及处理程序 9.1.3 中断扫描方式中断扫描方式为了提高为了提高CPU的效率,可以采用中断扫描工的效率,可以采用中断扫描工作方式作方式,即只有在键盘,即只有在键盘有键按下时才产生中断申有键按下时才产生中断申请请,CPU响应中断,进入中断服务程序进行键盘响应中断,进入中断服务程序进行键盘扫描,并做相应处理。也可以采用扫描,并做相应处理。也可以采用定时扫描方式定时扫描方式,即系统每隔一定时间进行键盘扫描,并做相应处即系统每隔一定时间进行键盘扫描,并做相应处理。理。9.1.3 中断扫描方式中断扫描方式74LS2110k*49.2 LED显示接口显示接口主要内容主要内容9.2.1 LED显示器结构与原理显示器结构与原理9.2.2 LED显示器接口及显示方式显示器接口及显示方式9.2.3 LED显示器与显示器与89C52接口及接口及显示子程序显示子程序9.2.1 LED显示器结构原理显示器结构原理 单片机中通常使用单片机中通常使用7段段LED构成字型为构成字型为“8”且加一个且加一个小数点小数点的数码管,以显示数字、的数码管,以显示数字、符号及小数。常见数码管如下图。符号及小数。常见数码管如下图。显示器有显示器有共阴极共阴极和和共阳极共阳极两种。发光二极管的两种。发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器。起的称为共阴极显示器。当在某段发光二当在某段发光二极管上施加一定的极管上施加一定的正向电压正向电压时,该段笔划即时,该段笔划即亮亮;不加电压则暗。不加电压则暗。对共阴极发光二极管对共阴极发光二极管,某段的阳极加上正电压,某段的阳极加上正电压,则对应的段点亮。则对应的段点亮。对共阳极发光二极管对共阳极发光二极管,某段的阴极接低电位,某段的阴极接低电位,则对应的段点亮。则对应的段点亮。9.2.1 LED显示器结构原理显示器结构原理 以共阴极显示器为例,当以共阴极显示器为例,当a、b、c三段送三段送1时,数时,数码管显示数字码管显示数字7。(c)引脚配置外形图)引脚配置外形图(b)共阳极)共阳极(a)共阴极)共阴极9.2.1 LED显示器结构原理显示器结构原理9.2.1 LED9.2.1 LED显示器结构原理显示器结构原理fbecagdh3FD7 D6 D5 D4 D3 D2 D1 D0 h g f e d c b a065B4F666D7D076Fbcbeagdbcagdfbcgfcagdfecagdbcafbcagdfbeca表表9-1 共阴极和共阳极共阴极和共阳极7段段LED显示字型编码表显示字型编码表显示字符显示字符012345678共阴极段码共阴极段码3F065B4F666D7D077F共阳极段码共阳极段码C0F9A4B0999282F880显示字符显示字符9ABCDEF-灭灭共阴极段码共阴极段码6F777C395E79714000共阳极段码共阳极段码908883C6A1868EBFFF 以上为以上为8段,段,8段最高位为小数点段。表中为小数段最高位为小数点段。表中为小数点不点亮的段码。点不点亮的段码。9.2.1 LED显示器结构原理显示器结构原理9.2.2 LED显示方式及接口显示方式及接口LED有有静态显示静态显示和和动态显示动态显示两种方式。两种方式。1LED静态显示方式静态显示方式静态显示:静态显示:当显示器显示某个字符时,相应的当显示器显示某个字符时,相应的段(发光二极管)段(发光二极管)恒定地导通或截止恒定地导通或截止,直到显示,直到显示另一个字符为止。另一个字符为止。共阴极(公共端共阴极(公共端K)接地;)接地;共阳极(公共端共阳极(公共端A)接)接+5V电源。电源。每个数码管的段选线(每个数码管的段选线(ah)分别与一个)分别与一个8位位锁存器的输出口相连,各显示位锁存器的输出口相连,各显示位相互独立相互独立。优点优点:亮度较高、编程容易、管理简单;:亮度较高、编程容易、管理简单;缺点缺点:占用:占用I/O口线资源较多。口线资源较多。2LED动态显示方式动态显示方式所有位的段选线:所有位的段选线:并联在一起,由一个并联在一起,由一个8位位I/O口控制;口控制;各位的公共端:各位的公共端:分别由不同的分别由不同的I/O线控制,实现线控制,实现各位的各位的分时选通分时选通。图图9-8为为6位共阴极位共阴极LED动态显示接口电路动态显示接口电路9.2.2 LED显示器接口及显示方式显示器接口及显示方式图图9-8 6位位LED动态显示接口电路动态显示接口电路9.2.2 LED显示器接口及显示方式显示器接口及显示方式段选段选(P0口口)各位扫描显示:各位扫描显示:由于由于6位位LED所有段选线皆由所有段选线皆由P0口控制,要想每位显示不同的字符,就必须采用口控制,要想每位显示不同的字符,就必须采用扫扫描方法轮流点亮各位描方法轮流点亮各位LED,在每一瞬间只使某一位,在每一瞬间只使某一位显示字符。显示字符。段选码、位选码控制:段选码、位选码控制:P0口输出相应字符段选口输出相应字符段选码,码,P2口对该显示位送口对该显示位送选通电平选通电平,保证该位显示相,保证该位显示相应字符,如此应字符,如此轮流轮流。扫描延时:扫描延时:段选码、位选码每送一次后段选码、位选码每送一次后至少延时至少延时1ms,保证每位有一定亮度,因人眼的视觉暂留效,保证每位有一定亮度,因人眼的视觉暂留效应,看上去每个数码管总在亮。应,看上去每个数码管总在亮。9.2.2 LED显示器接口及显示方式显示器接口及显示方式9.2.3 显示器与显示器与89C52接口及显示子程序接口及显示子程序下页图为下页图为89C52 控制的控制的6位共阴极位共阴极LED动态显动态显示接口电路。示接口电路。P0口口输出输出段选码段选码,P2口口输出输出位选码位选码。74LS245:是双向:是双向8位缓冲器位缓冲器/驱动器。驱动器。逐位轮流点亮各个逐位轮流点亮各个LED,每一位保持,每一位保持2.5ms,在在1520ms之内再一次点亮,之内再一次点亮,重复不止重复不止。图图9|9 数数码码管管动动态态显显示示接接口口9.2.3 显示器与显示器与89C52接口及显示子程序接口及显示子程序P0.0P0.7P2.5P2.089C52共阴极共阴极显示器显示器74LS24574LS245C语言程序清单语言程序清单:#includeunsigned char code LED=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;unsigned char buf6;/定义字型码和显示缓冲区定义字型码和显示缓冲区void disp()unsigned char i,scan=0 xdf;for(i=0;i1+0 x80;9.2.3 显示器与显示器与89C52接口及显示子程序接口及显示子程序汇编语言程序清单:汇编语言程序清单:DISP:MOV R0,#DISPBUF ;R0指向显示缓冲区指向显示缓冲区 MOV R2,#0DFH ;位码送位码送R2 MOV R3,#6 ;6位显示位显示 MOV DPTR,#TAB ;DPTR指向段码表指向段码表LOOP:MOV A,R0 ;取显示数据取显示数据 MOVC A,A+DPTR ;取出字型码取出字型码 MOV P0,A ;送出显示送出显示 MOV P2,R2 ;位码送位码送P2口口 LCALL DELAY2MS ;延时延时2ms9.2.3 显示器与显示器与89C52接口及显示子程序接口及显示子程序 INC R0 ;数据缓冲区地址加数据缓冲区地址加1 MOV A,R2 RR A;位码循环右移一位位码循环右移一位 MOV R2,ADJNZ R3,LOOP ;扫描到最左边显示位?扫描到最左边显示位?RETTAB:DB3FH,06H,5BH,4FH,66HDB6DH,7DH,07H,7FH,6FH9.2.3 显示器与显示器与89C52接口及显示子程序接口及显示子程序9.3 A/D转换器及其接口转换器及其接口主要内容主要内容9.3.1 串行接口串行接口A/D转换器及其接口转换器及其接口9.3.2 并行接口并行接口A/D转换器及其接口转换器及其接口9.3.3 单片机内部集成的单片机内部集成的A/D转换器转换器模模/数(数(A/D)转换的方式:)转换的方式:有很多种,例有很多种,例如,如,计数比较型计数比较型、逐次逼近型逐次逼近型、双积分型双积分型等。等。选择选择A/D转换器件主要是从转换器件主要是从速度、精度和价格速度、精度和价格上上考虑。考虑。A/D转换器的接口方式:转换器的接口方式:有有串行、并行串行、并行方式,方式,并且有些增强型的单片机在并且有些增强型的单片机在片内集成有片内集成有A/D转换转换器器。9.3 A/D转换接口转换接口9.3.2 串行接口串行接口A/D芯片芯片TLC2543及接口及接口本节主要内容:本节主要内容:TLC2543的特点的特点 TLC2543的功能结构和引脚信号的功能结构和引脚信号 TLC2543的编程命令字的编程命令字 TLC2543的接口方式的接口方式 TLC2543的操作时序的操作时序 TLC2543的应用编程的应用编程9.3.2 串行接口串行接口A/D芯片芯片TLC2543及接口及接口TLC2543是是TI公司生产的公司生产的12位位、逐次逼近逐次逼近式、式、CMOS工艺的工艺的串行接口串行接口A/D转换器。转换器。它具有它具有输入输入通道多、速度高、测量范围宽、通道多、速度高、测量范围宽、体积小、接口方便等特点体积小、接口方便等特点。由于这些特点,受到了系统开发工程师的由于这些特点,受到了系统开发工程师的青睐,得到越来越多的应用。青睐,得到越来越多的应用。本节主要讨论:本节主要讨论:TLC 2543的特性、结构与的特性、结构与引脚信号、引脚信号、命令字命令字、时序、接口与控制编程时序、接口与控制编程。1、TLC2543的主要特性的主要特性1)12位位A/D转换器,可转换器,可8位、位、12位和位和16位输出位输出2)转换时间:转换时间:l0s,高速,高速3)11通道模拟量通道模拟量输入输入4)3种内建的种内建的自检模式自检模式5)片内采样片内采样/保持保持电路电路6)最大线性误差:)最大线性误差:1个个数字量数字量7)内置系统时钟)内置系统时钟8)有转换)有转换结束信号结束信号9.3.2 TLC2543及接口及接口 9)单)单/双极性双极性输出输出10)数据输出顺序可编)数据输出顺序可编 程,高位或低位在前程,高位或低位在前11)支持)支持软件关机软件关机12)输出数据长度可编)输出数据长度可编程控制程控制13)SPI串行接口串行接口2、TLC2543的内部结构及引脚信号的内部结构及引脚信号9.3.2 TLC2543及接口及接口主要是主要是7个部分个部分AIN0AIN1AIN2AIN3AIN4AIN5AIN6AIN7AIN8AIN9AIN101414通道模拟通道模拟多路器多路器自测电压自测电压12119876543213采样采样/保持保持命令寄存器命令寄存器12位位A/D转换器转换器(开关电容开关电容)输出数据输出数据寄存器寄存器 控制逻辑控制逻辑并并/串串转换器转换器DINSCLKCS1718154141312121619REF+REF-DOUTEOC1234567TLC2543的引脚信号的引脚信号9.3.2 TLC2543及接口及接口接接口口信信号号参考电压参考电压模模拟拟信信号号模拟信号模拟信号分分4组组3、TLC2543的命令字的命令字TLC2543的每次转换都必须写入的每次转换都必须写入命令字命令字,确定,确定下次转换:下次转换:选用的选用的通道、输出数据位数、通道、输出数据位数、输出数据输出数据位序、数据极性位序、数据极性。输入的命令字高位在前。输入的命令字高位在前。命令字格式如下:命令字格式如下:D7 D6 D5 D4D3 D2D1D0模拟通道选择模拟通道选择输出数输出数据长度据长度数据数据顺序顺序数据数据极性极性9.3.2 TLC2543及接口及接口数据极性:设置数据极性:设置0为单极性,设置为单极性,设置1为双极性为双极性(补码补码)数据顺序:设置数据顺序:设置0高位在前,设置高位在前,设置1低位在前低位在前数据长度:设置数据长度:设置0 1为为8位、设置位、设置1 0或或0 0为为12位、位、设置设置1 1为为16位位 9.3.2 TLC2543及接口及接口 D7 D6 D5 D4选择通道选择通道0 0 0 0AIN00 0 0 1AIN10 0 1 0AIN21 0 1 0AIN101 0 1 1(VREF+-VREF-)/21 1 0 0VREF-1 1 0 1VREF+1 1 1 0软件断电软件断电外外部部模模拟拟信信号号内内部部信信号号 4、TLC2543的接口时序的接口时序9.3.2 TLC2543及接口及接口1次完整操作次完整操作低电平发送低电平发送高电平接收高电平接收传送完后传送完后开始转换开始转换无效无效数据无效数据无效 上次数据上次数据转换中为低转换中为低对芯片操作期间应低电平对芯片操作期间应低电平 5、TLC2543与与89C52的接口及编程的接口及编程图图9-12 TLC2543和和89C52的接口电路的接口电路9.3.2 TLC2543及接口及接口TLC2543CLKDINDOUTCSGND89C52VCCP1.0P1.1P1.2P1.3+5VVCCGNDEOCP1.4根据根据TLC2543的接口时序,可以总结得出以下的接口时序,可以总结得出以下对对TLC2543的的操作过程与方法:操作过程与方法:(1)使)使CS变低变低,一个操作过程开始,一个操作过程开始(2)使)使CLK变低变低,从,从DIN发送发送1位命令(从高位命令(从高到低发送命令字);到低发送命令字);(3)使)使CLK变高变高,从,从DOUT读取一位数据读取一位数据(4)重复()重复(2)、()、(3),直到接收完数据,),直到接收完数据,使使CS变高变高;(5)等待等待A/D转换转换,或延时等待,或延时等待10s、或查、或查询询EOC状态、或用状态、或用EOC做中断请求。做中断请求。重复以上过程,实现重复以上过程,实现A/D转换。转换。9.3.2 TLC2543及接口及接口设设TLC2543以以8位方式作模数转换、选用位方式作模数转换、选用AIN0通道、数据的高位在前、单极性信号。编写通道、数据的高位在前、单极性信号。编写一函数,控制一函数,控制TLC2543实现模数转换。实现模数转换。其命令字为:其命令字为:0000 01 0 0 b=0 x04(1)C语言程序:语言程序:#includesbit CLK=P10;sbit DIN=P11;sbit DOUT=P12;sbit CS=P13;SbitEOC=P14;9.3.2 TLC2543及接口及接口 6、TLC2543的应用编程的应用编程unsigned int TLC2543(unsigned char com)unsigned char i,n;unsigned int result=0;n=com&0 x0c+4;/计算输出位数计算输出位数DOUT=1;EOC=1;CS=0;while(EOC=0);/等待转换结束等待转换结束for(i=0;in;i+)CLK=0;/时钟变低时钟变低DIN=com/128;/送出命令字的高位送出命令字的高位com=1;/com =1;result=1;/接收数据左移接收数据左移1位位CLK=1;/时钟变高时钟变高result|=DOUT;/接收接收1位,放最低位位,放最低位 CLK=0;CLK=1;CS=1;return result;/返回转换结果返回转换结果9.3.2 TLC2543及接口及接口(2)汇编语言程序:)汇编语言程序:CLKBIT90HDINBIT91HDOBIT92H;输入输入CSBIT93HEOCBIT94H;输入输入TLC2543:MOVA,R7;控制字控制字送送ACLRCS;片选有效,选中片选有效,选中2543JNBEOC,$;EOC为低等待为低等待LP1:CLRCLK;时钟变低时钟变低RLC A;A带进位循环左移带进位循环左移MOV DIN,C;命令字最高位输出命令字最高位输出SETB CLK;时钟变高时钟变高MOV C,DO;读入读入1位送位送C中中9.3.2 TLC2543及接口及接口SETB CLK;时钟变高时钟变高MOV C,DO;读入读入1位送位送C中中MOV ACC.0,C;读入值放读入值放ACC.0DJNZ R5,LP1;下面判断是否为下面判断是否为8位数据,是则返回,否则继续传输位数据,是则返回,否则继续传输MOVR6,A;接收的高位数据送接收的高位数据送R6MOVA,R7;读取参数读取参数-控制字控制字ANLA,#0CH;计算数据位数计算数据位数CLRCSUBBA,#4JNZNT1;A不为不为0继续接收数据继续接收数据MOVA,R6;MOVR7,A;从从R7中返回中返回8位数据位数据MOVR6,#0;RET9.3.2 TLC2543及接口及接口NT1:MOVR5,A;传送位数送传送位数送R5CLR A;A清清0,继续接收,继续接收LP2:CLR CLK;时钟变低时钟变低RLC A;A带进位循环左移带进位循环左移MOV DIN,C;命令字最高位输出命令字最高位输出SETB CLK;时钟变高时钟变高MOV C,DO;读入读入1位送位送C中中MOV ACC.0,C;读入值放读入值放ACC.0DJNZ R5,LP2MOV R7,A;将转换的低位存入将转换的低位存入R7RET子程序执行完后子程序执行完后,返回的转换数据在返回的转换数据在R6、R7中,中,R6中为高位,中为高位,R7中为低位。中为低位。9.3.2 TLC2543及接口及接口TLC2543的引脚信号:的引脚信号:20引脚引脚AIN0AIN10:模拟信号输入模拟信号输入CS:片选信号片选信号DIN:串行数据输入串行数据输入DOUT:串行数据输出串行数据输出EOC:转换结束信号转换结束信号SCLK(I/O CLOCK):输入):输入/输出同步时钟输出同步时钟REF+、REF-:转换参考电压输入:转换参考电压输入VCC:电源电源GND:地地9.3.2 TLC2543及接口及接口表表9-2 输入寄存器命令字格式输入寄存器命令字格式功能选择功能选择输入数据字节输入数据字节地址位地址位L1 L0 LSBF BIPD7 D6 D5 D4 D3 D2D1D0输输入入通通道道AIN0AIN1AIN2AIN3AIN4AIN5AIN6AIN7AIN8AIN9AIN10000000001110000111100000110011001010101010109.3.1 多通道串行输出多通道串行输出A/D芯片芯片TLC2543及接口及接口功能选择功能选择输入命令字节输入命令字节地址位地址位L1L0 LSBF DIPD7D6D5D4D3D2D1D0选择测选择测试电压试电压(Vref+-Vref-)/2Vref-Vref+1 0 1 11 1 0 01 1 0 1软件断电软件断电1 1 1 0输出数输出数据位数据位数8位位12位位16位位0 1x 01 1输出数输出数据格式据格式MSB前导前导LSB前导前导01极极 性性单极性单极性-二进制二进制双极性双极性-2的补码的补码01注:注:X表示无关项。表示无关项。9.3.1 多通道串行输出多通道串行输出A/D芯片芯片TLC2543及接口及接口 4、TLC2543的的SPI操作时序操作时序9.3.1 TLC2543及接口及接口低电平发送;低电平发送;高电平读数据位高电平读数据位1 2 3 4 5 6 7 8 11 12A11 A10 A9 A8 A7 A6 A5 A4 A1 A09.3.2 逐次逼近型并行接口逐次逼近型并行接口A/D转换器及接口转换器及接口1ADC0809的片内结构及引脚功能的片内结构及引脚功能ADC0809是是CMOS工艺,采用工艺,采用逐次逼近逐次逼近法的法的8位位A/D转换芯片。转换芯片。多路开关有多路开关有8路模拟量输入路模拟量输入端,最多允许端,最多允许8路模拟路模拟量量分时分时输入,共用一个输入,共用一个A/D转换器进行转换。图转换器进行转换。图9-13为为ADC0809的内部逻辑结构图。它由的内部逻辑结构图。它由8路模拟开关、路模拟开关、8位位A/D转换器、三态输出锁存器以及地址锁存译码转换器、三态输出锁存器以及地址锁存译码器器等组成。等组成。图图9-13 ADC0809内部逻辑结构结构内部逻辑结构结构9.3.2 逐次逼近型并行输出逐次逼近型并行输出A/D转换器及接口转换器及接口8位位A/D转换器转换器8位位三态三态输出输出锁存器锁存器8路路模拟量模拟量开关开关地址地址锁锁存存译译码器码器IN0IN7ADDAADDBADDCALESTARTCLKEOCD0VccGNDVREF+VREF-OED7引脚功能说明如下:引脚功能说明如下:IN0IN7:8个通道的模拟输入信号个通道的模拟输入信号D0D7:8位数字量输出信号位数字量输出信号START:启动信号:启动信号ALE:地址锁存信号:地址锁存信号EOC:转换结束信号:转换结束信号OE:输出允许控制信号:输出允许控制信号CLOCK:时钟信号:时钟信号VCC 电源电压电源电压VREF+和和VREF-:A/D转换器的参考电压转换器的参考电压应为模拟信号的最大范围值。应为模拟信号的最大范围值。如为如为10、0,5、0,+5、-5等等9.3.2 逐次逼近型并行输出逐次逼近型并行输出A/D转换器及接口转换器及接口 8位位模拟开关模拟开关地址地址输入通道输入通道的关系见表的关系见表9-3。模。模拟开关的作用和拟开关的作用和8选选1的的CD4051作用相同。作用相同。表表9-3 8位模拟开关功能表位模拟开关功能表ADDCADDBADDA输入通道号输入通道号000IN0001IN1010IN2111IN79.3.2 逐次逼近型并行输出逐次逼近型并行输出A/D转换器及接口转换器及接口2ADC0809与与89C52接口接口ADC0809芯片的转换时间在最高时钟频率下为芯片的转换时间在最高时钟频率下为100s左右。左右。ADC0809与与89C52连接可采用连接可采用查询查询方方式,也可采用式,也可采用中断中断方式。图方式。图9-14为中断方式连接电为中断方式连接电路图。由于路图。由于ADC0809片内有三态输出锁存器,因此片内有三态输出锁存器,因此可可直接直接与与89C52接口。接口。9.3.2 逐次逼近型并行输出逐次逼近型并行输出A/D转换器及接口转换器及接口图图9-14 ADC0809与与89C52的连接的连接9.3.2 逐次逼近型并行输出逐次逼近型并行输出A/D转换器及接口转换器及接口这里将这里将ADC0809作为外部扩展并行作为外部扩展并行I/O口,采用口,采用线选法线选法寻址。寻址。ADC0809的的ADDA、ADDB和和ADDC端端由由P0.0、P0.1、P0.2送出送出ADC0809的地址由的地址由P2.7控制,其他地址位与此无控制,其他地址位与此无关,设为关,设为1,于是,于是ADC0809地址为地址为0 x7fff,其读、写,其读、写地址均为地址均为0 x7fff。在图在图9-14所示的接口电路中,所示的接口电路中,ADC0809与片外与片外RAM统一编址统一编址。9.3.2 逐次逼近型并行输出逐次逼近型并行输出A/D转换器及接口转换器及接口启动启动ADC0809的工作过程是:的工作过程是:执行向端口总线写命令,执行向端口总线写命令,将将通道地址从总线通道地址从总线P0口,以数据身份送给口,以数据身份送给0809的的ADDA、ADDB、ADDC,由,由ALE信号锁存信号锁存通道地址,同时通道地址,同时START有效有效,启动,启动A/D转换。转换。读取转换结果:读取转换结果:A/D转换完毕,转换完毕,EOC端发出一正脉冲,用其做端发出一正脉冲,用其做请求请求中断、中断、或对其状态查询;然后执行从端口读命或对其状态查询;然后执行从端口读命令,使令,使OE端有效端有效,将,将8位数据位数据读入读入到单片机中。到单片机中。9.3.2 逐次逼近型并行输出逐次逼近型并行输出A/D转换器及接口转换器及接口38路巡回检测系统路巡回检测系统例例9-2 某粮库或某冷冻厂需对某粮库或某冷冻厂需对8个温度测量点(个温度测量点(8个冷冻室或个冷冻室或8个粮仓)进行温度巡回检测。要求设计个粮仓)进行温度巡回检测。要求设计一个单片机巡回检测系统,使其能对各冷冻室或各一个单片机巡回检测系统,使其能对各冷冻室或各粮仓的温度巡回检测并加以处理。粮仓的温度巡回检测并加以处理。设被测温度范围为设被测温度范围为-30+50,温度检测精度,温度检测精度要求不大于要求不大于l。温度传感器可选用温度传感器可选用热电阻热电阻、热敏电阻热敏电阻、PN结结或或集成温度传感器集成温度传感器AD590和和SL134等芯片。等芯片。使用使用0809做做A/D转换器,采样图转换器,采样图9-14的单片机电的单片机电路。路。9.3.2 逐次逼近型并行输出逐次逼近型并行输出A/D转换器及接口转换器及接口C语言程序清单:语言程序清单:#includeunsigned char xdata ADC0809 _at_ 0 x7fff;/定义定义0809地址地址unsigned char xdata buffer8 _at_ 0 x00a0;/存放数据存放数据unsigned char data i=0;void main()IT1=1;/边沿触发边沿触发EX1=1;EA=1;ADC0809=i;/启动启动0通道转换通道转换while(1);9.3.2 逐次逼近型并行输出逐次逼近型并行输出A/D转换器及接口转换器及接口void int1_srv()interrupt 2bufferi=ADC0809;/读数存放读数存放if(+i 8)/最后一个通道没结束最后一个通道没结束ADC0809=i;/启动下一个通道转换启动下一个通道转换9.3.2 逐次逼近型并行输出逐次逼近型并行输出A/D转换器及接口转换器及接口汇编语言主程序:汇编语言主程序:MAIN:MOV R0,#0A0H ;数据暂存区首地址数据暂存区首地址 MOVR2,#8 ;8路计数初值路计数初值 MOVR3,#0 ;R3存放通道号存放通道号 SETBIT1 ;边沿触发边沿触发 SETBEX1 SETBEA ;开中断开中断 MOV DPTR,#7FFFH;指向指向0809 MOV A,R3 MOVX DPTR,A ;送通道号送通道号,启动转换启动转换 SJMP$9.3.2 逐次逼近型并行输出逐次逼近型并行输出A/D转换器及接口转换器及接口中断服务程序:中断服务程序:INT1_SERV:MOVX A,DPTR;读数读数MOV P2,#0 ;存数高存数高8位地址位地址MOVX R0,A;存数存数INC R0;更新存放单元更新存放单元DJNZ R2,DONERETIDONE:INC R3;通道号加通道号加1MOV A,R3;准备通道号准备通道号MOVX DPTR,A;送通道号启动转换送通道号启动转换RETI9.3.2 逐次逼近型并行输出逐次逼近型并行输出A/D转换器及接口转换器及接口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路路,为,为电电压输入型压输入型,可做按键扫描、电池电压检测、频谱,可做按键扫描、电池电压检测、频谱检测等。检测等。2特殊功能寄存器特殊功能寄存器(1)功能)功能(引脚引脚)配置寄存器配置寄存器P1_ADC_ENP1.x作为作为A/D转换输入通道允许特殊功能寄存器,转换输入通道允许特殊功能寄存器,地址为地址为97H,复位值为,复位值为00000000B。格式如下图所示。格式如下图所示。E_P17 E_P16E_P15 E_P14 E_P13 E_P12 E_P11 E_P109.3.3 单片机内部集成的单片机内部集成的A/D转换器转换器(2)转换结果寄存器)转换结果寄存器ADC_DATA地址:地址:0C6H,复位值:复位值:00000000B,转换值转换值=255*Vin/VCC(3)转换控制寄存器)转换控制寄存器ADC_CONTR地址:地址:0C5H,复位值:复位值:xxx00000B。格式如下所示格式如下所示FLAGSTART CHS2 CHS1 CHS09.3.3 单片机内部集成的单片机内部集成的A/D转换器转换器相关位说明如下:相关位说明如下:1)ADC_FLAG:模拟:模拟/数字转换结束标志数字转换结束标志位,当位,当A/D转换完成后,转换完成后,ADC_FLAG=1。2)ADC_START:模拟:模拟/数字转换数字转换(ADC)启动控制位,设置为)启动控制位,设置为“1”时,开始时,开始转换。转换。3)CHS2/CHS1/CHS0:模拟输入通道选:模拟输入通道选择,如表择,如表9-4所示。所示。9.3.3 单片机内部集成的单片机内部集成的A/D转换器转换器表表9-4 模拟输入通道选择模拟输入通道选择CHS2 CHS1 CHS0模拟输入通道选择模拟输入通道选择000选择选择P1.0作为模拟输入作为模拟输入001选择选择P1.1作为模拟输入作为模拟输入010选择选择P1.2作为模拟输入作为模拟输入011选择选择P1.3作为模拟输入作为模拟输入100选择选择P1.4作为模拟输入作为模拟输入101选择选择P1.5作为模拟输入作为模拟输入110选择选择P1.6作为模拟输入作为模拟输入111选择选择P1.7作为模拟输入作为模拟输入9.3.3 单片机内部集成的单片机内部集成的A/D转换器转换器3A/D转换程序转换程序用用P1.0为模拟量输入端进行为模拟量输入端进行A/D转换,转换,程序如下程序如下:#include sfr P1_ADC_EN=0 x97;/定义定义A/D功能功能(引脚引脚)配置寄存器配置寄存器sfr ADC_CONTR=0 xC5;/A/D转换控制寄存器转换控制寄存器sfr ADC_DATA=0 xC6;/A/D转换结果寄存器转换结果寄存器9.3.3 单片机内部集成的单片机内部集成的A/D转换器转换器/延时函数延时函数void delay(unsigned chardelay_time)unsigned inti;while(delay_time-)for(i=0;i10000;i+);9.3.3 单片机内部集成的单片机内部集成的A/D转换器转换器unsignedchar ADC(unsigned char chan)/AD转换函数转换函数delay(1);/使输入电压达到稳定使输入电压达到稳定ADC_CONTR=0 x08+chan;/选择模拟通道,启动选择模拟通道,启动A/D转换转换while(ADC_CONTR&0 x10)=0);/等待转换结束等待转换结束return ADC_DATA;/返回转换结果返回转换结果9.3.3 单片机内部集成的单片机内部集成的A/D转换器转换器9.4 D/A转换接口转换接口主要内容主要内容9.4.1 8位并行位并行D/A转换器转换器DAC0832接口技术接口技术9.4.2 串行输入串行输入D/A转换器转换器TLC5615接口技术接口技术9.4.1 并行并行D/A转换器转换器DAC0832接口技术接口技术1DAC0832的结构原理的结构原理(1)DAC0832的特性的特性。具有两级输入数据寄具有两级输入数据寄存器存器的的8位单片位单片D/A转换器转换器,它能,它能直接与单片机直接与单片机89C52相连接相连接,具有两级,具有两级缓冲功能缓冲功能,可以在输出,可以在输出的同时,传送下一个数据,从而提高转换速度,的同时,传送下一个数据,从而提高转换速度,能够在多个转换器同时工作时,能够在多个转换器同时工作时,实现多通道实现多通道D/A的同步转换输出的同步转换输出。主要的特性参数如下:主要的特性参数如下:分辨率为分辨率为8位位只需在满量程下调整其线性度只需在满量程下调整其线性度可与所有的单片机或微处理器可与所有的单片机或微处理器直接接口直接接口电流稳定时间为电流稳定时间为1s可双缓冲、单缓冲或直通数据输入可双缓冲、单缓冲或直通数据输入功耗低,约为功耗低,约为200mW逻辑电平输入与逻辑电平输入与TTL兼容兼容单电源供电(单电源供电(+5V+15V)9.4.1
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 活动策划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!