版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 计算机体系结构:哈佛结构、冯诺依曼结构的区别?RAMROMRAMROM2MSC51答:(1) 电源及晶振引脚VCC(40:+5VVSS(20XTAL1(19 脚);外接晶振引脚(内置放大器输入端) XTAL2(18 脚):外接晶振引脚(内置放大器输出端)控制引脚RST/V9/ 备用电源引脚ALE/PROG(30)为地址锁存使能输出/ 编程脉冲输入PSEN(29):输出访问片外程序存储器读选通信号EA/ VPP (31):外部ROM 允许访问/ 编程电源输入并行I/O)P0P1.0P1.7(18)P1)P2P3.0P3.7(1017)P33. AT89C51RAM如何?其内部功能部件有:控制
2、器:是对取自程序存储器中的指令进行译码,在规定的时刻发出各种操作所需的控制信号,完成指令所规定的功能;运算器:根据控制器发来的信号,执行算术逻辑运算操作; 存储器:包括程序存储和数据存储器;定时器计数器:216/中断系统:可响应三个内部中断源和两个外部中断源的中断请求;输入输出接口:4 个 8 位并行口和一个全双工串行口;64KB64KB空间。片内 RAM 可分成划分为三个部分:(00H-1FH,四组可位寻址区20H-2FH)RAM 7PSW答:程序状态字寄存器 PSW 各位的定义如下:PSW.7PSW.6PSW.5PSW.4PSW.3PSW.2PSW.1PSW.0CYCYCACAF0FRSR
3、S1RS0RSOVOF1FPPSW.7:进/借位标志CY,加法有进位时置 1,减法有借位时置 1; PSW.6:辅助进位标志AC,加法运算低四位向高上四位有进位时置 1; PSW.5、PSW.1:用户标志位F0 和用户标志位 F1,保存用户的位数据;PSW.4PSW.3:工作寄存器选择控制位RS1 和RS0,0011OV255BA01PSW.0:奇偶标志位P,累加器A 中 1 的个数为奇数时置 1。4什么是复位?单片机复位电路有哪几种,工作原理分别是什么? 答:复位使单片机恢复原始默认状态的操作。229P0P1P2P39. 并行口P0、P1、P2、P3 的作用与用法、准双向口的含义。答:P01
4、21(XMUXI/O/8P111V2输出口P212118P31211作用是用作输入输出口或第二功能。时序:振荡周期、状态周期、机器周期、指令周期的含义PMCS-51完成一个最基本的动作。状态周期:震荡脉冲经过二分频后的周期机器周期:由 12 个时钟周期构成,完成一个基本操作指令周期:是执行一条指令所需的时间,根据指令的复杂性,可由 14 个机器周期构成。1080C51ALE80C51ALEALEP0880C51器时,ALEfosc/6。中断源、中断优先级、中断类型号、中断向量5串行口。外部中断源是由引脚的触发信号引起的中断,定时器中断源是由于定时器计数器的溢出引发的中断,串行口是由于串行通信的
5、发送或接收引发的中断。将中断事件按轻重缓急分若干级别叫中断优先级。允许中断优先级高的中断源中断正在执行的低优先级的中断服务程序叫中断嵌套。0T01T1,串行口五个中断源的中断向量地址依次为:0003H, 000BH,0013H,001BH,0023H。1MCS-51 系列的 8051 单片机内有几个定时/计数器?每个定时/计数器有几种工作方式?如何选择?答:MCS-5180512/T0T1,每个都可以编程为定时器或计数器, T00131162-838T0TMODT1,低四位选择T0。23MHz,/计数器TO012少?答:如果采用的晶振频率为 3MHz,机器周期为 121/(3*106)=4us
6、,由于定时/计数器 TO 工作在方式 0、128192、65536256081924us 32.768ms1655364us262.144ms22564us1024us。3定时/计数器TO 作为计数器使用时,其计数频率不能超过晶振频率的多少?/TOCPU样一次引脚,当前一次采样为高电平,后一次采样为低电平,则为一次有效计数脉冲,所以如果晶振频率fosc,则其采样频率fosc/12fosc/24。4简单说明定时/计数器在不同工作模式下的特点。013/THx8TLx5116/计数器, THx8TLx828/计数器,TLx1,THx3T0,是将T08/8 位的TH0T1TR1TF182答:定时器工作
7、在方式 2 时是一个可自动装入时间常数初值的 8 位定时/计数器,TLx 为加 1 计数器,THx2精确的定时。一个定时器的定时时间有限,如何采用两个定时器的串行定时来实现较长时间的定时?答:一个定时器的定时时间有限,可采用两个定时器的串行定时来实现较长时间的定时,比如,当12MHz/165.536ms,此时若用另一个定时/1 进行溢出次数计数,在定时器溢出中断时,给计数器发一个计数脉冲,且两者均为方式一,则两者串行可达到的定时时间为 6553665.536ms=4294967.296ms。13. C 语言变量定义的存储类型有哪些?不同类型表示的含义如何?四个物理存储空间和三个逻辑存储空间的具
8、体含义。答:C 语言的变量定义格式如下:存储种类 数据类型 存储类型 变量名其中:存储种类包括:自动型(auto)、外部型(extern)、静态型(static)、寄存器型(register)。C(char),整型(int),长整型(long),浮点型(float精度型(double(bit(sfr),SFR(sbit)。RAM(data)RAM页寻址区(pdata),片外RAM(xdataROM(code)。有四个物理存储空间(片内 RAM、片内ROM,片外RAM,片外ROM),三个逻辑地址空间(片内RAM,片外RAM,ROM),而且有多种寻址方式(直接寻址、间接寻址、页面寻址、位寻址)所致
9、,所以在定义变量时, 要根据其所在位置和寻址方式明确指定存储类型。第 3 章 单片机的汇编语言与程序设计 习题1MCS-51 单片机有哪几种寻址方式?适用于什么地址空间?答:MCS-517寻址、相对寻址。直接寻址RAMA,68HMOVMOVA,PSW寄存器寻址方式:指令给出的是寄存器的编码,操作数在编码指定的寄存器中,适用于片内 00H 至 1FH32R0,R7PSWRS1RS0328A,以及乘除法指令中的A 和BC;MOV MUL INCA,R1 AB DPTR寄存器间接寻址方式:指令给出的是寄存器的编码,操作数地址在编码指定的寄存器中,适用于片内RAM的全部空间,其中52系列中的80H至F
10、FH只能用寄存器间接寻址;如MOVA,R1MOVX A,DPTRA,R0立即寻址8RAM16DPTRMOV MOVA,#0E2H DPTR,#2000H变址寻址DPTRPCA寄存器的内容相加形成操作数的实际地址的一种寻址方式,变址寻址方式适用于程序存储器 ROM条指令如下:MOVC A,A+DPTR MOVC A,A+PCJMPA+DPTR位寻址RAM20H2FH1612880HFFH8SFRMOV MOV MOVC,7FH F0,C C,ACC.7相对寻址至127SJMP STARTHERE:SJMPHERE;等效于:SJMP$MCS-51PSW 程序状态字中无ZERO(零)标志位,怎样判断
11、某内部数据单元的内容是否为零? PSWZEROAARAM20H-30HRAMR020HAARAM130H17程序 1:MOVR0,#20H;设地址指针初值CLRA;累加器清 0CONT:MOVR0,A0INCR0;地址指针加 1CJNE R0,#31H,CONT ;指针未超过终点则继续SJMP$;暂停程序 2:MOV CLRR0,#20H ;设地址指针初值A;累加器清CONT:MOV MOV INCR7,#17 R0,A R0;计数器赋初值,从 20H 到 30H 共 17 个字节;置 0 指针所指单元;地址指针加 1DJNZ R7, CONT ;计数器减 1,非 0,则继续SJMP$;暂停R
12、AM32H41H0AAH50H50H解:设一个片内RAMR0,32HR0#0AAH50H0FFHR0141H50H00H程序 1:MOVR0,#32H;设地址指针初值CONT:CJNER0,#0AAH,NEXT;比较查找值与指针所指单元的值,不相等转移MOVA,#0FFH;相等,则准备好要赋的标志值 0FFHSJMPDOWN;转存到保存结果处NEXT:INC;修改地址指针CJNE R0,#42H,CONT ;若指针未越过终点,则继续DOWN:MOV MOV SJMPENDA,#00H 50H,A;查找失败,则将 00H 存入结果标志单元;将比较结果标志存入 50H 单元;暂停MOVR7,#16
13、20H30H16MOVR0,#32H;设地址指针初值CONT:CJNER0,#0AAH,NEXT;比较查找值与指针所指单元的值,不相等转移MOVA,#0FFH;相等,则准备好要赋的标志值 0FFHSJMPDOWN;转存到保存结果处NEXT:INC;修改地址指针DJNZR7,CONT10,则继续DOWN:MOV MOV SJMPENDA,#00H 50H,A;查找失败,则将 00H 存入结果标志单元;将比较结果标志存入 50H 单元;暂停20H4FH00H50H20H4FH48MOVR7,#48;字节计数器赋初值MOVR0,#20H;设地址指针初值CONT:CJNER0,#00H,NEXT ;比
14、较查找值与指针所指单元的值,不相等转移NEXT:INCINC;相等,0 的个数计数器加 1;修改地址指针DJNZR7,CONT10,则继续MOV SJMPEND50H,R6END;保存 O 的个数计数值到 50H 单元;暂停A=83H,R0=17H,(17H)=34H,写出下列程序段执行之后的AANL A,#17HORL 17H,AXRL A,R0CPL A END答:ANLA,#17H;A=03HORL17H,A;(17H)=0011 0100 0000 0011=0011 0111XRLA,R0;A= 0000 0011 0011 0111 =0011 0100CPLA;A=1100 10
15、1112MHz0.1s1s1us0.1s100ms100000us1000001S,可0.110DELAY100MS:MOVR6,#200;1 个机器周期D1:MOVR7,#250;1 个机器周期D2:NOP;1 个机器周期DJNZR7,D2;2 个机器周期,3*251=753DJNZR6,D1;2 个机器周期,(1+753+2)*132=99792RET;21+99792+2=99795100msDELAY1S:MOVR7,#10;计数10次1LOOP:ACALLDELAY100MS100ms99795+2DJNZ R7,LOOP ;未达到 10 次则继续 10*(2+99795+2)RET
16、2+10*(2+99795+2)=997992内部RAM20HODH7E01H7E00H解:从 20H 的指针用R0,从外部RAM7E01 开始的指针用DPTR,计数器用 R7MOVR7,#0;字节计数器赋初值MOVR0,#20H;设片内 RAM 地址指针初值MOVDPTR,#7E01HRAMCONT:MOVA,R0;取片内 RAM 中的一个字节MOVXDPTR,ARAMINC INC INCR7 R0 DPTR;长度计数器加 1;片内 RAM 地址指针加 1;片外 RAM 地址指针加 1CJNEA,#0DH,CONT;未达到结束标志MOVA,R7;取块计数长度值MOVXSJMP$END;保存
17、;暂停内部RAMDATA10SUM 和单元。解:R7 计数,R6 保存累加和高 8 位,R0 用作地址指针ORG0000HLJMP MAINORG100HSUMEQU30HDATAAEQU40HMAIN:MOVR7,#10;字节计数器赋初值MOVR0,#DATAA;设片内 RAM 地址指针初值CLRA;累加器清 0MOVR6,A;累加结果的高 8 位CONT:ADDA,R0RAMACCDAAJNCNEXT;若无进位则不用管高 8 位INCR6;有进位,高 8 位加 1NEXT:INCR0;片内 RAM 地址指针加 1DJNZR7,CONT;未完继续MOV MOV SJMPENDSUM,A SU
18、M+1,R6;保存低 8 位;保存高 8 位;暂停RAMDATA1DATA2LEN0FFH 写入RESULT0RESULT解:从 DATA1 开始的指针用R0,从 DATA2 开始的指针用R1,计数器用R7LENEQU10DATA1EQU30HDATA2EQU40HRESULTEQU50HMOVR7,#LEN;字节计数器赋初值MOVR0,#DATA1;设片内 RAM 地址指针初值MOVR1,#DATA2;设片外 RAM 地址指针初值CONT:MOVA,R0;取片内 RAM R0 所指的的一个字节MOV7FH,R1R1RAM7FHCJNEA,7FH,NOEQ INCR0INCR1;比较,不相等则
19、结束;DATA1 RAM1;DATA2 RAM1DJNZR7,CONT;未完,继续NOEQ:MOVSJMPMOVA,#0FFH A,#0;相等,准备写入FFH;转写入结果处;不相等,准备写入 00HDOWN:MOV SJMPENDRESULT,A;保存比较结果标志;暂停编制程序,将内部RAM 中M1M2M3M4xlx2x3x4RO R1(R08解:M1EQU30HM2EQU40HM3EQU45HM4EQU4FHMOVA,M1;取第一个数ADDA,M2;与第二个数相加JNCNEXT1;如果无进位,则转移至第三个相加MOVR0,#1;有进位,高 8 位置 1NEXT1:ADDA,M3;与第三个数相
20、加JNCNEXT2;没有进位,则转至第四个数相加INCR0;有进位,高 8 位加 1NEXT2:ADDA,M4;与第四个数相加JNCNEXT3;没有进位,则转至结束INCR0;有进位,高 8 位再加 1NEXT3:MOVR1,A;低 8 位保存到R1SJMP $;暂停END4C51 语言 习题2C51答:C 语言的变量定义格式如下:存储种类 数据类型 存储类型 变量名其中:存储种类与标准 C 语言相同,包括:自动型(auto)、外部型(extern)、静态型(static)、寄存器型(register)。C(char),整型(int),长整型(long),浮点型(float精度型(double
21、(bit(sfr),SFR(sbit)。RAM(data)RAM页寻址区(pdata),片外RAM(xdataROM(code)。CMCS51、片内ROM,片外RAM,片外ROMRAM,片外RAM,ROM),式(直接寻址、间接寻址、页面寻址、位寻址)所致,所以在定义变量时,要根据其所在位置和寻址方式明确指定存储类型。#include main()a=C;int delay(10)void delay(); cgar i;for(i=O; i=255; ”+”);答:#include main()a=C; int delay(10)void delay();/a 和C 必须先定义才可使用/缺分号
22、,应该提在使用前说明/延时子程序必须先定义,或先有函数原型说明/作为函数定义,有函数定义不能嵌套的问题,/即不能在一个函数内定义另一个函数,而且“”前不应有分号/作为函数原型说明,应该放在函数调用之前,且其后不应该接函数体cgar i;/字符型应该是unsigned charfor(i=O; i=255; ”+”);/ ”+”应改成i+/主函数没有结束,缺”a,b,caRAMbint 型 xdata 区的指针。答: char bdata a;float xdata b; int xdata *c;805120H35H解:方法一:用嵌入式汇编语言实现#include void main()#pr
23、agma MOV A,20H MOV B,35H MUL ABMOV DPTR,#1234H MOVX DPTR,AINCMOV DPTRMOVX DPTR,A#pragma endasmC#include#include int movdata(char); void main()unsigned int xdata x; unsigned char *ptr,a,b; ptr=0 x25;a=*ptr; ptr=0 x30; b=*ptr; x=a*b;25H010530H解:方法一:用 C 语言与汇编语言混合编程实现/用C 语言编写的主函数#include #includechar ge
24、tdata(char); void main()char a=0 x25,c; float f; c=getdata(a); f=sqrt(c);R7R7回主函数。PUBLIC_GETDATA DESEGMENTRSEGDE_GETDATA:MOVA,R7;取地址参数EXIT:MOV MOV MOV RET ENDR0,A A,R0R7,A ;返回地址单元中的内容方法二:单用 C 语言编程实现/MAIN.C#include #include int movdata(char); void main()char n; char float float f; ptr=0 x25; n=*ptr;
25、f=sqrt(n); ptr2=0 x30;*ptr2=f;RAM 10H15HRAM10H15HC/用C 语言编写的主函数#includechar movdata(char,char); void main()char a=0 x10,b=0 x06; movdata(a,b);MOVDATA,其中第一个参数在R7R5节数PUBLIC_MOVDATA DESEGMENTRSEGDE_MOVDATA:MOVMOV A,R7R0,ALOOP:MOVXA,R0MOVR0,AEXIT:DJNZRETEND方法二:单用 C 语言编程实现/MAIN.C#include int movdata(char)
26、; void main()char n=6;char *ptr1=0 x10; char xdata *ptr2; ptr2=0 x20; while(n-)*ptr2+=*ptr1+;RAM 20H、21H22H、23H1624H单元。解 : 方 法 一 : #include void main()unsigned int *ptr; unsigned int x,y,z;/设置一个内部RAM 指针ptr=0 x20; x=*ptr; ptr=0 x22; y=*ptr; z=(xy)?x:y; ptr=0 x24;*ptr=z;/指向 0 x20 单元/取第一个数/指向 0 x22 单元/
27、取第二个数/将两数中的较大者赋给z/指向地址为 0 x24 的目标单元/将大数存入目标单元方 法 二 : #include #include void main()unsigned int x,y,z; x=DBYTE0X20*256+DBYTE0X21; y=DBYTE0X22*256+DBYTE0X23;z=(xy)?x:y;/将两数中的较大者赋给DBYTE0X24=z/256;DBYTE0X25=z%256;方 法 三 : #include unsigned int x _at_ unsigned int y _at_ unsigned int z _at_ void main()z=(
28、xy)?x:y;第 5 章 单片机的中断系统 习题3MCS-51 中断的中断响应条件是什么? 答:(1) 中断源有中断请求;1,即中断源可以向CPUCPUEA=1;4MCS-51答:(1) 将相应的中断优先级状态触发器置 1,以阻断后来的同级和低级中断请求;由硬件清除相应的中断请求标志,串行口的发送和接收中断除外;执行一条硬件LCALLPCPC;1解:void Int1_init()IT1=1;EA=1;EX1=1;/IE=0 x84;/ IE|=0 x84;有一外部中断源,接入INT0CPURAM 30H50RAM1000H解:#include void main()IT0=1 ; EA=1
29、; EX0=1;while(1) ;void intx0() interrupt 0 using 1 char * ptr1=0 x30;char xdata * ptr2=0 x1000; for(i=0;i50;i+) *ptr2+=*ptr1+;fosc = 12MHz,利用定时器,TO2)P1.1O.4ms定时器溢出时采用中断方式处理,请编写,T0T020.4mS 400usT02256-200=56。在T0P1.1sbit P1_1=P11;void timer0()interrupt 1 using P1_1=!P1_1;void P1_1=0; TMOD=0 x02;TH0=56
30、;TL0=56;IE=0 x82;TR0=1;for(;)fosc6MHz,50ms,从内部RAM30HRAM2000H50T12服务程序中完成。fosc = 6MHz=12/6*10=2us,T12512u50ms,100500us2500us250256-250=6#includechar intcnt=0; char movcnt=0; char *ptr1=0 x30;char xdata *ptr2=0 x2000;void timer1()interrupt 3 using 1 intcnt+;if(intcnt=100) if(mocnt50)*ptr2+=*ptr1+; mov
31、cnt+;else EX1=0; intcnt=0;void main() TMOD=0 x20; TH1=6; TL1=6; IE=0 x84; TR1=1;for(;)9805l8并说明如何确定各中断源的优先级。7时,借助于P2INT0P00INT1P017。具体电路和程序如下:#include char led_mod=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07;void INT0_srv (void) interrupt 0 using 1/0P0=led_mod0;void INT1_srv (void) interrupt 2 u
32、sing 2/1char intnum; intnum=P2; switch(intnum)case 0 xfe:P0=led_mod1;break; case 0 xfd:P0=led_mod2;break; case 0 xfb:P0=led_mod3;break; case 0 xf7:P0=led_mod4;break; case 0 xef:P0=led_mod5;break; case 0 xdf:P0=led_mod6;break; case 0 xbf:P0=led_mod7;void main() EA=1; EX0=1; EX1=1; P0=0;while(1);第 6 章
33、 单片机的定时器/计数器 习题MCS-5112MHzP1.O20kHz解:fosc = 1us。20kHz1/(201000)=50us,25usP1.O查询方式,也可以用中断方式进行编程实现。方法一:采用查询方式实现#includesbit P1_0=P10;/定义输出引脚变量void main()P1_0=0;/TMOD=0 x02; /T02TH0=256-25; /25256TL0=TH0;TR0=1;while(1)/启动T0/无限循环if(TF0) /查询T0 溢出标志TF0=0; /溢出标志复位P1_0=!P1_0; /输出求反方法二:采用中断方式实现#includesbit P1_0=P10; /定义输出引脚变量void main()P1_0=0;/TMOD=0 x02; /T02TH0=256-25; /25256TL0=TH0;IE=0 x82; TR0=1;/允许CPU 响应中断,允许T0 发中断请求/启动T0for(;)/无限循环等待中断timer0()interrupt 1 using 1 P1_0=!P1_0; /输出求反采用定时/TO10O1msMCS-5l6MHzT0状态,请编写出相应程序。解:晶体
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川成都市第六幼儿园教育集团招聘储备教师18人笔试备考试题及答案解析
- 酒店一客一换制度
- 2026湖南株洲市图书馆见习岗位招聘4人笔试备考题库及答案解析
- 2026年上半年葫芦岛市教育局赴高等院校招聘教师(辽宁师范大学站)笔试参考题库及答案解析
- 运输合同补充协议
- 婚后无共同财产离婚协议书
- 2026中聚(重庆)医疗科技有限公司招聘考试模拟试题及答案解析
- 2026云南昭通镇雄县公安局招聘40人考试模拟试题及答案解析
- 2026年信阳法院招聘省核定聘用制书记员考察笔试备考试题及答案解析
- 2026江苏扬州高邮市卫生健康系统事业单位招聘专业技术人员55人笔试备考试题及答案解析
- 期中测试卷(试题)-2023-2024学年六年级下册数学苏教版
- 2024年赣州市国投集团招聘笔试参考题库附带答案详解
- 2024年4月贵州省高三年级适应性考试历史试卷
- 《电子皮带秤》课件
- 护士培训课程 药物计算和药物剂量调整技能
- 二手房交易资金监管协议书
- 德国发展低碳经济的经验
- 血液内科疾病诊疗常规指南
- 学前儿童社会认知和教育活动
- 地理专业英语词汇大全
- 公共基础知识考试题库及参考答案
评论
0/150
提交评论