周国运版51单片机课后习题答案(8)

2019-03-16 20:35

rebuf[i]=spiin(); }

8.用P1口模拟I2C从外部接收一组数据,遇到“$”结束。引脚自定义。 unsigned char xdata buffer[100] ; void main() {

unsigned char temp=0; unsigned char i=0; temp=rxbyt();

while(temp!=’$’) {

buffer[i]=temp; i++; } }

第9章 习题答案

1.为什么要消除键盘的机械抖动?有哪些方法?

答: 键抖动会引起一次按键被误读多次。为了确保CPU对键的一次闭合仅做一次处理,必须去除键抖动。在键闭合稳定时,读取键的状态,并且必须判别;在键释放稳定后,再作处理。按键的抖动,可用硬件或软件两种方法消除。如果按键较多,常用软件方法去抖动,即检测出键闭合后执行一个延时程序,产生12~20 ms的延时,让前沿抖动消失后,再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。当确认有键按下或检测到按键释放后,才能转入该键的处理程序。

2.试说明非编码键盘的工作原理。如何判断按键释放?

答: 非编码键盘的单片机系统中,键盘处理程序首先执行有无键按下的程序段,当确认有按键按下后,下一步就要识别哪一个按键被按下。对键的识别常用逐行扫描查询法或行列反转法。在获取键号后,继续扫描端口,直到状态改变,去抖动后,再次确认状态改变,即可判断按键释放。

3.试述A/D转换器的种类和特点。

答: 模/数(A/D)转换电路的种类很多,例如,计数比较型、逐次逼近型、双积分型等等。逐次逼近型A/D转换器.在精度、速度和价格上都适中,是最常用的A/D转换器件。双积分A/D转换器,具有精度高、抗干扰性好、价格低廉等优点,但转换速度低。

4.设计一个2×2的行列式键盘(同在P1口)电路并编写键扫描程序。

36

+5V 89C52 P1.0 P1.1 P1.2 P1.3

#include

unsigned char key() {

unsigned char row,col=0,k =-1; P1=0xf0;

if((P1&0xf0)==0xf0) return(k);

delay20ms(); if((P1&0xf0)==0xf0) return(k);

for(row=0;row<2;row++) {

P1=~(1<

if(k!=0xf0) {

while(k&(1<<(col+2))) col++; k=row*2+col; P1=0xf0;

while((P1&0xf0)!=0xf0); break; } }

return(k); }

5.试设计一个LED显示器/键盘电路。

37

+5V

100Ω P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 7407 89C52 +5V 5.1kΩ P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0 a b 7407 e f g dp c d 7406

6.在一个fosc为12MHz的89C52系统中接有一片ADC0809,它的地址为7FFFH,试编写ADC0809初始化程序和定时采样通道2的程序(假设采样频率为1ms/次,每次采样4个数据)。 #include

#include

define DAC0809 XBYTE[0x7fff] unsigned char xdata buffer[4] _at_ 0xa0;

void main() {

TMOD=0x01; TH0=0xFC; TL0=0x18; EA=1;

ET0=1;

TR0=1; DAC0809=2; while(1); }

void time0_srv() interrupt 1 {

unsigned char i;

TH0=0xFC; TL0=0x18;

for(i=0;i<4;i++)

38

buffer[i]=DAC0809;

}

7.试说明TLC2543的特点和与89C52的接口方式。 答:TLC2543的特性如下:

12位A/D转换器(可8位、12位和16位输出); 在工作温度范围内转换时间为l0μs; 11通道输入;

3种内建的自检模式; 片内采样/保持电路;

最大±l/4 096的线性误差; 内置系统时钟; 转换结束标志位; 单/双极性输出;

输入/输出的顺序可编程(高位或低位在前); 可支持软件关机: 输出数据长度可编程。

TLC2543与89C52的接线很简单,用SPI接口。

8.DAC0832与89C52单片机连接时有哪些控制信号?其作用是什么? 答:ILE:数据锁存允许信号,高电平有效。 CS:输入寄存器选择信号,低电平有效。

WR1:输入寄存器的“写”选通信号,低电平有效。 WR2:DAC寄存器的“写”选通信号,低电平有效。 XFER:数据传送信号,低电平有效。

9.在一个89C52单片机与DAC0832组成的应用系统中,DAC0832的地址为7FFFH,输出电压为0~5V。试编写产生矩形波,其波形占空比为1:4,高电平时电压为2.5V,低电平时电压为1.25V的转换程序。 #include #define DAC0832 XBYTE[0x7FFF] void main() {

unsigned char i; while(1) {

DAC0832=127; delay(); DAC0832=63;

for(i=0;i<3;i++) delay(); } }

39

10.试说明TLC5615的特点。 答:10位CMOS电压输出; 5 V单电源工作;

与微处理器3线串行接口(SPI); 最大输出电压是基准电压的2倍; 输出电压具有和基准电压相同的极性; 建立时间12.5μs; 内部上电复位;

低功耗,最高为l.75 mW; 引脚与MAX515兼容。

11.以DAC0832为例,说明D/A的单缓冲与双缓冲有何不同。 答:若应用系统中只有一路D/A转换或虽然是多路转换,但并不要求同步输出时,则采用单缓冲器方式接口,当地址线选通DAC0832后,只要输出控制信号,DAC0832就能一步完成数字量的输入锁存和D/A转换输出。 对于多路D/A转换接口,要求同步进行D/A转换输出时,必须采用双缓冲器同步方式接法。DAC0832采用这种接法时,数字量的输入锁存和D/A转换输出是分两步完成的,即CPU的数据总线分时地向各路D/A转换器输入要转换的数字量并锁存在各自的输入寄存器中,然后CPU对所有的D/A转换器发出控制信号,使各个D/A转换器输入寄存器中的数据同时打入DAC寄存器,实现同步转换输出。

40


周国运版51单片机课后习题答案(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:米易县精英保安公司白马选矿厂分队

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: