单片机课后练习题及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

60第11章一、问答、选择、填空题1.简述看门狗的基本原理。答:看门狗是通过软件和硬件的方式在一定的周期内监控单片机的运行状况,如果在规定时间内没有收到来自单片机的清除信号,也就是我们通常说的没有及时喂狗,则系统会强制复位,以保证系统在受干扰时仍然能够维持正常的工作状态2.简述软件陷阱技术的原理。答:软件陷阱就是用一条引导指令强行将捕获的程序引向一个指定的地址,在那里有一段专门对程序出错进行处理的程序,以使程序按既定目标执行。3.采用串行总线扩展技术的主要目的是什么?单片机应用系统中常用的串行扩展总线有哪些?答:由于数据的串行传输连线少,采用串行总线扩展技术可以使系统的硬件设计简化、系统的体积减小,同时,系统的更改和扩充更为容易。目前,单片机应用系统中常用的串行扩展总线有:I2C(InterICBUS)总线、SPI(SerialPeripheralInterface)总线、Microwire总线及单总线(1-WIREBUS)等。4.简单介绍一下I2C总线,绘出以51单片机为主机,其它器件为从机的I2C总线单主机系统框图?I2C总线采用二线制传输,一根是数据线SDA,另一根是时钟线SCL,所有I2C器件都连接在同名端的SDA和SCL上,每一个器件有一个唯一的地址。I2C总线是一个多主机总线,即总线上可以有一个或多个主机(或称主控制器件),总线运行由主机控制。这里所说的主机是指启动数据的传送(发起始信号)、发出时钟信号、发出终止信号的器件。通常,主机由单片机或其它微处理器担任。被主机访问的器件叫从机(或称从器件),它可以是其它单片机,而更多的是如A/D、D/A、LED或LCD驱动、时钟日历芯片、串行存储器等扩展芯片。以51单片机为主机,其它器件为从机的单主机系统,如图。5.举几个I2C总线器件的型号,说明其主要作用。SCLVCC时钟时钟芯片SDASCLKEY键盘键盘芯片SDASCLLCD显示器LCD驱动控制器SDASCL89c51P1.0P1.1LED显示器LED驱动控制器SDASCLSDASCLSRAMSDASCLE2PROMSDASCLAD/DASDASCLI/OSDA单主机系统I2C总线扩展示意图61答:START:转换启动信号。START下跳沿时,所有内部寄存器清0;START上跳沿时,开始进行AD转换;在AD转换期间,START应该保持低电平。6.简述ADC0832的主要特点。答:ADC0832具有以下特点:●8位分辨率;●双通道A/D转换(差分输入时为一个通道);●输入输出电平与TTL/CMOS相兼容;采用SPI总线;●5V电源供电时输入电压在0~5V之间;●工作频率为250KHZ,转换时间为32μS;●一般功耗仅为15mW;6.SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用几条线?每条线的作用是什么?答:SPI总线系统可直接与各个厂家生产的多种标准外围器件直接接口,该接口一般使用3-4根连接线:串行时钟线SCK、主机输入/从机输出数据线MISO、主机输出/从机输入数据线MOSI(有的SPI接口芯片将主机输出/从机输入数据线MOSI合为一根线)和低电平有效的从机选择线SS。7.利用SPI总线可在软件的控制下构成各种系统,其中一个“主MCU”和一个或多个“从外围I/O器件(设备)”所构成的系统使用较多,请画出这种系统的结构框图。答:8.ADC0832是一种8位分辨率、最多为双通道、采用SPI总线的A/D转换器转换芯片。9.IIC总线采用几根引脚,基本型51单片机是否有IIC总线,基本型51单片机如何使用IIC?答:I2C总线采用二线制传输,一根是数据线SDA,另一根是时钟线SCL,所有I2C器件都连接在同名端的SDA和SCL上,每一个器件有一个唯一的地址。基本型51单片机没有IIC总线,但可以用任意两根IO引脚(需要接上拉电阻),模拟的IIC总线协议进行工作。10.根据下列ADC0832的时序图和说明书编写驱动程序。62答:根据时序图和说明书,把时序图的时序分为几个关键点,如下图,在根据这几个关键点写出驱动程序,其中可以通过_nop()_来调节时序中的时间。63驱动程序如下:#includereg52.h#includeintrins.h#defineucharunsignedchar//ADC0832的引脚sbitADCS=P3^3;sbitADDI=P3^7;sbitADDO=P3^7;sbitADCLK=P3^6;/*------------------------------------------------------------功能:读ADC0832的转换数据参数:ch=0单极性,通道0;ch=1单极性,通道1;ch=2差分输入ch0+,ch1-;ch=3差分输入ch0-,ch1+;返回:转换结果------------------------------------------------------------*/#definenop_nop_()//定义nopucharadc0832(ucharch){uchari=0,dat=0,channel=0;ucharndat=0,ndat1=0;if(ch==0)channel=2;if(ch==1)channel=3;if(ch==2)channel=0;64if(ch==3)channel=1;ADCLK=1;ADCS=0;//片选ADCLK=0;nop;nop;//第一个时钟ADDI=1;nop;nop;ADCLK=1;nop;nop;ADCLK=0;nop;nop;//第2个时钟ADDI=channel&0x1;nop;nop;ADCLK=1;nop;nop;ADCLK=0;nop;nop;//第3个时钟ADDI=(channel1)&0x1;nop;nop;ADCLK=1;nop;nop;ADCLK=0;nop;nop;//第4个时钟ADCLK=1;nop;nop;ADCLK=0;nop;nop;for(i=0;i8;i++)//读转换数据,高位在前{dat=1;ADCLK=1;nop;nop;dat|=ADDO;nop;nop;ADCLK=0;nop;nop;}ndat=dat;//保留最低位数据for(i=0;i7;i++)//读转换数据,低位在前{ndat=1;ADCLK=1;nop;nop;ndat|=ADDO;nop;nop;ADCLK=0;nop;nop;}ADCLK=1;nop;nop;ADCS=1;//片选结束for(i=0;i8;i++)//转换低位在前的数据{ndat1=1;ndat=1;ndat1|=CY;}if(dat==ndat1)//如果两次读的数据相等returndat;elsereturn0;}二、设计题651.设计一个数据采集系统,采用89c51为主控制器,ADC0832为AD转换器,将采集的0-5V直流信号的电压值用LCD1602显示出来。解:设计的电路原理图如下图:程序如下:#includeadc0832.h#includelcd1602.hvoidmain(void){ucharad_data;ucharDispBuffer[5];LCD_Initial();//液晶初始化LCD_Prints(1,0,THEVOLTAGEIS);while(1){ad_data=ADC0832(0)*50/255;//50/255=0.1961扩大了10倍DispBuffer[0]=(ad_data/10)+0x30;DispBuffer[1]='.';DispBuffer[2]=(ad_data%10)+0x30;DispBuffer[3]='v';DispBuffer[4]='\0';//最后一个字符是回车LCD_Prints(6,1,DispBuffer);}}2.电路原理如下图,编写程序,其功能是向24c02写入15个数据,地址从00H开始;66然后又将其读出,并依次将15个数据用BCD码的LED显示出来。解:#includereg52.h#include24c02.h//见教材11.2.5节voidmain(){uchari;ucharNumber[15]={0,1,2,3,4,5,6,7,8,9,0xaa,0xbb,0xcc,0xdd,0xee};//15个数据ucharBuffer[15]={0};P2=0xff;//连接在P2口上的BCD码LED显示“FF”WrToROM(Number,0,15);//将Number中的15个数据写入24C02中,地址从00H开始mDelay(500);RdFromROM(Buffer,0,15);//将15个数据从24C02中读出,地址从00H开始for(i=0;i15;i++){mDelay(1000);//延时P1=Buffer[i];//将读出的15个数据依次用BCD码的LED显示}}

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功