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

更新时间:2024-06-02 07:31:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

U221222324252627P2.728101112/INT1131415/WR16/RD1729ALE30P2.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/VPPAT89C513938373635343332123456781918931347813141718ALE111U3D0D1D2D3D4D5D6D7GOC74LS373/WR23P2.52/RD3NOR2NOR2U61U51Q0Q1Q2Q3Q4Q5Q6Q72569121516191714158181920212524236229U1D0D1D2D3D4D5D6D7A0A1A2STARTALEOEEOCADC080972U4NOT1/INT1IN0IN1IN2IN3IN4IN5REF+REF-CLK262728123+5V1216010分频器ALE0

七、综合(键盘 显示器扩展任务9-10)

样题:如图8051通过74LS377扩展LED数码管,(共8分)(未使用的地址线默认为“1”) 1、 U1地址是多少?(2分)

U1的地址是:BFFF

2、 要使U2的地址是7FFFH,U2的片选如何连接?(2分) 7=0111; 接P2^7

3、 写一段程序在LED1和LED2上分别显示“0”和“1”。(4分)(用C51语言实现)

#include #include

#define SHUMA1 XBYTE[0xbfff] #define SHUMA2 XBYTE[0x7fff]

void delay(void) { unsigned char i=1; for(;i>0;i--); }

void main(void) { while(1) { SHUMA1 = 0x3f; delay(); SHUMA2 = 0x06; delay();

6

}

P20P21P22P23P24P25P26P27}

U3U52122232425262728P2.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/VPPAT89C513938373635343332123456781918931P00P01P02P03P04P05P06P07/WRP26P00P01P02P03P04P05P06P07347813141718111U1D1D2D3D4D5D6D7D8CLKG74LS377P00P01P02P03P04P05P06P07347813141718111U2D1D2D3D4D5D6D7D8CLKG74LS377Q1Q2Q3Q4Q5Q6Q7Q8256912151619U4abcdefgdpQ1Q2Q3Q4Q5Q6Q7Q8256912151619abcdefgdpLED1VCCcom101112131415/WR16/RD172930LED2VCCcom

七、如图,8051单片机通过74LS244扩展按键SW0~SW7共8个(图中只画出SW0和SW7,其它按键SW1、SW2、SW3、SW、SW、SW6与SW0、SW7相似),(共8分)(提示:未使用的地址线默认为“1”) 1. 说明U2端口地址;(2分)

U2的端口地址:0xBFFF

2. U2是输入接口还是输出接口?说明原因;(2分)

U2接口:是输入接口

原因:U2的一个控制端接的是单片机的RD/,则说明U2是输入接口

U2的输入端口接的是扩展按键SW0~SW7,输出接口接到单片机的P0口,则 说明U2是输入接口

3. 写一段程序读取按键值送到内部数据存储器地址为30H的存储单元。(4分)(用C51

语言实现)

#include #include

#define SHUMA1 XBYTE[0xbfff]

unsigned char data *In_Ram = 0x30;

void delay(void)

7

{ unsigned char i=10; for(;i>0;i--); }

void main(void) { unsigned char temp; while(1) { temp = SHUMA1; *In_Ram = temp; delay(); } }

VCCU52122232425262728P2.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/VPPAT89C5139383736353433321234567819189312P20P21P22P23P24P25P26P27P00P01P02P03P04P05P06P07181614129753U21Y11Y21Y31Y42Y12Y22Y32Y41A11A21A31A42A12A22A32A41G2G74LS244R02468111315171191k22R71kSW0SW71101112131415/WR16/RD172930101U6OR2/RDP263

8

本文来源:https://www.bwwdw.com/article/05l6.html

Top