




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口教案(下半部)第7章串行通讯及其接口27.1.概述27.2.MCS-51的串行口27.2.1.串行口的结构27.2.2.串行口的工作方式27.3.串行口的控制37.3.1.主从机间的通讯37.3.2.多机通讯接口47.4.习题解答7第8章串行通讯及其接口108.1.键盘及其接口108.1.1.独立式键盘接口108.1.2.行列式键盘118.2.显示器接口148.2.1.LED显示器接口148.2.2.8279键盘/显示器接口178.3.习题解答19第9章MCS-51与D/A及A/D转换器接口219.1.D/A转换器及其接口219.1.1.D/A转换原理219.1.2.集成D/A转换器219.1.3.D/A转换器接口229.2.A/D转换器及其接口249.2.1.双积分型A/D转换器工作原理249.2.2.逐次逼近型A/D转换器接口259.3.习题解答26第10章系统应用实例3010.1.步进电机控制系统3010.1.1.步进电机控制原理3010.1.2.步进电机控制程序设计31接口技术及应用重要章节教案第7章 串行通讯及其接口教学内容7.1.概述7.2.MCS-51的串行口7.2.1.串行口的结构7.2.2.串行口的工作方式7.3.串行口的控制7.3.1.主从机间的通讯7.3.2.多机通讯接口7.4.习题解答 教学安排本章讲授8学时。知识点及其基本要求了解概念:MCS-51串行口的的结构,通讯原理及其通讯编程。重点和难点重点掌握MCS-51串行口的通讯原理及其通讯编程。教学法设计以讲授法较系统的介绍MCS-51串行口的结构,工作方式,串口数据控制,多机通讯等,然后让学生多做练习,自行设计,并通过串口通讯实验加深理解。应用实用串行口硬件设计与软件编程。7.1. 概述7.2. MCS-51的串行口7.2.1. 串行口的结构7.2.2. 串行口的工作方式19.2x1000=2x11.0592x1000000/32x12x(256-TH1)TH1=FDH7.3. 串行口的控制7.3.1. 主从机间的通讯例1:设计一个发送程序,将片内RAM50H5FH中的数据串行发送,串行口设定为方式2状态,TB8作为奇偶校验位。TRT:MOV SCON, #80H; P113MOV PCON, #80HMOVR0, #50HMOVR7,#10H;数据长度LOOP:MOV A, R0MOV C, PMOV TB8, CMOVSBUF, AWAIT:JBCTI, CONTSJMPWAITCONT:INCR0DJNZR7, LOOPRET例2:设计一个接收程序,将接收的16个字节送入片内RAM50H5FH单元中,设串口方式3状态工作,brad为2400。定时/计数器1作为波特率发生器,SMOD=0,计数常数为F4H,此例为查询方式REV:MOVTMOD, #20H;P75MOVTH1, #F4HMOVTL1, #F4HSETBTR1;启动T1MOVR0, #50HMOVR7, #10HMOVSCON,PCON, #00HWAIT:JBCRI,PRISJMPWAITPRI:MOVA, SBUFJNBPSW.0, PNP ;奇偶校验位, ;P25JNBRB8,PERSJMPRIGHTPNP:JBRB8, PERRIGHT:MOVR0, AINCR0DJNZR7, WAITCLRPSW.5RETPER:SETBPSW.5 ;P25RET7.3.2. 多机通讯接口SCON:TMOD:T1T0TCON:IE:回顾:1、 双机通讯的硬件示意图,要求标明通讯脚和公共端连接。2、 波特率的计算晶振6M,SMOD=1,串口在方式1工作,波特率为2400,允许接收,计算TH1。 3、 程序定式单片机复位入口0000H,串口断入口0023H,程序正文起始地址0040H,标号为START,串口断服务程序的正文地址:0200H,标号为COM。写出汇编程序定式。ORG 0000HSJMP STARTORG 0023HSJMP COMORG 0040HSTART:ORG 0200HCOM:4、 串口通讯程序定式写出上述串口设置的初始化程序。步骤:设定T1的工作方式,波特率初值装入,启动T1,设定SCON,允许接收,设定SMODMOV TMOD,#20HMOV TH1,#F3HMOV TL1,#F#HSETB TR1MOV SCON,#50HMOV PCON,#80H允许串口中断时,IE的值,P78,及相应的程序代码IE=90HMOV IE,90H或SETB EASETB ES5、 使用查询法发送一个字节和接收一个字节的子程序,注意子程序的要素。发送,查询TI状态,清TI,返回SND:MOV SBUF,ASDW:JNB TI,SDW CLR TI RET查询RI状态,清RI,接收,返回RCV:JNB RI,RCV CLR RI MOV A,SBUF RET6、 使用中断法接收一个字符的中断服务子程序。步骤:首先将程序状态字压栈,再将服务程序中用到的寄存器压栈,判断是否为接收(用JBC),弹出堆栈中内容,返回COM:PUSH PSWPUSH AJBC RI,RCVCLR TIAJMP RETURCV:MOV A,SBUFRETU:POP APOP PSWAJMP END0RETI7、 接收一个字符,并按奇偶校验检查SIO:PUSH PSWPUSH AJBC RI,RCVCLR TIAJMP RETURCV:MOV A,SBUFMOV C,PJNC L1JNB RB8,ERAJMP L2L1:JB RB8,ERL2:MOV R1,ARETU:POP APOP PSWAJMP END0ER:END0:RETI作业:7-5,6,8,107.4. 习题解答7-8ENDFLAG BIT 00HORG 0000HSJMP STARTORG 0023HSJMP SENDORG 0030HSTART:MOV TMOD,20HMOV PCON,00H/80HMOV TH1, #CCH/#98HMOV TL1, #CCH/#98HSETB TR1MOV SCON, #40HMOV IE, #90HMOV R1, #1EH;置数据长度30SEND1:MOV R0/DPTR, #TBLOCKMOV/X A, R0/DPTRMOV C, PCPL CJC SETA1ANL A, #7FH ;将发送数据的第八位置0SJMP SEND2SETA1:ORL A, #80H;将发送数据的第八位置1SEND2:MOV SBUF, A;发送第一个数LOOP1:JNB ENDFLAG,LOOP1MOV IE, #00H;关掉所有中断LOOP:SJMP LOOPSEND:PUSH PSWPUSH ACLR TIDJNZ R1, SEND1SJMP SENDENDSEND1:INC R0/DPTRMOV A, R0MOV C, PCPL C ?JC SETA12;C=1,跳至SETA12ANL A, #7FH ;C=0,将发送数据的第八位置0SJMP SEND22SETA12:ORL A, #80H;C=1将发送数据的第八位置1SEND22:MOV SBUF, A;发送第二个数SJMP RETI1SENDEND:SETB ENDFLAG;置发送结束标志RETI1: POP APOP PSWRETIEND7-11ORG 0000HSJMP STARTORG 0030HSTART:MOV PCON,80H;波特率为1/32MOV SCON, #90H;方式2,允许接收CLR ESCLR EAMOV R0, #RBLOCKMOV R1, #32H;数据长度50BYTRCV:JNB RI, BYTRCVCLR RIMOV A, SBUFMOV C, PJNC L1;C=0JNB RB8, ER;C=1, RB8=0,校验错SJMP L2;数据正确L1:JB RB8,ER ;C=0,RB8=1,校验错L2:MOVX R0/DPTR, AINC R0/DPTRDJNZ R1, BYTRCVSJMP END1ER:END1:SJMP END1END 小结本章主要讲述MCS-51串行通讯的基本概念及软硬件设计。教学后记第8章 串行通讯及其接口8.1. 键盘及其接口 8.1.1. 独立式键盘接口1. 独立式按键结构 (a)中断方式(b)查询方式图8.1 独立式按键电路图8.2 使用8255扩展I/O的独立式键盘2. 独立式按键的软件结构 程序如下:KEY:MOVDPTR,#7FFFH ;指向8255MOVA ,#90H ;8255初始化,设 PA口为方式0基本输入 。MOVXDPTR,AMOVDPTR,#7FFCH ;指向PA口REP: MOVXA ,DPTR ;读入PA口按键状态CJNEA , #0FFH,KY0 ;有键按下先查0号键SJMP REP ; 无键按下返回KY0:CJNEA, #0FEH,KY1;0号键未按下查1号键SJMPFP0 ;0号键按下,转0号功能键入口中转地址KY1:CJNEA,#0FDH,KY3 ;1号键未按下查2号键SJMP FP1 ;1号键按下,转1号功能键入口中转地址KY2:CJNEA ,#0FBH,KY3 ; 2号键未按下查3号键SJMP FP2 ; 2号键按下,转2号功能键入口中转地址KY7:CJNE A,#7FH,END SJMPFP7 END:RETFP0: LJMPPROM0 ;FP1: LJMPPROM1 ; ; 键功能程序入口地址PF7: LJMP PROM7 ;PROM0: ; LJMP END1 PROM1: LJMP END1 PROM7: LJMP END18.1.2. 行列式键盘 1. 键盘工作原理 2. 键盘工作方式图8.4 8155扩展I/O口组成的行列式键盘步骤:判断键盘上有无键按下去键的机械抖动影响求按下键的键号 键闭合一次仅进行一次键功能操作 图8.5 键扫描子程序框图3. 定时扫描工作方式 图8.6 定时扫描方式程序框图4. 中断工作方式 图8.7 中断方式原理5. 键盘扫描方式 扫描法扫描法是在判定有键按下后逐列(或逐行)置低电平,同时读入行(或列)的状态,如果行(或列)的状态出现非全1状态,这时0状态的行、列交点的键就是所按下的键。 反转法图8.8 反转法6. 行列式键盘接口 通用并行扩展I/O口键盘接口 8031串行I/O口扩展的键盘接口 图8.9 8031串行I/O口扩展的行列式键盘接口8.2. 显示器接口 8.2.1. LED显示器接口1. LED显示器结构与原理 图8.10 共阴、共阳及管脚图2. LED显示器与显示方式 图8.11 N位LED显示器 (1)LED静态显示方式 图8.12 四位静态LED显示器电路 (2)LED动态显示方式 图8.13八位LED动态显示器电路 3. LED显示器接口实例 (1)硬件译码器LED显示器接口 图8.14 利用硬件译码器的七段LED接口电路 图8.15 通过8155扩展I/O口控制的8位LED动态显示接口(2)软件译码LED显示器接口 对于图示动态显示接口,其动态显示子程序流程图如下:图8.16 动态显示程序流程8.2.2. 8279键盘/显示器接口 8279是专用键盘、显示控制芯片,能对显示器自动扫描,能识别键盘上按下键的键号;可充分提高CPU的工作效率。8279与MCS-51接口方便,由它构成的标准键盘、显示接口在微机应用系统中使用越来越广泛。 1. 8279接口和编程的一般方法8279的键盘、显示电路及与8031接口 2. 8279键盘、显示接口应用特性 8279操作命令 8279的FIFO状态查询 8279的数据输入/输 显示器的填入/移位方式 8279的内部译码与外部译码 键盘键值的给定 3. 8031和8279键盘、显示接口的编程方法 START: MOVDPTR ,#7FFFH;指向命令/状 态口地址, =0MOV A ,#0D1H ; 清除命令 MOVXDPTR,A ;命令数据送入WAIT: MOVX A,DPTR ;读入状态字 JB ACC.7,WAIT ;清除等待MOVA,#2AH;程序时钟分频对ALE10分频得100KHZMOVX DPTR,A ;命令送入 MOV A,#08H ;键盘/显示器工作方式MOVXDPTR,A ;命令送入MOVR0,#30H ;段选码存放单元首址MOV R7,#10H ;显示16位数MOVA,#90H ;写显示RAM命令MOVXDPTR,A;命令送入MOVDPTR,#7EFEH ;指向数据口地址,=0,A0=0LOOP1: MOVA, R0MOVXDPTR,A ;段选码送入8279显示RAMINCR0 ;指向下一个段选码DJNZ R7,LOOP1 ;16个段选码送完? MOVR0,#40H ;送完转此,40H为键值存放单元首址MOVR7,#10H;有16个键值LOOP2: MOV DPTR,#7FFFH ;指向命令/状态口地址LOOP3: MOVX A, DPTR ;读8279状态字ANL A,#0FH ;取状态字低四位JZ LOOP3 ;FIFO中无键值时等待键输入 MOV DPTR,#7EFFH ;指向为数据口地址 MOVX A,DPTR ;读如键值 ANL A,#3FH ;没有使用CNTL、SHIFT时,屏蔽该 ;两位,保存低6位键值 MOV R0,A ;键值入内存40H4FH INC R0 ;指向下一个键值存放单元 DJNZ R7,LOOP2 ;读完10H个键值HERE: AJMP HERE ;键值读完等待8.3. 习题解答8-1ORG 0000HAJMP STARTORG 0013HAJMP INT1ORG 0030HSTART:/SETB IT1MOV IE, #84HINT1:PUSHMOV A, #F0;高位输入,低位输出MOV P1, AMOV A, P1ANL A, #F0HCJNE A, #F0H, KY0POPRETIKY0:ACALL T12ms;P148, 去抖MOV A, P1ANL A, #F0HCJNE A, #F0H, KY1POPRETIKY1:MOV R2, #FEH;首行MOV R4, #00HLK:MOV A, R2MOV P1, AMOV A, P1ANL A, #F0HJB ACC.4, LONEMOV A, #00HAJMP LKPLONE:JB ACC.5 LTWOMOV A, #01HAJMP LKPLTWO:JB ACC.6 LTHRMOV A, #02HAJMP LKPLTHR:JB ACC.5 NEXTMOV A, #03HAJMP LKPLKP:ADD A, R4POPRETINEXT:MOV A, #04HADD A, R4MOV R4, AMOV A, R2JNB ACC.4, KND ;4列完成?RL AMOV R2, AAJMP LKKND:POPRETI第9章 MCS-51与D/A及A/D转换器接口9.1. D/A转换器及其接口9.1.1. D/A转换原理可以总结为“按权展开,然后相加”。解码网络通常有两种:二进制加权电阻网络和T型电阻网络。图9.1 T型电阻网络型D/A转换器9.1.2. 集成D/A转换器1. 内部结构2. 引脚功能图9.2 DAC0832原理框图 9.1.3. D/A转换器接口1. DAC的应用(1) DAC用作单极性电压输出(2) DAC用作双极性电压输出(3) DAC用作控制放大器2. MCS-51与8位DAC的接口(1)直通方式 直通方式下工作的DAC0832常用于不带微机的控制系统。 (2)单缓冲器方式图9.3 DAC0832单缓冲器方式原理框图 单缓冲器方式应用举例例:产生锯齿波的参考程序列出如下: ORG 1000HSTART: MOV R0 ,#0FEH MOVX R0 , A INC A SJMP START END(3)双缓冲器方式双缓冲方式是指DAC0832内部“8位输入寄存器”和“8位DAC寄存器”都不在直通方式下工作。 图9.4 8031和两片DAC0832的接口(双缓冲方式)3. 双缓冲器方式应用举例例 设8031内部RAM中两个长度为30的数据块,其始址分别为DA1和DA2, 请根据图9-1-4 编写能把DA1和DA2中数据分别从1#和2#DAC0832输出的程序。 解:根据图9-1-4接线,DAC0832各端口地址为: FDH 1#DAC0832数字量输入控制口 FEH 2#DAC0832数字量输入控制口 FFH 1#和2#DAC0832启动D/A口 ORG 1200HDA1: DATA 20HDA2: DATA 40H MOV R0, #20H ; 0#区R0指向DA1 MOV R1, #40H ; 0#区R1指向DA2MOV R2, #30HNEXT: MOV DPTR , #0FDH MOV A , R0 MOV DPTR ,A ;写入1#片 INC DPTR MOV A,R1 MOV DPTR ,A ;写入2#片 INC R0 INC R1 MOV DPTR,#0FBH MOVX DPTR , A ;产生写信号 DJNE R2, NEXT END9.2. A/D转换器及其接口9.2.1. 双积分型A/D转换器工作原理双积分型A/D转换是一种间接A/D转换技术。双积分型A/D 转换器虽然转换时间较长,但其外接元件少使用方便,性能/价格比高,故在一些非快变信号的采集通道中使用十分广泛。1. MC14433与MCS-51单片机的接口图9.5 MC14433与8031直接连接的接口方法2. MC14433应用举例根据图9.6的接口,若将A/D转换结果由8031控制采集后送入片内RAM中的2EH、 2FH单元,并给定数据存放格式为图9.6 数据存放格式初始化程序:INT1 :SETB IT1 ;选择INT1边沿触发方式 MOV IE, #10000100B ;开中断,INT1外部中断允许外部中断服务程序:PINT1: MOV A, P1 JNB ACC.4, PINT1JB ACC.0, PE1JB ACC.2, PL1SETB 77H AJMP PL2PL1:CLR 77HPL2:JB ACC.3, PL3SETB 74HAJMP PL4PL3:CLR 74HPL4:MOV A, P1JNB ACC.5,PL4MOV R0,#2EHXCHD A,R0PL5: MOV A,P1 JNB ACC.6,PL5 SWAP A INC R0 MOV R0,APL6: MOV A,P1 JNB ACC.7,PL6 XCHD A,R0 RETIPE1: SETB 10H RETI 9.2.2. 逐次逼近型A/D转换器接口1. 逐次逼近型ADC基本原理图9.6 逐次逼近ADC原理电路框图 2. ADC 0809/0808ADC 0809/0808为8路输入通道、8位逐次逼近式A/D转换器,可分时转换8路模拟信号。(1) 结构一个8位逐次逼近式A/D转换器、8路模拟转换开关、3-8地址锁存译码器和三态输出数据锁存器。(2) 引脚8路模拟量输入信号端:IN0IN78位数字量输出信号端:D0D7通道选择地址信号输入端:ADDA、ADDB、ADDC3. ADC 0809与单片机连接A/D转换程序: MOV DPTR,#0FE00H ;ADC口地址 MOV A,#00 ;转换IN0 MOVX DPTR,A;启动A/D转换 LCALL DELAY ;等待转换结束图9.7 ADC 0809与单片机连接原理图 MOVX A,DPTR;取转换结果 9.3. 习题解答9-1 (1)P195 双极性接法,没有反向Vout=-(B-128)/128XVref设Vref=5V则B=128/5+128=25+128=19H+80HMov R0, #0FEHSTART:Mov R2,#04HMov A,#80HLOOP1:Movx R0, AACALL DelayADD A, #019H;最后一次为FDHDJNZ R2, LOOP1Mov R2,#02HSubb A, #19HLOOP2: Subb A, #19HMovx R0, AACALL DELAYDJNZ R2, LOOP2AJMP STARTDEALY:Mov R7,#02H;2个字节 1个周期DL1:Mov R6,#0F7H;2个字节 1个周期DL2:DJNZ R6, DL2;3个字节 2个周期DJNZ R7, DL1;3个字节 2个周期RET; 2个周期12M时,每个周期1us P28页1+1+247*2+2+1+247*2+2+2 1ms时 R6=247, #0F7H1+R7*(1+R6*2+2)+2(2)双极性接法 P195Vout=-(B-128)/128XVref设Vref=5V则B=128/5+128=25+128=19H+80H1V对应19H-2V 对应 80H-19H-19H=4E+2V 对应 80H+19H+19H=B2HORG 0080HSTART: MOV A , #4EHMov R0, #0FEHUp: MOVX R0, AINC AACALL DELAYCJNE A, #B2H, UpDown:MOVX R0, ADEC AACALL DELAYCJNE A, #4EH,DownSJMP UpDEALY:Mov R7,#02H;2个字节 1个周期DL1:Mov R6,#0F7H;2个字节 1个周期DL2:DJNZ R6, DL2;3个字节 2个周期DJNZ R7, DL1;3个字节 2个周期RET; 2个周期12M时,每个周期1us P28页1+1+247*2+2+1+247*2+2+2 1ms时 变化1V,1V为19H=25,所以延时时间为40us ,则R6=7, #07H2+R7*(2+R6*2+2)+2END9-8 ORG 0000HAJMP MainORG 0013HAJMP INT1ORG 0030HMain:Mov DPTR,78FFHMov R0,#20HMov R2,#08HSETB IT1;P75下跳沿SETB EX1SETB EASTART:Movx, DPTR, AJNB F0,$CLR F0DJNZ R2,STARTINT1:PUSHMOVX A,DPTRMov R0, AINC R0Mov A, DPHINC AMov DPH, ASETB F0POPRETIEND9-9 设fosc=6M, 最大定时时长为131ms,题目要求1分钟,则通过600次100ms的定时来实惠。实现100ms的计数初值为:2EXP16-100*10EXP(-3)/(2*10EXP(-6)=15536=3CB0HP72: 振荡周期为晶振的倒数:1/fosc 全部以秒为单位统一FLAG Bit 00HORG 0000HAJMP MainORG 000BH;T0中断与口AJMP INT0ORG 0013HAJMP INT1ORG 0030HMain:Mov DPTR,78FFHMov R0,#20HMov R2,#08HMov R6,#0AH ;定时1秒Mov R7,#
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论