单片机期末考试题试卷一.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流单片机期末考试题试卷一.精品文档.一、简答题:(本题共4小题,每小题5分,共20分)1.写出51系列单片机的各个存储空间及其地址范围。2.写出MCS-51单片机的5个中断源及中断入口地址。3. 当单片机T0以方式2计数,假设系统需要计取的脉冲个数为100,求计数初值,TH0、TL0分别赋值多少?4.单片机静态显示技术和动态显示技术各有何特点?一般采用哪种方式?1.片内数据存储器:256K(1);片外数据存储器:64K(1);片内程序存储器:4k(1);片外程序存储器60K. 2.部中断0,(0003H);定时计数器0(000BH);外部中断1(0013H);定时计数器1(001BH);串口中断(0023H);(各1)3. X=256-100=156(3);156(1);156(14.静态显示亮度大,硬件、软件相对简单,占用较多的I/O口,故在显示位数不多时采用该方式(2)。动态显示分时使各数码管轮流点亮,硬件简单(2)。常用动态显示方式(1) 二、编程题:(本题共3小题,共40分,1、3小题各13分,2小题14分)1. 单片机P2口的P32接一个开关K1,P23、P24、P25和P26各接一只发光二极管,K1每按一次键,依次点亮1位发光二极管,画出单片机与LED的接线图,编写控制程序。#include "reg52.h" (1)sbit P32=P32;void main() (4)IT0=1;/外部中断0连沿触发方式 EX0=1;/使能外部中断0 EA=1;/开部中断 while(1) ;void int0() interrupt 0/外部中断0程序入口 (5)static unsigned char Bit=0;Bit+;if(Bit>=4)Bit =0;switch(Bit)case 0: P2 = 0xf7; break;case 1:P2 = 0xef; break; case 2:P2 = 0xdf; break; case 3:P2 = 0xbf; break;2. 用MCS-51单片机串口发送数据,发送10个“1”后点亮P14口的LED。#include "reg52.h" (2)#include "intrins.h"sbit p14=P14;unsigned char a=1,b;main() TMOD=0x20; TH1=0xFD;/波特率9600b/s TL1=0xFD; TR1=1; SCON=0x50; /方式1 PCON=0x00; ES=1; EA=1; for(i=0;i<10;i+) (6)SBUF=a; /发送数据 while(TI=0); /等待发送 TI=0; p14=!p14; /发送完一次P14取反3. 设计一个二进制加1计数器,按一次键,加1,并用3个LED显示计数结果,加至7时,重新从0开始计数。画出单片机与LED的接线图,编写控制程序。#include<reg51.h> (2)sbitkey = P32;unsigned char a ;unsigned char count = 0;void delay(int i) (2)while(i)i-;void main() while(1)if( key=0 ) (3)delay(10); if( key=0)count+;while(!key); (3)a = count; (3)a = a;a = a<<4;P2 = a; if( count=7)count = 0;三、综合题(本题共3小题,共40分,1、2题各16分,3题8分)三、综合题(本题共3小题,共40分,1、2题各16分,3题8分)1. 采用MCS-51单片机设计一个4位计时器, LED数码管前2位显示小时,后两位显示分钟。要求:1)画出单片机与数码管的连线图;2)编写控制程序。1.图(5)2.参考程序如下。定义(2),主函数(4),中断子函数(5)#include "reg51.h"#define THCO 0xee#define TLCO 0x0#define THC1 0xee#define TLC1 0x0unsigned char code Duan=0x3F, 0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F;unsigned char Data_Buffer4=0,0,0,0;unsigned int count=0;min=0;hour=0;sbit P10=P10;sbit P11=P11;sbit P12=P12;sbit P13=P13;void main() TMOD=0x11; TH0=THCO; TL0=TLCO; TR0=1; ET0=1;TH1=THC1; TL1=TLC1; ET1=1; EA=1;TR1=1; while(1);void timer1() interrupt 3TH1=THC1; TL1=TLC1; count+; if(count>200) count=0; if(min+=60) min=0; if(hour+=24) hour=0; Data_Buffer0=hour/10; Data_Buffer1=hour %10; Data_Buffer2=min/10; Data_Buffer3=min%10;void timer0() interrupt 1 static unsigned char Bit=0; TH0=THCO; TL0=TLCO; Bit+; if(Bit>=4) Bit=0; P1|=0x0f; P0=DuanData_BufferBit; switch(Bit) case 0: P10=0;break; case 1: P11=0;break; case 2: P12=0;break; case 3: P13=0;break;2.试完成:1)图1中8051单片机与ADC0809的连线图;2)写出ADC0809的8个输入通道地址;3)编写采集8个通道数据的控制程序。8051ADC080911P0ALECLKALESTARTOERDP2.7WRABCVR(+)VR(-)+5VGNDIN0 · · · INT7D0D7CPDQQ图1#include “reg51.h”#include “absacc.h”sbit ad_busy=P32;main()static char idata ad8;char i;char pdata *ad_ch1;ad_chl=0x78;/设置初始通道地址for(i=0;i<8;i+)*ad_chl=0; /启动A/D转换i=i;/等待EOC信号变低i=i;while(ad_busy=1);/查询adi=*ad_chl;/存放结果ad_chl+ ;3. 图2中外部扩展的数据存储器容量是多少?三片6264的地址范围分别是多少(地址线未用到的位填1) (8分)图2)外部扩展的数据存储器为3片8K的RAM外扩容量为24 K(2分) 2) A15 A14 A13 地址范围 0 1 1 6000H7FFFH 1 0 1 A000HBFFFH 1 1 0 C000HDFFFH