级单片机复习例题 (有答案版)

2019-04-15 23:23

11级单片机总复习

开卷考试,可以带书和手写的作业本,笔记本,不许带打印的和复印的资料。 题型

1、填空题(C语言任务1-12,在4-7题考不到的如串口) 2、简答题(C语言任务1-12,在4-7题考不到的如串口) 3、读程序(C语言任务1-12,在4-7题考不到的如串口) 4、写程序(C语言定时器、计数器、中断参考任务4-5) 5、综合(存储器扩展参考任务7)

6、综合(A/D D/A扩展参考任务11-12) 7、综合(键盘 显示器扩展参考任务9-10)

一、填空题

样题:40个引脚的功能、作用p17 如:

? 8031引脚T1的作用__________,/EA的作用________________________。

二、简答题

存储器

? MCS-51单片机片内RAM低128字节单元划分为哪几个区域?应用时应该如何合理有效地使用?(片内数据存储器分为哪几个性质和用途不同的区域?)(试说明8051单片机按照存储器功能和所在位置分类,并分别说明其容量。)(8051单片机存储器的组织结构是怎样的?)

? ? ? ?

8051片内数据存储器分为哪几个性质和用途不同的区域? 51单片机有几种地址译码方式,分别说明它们的优缺点。 C51变量有几种存储类型,分别说明它们的特点。

单片机访问外设有哪几种方式,分别说明它们的特点。

1

? 计算机的数据传输方式分为串行传输和并行传输,试说明它们各自的传输特点、优缺点

和使用场合。

三、读程序

样题:1.阅读下列C语言程序,并详细解释指定位置语句的功能。 # include //语句功能:包含单片机寄存器的头文件

unsigned char data daData;

unsigned char xdata *add_dac0832 = 0x7fff; //语句功能定义add_dac0832 指向片外地址0x7fff void Delay(unsigned int Delay) { for( ;Delay>0;Delay--) ; }

void main( ) { daData=0; while(1)

{ *add_dac0832 = daData; //语句功能 把daData赋值给D/A进行转换 delay();

daData++; //语句功能_daData数值自加1_ } }

该段程序的功能__产生阶梯波

四、编程题(定时器、计数器、中断、查询)

样题:.

8051采用3MHz晶振,写一个完整的程序实现从P2.1输出周期为20ms的方波,要求使用定时/计数器T1和查询方式,寄存器中任意位用“1”代。(8分)(用C51语言实现)

1. 3Mhz的晶振:机器周期是4us,相当于是定时器自动加1的时间是4us

2. P2.1输出周期为20ms的方波:周期是20m则定时10ms,P2.1进行一次反转

3. 使用定时/计数器T1和查询方式:初值的计算 10000/4 = 2500; 利用定时器方式2

TH1 = (65535-2500)/256; TL1 = (65535-2500)%6

程序:

#Include

Sbit Square_Wave = P2^1;

Void main()

2

{

TMOD = 0X10;

TH1 = (65535-2500)/256; TL1 = (65535-2500)%6; TR1 = 1;

While(1) {

While(TF1) {

TF1 = 0;// 在中断中硬件自动清零,在查询方式下则要软件清零 Square_Wave = ~Square_Wave; } } }

五、综合(存储器扩展任务7)

样题:

如图,某8051单片机扩展2片存储器。(共14分) 1、U2是程序存储器还是数据存储器,并说明原因;(3分)

U2是数据存储器:程序存储器的读操作是由PSEN//控制,数据存储器的读写有RD/,WR/信号控制。

2、U2地址范围是多少?写出计算过程;(4分)

74138是数据选择器(低电平有效):当A15 A14 A13 = 0 1 0 时,选中了片选段U2_CS, 所以U2的地址范围是:0X4000---0X5FFF

3、若希望U1的地址范围是A000H~BFFFH,U1的片选信号如何连接;(3分)

A :1010 B: 1011

所以当A15 A14 A13 = 101 时,选中的是U1,则U1的片选端U1_CS 接在74138的 Y5输出端。

4、写一段程序将地址为66H和67H的内部数据存储器内容相减,存入U2尾单元。(4分)(用C51语言实现)

程序:

#include

3

unsigned char data *INRAM1 = 0X66; //直接寻址方式访问内部数据存储器 unsigned char data *INRAM2= 0X67; //直接寻址方式访问内部数据存储器 char xdata *EXTRAM = 0X5fff ; //访问外部数据存储器

Void main(void) {

char temp;

temp = *INRAM1-*INRAM2; *EXTRAM = temp;

While(1); }

D[0..7]A8A9A10A11A12A13A14A15U521222324252627281011121314151617P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INTOP3.3/INT1P3.4/TOP3.5/T1P3.6/WRP3.7/RDPSENALE/PROGP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7XTAL1XTAL2RSTEA/VPP8051A131A142A153VCC645G1G2AG2B74LS1383938373635343332123456781918931U4ABCY0Y1Y2Y3Y4Y5Y6Y7109876543252421232U2_CS20/WR/RD2722347813141718ALE111U3D0D1D2D3D4D5D6D7GOC74LS373/PSENQ0Q1Q2Q3Q4Q5Q6Q7A[0..12]2569121516191098765432524212322022271U1A0A1A2A3A4A5A6A7A8A9A10A11A12CEOEPGMVPPO0O1O2O3O4O5O6O711121315161718190/WR/RD/PSEN29ALE30U2A0A1A2A3A4A5A6A7A8A9A10A11A12CSWEOED0D1D2D3D4D5D6D715141312111097U2_CS11121315161718190?

六、综合(A/D D/A扩展任务11-12)

样题:如图:8051和ADC0809系统,(共10分) 1. 计算ADC0809各通道地址(IN0~IN7);(3分)

4

提示:未使用的地址线默认为“1”。

P2^5一定要为0的时候,才能选中AD芯片 INT0: DFF8 INT1: DFF9 INT2: DFFA INT3: DFFB INT4: DFFC INT5: DFFD

2. 写一段程序从IN5读取数据存入地址为4000H的外部数据存储器;(5分)(用C51语

言实现)

#include

#include//定义绝对地址访问头文件 #define uchar unsigned char #define IN5 XBYTE[0xdffd]

#define ExtRam XBYTE[0x4000] uchar xdata *ad_address; uchar xdata *ad_Ext; main() {

IT1 = 1; EX1 = 1; EA = 1;

ad_address = &IN5; ad_Ext = &ExtRam; while(1); }

void Int_ADC(void) interrupt 2 {

*ad_Ext = *ad_adress; }

3. 若8051的晶振12MHz,ADC0809的工作频率不超过典型频率,ADC0809的CLK从

ALE引入,分频器应该用多少分频,并说明原因。(2分)

ADC0809的转换时钟由单片机的ALE提供。ADC0809的典型转换频率是640Khz,ALE的信号频率与晶振频率有关,如果晶振频率是12Mhz,则ALE是2Mhz,所以ADC0809的时钟端与单片机的ALE端连接的时候,要进行4分频。

5


级单片机复习例题 (有答案版).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:心理测量

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

马上注册会员

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