单片机原理及接口技术习题及答案苏州经贸职业技术学院1第第77部部分分应应用用系系统统配配置置及及接接口口技技术术1.为什么要消除键盘的机械抖动?有哪些方法?答:通常按键所用的开关为机械弹性开关,由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。因而在闭合及断开的瞬间均伴随有一连串的抖动,键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按键的抖动,可用硬件或软件两种方法消除。如果按键较多,常用软件方法去抖动,即检测出键闭合后执行一个延时程序,产生5~10ms的延时;让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当检测到按键释放后,也要给5~10ms的延时,待后沿抖动消失后,才能转入该键的处理程序。硬件方法常用RS触发器。2.试述A/D转换器的种类及特点。答:A/D转换器的种类很多,主要有计数比较型、逐次逼近型、双积分型等。逐次逼近型A/D转换器的特点是精度、速度和价格都适中,是比较常用的A/D转化器。双积分型A/D转换器的特点是精度高,抗干扰性好,价格低廉,但转换速度慢。3.设计一个2×2行列式键盘电路并编写键扫描子程序。解:(1)逻辑电路如下:(2)判断是否有键按下:有列线P1.0、P1.1送全0,查P0.0、P0.1是否为0。判断哪一个键按下:逐列送0电平信号,再逐行扫描是否为0。键号=行首号+列号单片机原理及接口技术习题及答案苏州经贸职业技术学院2KEY:LCALLKSJZKEYLCALLT10msLCALLKSJZKEYMOVR2,#0FEHMOVR4,#00HLK1:MOVP1,R2JBP0.0,ONEMOVA,#00HLJMPKPONE:JBP0.1,NEXTMOVA,#02HKP:ADDA,R4PUSHACCLK:LCALLKSJNZLKPOPACCRETNEXT:INCR4MOVA,R2JNBACC.1,KNDRLAMOVR2,AAJMPLK1KND:AJMPKEYKS:MOVP1,#0FCHMOVA,P0CPLAANLA,#03HRETT10ms:MOVR7,#10HTS1:MOVR6,#0FFHTS2:DJNZR6,TS2DJNZR7,TS1RET4.试设计一个LED显示器/键盘电路。单片机原理及接口技术习题及答案苏州经贸职业技术学院3解:5.在一个89C51应用系统中,89C51以中断方式通过并行接口74LS244读取A/D器件5G14433的转换结果。试画出有关逻辑电路,并编写读取A/D结果的中断服务程序。解:硬件电路设计如图:读取A/D结果的中断服务程序:MOVDPTR,#0FE00H单片机原理及接口技术习题及答案苏州经贸职业技术学院4MOVXA,@DPTRMOV30H,ARETI6.在一个fOSC为12MHz的89C51系统中接有一片D/A器件DAC0832,它的地址为7FFFH,输出电压为0~5V。请画出有关逻辑框图,并编写一个程序,使其运行后能在示波器上显示出锯齿波(设示波器X方向扫描频率为50μs/格,Y方向扫描频率为1V/格)。解:硬件电路设计如图:根据DAC0832的地址为7FFFH,则89C51的P2.7接DAV0832的片选。程序设计:因为示波器X方向扫描频率为50μs/格,Y方向扫描频率为1V/格,所以选择DAC0832的输出电压为0V~2V,对应的数字量为00H~66H(0~102);每次数据量增值为3,共34次循环,34×5μs=170μs。单片机原理及接口技术习题及答案苏州经贸职业技术学院5ORG0050HMAIN:MOVDPTR,#7FFFHLOOP1:MOVA,#00HLOOP2:MOVX@DPTR,AADDA,#03HCJNEA,#66H,LOOP2SJMPLOOP17.在一个fOSC为12MHz的89C51系统中接有一片A/D器件ADC0809,它的地址为7FF8H~7FFFH。试画出有关逻辑框图,并编写ADC0809初始化程序和定时采样通道2的程序(假设采样频率为1ms/次,每次采样4个数据,存于89C51内部RAM70H~73H中)。解:硬件电路设计如图:程序清单:ORG0000HLJMPMAIN单片机原理及接口技术习题及答案苏州经贸职业技术学院6ORG0013HLJMPIEX1ORG0030HMAIN:MOVSP,#60HMOVDPTR,#7FFAHSETBIT1SETBEX1SETBEALOOP1:MOVR0,#70HMOVR7,#04HLOOP2:MOVX@DPTR,AHEAR:SJMPHEARDJMPR7,LOOP2LCALLDIMSSJMPLOOP1DIMS:MOVR5,#32HDIMS1:MOVR6,#64HDIMS2:MOVR6,DIMS2MOVR5,DIMS1RETORG0200HIEX1:MOVXA,@DPTRMOV@R0,AINCR0RETI8.在一个89C51系统中扩展一片74LS245,通过光电隔离器件外接8路TTL开关量输入信号。试画出其有关的硬件电路。解:硬件电路设计如图:单片机原理及接口技术习题及答案苏州经贸职业技术学院79.用89C51的P1口作8个按键的独立式键盘接口。试画出其中断方式的接口电路及相应的键盘处理程序。解:硬件电路设计如图:键盘处理程序:ORG0000H单片机原理及接口技术习题及答案苏州经贸职业技术学院8LJMPMAINORG0013HLJMPIEX1ORG0030HMAIN:MOVSP,#60HSETBIT1SETBEX1SETBEASJMP$IEX1:MOVA,#FFHMOVP1,AMOVA,P1JNBACC.7,P7FJNBACC.6,P6FJNBACC.5,P5FJNBACC.4,P4FJNBACC.3,P3FJNBACC.2,P2FJNBACC.1,P1FJNBACC.0,P0FRETIP7F:LJMPPROM7P6F:LJMPPROM6P5F:LJMPPROM5P4F:LJMPPROM4P3F:LJMPPROM3P2F:LJMPPROM2P1F:LJMPPROM1P0F:LJMPPROM0……10.试说明非编码键盘的工作原理。如何去键抖动?如何判断键是否释放?答:(1)非编码键盘是靠软件识别的键盘。根据系统中按键数目的多少来选择不同的键盘结构。键数少时,可采用独立式按键结构;当键数多时可采用行列式按键结构。无论采用什么结构,都是通过单片机对它控制,因此可有三种控制方式:程序控制扫描方式、定时扫描方式和中断扫描方式。以行列式非编码键盘,采用程序控制扫描方式为例,其工作原理为:首先判断键盘上有无键按下,若有键按下则去键的机械抖动影响,然后逐列(行)扫描,判别闭合键的键号,再判别键是否释放,如果键释放则按键号处理相应程序。单片机原理及接口技术习题及答案苏州经贸职业技术学院9(2)当判断有键按下时,执行5ms~10ms的延时程序后再判断键盘的状态。如果仍为键按下状态,则认为确定有一个键按下;否则按照键抖动处理。(3)判断键是否释放时,先判断键是否仍为闭合状态,如果为时,则执行5ms~10ms延时程序后再判断直到键释放,以便达到对键的一次闭合仅作一次处理。11.DAC0832与89C51单片机连接时有哪些控制信号?其作用是什么?AC0832与89S51单片机连接时的控制信号有:ILE——数据锁存允许信号,高电平有效;/CS——输入寄存器选择信号,低电平有效;/WR1——输入寄存器的“写”选通信号,低电平有效。/XFER——数据转移控制信号线,低电平有效;/WR2——DAC寄存器的“写”选通信号。(2)作用:当/CS=0,/WR1=0,ILE=1时,LE1=ILEWR1CS=1,输入锁存器状态随输入线状态变化;当/CS=1,/WR1变高,ILE=1时,LE1=ILEWR1CS=0时,锁存输入数据。当/WR2=0,/XFER=0时,DAC寄存器的锁存信号LE2=XFERWR2=1时,DAC寄存器的输随输入状态变化;当/WR2变高,/XFER=0时,LE2=0时,锁存输入状态。12.在一个89C51单片机与一片DAC0832组成的应用系统中,DAC0832的地址为7FFFH,输出电压为0~5V。试画出有关逻辑框图,并编写产生矩形波,其波形占空比为1∶4,高电平时电压为2.5V,低电平时电压为1.25V的转换程序。解:硬件电路设计如图:单片机原理及接口技术习题及答案苏州经贸职业技术学院10VOUT=2.5V,D=2.5V×256/5=128=80HVOUT=1.25V,D=1.25V×256/5=64=40H程序清单:MOVDPTR,#7FFFHNEXT:MOVA,#80HMOVX@DPTR,AACALLDELYMOVR4,#04HMOVA,#40HMOVX@DPTR,ALOOP:ACALLDELAYDJNZR4,LOOPAJMPNEXTDELAY:MOVR7,#10HTS1:MOVR6,#0FFHTS2:DJNZR6,TS2DJNZR7,TS1RET单片机原理及接口技术习题及答案苏州经贸职业技术学院1113.在一个由89C51单片机与一片ADC0809组成的数据采集系统中,ADC0809的地址为7FF8H~7FFFH。试画出有关逻辑框图,并编写出每隔1min轮流采集一次8个通道数据的程序。共采样100次,其采样值存入片外RAM3000H开始的存储单元中。解:硬件电路设计如图:设fOSC=6MHz,用定时器定时100ms,用软件计数10×60实现定时1min。A/D转换采用查询(p1.0)方式。程序设计如下:ORG0000HAJMPMAINORG001BHAJMPSEAVEORG0030HMAIN:MOVSP,#60HMOVR7,#100;置采集次数MOVR1,#30H;片外RAM地址高位MOVR0,#00H;片外RAM地址低位MOVR2,#10;R2为100ms计数器,置入初值10MOVR3,#60;R3为秒计数器,置入初值60MOVTMOD,#10HMOVTH1,#3CH单片机原理及接口技术习题及答案苏州经贸职业技术学院12MOVTL1,#0B0HSETBET1SETBEASETBTR1LOOP:SJMPLOOPDJMPR7,LOOPSJMP$SEAVE:MOVTH1,#3CHMOVTL1,#0B0HDJNZR2,RETURNMOVR2,#10DJNZR3,RETURNMOVR6,#08;8个通道计数器初值MOVDPTR,#7FF8H;IN0的地址NEXT:MOVX@DPTR,A;启动A/D转换JBP1.0.$MOVXA,@DPTRPUSHDPH;将通道地址压入堆栈PUSHDPLMOVDPH,R1MOVDPL,R0MOVX@DPTR,AINCDPTRMOVR1,DPH;保存片外RAM地址MOVR0,DPLPOPDPLPOPDPHDJNZR6,NEXTRETURN:RETI;END14.以DAC0832为例,说明D/A的单缓冲与双缓冲有何不同。答:所谓双缓冲方式,就是把DAC0832的两个锁存器都接成受控锁存方式。双缓冲DAC0832的连接如下图所示。单片机原理及接口技术习题及答案苏州经贸职业技术学院13双缓冲方式用于多路数/模转换系统,以实现多路模拟信号同步输出的目的。为此就要使用两片DAC0832,并采用双缓冲方式连接,如下图所示。电路中以译码法产生地址,两片DAC0832共占据三个单元地址,其中两个输入寄存器各占一个地址,而两个DAC寄存器则合用一个地址。单片机原理及接口技术习题及答案苏州经贸职业技术学院1415.以DAC0832为例,说明D/A的单极性输出与双极性输出有何不同。答:在DAC0832的输出端连接一级运放组成的反向求和电路,可以得到单极性模拟电压(正电压或负电压),输出电压范围由参考电压VREF值决定。例如,当VREF=+5V(或-5V)时,输出电压VOUT范围是0V~-5V(或0V~+5V