《单片机》课后习题及答案_第1页
《单片机》课后习题及答案_第2页
《单片机》课后习题及答案_第3页
《单片机》课后习题及答案_第4页
《单片机》课后习题及答案_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

#AJMPHIGHOEND;7次至峙专HIGHO程序如下:ORG0000HLJMPSTARTORG0030HSTART:MOVSP,#60HMOVTMOD,#09HMOVTL0,#00HMOVTH0,#00HMOVR0程序如下:ORG0000HLJMPSTARTORG0030HSTART:MOVSP,#60HMOVTMOD,#09HMOVTL0,#00HMOVTH0,#00HMOVR0,#4EHJBP3.2,$SETBTR0JNBP3.2,$JBP3.2,$CLRTR9MOV@R0,TL0INCR0MOV@R0,TH0MOVR1,#50HMOVR5,#3CLRALOOP1:MOV@R1,A;设T0为方式1,GATE=1;等待P3.2变低;启动T0工作;等待P3.2变高;等待P3.2再次变低;停止计数;存放计数的二进制数低字节入4EH;存放计数的二进制数高字节入4EH;BCD码首址;BCD码字节数;清存BCD码单元解:选择T0工作于方式1定时500阴fosc=12MHz12机器周期T=12=12=1x10-6s=1u.sf12x106use(216X)xlyS=500ysX=65036=0FE0CH程序如下:ORG1000HMOVTMOD,#01HMOVTH0,#0FEHMOVTL0,#0CHSETBTR0DEL:MOVR7,#4;2ms=4x500ysD500:JBCTF0,,D2;500gs到清TF0,转移AJMPD500;50gs未到,等待D2:CPLP1.0MOVTH0,#0FEH;重装初值MOVTL0,#0CHDJNZR7,D500;4次未到,转D500CPLP1.1AJMPDEL;4次到,转DELSJMP$END40.利用8051单片机定时器/计数器测量某正脉冲宽度,已知此脉冲宽度小于10ms,主机频率为12MHz。编程测量脉冲宽度,并把结果转换为BCD码,顺序存放在以片内50H单元为首地址的内存单元中(50H单元存个位)。解:

INCR1DJNZR5,L00P1INCR1DJNZR5,L00P1MOVR7,#10HLOOP2:MOVR0,#4EHMOVR6,#2CLRCLOOP3:MOVA,@R0RLCAMOV@R0,AINCR0DJNZR6,LOOP3MOVR5,#3MOVR1,#50HLOOP4:MOVA,@R1ADDCA,@R1DAAMOV@R1,AINCR1DJNZR5,LOOP4;二进制数位数;二进制数首址;二进制数字节数;2字节二进制数左移1位;BCD码字节数;BCD码乘2加C运算DJNZR7,LOOP2SJMP$END41•波特率、比特率和数据传送速率的含义是什么?解:为了衡量串行通信的速度,应该有一个测量单位,在数据通信中,描述数据传送速度的方式有3种:波特率定义为每秒传送信号的数量,单位为波特(Baud)。比特率定义为每秒传送二进制数的信号数(或每秒传送二进制码元的个数),单位是bps(bitpersecond)或写成b/s(位/秒)。数据传送速率(或字符传送速率)定义为每秒传送多少个字符(或单位时间内平均数据传移速率,单位是字符7秒。在串行通信中,传送的信号可能是二进制、八进制或十进制等。只有在传送的信号是二进制信号时,波特率才与比特率数值上相等。而在采用调制技术进行串行通信时,波特率是描述载波信号每秒钟变化为信号的数量(又称为调制速率)。在这种情况下,波特率与比特率在数值上可能不相等。42.什么是串行异步通信?它有哪些特征?解:异步通信中,接收器和发送器有各自的时钟,数据常以字符为单位组成字符帧传送,用一帧来表示一个字符,其字符帧的数据格式为:在一帧格式中,先是一个起始位“0”(低电平),然后是5〜8个数据位,规定低位在前,高位在后,接下来是1位奇偶校验位(可以省略),最后是1〜2位的停止位T”(高电平)。异步通信的优点是不需要传送同步脉冲,可靠性高,所需设备简单;缺点是字符帧中因包含有起始位和停止位而降低了有效数据的传输速率。43•单片机的串行接口由哪些功能部件组成?各有什么作用?解:MCS-51单片机的串行接口由发送缓冲器SBUF、发送控制器、接收缓冲器SBUF、输入移位寄存器、接收控制器、波特率发生器等部件组成。发送缓冲器SBUF用于存放将要发送的数据,接收缓冲器SBUF用于存放接收的数据,输入位移寄存器用于接收缓冲并实现串/并转换,发送/接收控制寄存器用于控制串行口的工作,波特率发生器用于控制串行口发送/接收数据的速度。简述串行接口接收和发送数据的过程。解:串行接口的接收和发送是对同一地址(99H)两个物理空间的特殊功能寄存器SBUF进行读或写的。当向SBUF发,写”命令时(执行"MOVSBUF,A”指令),即向发送缓冲器SBUF装载并开始由TXD引脚向外发送一帧数据,发送完使发送中断标志位TI=1。在满足串行接口接收中断标志位RI(SCON.O)=0的条件下,置允许接收位REN(SC0N.4)=1,就会接收一帧数据进入移位寄存器,并装载到接收SBUF中,同时使R1=1。当发读SBUF命令时(执行"MOVA,SBUF"指令),便从接收缓冲器SBUF读取信息通过80C51内部总线送CPU。8051串行接口有几种工作方式?有几种帧格式?各工作方式的波特率如何确定?解:串行口有四种工作方式:方式0(8位同步移位寄存器),方式1(10位异步收发),方式2(11位异步收发),方式3(11位异步收发)。字符帧的数据格式为:在一帧格式中,先是一个起始位'0”(低电平),然后是5〜8个数据位,规定低位在前,高位在后,接下来是1位奇偶校验位(可以省略),最后是1〜2位的停止位“1”。两个字符帧之间可以有空闲位,也可以无空闲位。在8051串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率(T1溢出信号的频率)控制。各种方式的通信波特率如下:方式0的波特率固定为系统晶振频率的1/12,其值为f/12。OSC其中:f系统主机晶振频率"osc方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示:波特率=(2smod/64)xf"osc即:当SMOD=1时,波特率为f/32,当SMOD=0时,波特率为f/64方式1和方式3的波特率由定时器T1的溢出率控制。因而波特率是可变的。定时器T1作为波特率发生器,相应公式如下:波特率=(2smod/32)x定时器T1溢出率T1溢出率=T1计数率/产生溢出所需的周期数=(f/12)/(2kTC)式中:K——定时器T1的位数TC——定时器T1的预置初值简述单片机多机通信的原理。解:当一片80C51(主机)与多片80C51(从机)通信时,主机的SM2位置0,所有从机的SM2位置1,处于接收地址帧状态。主机发送一地址帧,其中,8位是地址,第9位为地址/数据的区分标志,该位置1表示该帧为地址帧。所有从机收到地址帧后,都将接收的地址与本机的地址比较。对于地址相符的从机,使自己的SM2位置0(以接收主机随后发来的数据帧),并把本站地址发回主机作为应答;对于地址不符的从机,仍保持SM2=1,对主机随后发来的数据帧不予理睬。从机发送数据结束后,要发送一帧校验和,并置第9位(TB8)为1,作为从机数据传送结束的标志。主机接收数据时先判断数据接收标志(RB8),若接收帧的RB8=0,则存储数据到缓冲区,并准备接收下帧信息。若RB8=1,表示数据传送结束,并比较此帧校验和,若正确则回送正确信号00H,此信号命令该从机复位(即重新等待地址帧);若校验和出错,则发送0FFH,命令该从机重发数据。主机收到从机应答地址后,确认地址是否相符,如果地址不符,发复位信号(数据帧中TB8=1);如果地址相符,则清TB8,开始发送数据。从机收到复位命令后回到监听地址状态(SM2=1)。否则开始接收数据和命令。在微机与单片机构成的测控网络中,提高通信的可靠性要注意哪些问题?解:在微机与单片机构成的测控网络信中,对于串行口数据传输接口的抗干扰能力,在不超过接口标准指定的适用范围时,都具有一定的抗干扰能力,以保证信号传输的可靠性。但在一些工业测控系统中,通信环境往往十分恶劣,就必须充分考虑通信的抗干扰能力,以保证通信的可靠性。(1)选择合适的通信标准。例如:长距离传输采用RS-485标准能有效抑制功模干扰,采用20Ma电流环可以降低信号对各种电器噪声的敏感程度。(2)在高噪声环境下使用光纤传输介质在高噪声环境下可以有效减少噪声干扰。(3)采用光电隔离技术可以提高系统的安全性和可靠性(4)在发送器输出接口采用限流电路或在发送器输出端外接电容器,可以有效抑制数据传输过程中的串扰。(5)采取降低发送端数据速率的方法可以减少接收端接收数据益处的错误。48•某异步通信接口按方式3传送,已知其每分钟传送3600个字符,计算其传送波特率。解:11(位)X3600(字符/分钟)=39600b/分钟=660b/s(方式3为每个字符11位)。利用8051串行口控制8位发光二极管工作,要求发光二极管每1s交替地亮、灭,画出电路图并编写程序。解:主程序框图如下:程序如下:ORG0040HMOVSCON,#00HMOVSBUF,#0FFHSETBCMOV00H,CAA:ACALLDELAYCPL00HMOVC,00HJCBBMOVSBUF,#00HSJMPCCBB:MOVSBUF,#0FFHCC:AJMPAADELAY:MOVR7,#8D1:MOVR6,#250D2:MOVR5,#250

D3:DJNZR5,D3DJNZR6,D2DJNZR7,DIRETEND试编写一串行通信的数据发送程序,发送片内RAM的20H〜2FH单元的16字节数据,串行接口方式设定为方式2,采用偶校验方式。设晶振频率为6MHz。解:采用查询方式编写发送程序如下:ORG0000HLJMPSTARTORG0030HSTART:MOVSPSTART:MOVSP,#60HMOVSCON,#80HMOVPCON,#80HMOVR0,#20HMOVR7,#16CLRTILS:MOVA,@R0MOVC,PMOVTB8,CMOVSBUF,AJNBTI,$CLRTIINCR0DJNZR7,LSRETEND51•试编写一串行通信的数据接收程序,设定方式2发送;波特率为fOSC32;给待发送数据块地址指针R0置初值;给数据块长度计数器R7置初值;清TI标志位;取一字节数据送A;A中有奇数个“1”时,P置“1”;P-TB8,作为奇偶校验位;启动发送;查询发送标志,等待一字节发送完;清TI标志位将接收到的16字节数据送入片内RAM30H〜3FH单元中。串行接口设定为方式3,波特率为1200bps,晶振频率为6MHz。解:程序如下:ORG0000HLJMPSTARTORG0100HSTART:MOVSP,#60HMOVTMOD,#20H;设定T1为模式2定时MOVTH1,#0F3H;送时间常数MOVTL1,#0F3HSETBTR1;启动定时器T1MOVSCON,#0D0H;串行接口设定为方式3,并允许接收MOVR0,#30HMOVR7,#16JNBRI,$;查询等待接收CLRRIMOVA,SUBF;从串行接口中读取数据JNBP,PN;对该字节进行查错处理若P=RB8无错,否则有错JNBRB8,PER;若P=1,RB8=0,有错,转出错处理LJMPRIG;若P=1,RB8=1,无错,转保存数据PN:JBRB8,PER;若P=0,RB8=1,有错,转出错处理

RIG:MOV@R0,A;若P=0,RB8=0RIG:MOV@R0,A;若P=0,RB8=0,无错,保存接收到的数PER:INCDJNZCLR7FSJMP$SETB7FSJMP$ENDR0R7,LOOP7F;16字节未接收完,则继续;正确接收完16位数据,清出错标志位7F;校验有错,置位7F习题4三态缓冲寄存器输出端的“三态”是指(低电平)态、(高电平)态和(高阻)态。扩展外围芯片时,片选信号的三种产生方法为:(线选法)、(全地址译码法)、(部分地址译码法)。MCS-51单片机访问片外存储器时,利用(ALE)信号锁存来自(P0)口的低8位地址信号。74LS138是具有3个输入的译码器芯片,其输出作为片选信号时,最多可以选中(8)块芯片。MCS-51外扩ROM,RAM和I/O口时,它的数据总线是(A)A:P0口B:P1口C:P2口D:P3口使用8255可以扩展出的I/O口线是(C)A:16根B:22根C:24根D:32根当8031外出扩程序存储器8KB时,需使用EPROM2716(C)A:2片B:3片C:4片D:5片访问外部数据存储器时,不起作用的信号是(D)A:RdB:WRC:ALED:PSEN扩展外部存储器时要加锁存器74LS373,其作用是(A)A:锁存寻址单元的低八位地址B:锁存寻址单元的数据C:锁存寻址单元的高八位地址D:锁存相关的控制和选择信号若某存储器芯片地址线为12根,那么它的存储容量为(C)A:1KBB:2KBC:4KBD:8KB解释三总线的概念。解:MCS-51系列单片机具有很强的外部扩展功能。其外部引脚可构成三总线结构,即地址总线、数据总线和控制总线。单片机所有的外部扩展都是通过三总线进行的。(1)地址总线(AB)地址总线用于传送单片机输出的地址信号,宽度为16位,可寻址的地址范围为216=64KBO地址总线是单向的,只能由单片机向外发出。P0口提供低8位地址,P2口提供高8位地址。由于P0口既做地址线又做数据线,分时复用,所以,P0口提供的低8位地址是由P0口经锁存器提供的。锁存信号是由CPU的ALE引脚提供的。(2)数据总线(DB)数据总线是由P0口提供的,宽度为8位。P0口是双向三态口,是单片机应用系统中使用最频繁的通道。P0口提供的数据总线上要连接多个扩展的外围芯片,而某一时刻只能有一个有效的数据传输通道。具体哪一个芯片的数据通道有效,是由各个芯片的片选信号控制选择的。欲使CPU与某个外部芯片交换数据,则CPU必须先通过地址总线发出该芯片的地址,使该芯片的片选信号有效,则此时P0口数据总线上的数据只能在CPU和该芯片之间进行传送。(3)控制总线(CB)控制总线实际上是CPU输出的一组控制信号。每条控制信号都是单向的,但是由多条不同的控制信号组合而成的控制总线则是双向的。MCS-51系列单片机中用于系统扩展的控制信号有RD,WR,PSEN,ALE和EA。I/O接口的作用是什么?解:接口(也称为I/O接口)是指连接CPU与外部输入/输出设备之间的部件,这些部件是CPU与外设之间进行信息传送的媒介。在信息传送过程中,接口起着数据锁存、数据缓冲、输入/输出、联络、数据转换、中断管理、时序控制、可编程、电器特征匹配等作用。I/O接口数据有几种传送方式?各有什么特点?解:CPU与外设之间传输数据的控制方式通常有三种:程序方式、中断方式和DMA方式。程序方式:指用输入/输出指令,来控制信息传输的方式,是一种软件控制方式,根据程序控制的方法不同,又可以分为无条件传送方式和条件传送方式。无条件传送方式接口简单,适用于那些能随时读写的设备。条件传送方式(查询方式)的特点是接口电路简单,CPU利用率低(程序循环等待),接口需向CPU提供查询状态。适用于CPU不太忙,传送速度要求不高的场合。要求各种外设不能同时工作,外设处于被动状态。中断方式:当外设准备好时,由外设通过接口电路向CPU发出中断请求信号,CPU在允许的情况下,暂停执行当前正在执行的程序,响应外设中断,转入执行相应的中断服务子程序,与外设进行一次数据传送,数据传送结束后,CPU返回继续执行原来被中断的程序。其特点是CPU的利用率高,外设具有申请CPU中断的主动权,CPU和外设之间处于并行工作状态。但中断服务需要保护断点和恢复断点(占用存储空间,降低速度),CPU和外设之间需要中断控制器。适用于CPU的任务较忙、传送速度要求不高的场合,尤其适合实时控制中的紧急事件处理。存储器直接存取方式(DMA):外设利用专用的接口(DMA控制器)直接与存储器进行高速数据传送,并不经过CPU(CPU不参与数据传送工作),总线控制权不在CPU处,而由DMA控制器控制。其特点是接口电路复杂,硬件开销大。大批量数据传送速度极快。适用于存储器与存储器之间、存储器与外设之间的大批量数据传送的场合。外设端口有几种编址方法?各有什么特点?解:在计算机系统中,凡需要进行读写操作的部件都存在编址的问题。存储器的每个单元均有自己的地址,对于I/O接口,则需要对接口中的每个端口进行编址。通常采取两种编址方法:一种是独立编址,另一种是统一编址。统一编址又称“存储器映射方式”。在这种编址方式下,I/O端口地址置于存储器空间中,在整个存储空间中划出一部分空间给外设端口,端口和存储单元统一编址。其优点是无需专门的I/O指令,对端口操作的指令类型多,从而简化了指令系统的设计。缺点是端口占用存储器的地址空间,使存储器容量更加紧张,同时端口指令的长度增加,执行时间较长,端口地址译码器较复杂。独立编址又称“I/O映射方式”。这种方式的端口单独编址构成一个I/O空间,不占用存储器地址空间。其优点是端口所需的地址线较少,地址译码器较简单,采用专用的I/O指令,端口操作指令执行时间少,指令长度短。缺点是输入输出指令类别少,一般只能进行传送操作。MCS-51单片机采用了统一编址方式,即I/O端口地址与外部数据存储单元地址共同使用0000H〜FFFFH(64KB)。因此,MCS-51单片机应用系统扩展较多外部设备和I/O接口时,要占去大量的数据存储器的地址。什么是全地址译码?什么是地址部分译码?各有什么特点?解:所谓的全地址译码法是利用译码器对系统地址总线中未被外扩芯片用到的高位地址线进行译码,以译码器的输出作为外围芯片的片选信号。全地址译码法芯片的地址范围确定方法是:以外部扩展的全部芯片未用到的地址线作为地址译码器的输入,译码器的输出作为片选信号接到外部扩展芯片上。全地址译码法优点是存储器的每个存储单元只有惟一的一个系统空间地址,不存在地址

重叠现象;对存储空间的使用是连续的,能有效地利用系统的存储空间;利用同样的高位地址线,全地址译码法编址产生的选片线比线选法多,为系统扩展提供了更多的冗余条件。其缺点是所需地址译码电路较多,尤其在单片机寻址能力较大和所采用的存储器容量较小时更为严重。全地址译码法是单片机应用系统设计中经常采用的方法。部分地址译码法是指单片机的未被外扩芯片用到的高位地址线中,只有一部分参与地址译码,其余部分是悬空的。在部分地址译码方式下,无论CPU使悬空的高位地址线上的电平如何变化,都不会影响它对外部存储单元的选址,故存储器每个存储单元的地址不是惟一的,存在地址重叠现象。因此,采用部分地址译码法时必须把程序和数据存放在基本地址范围内(即悬空的高位地址线全为低电平时存储芯片的地址范围),以避免因地址重叠引起程序运行的错误。部分地址译码法的优点是可以减少所用地址译码器的数量。MCS-51单片机系统中,片外程序存储器和片外数据存储器共用16位地址线和8位数据线,为何不会产生冲突?解:程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于数据存储器的读和写由RD和WR信号控制,而程序存储器由读选通信号PSEN控制,这些信号在逻辑上时序上不会产生冲突,因此,两者虽然共处于同一地址空间,但由于控制信号不同,所以不会发生总线冲突。某一单片机应用系统,需扩展4KB的EPROM和2KB的RAM,还需外扩一片8255并行接口芯片,采用线选法,画出硬件连接图,并指出各芯片的地址范围。解:硬件连接图如下图所示。■T-'-.rl-L—-4--9-10rlqrJxlrlM门4rl£rrFmEIuTS-51FO74IS375ECkDJOE6115CSi1WRDAl■T-'-.rl-L—-4--9-10rlqrJxlrlM门4rl£rrFmEIuTS-51FO74IS375ECkDJOE6115CSi1WRDAl辿WEM图4.17题硬件连接电路图注:8255的复位线RESET应与MCS-51的RESET线连上。复位、晶振电路应画上。各芯片的地址范围为:2732:E000H〜EFFFH6116:D800H〜DFFFH8255:BFFCH〜BFFFH18.某单片机应用系统,需扩展2片8KB的EPROM和2片8KB的RAM,采用地址译码法,画出硬件连接图,并指出各芯片的地址范围。解:硬件连接电路图如图4.18所示。各芯片的地址范围为:2764(1#):0000H〜1FFFH2764(2#):2000H〜3FFFH6264(1#):4000H〜5FFFH6264(2#):6000H〜7FFFH

图4.184.18题硬件连接电路图CE62642#D7-D0WEOEP2.7P2.6PZ.5P2.4-P2.089S51ALEP0_7-P0.0图4.184.18题硬件连接电路图CE62642#D7-D0WEOEP2.7P2.6PZ.5P2.4-P2.089S51ALEP0_7-P0.0PSEN丽CE74LS37a27641#DZ27642#D7-W>62641#D7-D0WEU?I/O接口扩展方法有哪几种?解:(1)并行总线扩展的方法(2)串行口扩展方法(3)I/O端口模拟串行方法(4)通过单片机内I/O的扩展方法8255A有几种工作方式?如何选择工作方式?A口和B口的工作方式是否完全相同?解:8255A有3种工作方式:方式0、方式1和方式2。方式0(基本输入/输出方式)。这种方式不需要任何选通信号,适合于无条件传输数据的设备,数据输出有锁存功能,数据输入有缓冲(无锁存)功能。方式1(选通输入/输出方式))这种工作方式下,A组包括A口和C口的高四位(PC7〜PC4),A口可由程序设定为输入口或输出口,C口的高四位则用来作为输入/输出操作的控制和同步信号;B组包括B口和C口的低四位(PC3〜PC0),功能和A组相同。方式2(双向I/O口方式)。仅A口有这种工作方式,B口无此工作方式。此方式下,A口为8位双向I/O口,C口的PC7〜PC3用来作为输入输出的控制和同步信号。此时,B口可以工作在方式0或方式1。8255A的端口地址为7F00H〜7F03H,试编程对8255A初始化,使A口按方式0输入,B口按方式1输出。解:程序如下:MOVDPTR,#7F03HMOVA,#10010100BMOV@DPTR,A8255A的方式控制字和C口按位置位/复位控制字均写入8255A的控制寄存器,8255A是如何来区分这两个控制字的?解:写入控制端口的控制字的最高位为1则为方式控制字,否则为C口置位/复位控制字。试编程对8155初始化,使A口为选通方式输出,B口为基本输入,C口作为控制联络信号,启动/计数器,按方式1工作,输出方波,频率为50Hz,输入时钟频率为500kHz。解:8155输入时钟的周期=1/500x103=2x10-6(s),8155计数器的初值为:20x10-3/2x10-6=10000=2170H。由于/计数器按方式1工作,所以写入定时器/计数器的初值为6170H。程序如下:ORG0000H

LJMPSTARTORG0100HSTART:MOVSP,#60HMOVDPTR,#7F04H;计数器的初值MOVA,#70HMOVX@DPTR,AINCDPTRMOVA,#61HMOVX@DPTR,AMOVDPTR,#7F00H;写命令字,启动定时器/计数器工作MOVA,#0C5HMOVX@DPTR,ASJMP$END24.假设8155的TIMERIN引脚输入的脉冲频率为1MHz,编写程序在8155的TIMEROUT引脚输出周期为10ms的方波。解:设8155有关寄存器端口地址为:20H24H25H命令寄存器定时器低字节定时器咼字节8155输入时钟的周期=1/1X106=1X10-6(s),8155定时器/计数器的初值=10X10-3/1X10-6=10000=2710H。由于定时器/计数器按方式1工作,所以写入定时器/计数器的初值为6710H。在8155的TIMEROUT引脚上输出10mS方波的程序如下:ORG1000HMOVR0,#25HMOVA,#10HMOVX@R0,ADECR0MOVA,#67HMOVX@R0,AMOVR0,#20HMOVA,#0F0HMOVX@R0,ASJMP$25.使用8255A或者8155的B端口驱动红色和绿色发光二极管各4只,且红、绿发光二极管轮流发光各1s,不断循环,试画出包括地址译码器、8255A或8155与发光管部分的接口电路图,并编写控制程序。解:电路连接图如图4.25所示。AIPBO电路连接图如图4.25所示。AIPBOAIJPB1PB2PB3PB4丽PB5WRPB6熬RESETPB7_@―"图4.254.25题硬件连接电路图其中,PBO〜PB3接红色发光二极管,PB4〜PB7接绿色发光二极管。设MCS-51单片机主频为12MHz。程序如下:ORGLJMPORGORGLJMPORGSTART:MOVMOVMOV0000HSTART0030HSP,#60HDPTR,#7FFFHA,#80H;数据指针指向8255A控制口MOVX@DPTR,AMOVDPTR,#7FFDHMOVA,#0FHLP1:MOVX@DPTR,AMOVX@DPTR,AMOVDPTR,#7FFDHMOVA,#0FHLP1:MOVX@DPTR,ALCALLDELAYCPLALJMPLP1DELAY:MOVR7,#8;工作方式字送8255A控制口;数据指针指向8255A的B口;置红色发光二极管亮;置红色发光二极管亮;调用1S延时子程序;置发光二极管亮反色;循环执行;1S延时子程序D1:MOVR6,#250D2:MOVR5,#250D3:DJNZR5,D3DJNZR6,D2DJNZR7,D1RETEND采用定时器T0方式1中断实现1S定时。1S=50mSx20次。T0方式1实现50mS定时,初值=216-50mS/lyS=15536=3CB0H(1S=20mSx50次,初值=216-20mS/1yS=45536=B1E0H)ORG0000HSTART:MOVSP,#60HSTART:MOVSP,#60HMOVDPTR,#7FFFHMOVA,#80HMOVX@DPTR,AMOVDPTR,#7FFDHMOVA,#0FHMOVR2,AMOVX@DPTR,AMOV30H,#00HMOVTL0,#0B0HMOVTH0,MOVTMOD,S0IhSETBTR0SETBET0SETBEALP1:SJMPLP1TT0:PUSHACCPUSHPSWLJMPSTARTORG000BHLJMPTT0ORG1000H;数据指针指向8255A控制口;工作方式字送8255A控制口;数据指针指向8255A的B口;置红色发光二极管亮;置红色发光二极管亮;次数计数单元初值;T0赋初值;定时器/计数器0工作于方式1;启动T0;开T0中断;开总允许中断;等待定时器中断INC30HMOVA,30HCJNEA,#20,LP2MOVA,R2CPLAMOVR2,AMOVX@DPTR,ALP2:;T0LP2:;T0赋初值MOVTL0,#0B0HMOVTH0,#3CHPOPPSWPOPACCSETBTR0RETIEND26.简述RS-232C,RS-422A及RS-485串行通信接口的特点,画出在双机通信情况下,3个串行通信接口的接口电路。解:RS-232C采取不平衡传输方式,是为点对点(即只用一对收、发设备)通信而设计的,采用负逻辑,其驱动器负载为3kQ〜7kQ。由于RS-232C发送电平与接收电平的差仅为2〜3V,所以其共模抑制能力差,再加上双绞线上的分布电容,因此,RS-232C适用于传送距离不大于15m,速度不高于20kb/s的本地设备之间通信的场合。RS-422由RS-232发展而来,RS-422定义了一种平衡通信接口,将传输速率提高到10Mb/s,传输距离延长到1220m(速率低于100kb/s时),并允许在一条平衡总线上最多连接10个接收器。RS-422是一种单机发送、多机接收的单向、平衡的通信总线标准。RS-485是在RS-422的基础上制定的标准,增加了多点、双向通信能力,通常在要求通信距离为几十米至上千米时,广泛采用RS-485总线标准。它采用平衡发送和差分接收,即在发送端,驱动器将TTL电平信号转换成差分信号输出;在接收端,接收器将差分信号变成TTL电平。具有较高的灵敏度,能检测低至200mV的电压,具有抑制共模干扰的能力,数据传输可达千米以上。RS-232的双机通信接口电路如图4.26-1所示。I"Cl-C2+IUNT2IKKirjUTMAX232c;C1+mCl-C2+MAX232V4VliNJ)Tio.irKUNTA}:i「T2O:I"Cl-C2+IUNT2IKKirjUTMAX232c;C1+mCl-C2+MAX232V4VliNJ)Tio.irKUNTA}:i「T2O:'rKH:NTl(.h'rH-INKirJUTT2IKIUNI?1X13R2IN—T"图4.26-14.26题硬件连接电路图RS-422和RS-485的双机通信接口电路如图4.26-2所示。卜山血殆卜山血殆75176图4.26-24.26题硬件连接电路图27.叙述单片机外扩CPLD/FPGA的方法。为保证系统可靠性,单片机与CPLD/FPGA两部分之间功能应设计为相对独立。单片机与CPLD/FPGA的扩展接口方式一般有两种,即总线方式与独立方式:总线方式。所谓总线方式,是指MCS-51单片机按外部总线时序与CPLD/FPGA进行数据与控制信息通信,其特点是:速度快。节省CPLD芯片的I/O口线。相对于非总线方式,总线方式连接具有单片机编程简捷,控制可靠等特点。在CPLD/FPGA中通过逻辑切换,单片机易于扩展SRAM或ROM。这种方式有许多实用之处,如利用类似于微处理器系统的DMA的工作方式,首先由CPLD/FPGA与接口的高速A/D等器件进行高速数据采样,并将数据暂存于SRAM中,采样结束后,通过切换,使单片机与SRAM以总线方式进行数据传送,以便发挥单片机强大的数据处理能力。独立方式。所谓独立方式,是指MCS-51单片机与CPLD/FPGA之间不需要按外部总线时序进行通信,而是各自相对独立地完成自己的通信功能。与总线接口方式不同,几乎所有单片机都能以独立接口方式与CPLD/FPGA进行通信,其通信的时序方式可由所设计的软件自由决定,形式灵活多样。其最大的优点是CPLD/FPGA中的接口逻辑无须遵循单片机内固定总线方式的读/写时序oCPLD/FPGA的逻辑设计与接口和单片机程序设计可以分先后相对独立地完成。事实上,目前许多流行的单片机已无总线工作方式,如89C2051、7C2051、Z84系列、PICI6C5X系列等。28.简述PSD器件的特点,画出8051外扩PSD器件的电路图。主要特点:19个可调配置的I/O引脚:PA(PA0〜PA7)、PB(PB0〜PB7)、PC(PC0〜PC2)。可作为单片机I/O端口扩展,锁存地址输出;,漏极开路或CMOS输出。PSD3xx的数据总线AD0〜AD15为16位,通过对PADA、PADB的配置,既可与8位单片机相连工作于8位数据方式,也可与16位单片机相连工作于16位数据方式。两个可编程阵列PADA和PADB采用可重复编程的COMSEPROM技术制造,用户可编程可擦除,共有40个乘积项和多达16个输入及24个输出。256k位的UVEPRPM,可配置为32kx8或16kx16两种方式,可为优化地址译码而划分为8个相等的可映射存储块;存储块结构为4kx8或2kx16两种方式;存储块的选择由PADA的输出来决定。90ns的EPROM访问时间(包括输入锁存和PAD地址译码时间)16k位的SRAM,可配置为2kx8或1kx1两种方式6;90ns的SRAM访问时间(包括输入锁存和PAD地址译码时间)可实现配置加密和PAD译码加密,从而克服了传统电路的缺点,使得电路和程序无法破译。由PC机上运行PSDsoft软件实现对PSD系列芯片的配置、编程等软件设计。除此之外,PSD4xxx系列在基本性能增加的基础上,还增加了4MB闪存、2个组合PLD、微控制器总线接口、JTAG接口、ISP、IAP、页寄存器、电源管理单元等。8051外扩PSD器件的电路:MCS-51单片机与PSD的接口电路如图4.3.17所示。8051用对外部程序存储器访问信号PSEN访问PSD311中的程序存器,用WR、Rd与PSD311的读写端对应相连,ALE信号与PSD311的ALE信号对应相连。8051是8位数据/地址复用方式,其数据/地址线可接与PSD311的AD0〜AD7相连,此时PA口作I/O端口。因为地址译码空间为64K,所以PC口用作I/O端口,而不作A16~A18地址的输入,时把PSD311的复位信号设为高有效。

图4.28单片机与PSD的接口电路图29.指出DS12C887具有的功能及内部RAM单元的用途。解:DS12C887是美国Dallas公司生产的实时日历时钟芯片,采用CMOS技术,与MC146818B和DS1287管脚兼容,可直接替换。内含一个锂电池,在断电情况下运行十年以上不丢失数据。具有秒、分、时、星期、日、月、年计数功能,对于一天内的时间记录,有12小时制和24小时制两种模式。在12小时制模式中,用AM和PM区分上午和下午,可实现闰年调整。时间的表示方法有两种,二进制数和BCD码表示方法。内部有128字节RAM,其数据具有掉电保护功能。可以选择Motorola和Intel总线时序。用户可对DS12C887进行编程以实现多种方波输出,并可对其内部的三路中断通过软件进行屏蔽。工作电压为4.5〜5.5V,工作电流为7〜15mA。DS12C887具有功耗低、外围接口简单、精度高、工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟场合中。DS12C887内部有128B的存储器,系统占用15B,用户可用113B,具体分布情况如下表所示。地址功能取值范围二进制十进制00H秒00〜3BH00〜5901H秒报警00〜3BH00〜5902H分00〜3BH00〜5903H分报警00〜3BH00〜5904H时,12小时模式0〜0CHAM,81〜8CHPM01-12AM,81-92PM时,24小时模式00〜17H00〜2305H时报警,12小时模式0〜0CHAM,81〜8CHPM01-12AM.81-92PM时报警,24小时模式00〜17H00〜2306H星期,星期日=101〜07H01〜0707H日01〜1FH01〜3108H月01〜0CH1〜1209H年00〜63H00〜990AH控制寄存器A0BH控制寄存器B0CH控制寄存器C0DH控制寄存器D32H世纪13H,14H19200EH〜31H,33H〜7FH用户数据区30.简述系统监控芯片MAX692A的功能。解:

MAX692A是美国Maxim公司的系统监控芯片产品,具有后备电池切换、电压监视器、“看门狗”监控等功能。31•何谓“看门狗”?它如何实现对系统程序的监控?解:“看门狗(WDT)”,也称为程序监视定时器。WDT的作用是通过不断监视程序每周期的运行事件是否超过正常状态下所需要的时间,从而判断程序是否进入了“死循环”,并对进入“死循环”的程序作出系统复位处理。在程序中设置适当的指令,清WDT,就可监视微处理器的工作。例如在主程序开始时,将WDT置位,如果主程序执行过程中产生死循环,就无法清WDT,超过WDT的定时时间时,WDT就会对微处理器发出复位信号。从而实现对系统程序的监控。32.说明I2C总线的特点以及在单片机中实现该总线的方法。解:I2C总线是由串行数据线SDA和串行时钟线SCL构成的,可发送和接收数据。它允许若干兼容器件共享总线。所有挂接在EC总线上的器件和接口电路都应具有EC总线接口,且所有的SDA/SCL同名端相连。总线上所有器件要依靠SDA发送的地址信号寻址,不需要片选线。I2C总线最主要的优点是其简单性和有效性。占用的空间小,降低了互连成本。总线的长度可高达7.6m,并且能够以10kbps的最大传输速率支持40个组件。支持多主控器件,其中,任何能够进行发送和接收的设备都可以成为主器件。主控能够控制信号的传输和时钟频率。当然,在某时刻只能有一个主控器件。在单片机控制系统中,广泛使用EC器件。如果单片机自带EC总线接口,则所有EC器件对应连接到该总线上即可;若无EC总线接口,则可以使用I/O口模拟I2C总线。MCS-5I1pin-D1卜riiUPl.1SCISDA图4.324.32题硬件连接电路图使用单片机I/O口模拟I2C总线时,硬件连接非常简单,只需两条I/O口线即可,在软件中分别定义成SCL和SDA。MCS-51单片机实现EC总线接口电路如图图4.324.32题硬件连接电路图电路中单片机的P1.0引脚作为串行时钟线SCL,P1.1引脚作为串行数据线SDA,通过程序模拟I2C串行总线的通信方式。I2C总线适用于通信速度要求不高而体积要求较高的应用系统。习题5A/D转换器的作用是将(模拟量)量转为(数字量)量;D/A转换器的作用是将(数字量)量转为(模拟量)量。A/D转换器的四个最重要指标是(分辨率)、(转换精度)、(线性误差)和(转换时间)。3.若某8位D/A转换器的输出满刻度电压为+5V,则该D/A转换器的分辨率为(5/28)V。4.当单片机启动ADC0809进行模/数转换时,应采用(B)指令。A:A:MOVA,20C:MOVCA,@A+DPTR5.读取AD转换的结果,使用(CA:MOVA,@RiC:MOVXA,@DPTRB:MOVX@DPTR,AD:MOVXA,@DPTR)指令。B:MOVX@DPTR,AD:MOVCA,@DPT6.当DAC0832D/A转换器的CS接8031的P2.0时,程序中0832的地址指针DPDR寄存器应置为(D)。A:A:0832HB;FE00HC:FEF8HD;以上三种都可以传感器的主要作用是什么?解:传感器是将电量或非电量转换为可测量的电量的检测装置,是由敏感元件和转换元件组成的。国际电工委员会IEC将传感器定义为:传感器是测量系统中的一种前端部件,它将各种输入变量转换成可供测量的信号。输入通道和输出通道的特点是什么?解:输入通道的特点:输入通道要靠近拾取对象采集信息,以减少传输损耗,防止干扰;输入通道工作环境因素严重影响通道的方案设计,没有选择的余地;传感器的输出往往是模拟信号、微弱信号输出,转换成计算机要求的信号电平时,需要使用一些模拟电路技术,因此输入通道通常是模拟、数字等混杂电路;传感器、变送器的选择和环境因素决定了输入通道电路设计的繁简,因为在输入通道中必须将传感器、变送器的输出信号转换成能满足计算机输入要求的TTL电平,输入通道中传感器、变送器输出信号与计算机逻辑电平的相近程度影响着输入通道的繁简程度;传感器输出信号一般比较微弱,为便于计算机拾取,常需要放大电路,这也是计算机系统中最容易引入干扰的渠道,所以输入通道中的抗干扰设计是非常重要的。输出通道的特点:小信号输出,大功率控制;输出伺服驱动控制信号,在伺服驱动系统中的状态反馈信号,作为检测信号输入至输入通道;输出通道接近被控对象,环境复杂恶劣,电磁和机械干扰较为严重。什么是D/A转换器?解:D/A转换器(DigittoAnalogConverter)是将数字量转换成模拟量的器件,通常用DAC表示,它将数字量转换成与之成正比的电量,广泛应用于过程控制中。简述D/A转换器的主要技术指标。解:D/A转换器的主要性能指标有:分辨率:单位数字量所对应模拟量增量,即相邻两个二进制码对应的输出电压之差称为D/A转换器的分辨率。它确定了D/A产生的最小模拟量变化,也可用最低位(LSB)表示。精度:精度是指D/A转换器的实际输出与理论值之间的误差,它是以满量程VFS的百分数或最低有效位(LSB)的分数形式表示。线性误差:D/A转换器的实际转换特性(各数字输入值所对应的各模拟输出值之间的连线)与理想的转换特性(始、终点连线)之间是有偏差的,这个偏差就是D/A的线性误差。即两个相邻的数字码所对应的模拟输出值(之差)与一个LSB所对应的模拟值之差。常以LSB的分数形式表示。转换时间TS(建立时间):从D/A转换器输入的数字量发生变化开始,到其输出模拟量达到相应的稳定值所需要的时间称为转换时间。简述D/A转换芯片的主要结构特性。解:D/A转换芯片的主要结构特性为:数字输入特性数字输入特性包括接收数的码制、数据格式以及逻辑电平等。目前批量生产的D/A转换芯片一般都只能接收自然二进制数字代码。模拟输出特性目前多数D/A转换器件均属电流输出器件,手册上通常给出的输入参考电压及参考电阻之下的满码(全1)输出电流I0。另外还给出最大输出短路电流以及输出电压允许范围。锁存特性及转换控制

D/A转换器对数字量输出是否具有锁存功能将直接影响与CPU的接口设计。如果D/A转换器没有输入锁存器,通过CPU数据总线传送数字量时,必须外加锁存器,否则只能通过具有输出锁存功能的I/O给D/A送入数字量(4)参考电源D/A转换中,参考电压源是唯一影响输出结果的模拟参量,是D/A转换接口中的重要电路,对接口电路的工作性能、电路的结构有很大影响。DAC0832主要特性参数有哪些?解:8位并行D/A转换;片内二级数据锁存,提供数据输入双缓冲、单缓冲、直通三种工作方式;电流输出型芯片,电流稳定时间1us。通过外接一个运算放大器,可以很方便地提供电压输出;DIP20封装、单电源(+5V〜+15V,典型值+5V);只需在满量程下调整其线性度;单一电源供电(十5V〜+15V),低功耗,200mW。与MCS-51连接方便。DAC0832与80C51单片机连接时有哪些控制信号?其作用是什么?解:_CS:片选输入线,低电平有效。ILE:数据锁存允许输入,高电平有效。_WR1:写1信号输入,低电平有效。当CS,ILE,WR1=010时,数据写入DAC0832的第一级锁存。WR2:写2信号输入,低电平有效。XFER:数据传输信号输入,当WR2,XFER=00时,数据由第一级锁存进入第二级锁存,并开始进行D/A转换。简述逐次逼近式A/D转换器的工作原理。解:逐次逼近式A/D转换器的转换原理即“逐位比较”,如图5.9所市,它由N位寄存器、D/A转换器、比较器和控制逻辑等部分组成,N位寄存器代表N位二进制数码。输出缓冲器N位数字量输出OE输出缓冲器N位数字量输出OE图5.14逐次逼近式A/D转换器原理图当模拟量Vx送入比较器后,启动信号通过控制逻辑电路启动A/D开始转换。首先,置N位寄存器最高位(Dn-1)为T”,其余位清“0”;N位寄存器的内容经D/A转换后得到整个量程一半的模拟电压VN,与输入电压Vx比较。若Vx>VN时,则保留Dn-1=1;若VxvVN是,则Dn-1位清“0”。然后,控制逻辑使寄存器下一位(Dn-2)置T”,与上次的结构一起经D/A转换后与Vx比较,重复上述过程,直至判别出DO位取T”还是取“0”为止,此时控制逻辑电路发出转换结束信号DONE。这样经过N次比较后,N位寄存器的内容就是转换后的数字量数据,整个转换过程就是这样一个逐次比较逼近的过程。在单片机系统中,常用的A/D转换器有哪几种?解:逐次逼近型的A/D转换器DAC0809、DAC0816双积分型A/D转换器MC14433、ICL7035如何确定A/D转换器的位数?解:A/D转换器位数的确定与整个测量控制系统所要测量控制的范围和精度有关,计算时应比总精度要求的最低分辨率高一位。实际选取的A/D转换器的位数应与其它环节所能达到的精度相适应。只要不低于它们就行,选得太高既没有意义,而且价格还要高得多。如何确定A/D转换器的转换速率?解:积分型、电荷平衡型和跟踪比较型A/D转换器转换速度较慢,转换时间从几毫秒到几十毫秒不等,只能构成低速A/D转换器,一般运用于对温度、压力、流量等缓变参量的检测和控制。逐次比较型的A/D转换器的转换时间可从几yS到lOOyS左右,属于中速A/D转换器,常用于工业多通道单片机控制系统和声频数字转换系统等。高速A/D转换器适用于雷达、数字通讯、实时光谱分析、实时瞬态记录、视频数字转换系统等。A/D转换器ADC0809的编程要点是什么?解:在软件编写时,应根据硬件连接电路计算被选择的模拟通道的地址;执行一条输出指令,启动A/D转换;转换结束后,执行一条输入指令,读取A/D转换结果。可以采用延时、查询和中断的方法判别A/D转换结束。在什么情况下要使用D/A转换器的双缓冲方式?试以DAC0832为例画出双缓冲方式的接口电路。解:应设置D/A转换器的双缓冲方式的情况有些D/A转换器(如DAC0832)的内部具有两极缓冲结构,即芯片内有一个8位输入寄存器和一个8位DAC寄存器。这样的双缓冲结构,可以使DAC转换输出前一个数据的同时,将下一个数据传送到8位输入寄存器,以提高D/A转换的速度。更重要的是,能够使多个D/A转换器在分时输入数据后,同时输出模拟电压。D/A转换器DAC0832的双缓冲方式的接口电路如图5.19所示。图5.19DAC0832双缓冲连接电路图20•用单片机控制外部系统时,为什么要进行A/D和D/A转换?解:单片机只能处理数字形式的信息,但是在实际工程中大量遇到的是连续变化的物理量,如温度、压力、流量、光通量、位移量以及连续变化的电压、电流等。对于非电信号的物理量,必须先由传感器进行检测,并且转换为电信号,然后经过放大器放大为0V〜5V电平的模拟量。所以必须加接模拟通道接口,以实现模拟量和数字量之间的转换°A/D(模/数)转换就

是把输入的模拟量变为数字量,供单片机处理;而D/A(数/模)转换就是将单片机处理后的数字量转换为模拟量输出。A/D转换芯片采样保持电路的作用是什么?省略采样保持电路的前提条件是什么?解:A/D转换芯片中采样保持电路的作用是把一个时间连续的信号变换为时间离散的信号,并将采样信号保持一段时间。当外接模拟信号的变化速度相对于A/D转换速度来说足够慢,在转换期间内可视为直流信号的情况下,可以省略采样保持电路。具有8位分辨率的A/D转换器,当输入0〜5V电压时,其最大量化误差是多少?解:对于8位A/D转换器,实际满量程电压为5V,则其量化单位1LSB=5V/256=O.O196V,考虑到A/D转换时会进行四舍五入处理,所以最大量化误差为(1/2)LSB,即0.0098V。在一个80C51单片机与一片DAC0832组成的应用系统中,DAC0832的地址为7FFFH,输出电压为0〜5V。试画出有关逻辑电路图,并编写产生矩形波,其波形占空比为1:4,高电平为2.5V,低电平为1.25V的转换程序。解:硬件电路连接图如图5.23所示。D01*3ILERFBDT5utiagndCSIquttKFERWR1VrefWR2DAC0S32DGND^UTn^C^UTPOJOIPO.TP2.7丽S0C51GND图5.235.23题逻辑电路图当VO=2.5V时,D=80H;VO=1.25V时,D=40H。程序如下:ORG0000HLJMPMAINORG0100HMAIN:MOVDPTR,#7FFFHNEXT:MOVA,#80HMOVX@DPTR,AACALLDELAYMOVR4,#03HMOVA,#40HMOVX@DPTR,ALOOP:ACALLDELAYDJNZR4,LOOPAJMPNEXTDELAY:RETEND24.在一个80C51与一片ADC0809组成的数据采集系统中,ADC0809的地址为7FF8H〜7FFFH。试画出逻辑电路图,并编写程序,每隔1分钟轮流采集一次8个通道数据,8个通道总共采集100次,其采样值存入以片外RAM3000H开始的存储单元中。解:硬件电路连接图如图5.24所示。

图5.245.24题逻辑电路图设80C51的时钟频率为12MHz,程序如下:ORG0000HLJMPMAINORG001BHLJMPT1_1ORG0100HMAIN:MOVSP,#60H;设堆栈指针MOVR7,#100;置米集次数MOVR1,#30H;片外RAM地址高位MOVR0,#00H;片外RAM地址低位MOVR2,#20;置入初值20(计1s)MOVR3,#60;置入初值60(计1min)MOVTOMD,#10H;定时器T1工作于模式1MOVTH1,#3CH;计数器初值MOVTL1,#0B0HSETBEA;开中断SETBET1;定时器T1允许中断SETBTR1;启动定时器T1LOOP:SJMPLOOP;等待中断DJNZR7,LOOP;是否到100次?SJMP$ORG0200HT1_1:MOVTH1,#3CH;中断服务程序,重新赋计数器初值MOVTL1,#0B0HDJNZR2,RETI_0;1s未到,返回MOVR2,#20;重新置“100S”计数器初值DJNZR3,RETI_0;1min未到,返回MOVR3,#60MOVR6,#8;8个通道计数器初值MOVDPTR,#7FF8H;IN0地址LOOP1:MOVX@DPTR,A;启动A/D转换JBP1.0,$;判转换是否结束MOVXA,@DPTR;读取转换结果PUSHDPH;将通道地址压入堆栈PUSHDPLMOVDPH,R1;将片外RAM地址送DPTRMOVDPL,R0MOVX@DPTR,A;将转换结果存入片外RAMINCDPTR;片外RAM地址增1MOVR1,DPH;保存片外RAM地址MOVR0,DPLPOPDPL;恢复通道地址POPDPHINCDPTRDJNZR6,LOOP1;8个通道是否米集结束RETI_0:RETI;中断返回END习题61.LED数码显示有(静态)和(动态)两种显示形式。2.消除键盘抖动既可以米用(硬件)方法,也可采用(软件)方法。矩阵式键盘常用的扫描方法为(行反转法)法和(动态扫描法)法。LED数码管显示若用动态显示,须(B)。A:将各位数码管的位选线并联B:将各位数码管的段选线并联C:将位选线用一个8位输出口控制D:输出口加驱动电路显示器和键盘在单片机应用系统中的作用是什么?解:具有人机对话功能。实现人对应用系统的状态干预和数据输入以及应用系统向人报告运行和运行结果。在单片机系统中,常用的显示器有哪几种?解:发光二极管显示器,简称LED(LightEmittingDiode);液晶显示器,简称LCD(LiquidCrystalDisplay);荧光管显示器,简称CRT。LED显示器的显示字符条件是什么?解:要使LED显示器显示出字符,必须提供段码和位选码。段码(即字码):可以用硬件译码的方法获得,也可以用软件的方法获得。位选码:静态显示和动态显示。LED动态显示子程序设计要点是什么?解:(1)建立显示数据缓冲区:存放待显示数字、字符在字型编码表中的序号;(2)软件译码:利用查表方法获得字型编码(段码);(3)位扫描输出:采用移位方法逐位点亮LED显示器;(4)延时子程序:控制点亮时间和时间间隔。LED静态显示方式与动态显示方式有何区别?各有什么优缺点?解:(1)静态显示方式:静态显示方式是指当显示器显示某一字符时,发光二极管的位选始终被选中。在这种显示方式下,每一个LED数码管显示器都需要一个8位的输出口进行控制。由于单片机本身提供的I/O口有限,实际使用中,通常通过扩展I/O口的形式解决输出口数量不足的问题。静态显示主要的优点是显示稳定,在发光二极管导通电流一定的情况下显示器的亮度大,系统运行过程中,在需要更新显示内容时,CPU才去执行显示更新子程序,这样既节约了CPU的时间,又提高了CPU的工作效率。其不足之处是占用硬件资源较多,每个LED数码管需要独占8条输出线。随着显示器位数的增加,需要的I/O口线也将增加。(2)动态显示方式:动态显示方式是指一位一位地轮流点亮每位显示器(称为扫描),即每个数码管的位选被轮流选中,多个数码管公用一组段选,段选数据仅对位选选中的数码管有效。对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。通过调整电流和时间参数,可以既保证亮度,又保证显示。若显示器的位数不大于8位,则显示器的公共端只需一个8位I/O口进行动态扫描(称为扫描口),控制每位显示器所显示的字形也需一个8位口(称为段码输出)。10•为什么要消除按键的机械抖动?消除按键抖动的方法有几种?

解:通常的按键所用开关为机械弹性开关。由于机械触电的弹性作用,按键在闭合及断开的瞬间均伴随有一连串的抖动。键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合仅作一次处理,必须去除抖动。消除抖动的方法有硬件和软件两种方法。硬件方法常用RS触发器电路。软件方法是当检测出键闭合后执行一个10ms〜20ms的延时程序,再一次检测键的状态,如仍保持闭合状态,则确认真正有键按下。简述液晶显示器LCD的特点,画出80C51与液晶显示模块LCM的基本接口电路,并编写初始化程序。解:液晶显示器简称LCD(LiquidCrystalDiodes),是一种被动式的显示器,即液晶本身并不发光,利用液晶经过处理后能够改变光线传输方向的特性,达到显示字符或者图形的目的。LCD显示器有笔段式和点阵式两种,点阵式又可分为字符型和图像型。笔段式LCD显示器类似于LED数码管显示器。每个显示器的段电极包括七个笔划(段)和一个背电极BP(或COM)。可以显示数字和简单的字符,每个数字和字符与其字形码(段码)对应。点阵式LCD显示器的段电极与背电极呈正交带状分布,液晶位于正交的带状电极间。点阵式LCD的控制一般采用行扫描方式,通过两个移位寄存器控制所扫描的点。80C51与液晶显示模块LCM的基本接口电路如图6.11所示。P2780C51RDWR1略山

P&.I1^.4ALEA7JLS573P2780C51RDWR1略山

P&.I1^.4ALEA7JLS573图6.1180C51与液晶显示模块LCM的基本接口电路液晶显示模块初始化子程序(将系统设置成显示2行字符,5X7点阵,开显示,显示光标,字符闪烁,清屏,光标为移动方式,自动地址为增量方式。:电源打开后,在电源上升到4.5V并维持15ms后,写入功能设置控制字,选择数据接口位数等;等待5ms后,检查忙标志,在不忙的情况下,再进行其他的功能设置;检查忙标志,在不忙的情况下,关显示;检查忙标志,在不忙的情况下,清屏;检查忙标志,在不忙的情况下,设定输入方式,初始化结束。程序如下:LCD:MOVA,#38HLCD:MOVA,#38HMOVDPTR,#8000HMOVX@DPTR,ALCALLBUSYMOVA,#01HMOVDPTR,#8000HMOVX@DPTR,ALCALLBUSYMOVA,#07HMOVDPTR,#8000HMOVX@DPTR,ALCALLBUSYMOVA,#0FHMOVDPTR,#8000HMOVX@DPTR,A;8位数据,2行显示,5x7点阵;LCD的口地址;清屏;AC自动加1,整体显示移动;开显示,开光标,字符闪烁;保护现场;保护现场;读BH及AC;忙,继续等待;不忙,恢复现场返回BUSY:PUSHDPHPUSHDPLPUSHPSWPUSHACCLOOP:MOVDPTR,#8001HMOVXA,@DPTRJBACC.7,LOOPPOPACCPOPPSWPOPDPLPOPDPHRET矩阵式键盘的编程要点是什么?解:(1)判断键盘上有无键按下:列输出全o,读行输入状态,若状态为全1,贝y说明键盘无键按下;若不全为1,则说明键盘有按下。消除按键抖动的影响:在判断有键按下后,用软件延时的方法,再判断键盘状态,如果仍为有键按下状态,则认为有一个确定的键按下,否则当作按键抖动处理。求按键位置,计算键号:用扫描的方法识别闭合键N所在的行号X和列号Y,并根据:以下公式计算闭合键的键号N=X行首键号+列号Y。键闭合一次仅进行一次按键处理:方法是等待按键释放之后,再进行按键功能的处理操作。设计一个8051外扩键盘和显示器电路,要求扩展8个键,4位LED显示器。解:硬件电路连接图如图6.13所示。JDQO8ih-[—F—p¥riririnririY1A1Y1A1JDQO8ih-[—F—p¥riririnririY1A1Y1A1¥2A2L-7407+5VO5.1KJ15.1K071AlViA*7407EB7ADO■M—fPOJO192AD7——►P0.7IE:1JBOCE-M—P3.7ALE—ALE8155WE■M—WR8051PCIPCORD-H—RDRESET-M—FLESE盹INIOKHP2DBA37407图6.136.13题LED显示器/键盘电路图使用8255的PC口设计一个4行4列键盘矩阵的接口电路,并编写出与之对应的键盘识别程序。解:硬件连接电路图如图6.14所示。

图6.146.14题扩展键盘电路图图6.146.14题扩展键盘电路图程序如下:ORG1000HSTART:MOVDPTR,#7FFFH;8255初始化MOVA,#81HMOVX@DPTR,AKEY:ACALLKEY1;检查有键闭合否JNZLKEY1;A非0说明有键按下ACALLDELAY1;执仃一次延时子程序(延时6ms)AJMPKEYLKEY1:ACALLDELAY1ACALLDELAY1;有键闭合延时2x6ms=12ms以去抖动ACALLKEY1;延时以后再检查是否有键闭合JNZLKEY2;有键闭合,转LKEY2ACALLDELAY1;无键闭合,说明是干扰信号,不作处理AJMPKEY;延时6ms后转KEY继续等待键入LKEY2:MOVR2,#0EFH;扫描初值送R2,设定PC4为当前扫描线MOVR4,#00H;回送初值送R4LKEY4:MOVDPTR,#7FFEH;指向PC口MOVA,R2MOVX@DPTR,A;扫描初值送PC口MOVA,@DPTR;取回送线状态JBACC.0,LONE;ACC.0=1,第0彳丁无键闭合,转LONEMOVA,#00H;装第0行行值AJMPLKEYP;转计算键码LONE:JBACC.1,LTWO;ACC.1=1,第1行无键闭合,转LTWOMOVA,#04H;装第1行行值AJMPLKEYP;转计算键码LTWO:JBACC.2,LTHR;ACC.2=1,第2行无键闭合,转LTHRMOVA,#08H;装第2行行值AJMPLKEYPLTHR:JBACC.3,NEXT;ACC.3=1,第3行无键闭合,转NEXTMOVA,#0CH;装第3行行值LKEYP:ADDA,R4;计算键码PUSHACC;保存键码LKEY3:ACALLDELAY1;延时6msACALLKEY1;判断键是否继续闭合,若闭合再延时JNZLKEY3POPACC;若键释放,则键码送A

RETNEXT:INCR4;列号加1MOVA,R2JNBACC.7,KND;第7位为0,以扫描到最高列,转KNDRLA;循环左移一位MOVR2,AAJMPLKEY4;进行下一列扫描KND:AJMPKEY;扫描完毕,开始新的一轮KEY1:MOVDPTR,#7FFEH;将PC口地址送DPTR,PC口高四位作为扫描线MOVA,#00H;所有扫描线均为低电平MOVX@DPTR,A;PC口向列线输出00HMOVXA,@DPTR;取回送线状态CPLA;行线状态取反ANLA,#0F0H;屏蔽A的咼四位RET;返回DELAY1:MOVR7,#4;延时6mS延时子程序D1:MOVR6,#220D2:DJNZR6,D2DJNZR6,D2DJNZR7,D1RETEND15.利用单片机串行口,一片74LS164扩展3x8键盘矩阵,P1.0〜P1.2作为键盘输入口,试画出该部分接口逻辑电路图,并编写与之对应的按键识别程序。解:硬件连接电路图如图6.15所示。QIQ2QSQ4Q5Q674LS164CCQIQ2QSQ4Q5Q674LS164CC图6.156.15题扩展键盘电路图程序如下:ORG1000HSERKEY:MOVSCON,#00H;设置串行口MOVLCALLA,#00HVARTO;键盘初始化,送00H到列线上;发送数据CHK:JNBP1.0,CHK0;检查是否有键按下JNBP1.1,CHK0;检查是否有键按下JNBP1.2,CHK0;检查是否有键按下AJMPCHK;无键按下,继续查找CHK0:LCALLDLY1;调用10ms延时子程序,去抖JNBP1.0,CHEN;确实有键按下,转CHENJNBP1.1,CHENJNBP12,CHEN

AJMPCHK;无键按下,继续查找CHEN:MOVR2,#0FEH;首列扫描字送R2,查键号,最低位为0MOVR4,#00H;首列偏移值送R4CHKN:MOVLCALLA,R2VARTO;发送列扫描字JBP1.0,CH1;检查P1.0有无键按下;若无,转CH1MOVA,#0;第一行首列值送A,00H+(R4)AJMPCKEY;转求键号CH1:JBP1.1,CH2;检查P1.1有无键按下;若无,转NEXTMOVA,#8;第二行首列值送ACH2:JBP1.1,NEXT;检查P1.1有无键按下;若无,转NEXTMOVA,#16;第三行首列值送AAJMPCKEY;转求键号CKEY:ADDRETA,R4;求键号,并入栈保护NEXT:INCR4;指向下一列MOVA,R2;取出原扫描字JNBACC.7,KEND;是否已检查完8列?RLA;8列未完,指向下一列MOVR2,A;列扫描字送R2AJMPCHKN;8列未完,检查下一列KEND:AJMPSERKEY;8列查完,未查到有键按下,等待VARTO:MOVSBUF,A;发送A中数据JNBTI,$;发送等待CLRRETTI;清除DLY1:END;延时10ms子程序(略);结束16.设计一个含8位动态显示和2x8键阵的硬件电路,并编写程序,实现将按键内容显示在LED数码管上的功能。解:硬件连接电路图如图6.16所示。

图6.166.16题扩展键盘显示器电路图程序如下:ORG1000HKD1:MOVA,#00000011B;8155初始化,PA,PB基本输出方式,PC输入方式MOVDPTR,#7F00HMOVX@DPTR,AKEY1:ACALLKS1;调用判断是否有键闭合子程序JNZLK1;有键闭合转LK1ACALLDSP8155;调用8155动态显示子程序,延时6msAJMPKEY1LK1:ACALLDSP8155ACALLDSP8155;调用两次显示,延时12msACALLKS1JNZLK2ACALLDSP8155;调用8155动态显示子程序,延时6msAJMPKEY1LK2:MOVR2,#0FEHMOVR4,#00HLK3:MOVDPTR,#7F01HMOVA,R2MOVX@DPTR,AINCDPTRINCDPTRMOVXA,@DPTRJBACC.0,LONEMOVA,#00HAJMPLKPLONE:JBACC.1,LTWOMOVA,#08HAJMPLKPLKP:ADDA,R4PUSHACCLK4:ACALLDSP8155ACALLKS1JNZLK4POPACCNEXT:INCR4MOVA,R2JNBACC.7,KNDRLAMOVR2,AAJMPLK3KND:AJMPKEY1KS1:MOVDPTR,#7F01HMOVA,#00HMOVX@DPTR,AINCDPTRINCDPTRMOVXA,@DPTRCPLAANLA,#0FHRETDSP8155:MOVDPTR,#7F00H;指向8155命令寄存器MOVA,#00000011B;设定PA口、PB口为基本输出方式MOVX@DPTR,A;输出命令字DISP1:MOVR0,#7EH;指向缓冲区末地址

MOVA,#80H;扫描字,PA7为1,从左至右扫描LOOP:MOVR2,A;暂存扫描字MOVDPTR,#7F01H;指向8155的PAMOVX@DPTR,A;输出位选码MOVA,@R0;读显示缓冲区一字符MOVDPTR,#PTRN;指向段数据表首地址MOVCA,@A+DPTR;查表,得段数据MOVDPTR,#7F02H;指向8155的PBMOVX@DPTR,A;输出段数据CALLD1MS;延时1msDECR0;调整指针MOVA,R2;读回扫描CLRC;清进位标志RRCA;扫描字右移JCPASS;结束AJMPLOOP;继续显示PASS:RET;返回D1MS:MOVR7,#02H;延时1ms子程序DMS:MOVR6,#0FFHDJNZR6,$DJNZR7,DMSRETPTRN:DB0C0H,0F9H,0A4H,0B0H,99H;段数据表DBDBEND17.设计一个用8155控制32个按键的键盘接口电路。编写程序实现以下功能:用8155定时器定时,每隔2s读一次键盘,并将读出的键值存入8155片内RAM以20H开始的单元中。解:CE颐WRRD阳用岛阳超怒A1旬CDC1C2C3硬件连接电路如图6.17所示。8155控制口的口地址为:7F00H;PA口地址:7F01H;PB口地址:7F02H;PC口地址:7F03H。片内RAM地址:7E00H〜

温馨提示

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

评论

0/150

提交评论