单片机题库修改版14年12月_第1页
单片机题库修改版14年12月_第2页
单片机题库修改版14年12月_第3页
单片机题库修改版14年12月_第4页
单片机题库修改版14年12月_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、考试题

201412读程序(105)1个汇编、1C51编写一个子程序(KeilC51填空题(201分选择题(151分(20520101)(10)(15二、教学要11.63章:掌握单片机的汇编语言程序设计4KEILC51C语言编程5章:掌握单片机的接口与中断第7章:掌握7.2小节单片机外部器扩三、复习(一)2、MCS-514I/O5、写出下列特殊功能寄存器TCON、TM0D、SCON、PSW、IE6、MCS-51CPU内部有哪些寄存器?PSW7、MCS-51RAM0~7FH的操作有哪些寻址方式?SFR的操作有哪些寻址方式?有几个中断源?CPU响应中断时,中断地址各是多少?t1t3的影响。硬件消抖。通过在按键输出电加一定的硬件线路来消除抖动,一般采用R-S触发器或10MCS-5112MHz、6MHz时,时钟周期、机器周期、指令周期各为12、单片机复位的作用是什么?有几种复位方法?复位后单片机的状态如何(PC、PSW、SP、DPTR、P0、P1、P2、P3寄存器的状态值)?P314C51C17、void unsignedintx=0x6B; unsigndedchara[5]={0,0,0,0,0};unsignedchari,j=0;{a[i]=x%10;x=x/10;i++;}AS、机器周期所对应的时间是多少?指令系统中的单字节双周期指令的执行时间是多少?20、各中断源对应的中断服务程序的地址是否能任意设定?如果想将中断服务程序放置在程序区的任意区域,在程序中应该作何种设置?请举例加以说明。21MCS-51CPU(二)(60)=2H(6H)=6HCLRCMOVA,#9AHSUBBA,60H DAAMOV1)BCD(61H)—2KEILC语言的中断程序。提示:参见P184的4.2.8小 interrupt中断号[using 部}4-9T0 #define #define unsignedintTick_count;/*x/timer0()interruptl{TR0=0; /*关定时器T0*/TH0=RELOADH;/*T0初值*/TR0 /*重新允许T0计数 /*}3 DPTR,#2000H(DPTR)= A, MOVX@DPTR, (DPTR)= A, MOVX@DPTR, DPTR,#2000H(DPTR)= MOVXA, MOVXA, 4RAM30H~4FHRAM7E00H~7E1FH【例3-74程序将RAM30H~4FH单元中的内容传送至片外RAM2000H开始的RAM数据区首地址送DPTR3-41所示。图3- ORG1000HMOVMOV ;LOOP:MOVA,@R0 ;将片内RAM数据区内容送AMOVX@DPTR,A ;将A的内容送片外RAM数据区INCR0 ;源地址递增INC ;DJNZ ;R20LOOPSJMP$5AH;RAM;16A;LOP:MOVA;INC; ;(;6RAM30H10(和<256)【3-49RAMDATA158SUM单元保存(8位。MOV MOV ;ALOOPADD INCR1 DJNZR2,LOOP ;R2减1,不为0循环MOVSUM,A ;存15个数相加的和n【3-73RAM30H~3FH16个二进制无符号数,编制程序求它们R4,R5中。nnyxin=100100n可变时,将无法编写出程序。公式要改写为用程序实现的(a)原理框图 (b)具体框图图3-40 每次求和的过程相同,可以用循环程序实现。16R216R4、R5中(R48位,R58位3-ORG1000HMOVR2,#10H ;设置循环次数(16)MOVR4,#00H ;和单元R4清0MOVR5,#00H ;和低位单元R5清0LOOPMOV ;8ADDA,@R0 ;将@R0与R5的内容相加并产生进位CyMOVR5,A ;低8位的结果送R5 AADDCA,R4 ;将R4的内容和Cy相加MOVR4,A ;高8位的结果送R4INCR0 ;地址递增(加1)DJNZR2,LOOP;10LOOP;SJMP$7P1口输入的数中正数(0算作正数)、负数的个数,将统计的个数分别放R0,R1这两个工作寄存器中去,请编程实现。 CLRMOVR0,AMOVENTER:MOVJBP1.7,NEGINCR0SJMP INCSJMPENTERSJMP$R5、R6、R7中。1。参考程序为:MOVR2,#100MOVR0,#30HMOVR5,#0MOVR6,#0MOVR7,#0 CJN INCR6SJMPNEXT3NEXT1:CLRSUBBJNCNEXT2 INCR5 SJMPNEXT3NEXT2:INCR7NEXT3:INCDJNZ SJMP8RAM60H~70H单元的数据区中奇数和偶数R6R7单元中。 ANLA,#01H SJMPLOOP2LOOP1:INC LOOP2: R0,9RAM40H64个字节的无符号数,请编程实现从小到大冒泡升序(7、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、123456764次冒泡时就已经完成排序。【3-93】排序程序设计(冒泡法RAM40H64个无(a)原理框 (b)具体框图3- R0为首地址指针,R2、R32FH.7(7FH),相比20H21H中。参考程序为:ORGMOVR0,#40H;R0MOVR3,#63H;R3中 CLR ;2FH.7MOVA,R3 ;取外循环次数MOVR2,A ;设置内循环次数MOVR0,#40H;重新设置数据区首址 MOV20H,@R0;20H 20H内容送INCR0 ;修改地址指针(R0+1)MOV21H,@R0;下一个地址的内容送21HCLRC ;Cy清0SUBB ;JC ;若有借位(Cy=1),前者小,转移到LP2;若无借位(Cy=0),前者大,不转移,往下执行MOV@R0,20H;前、后内容交换DECMOVINCSETB;修改地址指针;2FH.7DJNZ;R2(减少R2≠0,则程序转到;R2=0JNBDJNZ;2FH.70,LP3;R3(减少R3≠0,程序转到;R3=0;程序执行完,“原地踏步{unsignedcharunsignedchar}【3-88RAMR0中存放首地址,R23-47

图3- 例3-88程序框MOV MOVR1,ADECR2MOVA,@R1 MOVDECR1CLRCSUBB JNCLOOP1 ;Cy=0,A中数大,跳LOOP1MOVA,@R1 ;Cy=1,则大数送ASJMPLOOP2LOOP1:MOVA,R3LOOP2:DJNZ MOV 11VD1s亮~500ms500ms。focs=12MHZ。提示:参见P143例3-NY【3-47P1.0~P1.7811s10次,1103-19NY…………(a)硬件结构 (b)软件流程图图3-19 例3-55的硬件结构与软件流程图MAIN ;P1.0 ACALLDELAYMOVP1,#00HACALLDELAY RLA12、C语言或汇编编程利用定时器T0查询方式使MCS-51的P1.0口输出周期为20ms的。已fosc=6MHz。T0初值=216-5000=60536=EC78H;定时10msTH0=ECH TL0=78H LJMPMAIN TMOD,#00000001B TR0 F开始成逆时针旋转状,且任意时刻仅有一段发光。并且,由一个带自锁功能A,;20H=00100000LOOP:P1,;当前(从f段开始 ACALLD100MS ;若KB0.5s(500ms)ACALLD100MSACALLD100MS ACALL ;准备让下一,其段 680H=10000000BSJMPSTART (1, R7,$ R7,#2, 1522秒,2(6MHz)T0P1.7P3.20P3.21判断为黑 AJMPMAIN ;T0AJMPORG2000HMAIN:MOVSP,#30HGAT0:CLRP1.7MOVTMOD,#09H BT0 ;T02s=50ms40,9E58H=4053625000次,2us/MOVR7 HERE1:JNB P3.2=0(白天)HER1P3.2=1SETB SETB T0SETB ;CPUHERE2:JB ;白天到了吗?P3.2=1(黑夜)转HERE2P3.2=0CLR CLR ;T0中CLR CLR SJMPIP0:DJNZ 40 ;P1.7 TL0,#58HSETBTR016P1889C51与其连接的图,并编程实现使它4种不同工作方式下的最大定时时间,并选择一种合适的工作方式完成题目要求。6MHz。6-186-9利用T1完成100ms的定时,当P1口线输出“1”时,发光二极,每隔100ms”1”左移一次,1X:Tcy==2μs,N=100ms/2μs ;置第一个LED ;T1工作于定时方式1 ;定时100ms TR1 TF1, SJMP ;100ms SJMP ;循环执行,8个LEDC语言参考程序为:#include<reg51.h>voidmain(void){ *1LED亮TMOD=0x10 *1 /*T/C1*/{TH1=0x3c;TL1=0xb0;/*装载计数初值*/do{}while(!TF1; /*查询等待TF1置位*/ }}ORG0000H ORG ;T1 ORG ;置第一个LED亮MOVTMOD,#10H ;T1工作于定时方式1MOVTH1,#3CHMOVTL1,#0B0H ;定时100msSETB ;启动T1工SETB T1SETB MOV MOVMOV C#includeTimer1(interrupt3using /*T1中断服务程序{ /*下一只LED亮*/TH1=0x3c;TL1=0xb0; }void{ /*T1 /*第1只LED亮*/ /*CPU开中断,允许T1中*/ /*启动T1开始定时*/do{}while(1); 17P1.7LEDLED1s1s周而复始地闪烁,设时钟频率fosc=6MHz,请选择一种合适的工作方式完成题目要求。提示:参见P270例6-4。实现方法一:定时查询;实现方法二:定时中断【6-4P1.7LEDLED1s1s周而复始地fosc=6MHz。fosc=6MHz0、1、21s的要求。如,16P1.0100msT1的计数脉冲,T1对下降沿计数,因此T15个脉冲 值为:X2-100×10/23CB0HT1258初值:X2 SETB SETBTR1 SETBTR0 SJMPLOOP3 AJMPLOOP2 AJMPMAIN ;T0AJMP;T0SETBET0SETBEA 10SETBSJMP IP0:DJNZ 10 ;P1.7 ;重新定时100ms TL0,#0B0HSETBTR00.1秒(89C516MHz,要求写出定时器4种不同工作方式下的最大定时时间,并选择一种合适的工作方式完成题目要求。当时钟频率fosc=6MHz方式0 (13位方式)的最大定时时间:T=213*2us=8192*2us=16.384ms方式1 (16位方式)的最大定时时间:T=216*2us=65536*2us=131.072ms方式2、3(8位方式)的最大定时时间:T=28*2us=256*2us=0.512ms当时钟频率fosc=6MHz作方式1能满足定时0.1s=100ms的要求以要求定时器每隔100ms中断一次,完成要求的操作。因此定时器T01下工作。T0方式1下定时100ms,计数初X=216-100ms/2us=65536-50000=15536=3CB0H。 AJMPMAIN AJMPIP0 MAIN:MOV A,#7FH TMOD,#01H TH0,#3CH TL0,#0B0H ET0 SJMP$ TH0,#3CH TL0,#0B0H 19、MCS-51的P3.3外接开关,若为0表示有故障输入,则P1.7的蜂鸣器故障;若P3.3外接开关为1,常工作。请编写相应的故障中断处理子程序(已知delay程序为1毫秒延时。8031P1.0~P1.6控制注塑机的七道工序,现模拟控制七只发光二极管的点亮,高电平有效,设定每道工序时间转换为延时,P3.4为开工启动开关,低电平启动。P3.3为外故障输入模拟开关,P3.3为0时不断告警,P1.7为声音输出。关关输工序1、延工序2、延开开初始化、P1口全N等开故障清除了NY保护现..返返恢复现.工序工序7、延图5-4实验原理 图5-5程序流程 图5-6中断服务子程序流程ORG0000HAJMP0030HORG0013HLJMPHA2S3ORG0030H MOVORLP3,#00HHA2S1:JBP3.4,HA2S1ORLIE,#84HORLIP,#04HMOVSP,#53HHA2S2:MOVACALLHA2S7MOVP1,#082HACALLHA2S7MOVP1,#084HACALLHA2S7MOVP1,#088HACALLHA2S7MOVP1,#090HACALLHA2S7MOVP1,#0A0HACALLHA2S7MOVP1,#0C0HACALLHA2S7SJMPHA2S2HA2S3:MOVB,R2HA2S5:SETBACALLHA2S6CLRP1.7ACALLHA2S6JNBP3.3,HA2S5MOVR2,BHA2S6:MOVHA2S7:MOVDELAY:PUSH02H PUSH02H PUSH DJNZPOP02HPOP02H MOVDPTR, MOVA,#dataH MOVX@DPTR,A ;D/A转换 MOVA,#00H MOVX@DPTR,A SJMP MOVDPTR, MOVA,#00H MOVX@DPTR,ACJNEA,#data, DECMOVX@DPTR,ACJNEA,#01H,STEP3AJMPSTEP1(三)要求8255A的A0、A1分别接地址总线的A0、A1,片选端接P2.7口;其他的地址线都是高P2.6~P2.0P0.7~P0.21。例1 PB口接输入设备(八个开关)PC口不用,均采用方式0,将8255AB口输入的开关置的数据从A口输出,要求开关合上的对应LED亮。编出程序段。0输出,B0输入,控制字B=82H DPTR DPTR A, ; DPTR DPTRPB A, ;PB ;LED ;DPTR指向PA口 @DPTR,A ;从PA口输出SJMP$7-97-428255APA8个按键,PB8个发光二极管,请编写程由图可知,P0.7=0方选中该8255,当A1A0(P0.1P0.0)为00、01对应PA口和PB口,当A1A0为11时对应控制口其余地址写1这样A口B口控制口地址分别为xx7CH、xx7DHxx7FH。设定PA口方式0输入,B口方式0输出,控制字 8255 @ 8255PB @ LEDSJMPPA1输入;PB1 A.B.27164、MCS-51单片机用74LS138外扩展两片2764 器,要求第一片地址为0000H-1FFFH;第二片地址为2000H-3FFFH;请确定一个合适的选片方式,并画出系统电路原理图。【例7-5】要求用2764扩展8031的片外程序器,分配的地址范围为0000H~3FFFH。量为3FFFH-0000H+1=4000H=16KB,2764为8K×8位,故需要两片。第1片的地址范围应为7-3。表7- 74LS138P2.4~P2.0(A12~A8Y01 2 图7-24为单片机扩展2片EPROM2764程序器的电路图。2764共有13根地址线和8根数据线,分别与单片机相连,单片机剩余的3根地址线通过译输出端,分别控制两个器的片选线,这就保证了每个单元只有唯一的地址。图7- 全译码、2片2764EPROM的扩展连接电5、利用74LS373作地址锁存器,使用6264(8K*8)构成16K的MCS-51单片机的外部数据系6264(写最小的一个)【例7-4使用两片2764扩展16KB的程序器采用线选法选中扩展连接图如图7-23所示。以P2.7作为片选,当P2.7=0时,选中2764(1);当P2.7=1时,选中2764(2)。因两根线(A13、 各有22=4个 图7- 用两片2764EPROM的扩展连接电276400000000000000000~00011111111111110000H~1FFFH;01100000000000000~01111111111111116000H~7FFFH;10000000000000000~100111111111111110100000000000000~1011111111111111,即11000000000000000~1101111111111111,即11100000000000000~1111111111111111,即E000H~FFFFH6、下图为8031扩展3片8K的程序器2764,图中硬件电路已经连接了一部分,请用片选法将2764的地址

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论