《单片机复习题(16页).doc》由会员分享,可在线阅读,更多相关《单片机复习题(16页).doc(16页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-单片机复习题-第 页1.基本概念:(1)微处理器:简称MPU,是一个由算术逻辑运算单元、控制器单元、寄存器组及内部系统总线等单元组成的大规模集成电路芯片。(2)微型计算机:微处理器加上同样采用大规模集成电路制成的用于存储程序和数据的存储器以及与输入输出设备相连接的输入输出接口电路就构成了微型计算机(3)微型计算机系统:以微型计算机为主体,配上输入/输出设备、外存储设备、电源机箱以及基本系统软件就可组成微型计算机系统。(4)单片机:将微处理器、存储器、输入输出接口电路集成在一块芯片上,称为单片微型计算机或单片机。4. 微型计算机系统由硬件和软件两大部分组成。第二章:1.80C51单片机主要以一
2、下几个部分组成:1个8位中央处理器;4KB的EPROM/ROM;128B的RAM;32条I/O线;2个定时器/计算器;1个具有5个中断源、2个优先级的中断嵌套结构;用于多处理机通信、I/O口扩展的全双工通用异步接收发送器(UART);特殊功能寄存器(SFR);1个片内振荡器和时钟电路。这些部件通过内部总线连接起来,构成一个完整的微型计算器。*2.a. PSW.0(P,奇偶标志位)b. PSW.2(OV,溢出标志位)c. PSW.6(AC,辅助进位标志位)d. PSW.7(CY,进位标志位)*3.CPU工作时序总结:一个机器周期=6个状态(6S)=12拍(2P) 一个指令周期=1-4个机械周期当
3、外接12MHz的晶振时,80C51单片机的四个周期分别为:震荡周期=1/12us,时钟周期(状态周期)=1/6us,机械周期=1us,指令周期=1-4us。例2:当主频为6MHZ时,机器周期是2s,执行一条指令最多需要8s。系统复位后SP内容为07H,最大寻址范围为64KBRST为复位输入信号,高电平有效。在振荡器工作时,在RST上作用两个机器周期以上的高电平,将单片机复位。例:某单片机的晶振频率为12MHZ,需给2s的高电平才能有效。(两个机器周期,所以需要乘以2)*4.教材33页表2-5如下:例如:PC复位后(PC)=0000H, 其他雷同,这个地址也是单片机再执行的首地址。第三章 第四章
4、:1.已知(PSW)=90H,执行下列程序后,分析寄存器A和PSW的值。MOV A, # 9CHADDC A, # 8BH(A)= ; (PSW)= 。2.已知(A)=81H,(R0)=17H,(17H)=35H,指出执行完下列程序段后A的内容。ANL A , # 17HORL 17H, AXRL A , R0CPL A(A)= 。3.已知:(A)=7AH,(R0)=30H,(30H)=0A5H,(PSW)=80H,顺序执行下列指令(10分)(1)SUBB A, 30H(A)= (CY)= (AC)= (OV)= (P)= 。 (2)XCHD A ,R0(A)= (R0)= 。 (3)SWAP
5、 A (A)= 。(4)MOV A , R0(A)= (R0)= 。4. ORG 1FFEH TEXT:ACALL SUBPROC 求子程序SUBPROC的目的地址范围。5. 在HEX单元有两个十六进制数,试编程分别把他们转化成ASCII码存入ASC和ASC+1单元。6. 已知内部RAM中,(34H)=40H,(40H)=50H,(50H)=5AH,(5AH)=60H,ROM中(125AH)=88H,试分析下面程序的运行结果,并指出每条指令的源操作数寻址方式。MOV A,50HMOV R0,AMOV P1,#0F0HMOV R0,30HMOV DPTR,#1200HMOVX DPTR,AMOV
6、C A,A+DPTRMOV 40H,50HMOV P2,P17. 设(R1)=31H,内部RAM31H的内容为68H,32H单元的内容为60H,(A)=10H。请指出运行下面的程序后各单元内容的变化。MOV A,R1MOV R1,32HMOV 32H,AMOV R1,#45H8. 已知(A)=8AH,请指出下面程序运行后,累加器A及PSW中进位位CY、奇偶位P和溢出位OV的值。(1) ADD A,#7FH;(2) SUBB A,#7FH;(3) ANL A,#0FH;(4) XRL A,#0F0H。9. 已知:(30H)=11001001B,(31H)=00001111B,请指出下列每条指令执
7、行后注释中的结果。MOV 32H,30H ;(32H)=0C9H ANL 32H,#0FH ;(32H)=9H MOV A,31H ;(A)=0FH SWAP A ;(A)=0F0H RL A ;(A)=0E1H ANL A,#0F0H ;(A)=0E0H ORL 32H,A ;(32H)=E9H 1.80C51三总线结构 (1)地址总线(AB)地址总线由P0口提供低8位A7A0,P2口提供高8位A15A8。(2)数据总线(DB)数据总线由P0口提供,其宽度为8位。P0口为三态双向口, (3)控制总线(CB)控制总线包括片外系统扩展用控制线和片外信号对单片机的控制线。系统扩展用控制线有ALE、
8、PSEN、EA、WR、RD。 2. 如下图:写出扩展的六个芯片的地址的取值范围。解:2764(1):0000H1FFFH2764(2):2000H3FFFH2764(3):4000H5FFFH6264(1):0000H1FFFH6264(2):2000H3FFFH6264(3):4000H5FFFH3. 若要设计一个32K*8位的外RAM寄存器,分别采用2114(1K*4位)和6264(8K*8位)芯片,各需多少块存储芯片?4. 习题5-9若要设计一个32K*8位的外RAM存储器,分别采用2114(1K*4位)和6264(8K*8位)芯片,各需多少块存储芯片。第六章:1. *所有的端口都需要编
9、址,常用的编址方式有两种:意识I/O端口与内存但愿统一编址;二是I/O端口独立编址。2. *CPU与外设之间数据的输入输出方式主要有无条件传送方式、查询传送方式、中断传送方式和直接存储器存取(DMA)方式四种。3. *中断的特征信息:80C51有5个中断源,两个优先级,(高优先级和低优先级)可以实现两级中断嵌套。*3中断实验:七程序: LED BIT P1.0 LEDBuf BIT 20H org 0 ljmp Start org 3Interrupt0: push PSW ; 保护现场 cpl LEDBuf ;取反LED mov c, LEDBuf mov LED, c pop PSW ;
10、恢复现场 retiStart: clr LEDBuf clr LED mov TCON, #01h ;外部中断0下降沿触发 mov IE, #81h ;打开外部中断允许位(EX0)及总中断允许位(EA)OK: ljmp OK End1. 跑马灯实验:51分册上实验一。课后习题7.5、7.6例732.8155地址分配如下。RAM地址:7E00H-7EFEHI/O口地址:命令状态口7F00HPA口7F01HPB口7F02HPC口7F03H定时器低字节7F04H定时器高字节7F05H3.8255与单片机80C51的硬件连接 如下图所示。(1)确定该8255的四个端口地址 (不参加译码的位取“1”)。
11、(2)欲使 A口: 方式0. 输出口. B口: 方式1. 输入口. 上C口: 方式0. 输入口.试初始化编程 (3) 欲使80C51外部RAM3040H的内容通过PA口输出,试编程. 。解:(1)1011 0011 1111 1111 B3FFH 1011 0111 1111 1111 B7FFH 1011 1011 1111 1111 BBFFH 1011 1111 1111 1111 BFFFH (2)MOV DPTR, #0BFFFH MOV A, #8EH MOVX DPTR, A (3)MOV DPTR, #3040H MOVX A, DPTR MOV DPTR, #B3FFH MO
12、VX DPTR, A SJMP $P138页8.3.1时间常数计算(1) 计数常数(2) 定时常数 例题8-1、8-2、8-3重点看思考题:要求用单片机80C51的定时/计数器1,使其工作在方式0,定时200s , 200s到,使B的内容高低4位互换.采用中断方式,系统的晶振频率为6MHZ,试编写相关程序.另:该方式下最大定时时间?如果要求的定时时间超过单片机最大定时时间将如何处理?解:TM=12*1/6=2sx1=2n-t/TM=213-200/2=8192-100=8092=1F9CH0001 1111 1001 1100, TH1=FCH, TL1=1CH ORG 0000H AJMP
13、MAIN ORG 001BH AJMP SUBT1MAIN:MOV SP, #50H MOV TMOD, #00H MOV TH1,#0FCH MOV TL1,#1CH SETB ET1 SETB EA SETB TR1 SJMP $SUBT1:MOV TH1,#0FCH MOV TL1, #1CH MOV A, B SWAP A MOV B ,A RETIx=0, 2n-t/TM=0, 8192-tmax/TM=0, tmax=8192*2=16.384ms1. 根据信息的传送方向,串行通信可进一步分为单工、半双工、和全双工三种2. 波特率:串行通信用每秒传送二进制数据位的数量表示传送速率称
14、为波特率。1波特=1bps(位/秒)3. 异步通信:教材143页图9-2。3.80C51系列单片机具有一个可编程的全双工串行口,既可作为同步移位寄存器又可作为UART(通用的异步接收/发送器),还可以作为同步移位寄存器使用。4. 如图所示,要求将发光二极管从左向右依次点亮,并不断循环。请编写程序。AT89S52RXDTXDP1.0CD4094STBCLKDATA解法1:查询法: ORG 0200H MOV SCON,#00H ;串行口方式0 CLR TI ;清发送中断标志 CLR ES ;禁止串行中断 MOV A,#80H ;左边一个发光管先亮DLIT: CLR P1.0 ;关闭并行输出 MO
15、V SBUF,A ;串行输出 JNB TI,$ ;未发送完,等待 SETB P1.0 ;发送完,开启并行输出 LCALL DELAY ;调用延时子程序 CLR TI ;清发送中断标志 RR A ;发光右移 SJMP DLIT ;继续5.如图所示,要求当按钮A按下时读入开关量的值并存入30H单元。写出程序。80C51RXDTXDP1.0CD4014P/SCLKQ8P1.1VCC A ORG 0200HSTART: JB P1.1,$ ;按钮未按下则等待 SETB P1.0 ;置入CD4014并行输入量 CLR P1.0 ;准备串行移位输入 MOV SCON,#10H ;串行口方式0,并置REN=
16、1启动接收 JNB RI,$ ;未接收完,等待 MOV A,SBUF ;读入开关量 MOV 30H,A ;存入30H单元 CLR RI ;清RI,为下一次接收做准备 CALL DELAY ;延时 SJMP START ;准备下一次读取开关量第十章:(1)7段LED段码表P167表10-1(2)如图是80C51用8155扩展I/O口控制的6位LED动态显示接口电路。30H35H单元为显示缓冲区,存放要显示的十六进制数。每位十六进制数以二进制形式存放于相应缓冲区单元的低4位,高4位为0。由图可见8155的命令/状态口、PA、PB、PC的口地址分别为7F00H、7F01H、7F02H、7F03H。动
17、态显示程序如下: MOV DPTR,7F00H ;置8155命令/状态口地址 MOVA,03H ;8155控制字,A、B口为基本输出 MOVXDPTR,A ;写工作方式控制字 MOVR0,30H ;R0指向显示缓冲区首址 MOVR2,0FEH ;置位选码初值 MOVA,R2 ;位选码送ADISP:MOVDPTR,7F01H ;DPTR指向A口 MOVXDPTR,A ;位选码送A口 INCDPTR ;指向B口 MOVA,R0 ;取要显示的数,准备查段选码 ADDA,0DH ;加修正偏移量MOVCA,APC;查字形码MOVXDPTR,A;段选码送B口ACALLD1ms;延时1msINCR0 ;修改
18、显示单元地址MOVA,R2JNBACC.5,DONE;6位显示完否?RLA ;未显示完,位选码左移1位MOVR2,AAJMPDISPDONE:RETSEGTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHDB77H,7CH,39H,5EH,79H,71H ;段选码表D1ms: ;延时1ms子程序RET2.下图中,DAC0832输入寄存器和DAC寄存器均用P2.7选通,共用个端口地址,将数据写入输入寄存器的同时也写入DAC寄存器,故称为单缓冲器连接方式。用该连接方式产生一个锯齿波信号的程序如下:WAVE:MOVDPTR,7FFFH ;指向DAC0832MO
19、VA,00 ;赋数字量初值LOOP:MOVX DPTR,A;送数并启动转换 MOVR0,delayC;delayC为延时常数 DJNZR0,$ ;延时,改变delayC可改变锯齿波周期 CJNEA,dataend,NEXT ;本锯齿波未结束,则继续MOVA,00 ;结束则重赋初值,下一个锯齿波开始SJMPLOOPNEXT:INCA ;数字量加1SJMPLOOP用该连接方式产生一个三角波信号的程序如下:TRI1:MOVDPTR,#DAC0832;三角波(1)MOV A,#00H UPT1:MOVXDPTR,A ;启动D/A转换INCA ;上升沿CJNEA,#0AFH,UPT1DOWNT1:MOV
20、XDPTR,A ;启动D/A转换DECA ;下降沿CJNEA,#00H,DOWNT1JMPUPT1 ;连续输出波形用该连接方式产生一个方波信号的程序如下:SQ1:MOVDPTR,#DAC0832;方波(1)MOVA,#00H MOVXDPTR,A ;DAC输出低电平ACALLDELAY1 ;延时1MOVA,#0FFH MOVXDPTR,A ;DAC输出高电平ACALLDELAY1 ;延时2JMPSQ1 ;连续输出波形DELAY1:MOVR4,#0FH ;延时子程序LOOP11:MOVR5,#10HLOOP12:NOPNOPNOPDJNZR5,LOOP12DJNZR4,LOOP11RET用该连接
21、方式产生一个梯形波信号的程序如下:LAD1:MOVDPTR,#DAC0832;梯形波(1)MOVA,#00H UPL1:MOVXDPTR,A ;启动D/A转换INCA ;上升沿CJNEA,#0FFH,UPL1LINEL1:ACALLDELAY1DOWNL1:MOVXDPTR,A ;启动D/A转换DECA ;下降沿CJNEA,#00H,DOWNL1LLINEL1:ACALLDELAY1JMPUPL1 ;连续输出波形DELAY1:MOVR4,#0FH ;延时子程序LOOP11:MOVR5,#10HLOOP12:NOPNOPNOPDJNZR5,LOOP12DJNZR4,LOOP11RET用该连接方式
22、产生一个正弦波信号的程序如下:SIN1:MOV SP,#60HMOV R0,#0 ;定义指向正弦DAC数据的指针,因为有361个数据MOV R1,#0 ;所以用了R0和R1两个寄寸器LOOPN1:MOV A,R0MOV DPTR,#SINE_DATAN1CJNE R1,#1,LOW_TABN1INC DPH ;判断指针的高位字节R1是否为1。如果是,则DPH加1LOW_TABN1:MOVC A,A+DPTR ;取出正弦波DAC的数据MOV DPTR,#DAC0832MOVX DPTR,A ;启动D/A转换INC R0 ;指针底八位加1处理CJNE R1,#1,INC_LOWN1CJNE R0,
23、#105,INC_OKN1MOV R0,#0 ;如果已经取完数据并输出,则重新设置指针MOV R1,#0SJMP INC_OKN1INC_LOWN1:CJNE R0,#0,INC_OKN1;判断是否要进位MOV R1,#1INC_OKN1:ACALL DELAYN1AJMP LOOPN1DELAYN1:MOV R7,#5;改变数值可以改变正弦波的频率DJNZ R7,$RETSINE_DATAN1:DB 128,130,132,135,137,139,141,144,146,148DB 150,152,155,157,159,161,163,165,168,170DB 172,174,176,1
24、78,180,182,184,186,188,190DB 192,194,196,198,200,201,203,205,207,209DB 210,212,214,215,217,219,220,222,223,225DB 226,227,229,230,232,233,234,235,237,238DB 239,240,241,242,243,244,245,246,247,247DB 248,249,250,250,251,252,252,253,253,254DB 254,254,255,255,255,255,255,255,255,255DB 255,255,255,255,255
25、,255,255,255,255,254DB 254,254,253,253,252,252,251,250,250,249DB 248,247,247,246,245,244,243,242,241,240DB 239,238,237,235,234,233,232,230,229,227DB 226,225,223,222,220,219,217,215,214,212DB 210,209,207,205,203,201,200,198,196,194DB 192,190,188,186,184,182,180,178,176,174DB 172,170,168,165,163,161,1
26、59,157,155,152DB 150,148,146,144,141,139,137,135,132,130DB 128,126,124,121,119,117,115,112,110,108DB 106,104,101,99,97,95,93,91,88,86DB 84,82,80,78,76,74,72,70,68,66DB 64,62,60,58,56,55,53,51,49,47DB 46,44,42,41,39,37,36,34,33,31DB 30,29,27,26,24,23,22,21,19,18DB 17,16,15,14,13,12,11,10,9,9DB 8,7,6,
27、6,5,4,4,3,3,2DB 2,2,1,1,1,0,0,0,0,0DB 0,0,0,0,0,0,1,1,1,2DB 2,2,3,3,4,4,5,6,6,7DB 8,9,9,10,11,12,13,14,15,16DB 17,18,19,21,22,23,24,26,27,29DB 30,31,33,34,36,37,39,41,42,44DB 46,47,49,51,53,55,56,58,60,62DB 64,66,68,70,72,74,76,78,80,82DB 84,86,88,91,93,95,97,99,101,104DB 106,108,110,112,115,117,119,121,124,126DB 128重点看作业题