版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章1.给出以下有符号数的原码、反码和补码(假设计算机字长为8位)。+45-89-6+112答:【+45】原=00101101,【+45】反=00101101,【+45】补=00101101【-89】原=,【-89】反=,【-89】补=【-6】原=,【-6】反=,【-6】补=【+112】原=01110000,【+45】反=01110000,【+45】补=01110000指明以下字符在计算机内部的表示形式。AsENdfJFmdsv120答:41H73H45H4EH64H66H4AH46H6DH64H73H76H31H32H30H什么是单片机答:单片机是把微型计算机中的微办理器、储藏器、I/O接口、准时器/计数器、串行接口、中断系统等电路集成到一个集成电路芯片上形成的微型计算机。所以被称为单片微型计算机,简称为单片机。单片机的主要特点是什么答:主要特点以下:在储藏器结构上,单片机的储藏器采用哈佛(Harvard)结构在芯片引脚上,大部分采用分时复用技术在内部资源接见上,采用特别功能存放器(SFR)的形式在指令系统上,采用面向控制的指令系统内部一般都集成一个全双工的串行接口单片机有很强的外面扩展能力5.指明单片机的主要应用领域。答:单机应用:1)工业自动化控制;2)智能仪器仪表;3)计算机外面设备和智能接口;4)家用电器多机应用:功能弥散系统、并行多机办理系统和局部网络系统。第二章MCS-51单片机由哪几个部分组成答:MCS-51单片机主要由以下部分组成的:时钟电路、中央办理器(CPU)、储藏器系统(RAM和ROM)、准时/计数器、并行接口、串行接口、中断系统及一些特别功能存放器(SFR)。MCS-51的标志存放器有多少位,各位的含义是什么答:MCS-51的标志存放器PSW有8位;DDDDDDDD76543210AFRROC-PC0S1S0V含义以下:C:进位或借位标志位。AC:辅助进位或借位可标志位。F0:用户标志位。是系统预留给用户自己定义的标志位。RS1、RS0、:存放器组选择位。可用软件置位或清零,用于从四组工作存放器中选定当前的工作存放器组。OV:溢出标志位。在加法或减法运算时,如运算的结果超出
8位二进制数的范围,则
OV置1,标志溢出,否则
OV清零。P:奇偶标志位。用于记录指令执行后累加器
A中1的个数的奇偶性。若累加器
A中1的个数为奇数,则
P置位,若累加器
A中1的个数为偶数,则
P清零。其中不决义,可供用户使用。在8051的储藏器结构中,内部数据储藏器可分为几个地域各有什么特点答:片内数据储藏器按功能能够分成以下几个部分:工作存放器组区、位寻址区、一般1FH单元,可用R0~R7等8个存放器接见;位寻址区,20H~2FH单元,可按位方式接见;一般位于80H~FFH单元。
RAM区和特别功能存放器区,其中还包括货仓区。工作存放器组区,00H~RAM区,30H~7FH单元;货仓区,可从08到7F单元;特别功能存放器区什么是货仓说明MCS-51单片机的货仓办理过程。答:货仓是按先入后出、后入先出的原则进行管理的一段储藏地域。CS-51单片机的货仓是向上生长型的,存入数据是从地址低端向高端延伸,取出数据是从地址高端向低端延伸。入栈和出栈数据是以字节为单位的。入栈时,SP指针的内容先自动加1,尔后再把数据存入到SP指针指向的单元;出栈时,先把SP指针指向单元的数据取出,尔后再把SP指针的内容自动减1。MCS-51单片机有多少根I/O线它们和单片机的外面总线有什么关系答:MCS-51单片机有32根I/O线,由P0口经地址锁存器供应低8位(A7~A0),P2口供应高控制总线由第二功能状态下的P3口和4根独立的控制线RST、EA、ALE和PSEN组成。
8位(A15~A8)而形成。数据总线宽度为
8位,由P0口直接供应。什么是机器周期MCS-51单片机的一个机器周期包括多少个时钟周期答:机器周期:机器周期是单片机的基本操作周期,每个机器周期包括期)。所以,一个机器周期包括12个时钟周期。
S1、S2、
、S66个状态,每个状态包括两拍
P1和P2,每一拍为一个时钟周期
(振荡周若是时钟周期的频率为12MHz,那么ALE信号的频率为多少答:2MHZ第三章1.在MCS-51单片机中,寻址方式有几种其中对片内RAM能够用哪几种寻址方式对片外RAM能够用哪几种寻址方式答:寻址方式可分为数的寻址和指令寻址,数的寻址有:常数寻址(马上寻址)、存放器数寻址(存放器寻址)、储藏器数寻址(直接寻址方式、存放器间接寻址方式、变址寻址方式)和位寻址,指令的寻址有绝对寻址和相对寻址。片内RAM寻址有:存放器寻址、直接寻址方式和存放器间接寻址方式。片外RAM寻址有:存放器间接寻址方式。2.在对片外RAM单元寻址中,用Ri间接寻址与用DPTR间接寻址有什么差异答:片外数据储藏器寻址中,用Ri间接寻址只能接见低端的256字节单元,而用DPTR作指针间接接见可接见整个64K字节。3.在位办理中,位地址的表示方式有哪几种答:1.直接位地址(00H~0FFH)。比方:20H2.字节地址带位号。比方:表示20H单元的3位。3.特别功能存放器名带位号。比方:表示P0口的1位。4.位符号地址。比方:TR0是准时/计数器T0的启动位。4.写出达成以下操作的指令。(1)R0的内容送到R1中。MOVA,R0MOVR1,A(2)片内RAM的20H单元内容送到片内RAM的40H单元中。MOV40H,20H(3)片内RAM的30H单元内容送到片外RAM的50H单元中。MOVA,30HMOVR0,#50HMOVX@R0,A(4)片内RAM的50H单元内容送到片外RAM的3000H单元中。MOVA,50HMOVDPTR,#3000HMOVX@DPTR,A(5)片外RAM的2000H单元内容送到片外RAM的20H单元中。MOVDPTR,#2000HMOVXA,@DPTRMOV20H,A(6)片外RAM的1000H单元内容送到片外RAM的4000H单元中。MOVDPTR,#1000HMOVXA,@DPTRMOVDPTR,#4000HMOV@DPTR,A(7)ROM的1000H单元内容送到片内RAM的50H单元中。MOVA,#0MOVDPTR,#1000HMOVCA,@A+DPTRMOV20H,A(8)ROM的1000H单元内容送到片外RAM的1000H单元中。MOVA,#0MOVDPTR,#1000HMOVCA,@A+DPTRMOVX@DPTR,A5.区分以下指令有什么不相同(1)MOVA,20H和MOVA,#20H答:前者源操作数是直接寻址,后者源操作数马上寻址。(2)MOVA,@R1和MOVXA,@R1答:前者源操作数是接见片内数据储藏器,后者源操作数接见片外数据储藏器低256字节。(3)MOVA,R1和MOVA,@R1答:前者源操作数是存放器寻址,后者源操作数存放器间接寻址。(4)MOVXA,@R1和MOVXA,@DPTR答:前者源操作数是接见片外数据储藏器低256字节,后者源操作数接见片外数据储藏器整个64K字节。(5)MOVXA,@DPTR和MOVCA,@A+DPTR答:前者源操作数是接见片外数据储藏器,后者源操作数接见程序数据储藏器。6.设片内RAM的(20H)=40H,(40H)=10H,(10H)=50H,(P1)=0CAH。解析以下指令执行后片内RAM的20H、40H、10H单元以及P1、P2中的内容。MOVR0,#20HMOVA,@R0;A=40HMOVR1,A;R1=40HMOVA,@R1;A=10HMOV@R0,P1;(40H)=0CAHMOVP2,P1P2=0CAHMOV10H,A(10H)=10HMOV20H,10H(20H)=10H结果:(20H)=10H、(10H)=10H、(40H)=0CAH、P2=0CAH和P1=0CAH7.已知(A)=02H,(R1)=7FH,(DPTR)=2FFCH,片内RAM(7FH)=70H,片外RAM(2FFEH)=11H,ROM(2FFEH)=64H,试分别写出以下各条指令执行后目标单元的内容。(1)MOVA,@R1结果:累加器A等于70H(2)MOVX@DPTR,A结果:片外RAM(2FFCH)单元等于02H(3)MOVCA,@A+DPTR结果:累加器A等于64H(4)XCHDA,@R1结果:累加器A等于00H,片内RAM(7FH)单元等于72H8.已知:(A)=78H,(R1)=78H,(B)=04H,CY=1,片内RAM(78H)=0DDH,(80H)=6CH,试分别写出以下指令执行后目标单元的结果和相应标志位的值。(1)ADDA,@R1;累加器A等于55H,CY等于1(2)SUBBA,#77H;累加器A等于00H,CY等于0(3)MULAB;累加器A等于E0H,B存放器等于01H,CY等于1,OV等于0(4)DIVAB;累加器A等于1EH,B存放器等于00H,CY、OV等于0(5)ANL78H,#78H;片内RAM(78H)单元等于58H(6)ORLA,#0FH;累加器A等于7FH(7)XRL80H,A;片内RAM(80H)等于14H9.设(A)=83H,(R0)=17H,(17H)=34H,解析当执行完下面指令段后累加器A、R0、17H单元的内容。ANLA,#17H;A=03HORL17H,A;(17H)=37HXRLA,@R0;A=34HCPLA;A=CBH结果:A=CBH,(R0)=17H,(17H)=37H10.写出达成以下要求的指令。(1)累加器A的低2位清零,其他位不变。ANLA,#B(2)累加器A的高2地址“1”,其他位不变。ORLA,#B(3)累加器的高4位取反,其他位不变。XRLA,#B(4)累加器第0位、2位、4位、6位取反,其他位不变。XRLA,#01010101B11.说明LJMP指令与AJMP指令的差异答:LJMP指令后边供应的是16位目标地址,所以能够转移到64KB程序储藏器的任意地址,缺点是:执行时间长,字节数多。AJMP指令后带的是11位直接地址,执行时,先将程序指针PC的值加2(该指令长度为2字节),尔后把指令中的11位地址addr11送给程序指针PC的低11位,而程序指针的高5位不变,只幸亏当前2K范围内转移。12.设当前指令CJNEA,#12H,10H的地址是0FFEH,若累加器A的值为10H,则该指令执行后的PC值为多少若累加器A的值为12H呢答:指令执行后的PC值为1011H,若累加器A的值为12H,则指令执行后的PC值为1001H。13.用位办理指令实现=()/的逻辑功能。程序:MOVC,ORLC,ANLC,ORLC,/MOV,C14.以下程序段汇编后,从1000H单元开始的单元内容是什么ORG1000HTAB:DB12H,34HDS3DW5567H,87H答:(1000H)=12H,(1001H)=34H,(1002H)=00H,(1003H)=00,(1004H)=00,(1005H)=67H,(1006H)=55H,(1007H)=87H,(1008H)=00H15.试编一段程序,将片内RAM的20H、21H、22H单元的内容依次存入片外RAM的20H、21H、22H中。程序:MOVR0,#20HMOVR2,#03HLOOP:MOVA,@R0MOVX@R0,AINCR0DJNZR2,LOOPSJMP$16.编程实现将片外RAM的2000H~2030H单元的内容,全部搬到片内RAM的20H单元开始地址,并将源地址清零。程序:MOVR0,#20HMOVDPTR,#2000HMOVR2,#30HLOOP:MOVXA,@DPTRMOV@R0,AMOVA,#00MOVX@DPTR,AINCDPTRINCR0DJNZR2,LOOPSJMP$17.编程将片外RAM的1000H单元开始的100个字节数据相加,结果放于R7R6中。程序:MOVDPTR,#1000HMOVR2,#100MOVR7,#00MOVR6,#00LOOP:MOVXA,@DPTRADDA,R6MOVR6,AMOVA,R7ADDCA,#0MOVR7,AINCDPTRDJNZR2,LOOPSJMP$18.编程实现R4R3R2,结果放于R7R6R5中。程序:ORG0100HMUL1:MOVA,R2MOVB,R3MULAB;R2R3,结果的低字节直接存入积的R5MOVR5,A;结果的高字节存入R6中暂存起来MOVR6,BMUL2:MOVA,R2MOVB,R4MULAB;R2R4,结果的低字节与R6相加后,再存入R6中ADDA,R6MOVR6,AMOVA,B;结果的高字节加进步位位后存入R7中ADDCA,#00MOVR7,ASJMP$19.编程实现把片内RAM的20H单元的0位、1位,21H单元的2位、3位,22H单元的4位、5位,23H单元的6位、7位,按原地址关系拼装在一起放于R2中。程序:MOVC,MOV,CMOVC,MOV,CMOVC,MOV,CMOVC,MOV,CMOVC,MOV,CMOVC,MOV,CMOVC,MOV,CMOVC,MOV,CMOVR2,A20.用查表的方法实现一位十六进制数变换成ASCII。程序:(设一位十六进制数放在R2中,轮换的ASCII也放于R2中)C16STASC:MOVDPTR,#TABMOVA,R2MOVCA,@A+DPTRMOVR2,ARETTAB:DB30H,31H,32H,33H,34H,35H,36H,37HDB38H,391H,41H,42H,43H,44H,45H,46H21.编程统计从片外RAM2000H开始的100个单元中“0”的个数放于R2中。程序:MOVDPTR,#2000HMOVR3,#100MOVR2,#00LOOP:MOVXA,@DPTRJNZNEXTINCR2NEXT:INCDPTRDJNZR3,LOOPSJMP$第四章C语言有哪些特点答:C语言拥有以下特点:语言简洁、紧凑,使用方便、灵便运算符丰富数据结构丰富,拥有现代化语言的各种数据结构可进行结构化程序设计能够直接对计算机硬件进行操作生成的目标代码质量高,程序执行效率高可移植性好2.有哪些数据种类是MCS-51单片机直接支持的答:MCS-51单片机直接支持的数据种类标准分为基本数据种类和组合数据种类,基本数据种类有字符型char、短整型short、整型int、长整型long、浮点型float、双精度型double、特别功能存放器型和位种类,其中char型与short型相同,float型与double型相同。组合数据种类有数组种类、结构体种类、共同体种类和列举种类,别的还有指针种类和空种类。3.C51特有的数据种类有哪些答:C51特有的数据种类有特别功能存放器型和位种类。C51中的储藏器种类有几种,它们分别表示的储藏器地域是什么答:C51中的储藏器种类有6种,分别以下:data:直接寻址的片内RAM低128B,接见速度快bdata:片内RAM的可位寻址区(20H~2FH),赞同字节和位混杂接见idata:间接寻址接见的片内RAM,赞同接见全部片内RAMpdata:用Ri间接接见的片外RAM低256Bxdata:用DPTR间接接见的片外RAM,赞同接见全部64KB片外RAMcode:程序储藏器ROM64KB空间在C51中,bit位与sbit位有什么差异答:bit位种类符用于定义一般的位变量。储藏器种类只能是bdata、data、idata,只能是片内RAM的可位寻址区,严格来说只能是bdata。sbit位种类符用于定义在可位寻址字节或特别功能存放器中的位,定义时需指明其位地址,能够是位直接地址,能够是可位寻址变量带位号,也能够是特别功能存放器名带位号。在C51中,经过绝对地址来接见的储藏器有几种答:经过绝对地址来接见储藏器有三种方法:1.使用C51运行库中预定义宏。2.经过指针接见。3.使用C51扩展要点字_at_在C51中,中断函数与一般函数有什么不相同答:中断函数在定义时后边带interruptm修饰符,m的取值为0~31,对应的中断情况以下:0——外面中断0,1——准时/计数器T0,2——外面中断1,3——准时/计数器T1,4——串行口中断,5——准时/计数器T2,其他值预留。编写MCS-51中断函数需要注意以下几点。中断函数不能够进行参数传达,若是中断函数中包括任何参数声明都将以致编译出错。中断函数没有返回值。在任何情况下都不能够直接调用中断函数若是在中断函数中调用了其他函数,则被调用函数所使用的存放器必定与中断函数相同,否则会产生不正确的结果。C51编译器对中断函数编译时会自动在程序开始和结束处加上相应的内容。C51编译器从绝对地址8m+3处产生一其中断向量,其中m为中断号,也即interrupt后边的数字。该向量包括一个到中断函数入口地址的绝对跳转。中断函数最好写在文件的尾部,并且禁止使用extern储藏种类说明。防范其他程序调用。按给定的储藏种类和数据种类,写出以下变量的说明形式。(1)在data区定义字符变量val1。chardataval1;在idata区定义整型变量idataval2;(3)在xdata区定义无符号字符型数组val3[4]。unsignedcharxdataval3[4];在xdata区定义一个指向char种类的指针px。charxdata*px;定义可寻址位变量flag。bitflag;定义特别功能存放器变量P3。sfrP3=0xa0;定义特别功能存放器变量SCON。sfrSCON=0x98;定义16位的特别功能存放器T0。sfr16T0=0x8a;写出以下关系表达式或逻辑表达式的结果,设a=3,b=4,c=5。(1)a+b>c&&b==c结果:假(2)a||b+c&&b-c结果:真(3)!(a>b)&&!c||1结果:真(4)!(a+b)+c-1&&b+c/2结果:假写出以下C51程序的执行结果。(1)#include<>externserial_initial();main(){intx,y,z;serial_initial();x=y=8;z=++x;printf("\n%d%d%d",y,z,x);x=y=8;z=x++;printf("\n%d%d%d",y,z,x);x=y=8;z=--x;printf("\n%d%d%d",y,z,x);x=y=8;z=x--;printf("\n%d%d%d",y,z,x);printf("\n");while(1);}结果:899889877887(2)#include<>externserial_initial();main(){intx,y,z;serial_initial();printf("inputdatax,y\n");scanf("%d%d",&x,&y);printf("\nxyx<yx<=yx>yx>=yx!=yx==y");printf("\n");printf("\n%3d%3d",x,y);z=x<y;z=x<=y;z=x>y;z=x>=y;z=x!=y;z=x==y;while(1);
printf("%5d",z);printf("%5d",z);printf("%5d",z);printf("%5d",z);printf("%5d",z);printf("%5d",z);}执行结果:inputdatax,y12xy
x<yx<=yx>yx>=yx!=yx==y12110010(3)#include<>externserial_initial();main(){intx,y,z;serial_initial();printf("inputdatax,y\n");scanf("%d%d",&x,&y);printf("\nxy!xx||yx&&y");printf("\n%3d%3d",x,y);z=!y;printf("%5d",z);z=x||y;printf("%5d",z);z=x&&y;printf("%5d",z);printf("\n");printf("\n");printf("Thatisall\n");while(1);}执行结果:inputdatax,yxy!xx||yx&&y12011Thatisall(4)#include<>externserial_initial();main(){inta,b;unsignedintx,y;serial_initial();a=b=0xaa55;x=y=0xaa55;printf("\na=%4xb=%4xx=%4xy=%4x",a,b,x,y);a=a<<1;b=b>>1;x=x<<1;y=y>>1;printf("\na=%4xb=%4xx=%4xy=%4x",a,b,x,y);printf("\n");printf("\n");printf("Thatisall.\n");while(1);}执行结果:a=aa55b=aa55x=aa55y=aa55a=54aab=d52ax=54aay=552aThatisall.break和continue语句的差异是什么答:break语句能够跳出switch结构,使程序连续执行switch结构后边的一个语句。break语句还可以够从循环体中跳出循环,提前结束循环而接着执行循环结构下面的语句。continue语句用在循环结构中,用于结束本次循环,跳过循环体中continue下面还没有执行的语句,直接进行下一次可否执行循环的判断。continue语句和break语句的差异在于:continue语句可是结束本次循环而不是停止整个循环;break语句则是结束循环,不再进行条件判断。用分支结构编程实现:输入“1”显示“A”,输入“2”显示“B”,输入“3”显示“C”,输入“4”显示“D”,输入“5”结束。参照程序:#include<>#include<>voidmain(void){unsignedcharx;SCON=0x52;输入3个无符号的字符数据,要求按由大到小的序次输出。参照程序:#include<>#include<>voidmain(void){unsignedcharx,y,z,m;SCON=0x52;
用3种循环结构编写程序实现输出
1到10的平方之和。参照程序:(1)while
循环#include<>
对一个由
5个元素组成的无符号字符数组按由小到大的序次进行排序。参照程序:#include<>
用指针实现,输入
3个无符号字符数据,按由大到小的序次输出。参照程序:#include<>有3个学生,每个学生都包括学号、姓名和成绩,要求找出成绩最高的学生的姓名和成绩。参照程序:#include<>number);printf("inputname:\n");scanf("%s",p1[i].name);printf("inputgrade:\n");scanf("%d",&p1[i].grade);}for(i=1;i<3;i++){if(p1[i].grade>p1[j].grade)j=i;}printf("成绩最高的学生是:%s,成绩是:%d",p1[j].name,p1[j].grade);printf("\n");}while(1);}第五章1.单片机C语言与汇编语言混杂编程有哪几种方式平时采用什么方式答:单片机C语言和汇编语言混杂编程分为汇编中调用C51函数和C51程序中引用汇编,平时使用的是在C51程序中引用汇编。在C51程序中使用汇编语言有两种情况:一种是汇编程序部分和C51程序部分为不相同的模块,或不相同的文件,平时由C51程序调用汇编程序模块的变量和函数(也可称为子程序或过程);另一种是嵌入式汇编,即在C51程序中嵌入一段汇编语言程序。2.简述C51程序调用汇编程序时怎样实现参数传达。答:C51中调用汇编程序进行参数传达时都必定严格遵守C51函数的参数和返回值的相关约定。行参数传达的方式有两种,一种是经过存放器传达参数,
C51中不同种类的实参会存入相应的存放器,在汇编中只要对相应存放器进行操作,即可达到传达参数的目的;第二种是经过固定储藏区传达。3.简述嵌入式汇编的实现方法。答:在C51程序中嵌入汇编程序平时的办理方法以下。第一步:在C文件中以以下方式嵌入汇编程序。File
第二步:在KeilC51和AssembleSRCFile
软件的Project窗口右击嵌入汇编程序的C文件,在弹出的快捷菜单中选择复选框,使检查框由灰色变成黑色(有效)状态。
Optionsfor...
命令,选中右边的
GenerateAssemblerSRC第三步:依照选择的编译模式,把相应的库文件
(如Small
模式时,是
加入到工程中,该文件必定作为工程的最后文件。4.简述C51中调用汇编程序的实现方法。答:编写为C51调用的汇编程序,参数须按规定的存放器或储藏器传达,程序格式有相应的规则,这些规则比较繁琐,为了便于办理,在实质中我们经常先用写出这个程序的主体,尔后用SRC控制指令编译产生asm文件,更正这个asm文件获取我们所要的汇编函数。办理过程详尽以下。
C51第一步:先用
C语言程序编写出程序框架,如文件名为
(注意参数)。File
第二步:在KeilC51的Project窗口中右击该,使检查框由灰色变成黑色(有效)状态;
C语言文件,在弹出的快捷菜单中选择
Optionsfor...
,右边的
GenerateAssemblerSRCFile
和
AssembleSRC第三步:依照选择的编译模式,把相应的库文件
(如Small模式时,是
Keil\C51\Lib\
加入工程中,该文件必定作为工程的最后文件。库文件与编译模式的关系如前面。第四步:编译后将会产生一个
SRC的文件,将这个文件扩展名改为
ASM。这样就形成了可供
C51程序调用的汇编程序。随后可在该文件的代码段中加入所需的指令代码。第五步:将该汇编程序与调用它的主程序一起加到工程文件中,这时工程文件中不再需要原来的
C语言文件和库文件,主程序只要要在程序开始处用
EXTERN对所调用的汇编程序中的函数作声明,在主程序中即可调用汇编程序中的函数了。第六章1.
何为“准双向
I/O接口”在
MCS-51单片机的四个并口中,哪些是“准双向
I/O
接口”答:准双向
I/O
接口是能实现输入输出功能,但在使用时只能从输入和输出中选择一个。
MCS-51单片机的四个并口中
P1、P2、P3是准双向I/O
接口。80C51单片机内部有几个准时/计数器它们由哪些功能存放器组成怎样实现准时功能和计数功能答:80C51单片机内部有两个16位的可编程准时功能,选择对外面脉冲计数实现计数功能。
/计数器,由
TH0,TL0,TH1,TL1,TMOD和TCON功能存放器组成。经过
TMOD中的C/T位选择对机器周期计数实现计数准时/计数器T0有几种工作方式各自的特点是什么答:有四种工作方式,特点见下表:M1M0工作方式方式说明00013位准时/计数器01116位准时/计数器1028位自动重置准时/计数器113两个8位准时/计数器(只有T0有)4.准时/计数器的四种工作方式各自的计数范围是多少若是要计10个单位,不相同的方式初值应为多少答:有四种方式。方式0计数范围:1~8192;方式1计数范围:1~65536;方式2计数范围:1~256;方式3计数范围:1~256。若是计10个单位,方式0初值为:8192-10=8182;方式1初值为:65536-10=65526;方式2初值为:256-10=246;方式2初值为:256-10=246。设振荡频率为12MHz,若是用准时/计数器T0产生周期为100ms的方波,能够选择哪几种方式,其初值分别设为多少答:只能选择方式1,初值为65536-50000=15536。何为同步通信何为异步通信各自的特点是什么答:异步通信方式的特点是数据在线路上传达时是以一个字符
(字节)为单位,未传达时线路处于悠闲状态,悠闲线路约定为高电平“
1”。特点是对发送时钟和接收时钟的要求相对不高,线路简单,但传达速度较慢。同步通信方式的特点是数据在线路上传达时以字符块为单位,一次传达多个字符,传达时须在前面加上一个或两个同步字符,后边加上校验字符。特点是对发送时钟和接收时钟要求较高,经常用同一个时钟源控制,控制线路复杂,传达速度快。单工、半双工和全双工有什么差异答:单工方式只有一根数据线,信息只能单向传达;半双工方式也只有一根数据线,但信息能够分时双向传达;全双工方式有两根数据线,在同一个时辰能够实现数据双向传达。设某异步通信接口,每帧信息格式为10位,当接口每秒传达1000个字符时,其波特率为多少答:10000波特串行口数据存放器SBUF有什么特点答:发送数据存放器和接收数据存放器合起用一个特别功能存放器SBUF(串行口数据存放器),执行MOVSBUF,A发送时为发送数据存放器,执行MOVA,SBUF接收时为接收数据存放器。MCS-51单片机串行口有几种工作方式各自特点是什么答:有四种工作方式,分别是方式0、方式1、方式2和方式3。其中:方式0,称为同步移位存放器方式,一般用于外接移位存放器芯片扩展I/O接口。方式1,称为8位的异步通信方式,平时用于双机通信。方式2和方式3,称为9位的异步通信方式,平时用于多机通信。说明SM2在方式2和方式3对数据接收有何影响。答:经过SM2对方式2和方式3数据接收进行控制,SM2=1,那么只有接收的第9位为“1”才接收有效。如SM2=0,接收的第9位无论为1还是0都接收有效。怎样来实现利用串行口扩展并行输入/输出口答:利用串行口在方式0时,当外接一个串入并出的移位存放器,就可以扩展并行输出口;当外接一个并入串出的移位存放器时,就可以扩展并行输入口。什么是中断、中断赞同和中断障蔽答:在计算机中,由于计算机内外面的原因或软硬件的原因,使CPU从当前正在执行的程序中暂停下来,而自动转去执行起初安排好的为办理该原因所对应的服务程序。执行完服务程序后,再返回被暂停的地址连续执行原来的程序,这个过程称为中断,实现中断的硬件系统和软件系统称为中断系统。中断赞同是赞同中断央求送CPU产生中断,中断障蔽是禁止中断央求信号送CPU产生中断。14.8051有几其中断源中断央求怎样提出答:MCS-51单片机供应5个硬件中断源:两个外面中断源INT0和INT1,两个准时/计数器T0和T1中断;1个串行口中断。外面中断源INT0和INT1的中断央求信号从外面引脚和输入;两个准时/计数器T0和T1的溢出中断TF0和TF1准时/计数器T0(或T1)溢出时提出;串行口中断由发送中断标志T1和接收中断标志R1产生。8051的中断源中,哪些中断央求信号在中断响应时能够自动除掉哪些不能够自动除掉应怎样办理答:工作在边沿触发方式下的两个外面中断源和两个准时/计数器中断中断央求信号在中断响应时能够自动除掉,工作在电平触发方式下的两个外面中断源和串行口中断不能够自动除掉。工作在电平触发方式下的两个外面中断源的中断央求信号经过外加硬件和加软件的方式除掉,串行口中断标志T1和标志R1完好由软件除掉。8051的中断优先级有几级在形成中断嵌套时各级有何规定答:8051的中断优先级有两级;形成中断嵌套时规定(1)正在进行的中断过程不能够被新的同级或低优先级的中断央求所中断,直到该中断服务程序结束,返回了主程序且执行了主程序中的一条指令后,CPU才响应新的中断央求。正在进行的低优先级中断服务程序能被高优先级中断央求所中断,实现两级中断嵌套。CPU同时接收到几其中断央求时,第一响应优先级最高的中断央求。17.设8051的P1中各位接发光二极管,分别用汇编语言和C语言编程实现逐个轮流点亮二极管,并循环显示。参照程序:ORG0000HLJMPMAINORG0100H;主程序MAIN:MOVA,#01HLOOP:MOVP1,ACALLDELAYRLASJMPLOOPSJMP$DELAY:MOVR7,#0FFHDJNZR7,$RETENDC语言程序:#include<>8051系统中,已知振荡频率为12MHz,用准时/计数器T0,实现从产生周期为2ms的方波。要求分别用汇编语言和C语言进行编程。解:解析:从输出周期为2ms的方波,只须每1ms取反一次则可。当系统时钟为12MHZ,准时/计数器T0工作于方式1时,最大的准时时间为,满足1ms的准时要求,方式控制字应设定为00000001B(01H)。准时1ms,计数值N为1000,初值X=65536-1000=64536,则TH0=FCH,TL0=18H。采用中断办理方式:程序以下:ORG0000HLJMPMAINORG000BH;中断办理程序MOVTH0,#0FCHMOVTL0,#18HCPLRETIORG0100H;主程序MAIN:MOVTMOD,#01HMOVTH0,#0FCHMOVTL0,#18HSETBEASETBET0SETBTR0SJMP$ENDC语言程序:#include<>8051系统中,已知振荡频率为12MHz,用准时/计数器T1,实现从产生周期为2s的方波。要求分别用汇编语言和C语言进行编程。解:从产生2s的方波,应产生500ms的周期性的准时,准时到对取反即可实现。由于准时时间较长,一个准时/计数器T1不能够直接实现,采用准时/计数器T1产生周期性为10ms的准时,尔后用一个存放器R2对10ms计数100次来实现。系统时钟为12MHZ,准时/计数器T1准时10ms,计数值N为10000,只能选方式1,方式控制字为00010000B(10H),初值X:X=65536-10000=55536=000BTH1=B=D8H,TL1=B=F0H。准时/计数器T1采用中断办理方式。汇编程序:ORG0000HLJMPMAINORG001BHLJMPINTT1ORG0100HMAIN:MOVTMOD,#10HMOVTH1,#0D8HMOVTL1,#0F0HMOVR2,#00HSETBEASETBET1SETBTR1SJMP$INTT1:MOVTH1,#0D8HMOVTL1,#0F0HINCR2CJNER2,#64H,NEXTCPLMOVR2,#00HNEXT:RETIENDC语言程序:#include<>8051系统中,已知振荡频率为12MHz,用准时/计数器T1,实现从产生高电平宽度为10ms,低电平宽度为20ms的矩形波。要求分别用汇编语言C语言进行编程。解:本题办理方式有多种,这里采用瞄准时/计数器T1形成10ms周期准时,用R2对10ms计数,当计到1,则对置1,当计到2和3,则对置0来实现。用准时/计数器T1形成10ms周期准时见上题。程序以下:ORG0000HLJMPMAINORG001BHLJMPINTT1ORG0100HMAIN:MOVTMOD,#10HMOVTH1,#0D8HMOVTL1,#0F0HMOVR2,#00HSETBEASETBET1SETBTR1SJMP$INTT1:MOVTH1,#0D8HMOVTL1,#0F0HINCR2CJNER2,#01H,NEXTSETBSJMPEXITNEXT:CJNER2,#02H,NEXT1CLRSJMPEXITNEXT1:CJNER2,#03H,NEXTSETBMOVR2,#00EXIT:RETIENDC语言程序:#include<>用8051单片机的串行口扩展并行I/O接口,控制16个发光二极管依次发光,画出电路图,用汇编语言和C语言分别编写相应的程序。解:采用在串口连接两个CD4094来实现,电路图以下:8051RXDDATADATATXDCLKSTBSTBCLK程序以下;ORG0000HLJMPMAINORG0100HMAIN:MOVSCON,#00HMOVR4,#10HMOVR3,#00HMOVR2,#01HCLRSTART:MOVA,R3MOVSBUF,ALOOP:JNBTI,LOOPMOVA,R2MOVSBUF,ALOOP1:JNBTI,LOOP1SETBACALLDELAYCLRTICLRCMOVA,R2RLCAMOVR2,AMOVA,R3RLCAMOVR3,ACLRDJNZR4,START1SJMPMAINDELAY:MOVR7,#05HLOOP2:MOVR6,#0FFHLOOP1:DJNZR6,LOOP1DJNZR7,LOOP2RETENDC语言程序:#include<>voiddelay(unsignedintx);union{unsignedintword;struct{unsignedcharhigh;unsignedcharlow;}bytes;}number;voidmain(){inti;SCON=0x00;while(1){=0x01;for(i=0;i<16;i++){SBUF=delay(unsignedintx){unsignedcharj;while(x--){for(j=0;j<125;j++);}}22.用汇编语言编程设计一个8051双机通信系统,将A机的片内RAM中30H~3FH的数据块经过串行口传送到B机的片内RAM的40H~4FH中,并画出电路图。解:线路连接以下列图。80518051RXDTXD甲机乙机RXDTXDGNDGND解析:甲、乙两机都选择方式1即8位异步通信方式,最高位用作奇偶校验,波特率为1200bps,甲机发送,乙机接收,所以甲机的串口控制字为40H,乙机的串口控制字为50H。由于选择的是方式1,波特率由准时/计数器T1的溢出率和电源控制存放器PCON中的SMOD位决定,则需瞄准时/计数器T1初始化。设SMOD=0,甲、乙两机的振荡频率为12MHz,由于波特率为1200bps。准时/计数器T1选择为方式2,则初值以下。初值=256-f×2/(12×波特率×32)=/(12×1200×32)≈230=E6H依照要求,准时/计数器T1的方式控制字为20H。甲机的发送程序:TSTART:MOVTMOD,#20HMOVTL1,#0E6HMOVTH1,#0E6HMOVPCON,#00HMOVSCON,#40HMOVR0,#30HMOVR7,#10HSETBTR1LOOP:MOVA,@R0MOVC,PMOV,CMOVSBUF,AWAIT:JNBTI,WAITCLRTIINCR0DJNZR7,LOOPRET乙机的接收程序:RSTART:MOVTMOD,#20HMOVTL1,#0E6HMOVTH1,#0E6HMOVPCON,#00HMOVR0,#40HMOVR7,#10HSETBTR1LOOP:MOVSCON,#50HWAIT:JNBRI,WAITMOVA,SBUFMOVC,PJCERRORANLA,#7FHMOV@R0,AINCR0DJNZR7,LOOPRET第七章什么是MCS-51单片机的最小系统答:所谓最小系统,是指一个真切可用的单片机的最小配置系统。对于单片机内部资源已能够满足系统需要的,可直接采用最小系统。简述储藏器扩展的一般方法。答:储藏器芯片与单片机扩展连接拥有共同的规律。即无论何种储藏器芯片,其引脚都呈三总线结构,与单片机连接都是三总线对接。别的,电源线接电源线,地线接地线。什么是部分译码法什么是全译码法它们各有什么特点用于形成什么信号答:部分译码就是储藏器芯片的地址线与单片机系统的地址线按次相接后,节余的高位地址线仅用一部分参加译码。部分译码使储藏器芯片的地址空间有重叠,造成系统储藏器空间的浪费。全译码就是储藏器芯片的地址线与单片机系统的地址线按次相接后,节余的高位地址线全部参加译码。这种译码方法中储藏器芯片的地址空间是唯一确定的,但译码电路要相对复杂。译码形成储藏器芯片的片选信号线CE。采用部分译码为什么会出现地址重叠情况,它对储藏器容量有何影响答:部分译码就是储藏器芯片的地址线与单片机系统的地址线按次相接后,节余的高位地址线仅用一部分参加译码。参加译码的地址线对于选中某一储藏器芯片有一个确定的状态,而与不参加译码的地址线没关。也能够说,只要参加译码的地址线处于对某一储藏器芯片的选中状态,不参加译码的地址线的任意状态都能够选中该芯片。正由于这样,部分译码使储藏器芯片的地址空间有重叠,造成系统储藏器空间减少。储藏器芯片的地址引脚与容量有什么关系答:容量(Q)与地址线数目(N)满足关系式:Q=2。MCS-51单片机的外面设备是经过什么方式接见的答:MCS-51单片机扩展的外面设备与片外数据储藏器一致编址,即外面设备占用片外数据储藏器的地址空间。按片外数据储藏器的接见方式接见。何为键抖动键抖动对键位鉴识有什么影响怎样除掉键抖动答:按键时,无论按下键位还是松开键位都会产生抖动,若是对抖动不作办理,必然会出现按一次键而输入多次,为保证按一次键只确认一次,必定除掉按键抖动。除掉按键抖动平时有硬件消抖和软件消抖两种方法。矩阵键盘有几种编码方式怎样编码答:平时有以下两种方法进行编码;(1)用连接键盘的I/O线的二进制组合进行编码。(2)序次排列编码。简述对矩阵键盘的扫描过程。答:矩阵式键盘的工作过程可分为两步:第一步是CPU第一检测键盘上可否有键按下;第二步是鉴识哪一个键按下。检测键盘上可否有键按下的办理方法是:将列线送入全扫描字,读入行线的状态来鉴识。鉴识键盘中哪一个键按下的办理方法是:将列线逐列置成低电平,检查行输入状态,称为逐列扫描。共阴极数码管与共阳极数码管有何差异答:共阴极结构,8段发光二极管的阴极端连接在一起,阳极端分开控制,使用时公共端接地,要使哪根发光二极管亮,则对应的阳极端接高电平;共阳极结构,8段发光二极管的阳极端连接在一起,阴极端分开控制,使用时公共端接电源,要使哪根发光二极管亮,则对应的阴极端接地。简述LED数码管显示的译码方式。答:所谓译码方式是指由显示字符变换获取对应的字段码的方式。对于LED数码管显示器,平时的译码方式有硬件译码方式和软件译码方式两种。简述LED动向显示过程。答:LED动向显示是将全部的数码管的段选线并接在一起,用一个I/O接口控制,公共端不是直接接地(共阴极)或电源(共阳极),而是经过相应的I/O接口线控制,工作过程为:第一步使右边第一个数码管的公共端D0为1,其他的数码管的公共端为0,同时在I/O(1)上发送右边第一个数码管的字段码,这时,只有右边第一个数码管显示,其他不显示;第二步使右边第二个数码管的公共端D1为1,其他的数码管的公共端为0,同时在I/O(1)上发送右边第二个数码管的字段码,这时,只有右边第二个数码管显示,其他不显示,依此类推,直到最后一个,这样4个数码管轮流显示相应的信息,一次循环达成后,下一次循环又这样轮流显示,从计算机的角度看是一个一个地显示,但由于人的视觉暂留效应,只要循环的周期足够快,则看起来全部的数码管就都是一起显示的了,这就是动向显示的原理。使用2764(8KB8)芯片经过部分译码法扩展24KB程序储藏器,画出硬件连接图,指明各芯片的地址空间范围。答:使用2764(8K8)芯片经过部分译码法扩展24KB程序储藏器,须要3块。采用线译码,与第一片2764的CE相连,与第二片2764的CE相连,与第三片2764的CE相连,硬件连接以下:5G74LSALE8585858373A0~A7A0~A7CEA0~A7CE8031OECEA8~A12A8~A12A8~A122764(1)2764(2)2764(3)D0~D7OED0~D7OED0~D7OEP08888EAPSEN地址空间以下:第一片:1100000000000000~1101111111111111;即C000H~DFFFH;第二片:1010000000000000~1011111111111111;即A000H~BFFFH;第三片:0110000000000000~0111111111111111;即6000H~7FFFH;使用6264(8KB8)芯片经过全译码法扩展24KB数据储藏器,画出硬件连接图,指明各芯片的地址空间范围。答:使用6264(8K8)芯片经过全译码法扩展24KB程序储藏器,须要3块。采用138译码器译码,硬件连接以下:Vcc74LS138G1GG2Y3G2CY2Y1BAY05GALE74LS8885855373A0~A7CEA0~A7CE8031OEA0~A7CEA8~A12A8~A12A8~A126264(1)6264(2)6264(3)D0~D7OED0~D7OED0~D7OEP08888EAPSEN地址空间以下:第一片:0000000000000000~0001111111111111;即0000H~1FFFH;第二片:0010000000000000~0011111111111111;即2000H~3FFFH;第三片:0100000000000000~0101111111111111;即3000H~5FFFH;试用一片74LS373扩展一个并行输入口,画出硬件连接图,指出相应的控制命令。答:硬件电路图以下:74LS373的输入端为扩展的输入口,输出端接8051的数据总路线P0口,控制端接高电平,输出赞同由片外数据储藏器读信号RD和控制。当片外数据储藏器读信号RD和同为低平时从74LS373中读入输入的数据。Q074LSD0Q1D1Q2373D2Q3D3Q4D4Q5D5Q6D6Q7D78051OEG+5V+RD输入数据的命令以下:MOVDPTR,#0FE00HMOVXA,@DPTR16.用8255A扩展并行I/O,实现把8个开关的状态经过8个二极管显示出来,画出硬件连接图,用汇编语言和C语言分别编写相应的程序。答:硬件电路图以下:8051与8255的连接略,设8255的A,B,C和控制控口的地址为7F00H,7F01H,7F02H,7F03H。8255的A口接8个开关,B口接8个发光二极管。8051程序以下:汇编程序ORG0000HLJMPMAINORG0100HMAIN:MOVDPTR,#7F03HMOVA,#90HMOVX@DPTR,ALOOP:MOVDPTR,#7F00HMOVXA,@DPTRMOVDPTR,#7F01HMOVX@DPTR,ASJMPLOOPSJMP$ENDC语言程序:#include<>#include<>main(){unsignedchari;XBYTE[0x7f03]=0x90;while(1){
PA0PA1PA2PA3PA4系统总线PA5PA68255APA7PB0PB1PB2PB3PB4PB5PB6PB7
+5VK0L0K7L7+5Vi=XBYTE[0x7f00];XBYTE[0x7f01]=i;}}}用汇编语言编写出准时扫描方式下矩阵键盘的办理程序。该程序放于准时器的中断服务程序中。准时器每10ms中断一次,执行一次中断服务程序。F1和F2标志位用片内RAM的50H和51H单元。ACALLKS1JNZLK1MOV50H,#0;无键按下,F1的F0标志清0结束MOV51H,#0SJMPOUTLK1:CJNE50H,#1,OUT1;有键按下检查F1标志可否为1,不为1置1结束。CJNE51H,#01,OUT;再检查F2标志可否为1,为1说明已办理按键则结束。LK2:MOVR2,#0FEH;扫描盘问键码MOVR4,#00HLK4:MOVDPTR,#7F00HMOVA,R2MOVX@DPTR,AINCDPTRINCDPTRMOVXA,@DPTRJB,LONEMOVA,#00HAJMPLKPLONE:JB,LTWOMOVA,#08HAJMPLKPLTWO:JB,LTHRMOVA,#10HAJMPLKPLTHR:JB,NEXTMOVA,#18HLKP:ADDA,R4;求键码放累加大器A,MOV51H,#1;F2标志置1,结束SJMPOUTNEXT:INCR4MOVA,R2JNB,KENDRLAMOVR2,ASJMPLK4KEND:SJMPOUT;扫描结束束KS1:MOVDPTR,#7F00H;检查有无按键MOVA,#00HMOVX@DPTR,AINCDPTRINCDPTRMOVXA,@DPTRCPLAANLA,#0FHRETOUT1:MOV50H,#1OUT:用C语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《延安大学研究生》课件
- 幼儿园周四营养食谱
- 《爆管应急处理预案》课件
- 《汽车回收再生服务》课件
- 教育行业前台服务总结
- 医疗行业前台工作体会
- 财务工作成长心得
- 康复阅读护士的工作总结
- 客户信用评估总结
- 《浅谈酒店市场营销》课件
- 2024年个人之间清账协议书模板
- GB/T 19228.1-2024不锈钢卡压式管件组件第1部分:卡压式管件
- CRF病例报告表模板
- 路灯安装施工检验批质量检验记录表
- 2024年计算机二级WPS考试题库380题(含答案)
- 2023年江苏省五年制专转本英语统考真题(试卷+答案)
- 贵州省贵阳市英语小学六年级上学期试卷及答案指导(2024年)
- 2024年轻质隔墙板采购安装合同
- Unit 8 The Spring Festival Part A (教学设计)-2024-2025学年闽教版英语四年级上册
- 人教版四年级上册数学【选择题】专项练习100题附答案
- 部编新人教版小学语文6六年级上册(全册)教案设计
评论
0/150
提交评论