单片机接口教程课件

上传人:des****85 文档编号:304945438 上传时间:2022-06-06 格式:PPT 页数:91 大小:940.50KB
返回 下载 相关 举报
单片机接口教程课件_第1页
第1页 / 共91页
单片机接口教程课件_第2页
第2页 / 共91页
单片机接口教程课件_第3页
第3页 / 共91页
单片机接口教程课件_第4页
第4页 / 共91页
单片机接口教程课件_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《单片机接口教程课件》由会员分享,可在线阅读,更多相关《单片机接口教程课件(91页珍藏版)》请在金锄头文库上搜索。

1、单片机实用接口技术键盘接口技术LED接口技术A/D转换器与单片机的接口设计D/A转换器与单片机的接口设计1键盘接口设计几种设计方法1.利用并行口设计2.利用8279芯片设计键的识别1.行扫描法2.线反转法消除键的抖动延时扫描键的保护多键同时按下2独立式按键接口电路+5VP1.0P1.1P1.2P1.3803134线反转法设计要点将行线编程为输入线,列线编程为输出线,并使输出线输出为全零电平,则行线中电平由高到低所在行为按键所在行。同前面相反,将行线编程为输出线,列线编程为输入线,并使输出线输出为全零电平,则列线中电平由高到低所在列为按键所在列。综合上两步的结果,可确定按键所在行和列,从而识别出

2、所按的键5键盘扫描方式CPU对键盘的扫描分为编程扫描,定时扫描,中断扫描三种67编程扫描方式8255的口地址:PA口:0700HPC口:0702H控制寄存器:0703H()判断有无键按下:A口输出全,读C口低位,若4位为全1,则表示无键按下。否则有键按下。(2)去抖处理:软件延时10ms再读PC口,判断有无键按下。开始返回有键闭合吗?软件延时ms有键闭合吗?确定按键位置闭合键释放?按键值存NYNNYY8(3)PA口依次逐列输出扫描信号,PC口低4位输入4位行信号,均为低电平有效。由此确定出按键的行,列位置。(4)键闭合一次仅进行一次按键处理。待按键释放以后,才能进行下一次按键处理。BEGIN:

3、ACALLKEY_ON;判断有无键按下JNZDELAY;有键按下AJMPBEGINDELAY:ACALLDL10MS;去抖延时ACALLKEY_ON;再判断有无键按下JNZKEY_NUM;有键按下,确定按键位置AJMPBEGINKEY_NUM:ACALLKEY_PANLA,#0FFHJZBEGINACALLKEY_CODE;编码PUSHAKEY_OFF:ACALLKEY_ON;等待按键释放JNZKEY_OFF9POPARET;判断有无键按下子程序,有键按下时,A的值不为0KEY_ON:MOVA,#00HMOVDPTR,#0700H;PA口MOVXDPTR,AMOVDPTR,#0702HMOVX

4、A,DPTRCPLAANLA,#0FHRET;延时10ms子程序(时钟6MHZ)DL10MS:MOVR7,#05HLOOP1:MOVR6,#0F9HLOOP2:NOPNOPDJNZR6,LOOP2DJNZR7,LOOP1RET10;扫描按键位置的子程序KEY_P:MOVR7,#0FEHMOVA,R7L_LOOP:MOVDPTR,#0700HMOVXDPTR,AMOVDPTR,#0702HMOVXA,DPTRANLA,#0FHMOVR6,A;R6中保存行号XRLA,#0FH;低4位取反JZNEXT;此行无键按下AJMPKEY_CNEXT:MOVA,R7RLAJNBACC.0,ERRORMOVR7

5、,A;R7保存扫描码AJMPL_LOOPERORR:MOVA,#00H;置出错码00HRET11;确定按键的行列位置子程序KEY_C:MOVR2,#00H;R2用于行计数MOVR3,#00H;R3用于列计数MOVR5,#04HMOVA,R6;行号AGAIN1:JNBACC.0,OUT1INCR2RRADJNZR5,AGAIN1OUT1:INCR2MOVR5,#08HMOVA,R7;列号AGAIN2:JNBACC.0,OUT2INCR3RRADJNZR5,AGAIN2OUT2:INCR3MOVA,R2SWAPAADDA,R3;行号在高4位,列号在低4位RET12;编码子程序,键码=行号*8+列号

6、KEY_CODE:PUSHAANLA,#0FHMOVR7,A;R7=列号DECR7POPASWAPAANLA,#0FHDECAMOVB,#08HMULABADDA,R7RET中断方式必须用硬件形成中断信号1314编程要点:P1.0,P1.1,P1.2作为输出口输出扫描码000111,经译码后产生列扫描信号,此时8列中只有1列为0电平。其余各都为高电平。行状态由P1.3,P1.4读入15LED显示器接口设计LED的结构LED静态显示LED动态显示16171.LED静态显示方式各数码管的共阴极(或共阳极)连接在一起并接地(接+5V),每个数码管的各段分别与一个8位的锁存器输出相连,这样当锁存器存入

7、一个数据后,数码管将始终显示此数据。特点:硬件电路多。编程简单。1819START:SETBP1.7MOVR1,#06HMOVR0,#00HMOVDPTR,#TABLOOP:MOVA,R0MOVCA,A+DPTRMOVSBUF,AWAIT:JNBT1,WAIT;串行输出完成否CLRT1INCR0DJNZR1,LOOPCLRP1.7TAB:DB06H,4FH,3FH,7FH,40H,73H软件译码格式:D7D6D5D4D3D2D1D0dpgfedcba202.LED动态显示方式将各个数码管对应的段选线并联在一起,由一个8位的I/O口控制,形成段选线的多路复用。而各位的公共极(共阳或共阴)分别由相

8、应的I/O口线控制,实现各位的分时选通。特点:硬件电路简单。程序设计复杂。2122DISP:ORLP1,#80H;选择8155的I/O口(P1.7=1)MOVR1,#0F8H;8155命令口地址MOVA,#0F3H;8155方式命令字MOVXR1,ASTART:MOVDPTR,#TABMOVR0,#00HMOVR2,#80H;位码SCAN:MOVR1,#0FAH;PB口地址MOVA,#00HMOVXR1,A;全暗MOVA,R0MOVCA,A+DPTR;取段码DECR1;指向PA口MOVXR1,A;段码送PA口MOVA,R2INCR1;指向PB口MOVXR1,A;位码送PB口ACALLDL1MS

9、INCR0MOVA,R2;改变位码,指向下一位23CLRCRRCAMOVR2,AXRLA,#00H;改变标志寄存器JNZSCANAJMPSTARTDL1MS:SETBD3H;PS0(D3H)=1MOVR2,#83H;使用第1组工作寄存器LL0:NOPNOPDJNZR2,LL0CLRD3H;恢复第0组工作寄存器RETTAB:DB0C6H,8CH,0C1H,0CEH,86H,88H,0A1H,91H24LED显示器驱动技术发光二极管工作电流在10ma左右,而一般I/O接口不能提供这么大的电流,需要使用驱动电路。常用的有ULN2003A,7段驱动,ULN28038段驱动。特点:1。最大驱动电流可达5

10、00ma2。反相驱动3。需要限流电阻,数码管越多,限流电阻的阻值越小。2526A/D转换器的接口设计转换器的接口设计1。根据要求的精度选择位数。8,12,16位2。根据信号性质选择转换速度。低速:直流和缓变信号,如温度,压力,流量中速:工业多通道控制系统,声频信号高速:雷达信号,视频信号3。选择采样保持器除直流和变化非常缓慢的信号外,都应使用采样保持器2728延时等待方式:MAINMOVR1,#DATAMOVDPTR,#7FF8HMOVR7,#08HLOOP:MOVX DPTR,A;启动A/DMOVR6,#0AHDLAY:NOPNOPNOPNOPNOPDJNZR6,DLAYMOVX A,DPT

11、RMOVR1,AINCDPTR;指向下一通道INCR1DJNZR7,LOOP.2930中断方式:INADC:SETB IT1;外部中断1设为下降沿触发中断SETB EA;开总中断SETB EX1;开INT1中断MOV DPTR,#0FEFFH;选择ADC0809IN7(P2.0=0)MOV A,#00HMOVXDPTR,A;启动A/D转换PINT1:MOV DPTR,#0FEFFHMOVXA,DPTR;读转换数据MOV 50H,AMOV A,#00H;启动下一次A/D转换MOVXDPTR,ARETI3132ADC0809A/D转换器与单片机的接口设计转换器与单片机的接口设计一、ADC0809A

12、/D转换器的接口设计 下面以ADC0809为例来介绍A/D转换器的接口设计。ADC0809是一种常用的8位逐次比较式AD转换器,其特点如下:可直接与微处理机接口,无需另加接口逻辑。l具有三态锁存输出,可与微处理机总线接口。l具有锁存控制逻辑的8通道模拟开关可输入8个模拟信号。l单一电源+5V。33主要指标如下:1分辨率8位2转换时间100s3绝对误差1LSB4功耗15mW引脚功能:IN0IN7:8通道模拟量输入A、B、C:通道选择信号34ALE:通道地址锁存信号。该信号上升沿把A、B、C上的通道号锁存在地址锁存器中。D0D7:数字量输出。OE:输出允许。OE为1时,D0D7输出转换后的数据,O

13、E为0时,D0D7呈高阻态。START:启动信号,下降沿启动。EOC:转换结束信号。该信号从启动信号上升沿开始经1、8个时钟周期后由高电平变为低电平,表征AD转换正在进行;64个时钟周期后(每位转换需8个时钟周期)由低变高,表征转换结束35CLK:时钟输入。时钟频率640kHz。、:基准电压输入基准电压必须满足:0VccVcc:数字电源电压输入。范围:+45V6V。GND:数字、模拟公共地。例:ADC0809接口技术ADC0809带有三态输出锁存器,可以和51系列单片机的总线直接接口,后面的图示出了ADC0809与51系列单片机的接口电路36ADC0809与8031单片机的接口电路37P2.3

14、=0时,选中ADC0809(允许启动各通道转换与读取相应的转换结果)转换结束信号EOC经反相后,接至单片机的外部中断INT1,由外部中断1的中断服务程序读取转换结果。外部中断INTl采用边沿触发方式启动各通道进行AD转换的程序段如下:CLRP2.3;0809的端口地址,P2.3=0MOVA,#N;通道号NMOVXDPTR,A;启动N通道,此指令用来产生ALE和START信号N=07,对应于IN0,IN1,IN7。38中断服务程序中读转换结果的程序段如下:CLRP2.3;选中ADC0809,P2.3=0MOVXA,R0;读转换结果到A中按照前面的电路图设计一个由ADC0809构成的八通道数据采集

15、系统,要求:采样周期T=2秒,在每个采样周期内巡回采集八通道模拟量输入并存放在以DATA为首地址的8个连续单元中。软件设计如下:ORG0000HAJMPSTART;跳转主程序ORG000BHAJMPCTC0;跳转定时中断0服务程序39ORG0013HAJMPINT1;跳转外部中断1服务程序START:MOVTMOD,#1;T0的初始化MOVTL0,#0B0HMOVTH0,#3CHMOVIP,#2;T0设为高优先级中断(PT0=1)SETBIT1;外部中断1设为下降沿触发中断SETBTR0;触发T0工作SETBET0;开T0中断SETBEX1;开INT1中断SETBEA;开总中断40MOVTIM

16、,#0ECH;秒计数单元设初值;其他任务(略)CTC0:PUSHA;T0中断服务程序MOVTL0,#0B0HMOVTH0,#3CHINCTIMMOVA,TIMJNZCTC01;未到2秒,中断返回MOVTIM,#0ECH;已到2秒,秒计数单元设初值MOVABM,#0;从通道0开始ACALLSR;调用启动A/D子程序41CTC01:POPARETI;T0中断返回INT1:CLRP2.3;外部中断1服务程序MOVA,#DATAADDA,ABMMOVR1,A;R1中是某通道的数据存放地址MOVXA,R0SETBP2.3MOVR1,ACJNEABM,#7,INT11RETI42INT11:INCABMACALLSRRETISR:CLRP2.3;启动ADC0809子程序MOVA,ABMMOVXR0,ASETBP2.3RETABM:EQU30H;通道地址暂存器DATA:EQU31H;采样值缓冲区(31H-38H)TIM:EQU39H;2秒计时单元43D/A转换器与单片机的接口设计1.D/A转换器的主要技术指标(1)分辨率n是D/A转换器的位数(2)线性度(3)转换精度(4)建立时间(5)输出电平44

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号