《湘潭大学2016单片机原理与应用(共8页).doc》由会员分享,可在线阅读,更多相关《湘潭大学2016单片机原理与应用(共8页).doc(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上得分一、 填空题(每空1分,共15分)1 单片机并行扩展的外部总线由 地址总线 、 数据总线 和 控制总线 构成三总线。2 在Franklin C51中用于定义中断处理程序的关键字是 interrupt ,可用关键字 bit来定义位变量。3 MCS-51的存储器按功能来分有 程序存储器 和 数据存储器 。4 利用头文件absace.h中的宏可实现对绝对地址访问,其中访问code区字符型的函数是 CBYTE 。5 MCS-51扩展外部地址总线确定地址的方法有线选法、 全地址译码法 和 部分地址译码法 三种。6 8051内部有4个 8 位的并行I/O口,其中 P0 口的引
2、脚还具有提供低八位地址线/数据的功能,可以驱动 8 个TTL负载。7 MCS-51的时钟产生方法有 内部时钟方式 和 外部时钟方式 两种。得分二、选择题(每空1分,共15分)1、MCS-51中有关指令周期、机器周期、节拍和状态说法正确的是( B )。A) 指令周期固定为3个机器周期 B) 节拍是最小的时间单位C) 1个机器周期等于6个时钟周期D) 状态是最小的时间单位2、关于单片机的DPTR指针说法正确的是( C )。A) DPTR是8位的 B) 指针DPTR用来访问内部的数据存储器C) 指针DPTR用来访问外部的数据存储器D) 指针DPTR用来访问外部的程序存储器3、MCS-51的串行口工作
3、在方式2时,其波特率为( D )。A)T0溢出率/n B)T1溢出率/n C)fosc/12 D)fosc/32或fosc/644、单片机上电后或复位后,状态为FFH的特殊功能寄存器是(B )。A)SPB)P0C)TMODD)SCON 5、Franklin C51中数据类型signed int定义的变量,其数据表示域是( B )。A) 0-255 B) -128-127 C) 0-65535 D) -32768-327676、MCS51有内部中断源(B) A)2个B)3个C)5个D)6个7、关于MCS-51的计数器说法正确的是( C )。 A)MCS-51有两个8位的加法计数器 B)MCS-5
4、1有两个8位的减法计数器 C)MCS-51有两个16位的加法计数器 D)MCS-51有两个16位的减法计数器8、下面( D )不属于Franklin C51变量的存储种类。A)auto B)extern C) static D)data9、在8031扩展外部EPROM时,下面关于引脚连接说法正确的是(B)。A)EA接高电平,PSEN接EPROM的OEB)EA接低电平,PSEN接EPROM的OEC)EA接高电平,RD接EPROM的OED)EA接低电平,RD接EPROM的OE10、Franklin C51编译器通过( A )将变量、常量定位在片内20H-2FH RAM空间。A)bdata B)id
5、ata C) pdata D)xdata11、Franklin C51定义的整型变量在MCS-51内存中的保存方式为( A )A)高位字节在低地址位 B) 高位字节在高地址位 C) 高低位字节的保存顺序随机 D) 直接以字的形式存储12、当寄存器PSW的RS1和RS0分别为1和0时,系统选用的工作寄存器组为(C)。A)组0B)组1C)组2D)组313、MCS-51的总线驱动扩展时,器件( D )可用作控制总线的驱动扩展A)2764 B)74LS164 C)74LS373 D)74LS24114、关于Franklin C51中断服务函数定义说法正确的是(A)。A)using后面的n是0-3的整型
6、常数B)中断号的范围是0-4C)定义中断函数的关键字interrupt后面允许跟一个带运算符的表达式,D)定义中断函数时,using必不可少15、MCS-51系列单片机用于复位的引脚为( D )。A) RDB) PSENC) ALED) RST得分三、阅读程序题及问答题(共20分)1在实际工程应用中,经常要用到显示器向用户展示结果。图1为MCS-51驱动两个共阳极数码管显示数字的原理图,其中74LS07为同相驱动器。请结合图1请分析数码管动态显示的过程,并分析说明动态显示与静态显示相比的优点。(6分)图1答:MCS-51通过P1.6和P1.7每隔一段时间轮流输出“1”将两个数码管分时点亮,P0
7、口提供各显示器的显示数据。具体如下:P1.7输出“1”, P1.6输出“0”,左边的数码管显示由P0提供的数据,右边数码管熄灭;P1.7输出“0”, P1.6输出“1”,左边的数码管熄灭,右边数码管显示由P0提供的数据。 动态显示与静态显示相比,在多位LED显示时,节省了I/O口线,简化电路,降低成本。2.请阅读下面程序,画出引脚逻辑图,分析该程序要实现的功能,并说明标注处操作的目的,要求有过程(提示:从程序中P1.0、P2.0及P3的高四位的作用出发,并列出真值表去说明本程序的功能。)(7分)# include void main(void)四-一数据选择器。P2.0作为译码器的使能端,P3
8、的高四位作为数据选择器的输入,P1.0口为输出,列出真值表,标注处的功能为,使准双向IO口P2在输入数据时,需置1,使得上下两个FET均截止,确保可作为高阻抗输入,。unsigned char n;while(1) P2 = P2 & 0xfe; .标注P2 = P2 | 0x01; .标注if(P2_0 = 0) n = P3 & 0xF0;n = n4;switch(n)case 0: P1_0 = P3_4; break;case 1: P1_0 = P3_5; break;case 2: P1_0 = P3_6; break;case 3: P1_0 = P3_7; break;def
9、ault:P0 = 0xff;break;else P0 = 0xff;3指出下面程序的错误。(7分)#include #define unsigned char ucharvoid delay(); usigned char i;解:1. 程序的最开头未包含头文件;2.第二行unsigned char 与uchar位置交换; 3. void delay()后面多“;”;4、变量j没有定义或者将i改成j均可; 5、运算符“&”改成 “&”;6、if(var = 0xC0)中“=”改为“=”,或var改为var1都对;.7、while( ; )中符号“;”改为“1”。 for(j=0;j=255
10、;j+);void main(void)uchar data var1;var1 = P3 & 0xC0;if(var = 0xC0)delay( );while( ; );得分四、简单程序设计(每小题10分,共20分)1、在实际工程应用中,8051单片机通常需要将处理的结果传输给PC进一步分析与显示。现要求把8051单片机外部RAM中从8000H开始的连续12个单元内的字节以及它们的校验和,通过串行口以波特率4800发送出去,请写出其C语言程序。(提示,串口工作在方式1)SCONSM0SM1SM2RENTB8RB8TIRI 因题目中没有指定单片机的振荡频率,根据6MHz、11.MHz或12M
11、Hz计算得到的结果均可、SMOD取0和1均可。当fosc=6MHz、SMOD=0时,x=253;当fosc=6MHz、SMOD=1时,x=250;当fosc=12MHz、SMOD=0时,x=250;当fosc=12MHz、SMOD=1时,x=243;#include #define uchar unsigned charvoid init_ps(void);void send_data(uchar idata *d);uchar xdata buf0x0C _at_ 0x8000;uchar ph;void init_ps(void)TMOD= 0x20;TH1=0xFD;TL1=0xFD;P
12、CON=0;TR1=1;SCON=0x50;void send_data (uchar idata *d )uchar i;ph=0;for(i=0;i10;i+) SBUF=di; Ph += di; While(TI = 0); TI = 0;SBUF= ph;While(TI = 0);TI = 0;void main(void)Init_ps();for(i=0;i12;i+) di = i;Send_data(buf);2编写一个由P2.6口周期输出100us的等宽连续方波信号的程序,系统采用12MHz晶振,要求使用定时器1工作在方式2。试编写其以查询方式实现的相关C语言程序。提示:
13、TCONTF1TR1TF0TR0IE1IT1IE0IT0TMODGATEC/TM1M0GATEC/TM1M0IEEAET2ESET1EX1ET0EX0解:计算初值:(256-X)1us=50us 解得: X=206D=0xCE;# include sbit P2_6 = P26void main (void)TMOD &= 0x0f;TMOD |= 0x20;EA = 0;ET1 = 0;TH1= 0xCE; TL1= 0xCE;TR1=1;If (TF1) TF1 = 0; P3_0 = ! P3_0;得分五、应用题(每小题15分,共30分)1. 关于ADC0816芯片的说明请看下面的英文:
14、The ADC0816 data acquisition component is a monolithic CMOS device with an 8-bit analog-to digital converter, 16-channel multiplexer and microprocessor compatible control logic. The 8-bit A/D converter uses successive approximation as the conversion technique. The 16-channel multiplexer can directly
15、 access any one of 16-single-ended analog signals, and provides the logic for additional channel expansion. ADC0816芯片与8051单片机相连的接口电路如下图所示,试编写程序,用查询方式对8路模拟量顺序A/D转换。如果要求当P1_5的按键按下开始采集,对8路模拟量依次各采集256个数据,存放在外部RAM的9000H-97FFH单元中,即9000H-90FFH单元存放通道IN0的采样结果,9100H-91FFH单元存放通道IN1的采样结果,以此类推,9700H-97FFH单元存放通道I
16、N7的采样结果。(注:没有连接的地址线均视为1)图2# include #include #define uchar unsigned char sbit P1_5 = P15;sbit P3_2 = P32;uchar xdata ADC0816_IN8 _at_ 0xBFF0;uchar pdata RAM0x800 _at_ 0x9000;void main(void) uchar i,j; while(P1_5); for(i=0;i8;i+) for(j=0;j256;j+) ADC0816_INi = 0; while(P3_2); RAMi*256+j = ADC0816_INi
17、;while(1);2、图3是8155与MCS-51的一种接口逻辑。如图3所示,8155的B口每一位接一个按键,A口每一位接一个发光二极管。请编写C51程序实现将B口按键的状态在A口对应发光二极管显示。 *提示:8155的控制字格式定时器A、B口中断设置A、B、C三个端口方式选择PB输入输出设置PA输入输出设置D7D6D5D4D3D2D1D08155端口地址A7A6A5A4A3A2A1A0端口地址XXXXX000命令/状态寄存器XXXXX001端口AXXXXX010端口BXXXXX011端口C图3#include #include #define uchar unsigned char#define CONT 0x01 ;#define _8155_CMD XBYTE0xEF00;#define _8155_PA XBYTE0xEF01;#define _8155_PB XBYTE0xEF02;void main(void)uchar i;_8155_CMD = CONT;while(1) i = _8155_PB; _8155_PA = i; delay( );专心-专注-专业