2016JUNE单片机复习

更新时间:2024-04-11 04:14:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2016年6月单片机复习

教学要求:

第1章:了解单片机的基础知识;掌握1.6 数制编码 第2章:掌握单片机的硬件结构

第3章:掌握单片机的汇编语言程序设计 第4章:了解KEIL C51类C语言编程 第5章:掌握单片机的接口与中断

第6章:掌握单片机并行口、定时和串口 第7章:掌握7.2小节单片机外部存储器扩展

复习题目: 问答题:

1、MCS-51单片机的时钟周期与振荡周期之间有什么关系?一个机器周期的时序如何划分? 2、MCS-51内部四个并行I/O口各有什么异同?作用是什么? 3、简述MCS-51单片机的中断响应过程。 4、89C51单片机的片内并行接口的作用

5、写出下列特殊功能寄存器TCON、TM0D、SCON、PSW、IE的名称及其中的每个位的作用。 6、MCS-51单片机CPU内部有哪些寄存器?PSW各个位怎样的?

7、51系列指令系统中有哪几种寻址方式?对内部RAM的0~7FH的操作有哪些寻址方式?对SFR的操作有哪些寻址方式?

8、请画出单片机中断方式的流程图或者描述单片机中断?什么是单片机的中断系统?80C51单片机有几个中断源?CPU响应中断时,中断入口地址各是多少? 9、在键盘设计中,如何消除操作员对按键的抖动?

10、如果MCS-51系列单片机的晶振频率为12MHz(或者,6MHz),请问时钟周期、机器周期、指令周期各为多少?

11、CPU与外设间有哪几种数据传送方式?各有什么特点?

12、单片机复位的作用是什么?有几种复位方法?复位后单片机的状态如何(写出PC、PSW、SP、DPTR、P0、P1、P2、P3寄存器的状态值)? (1) 复位的作用是使CPU和系统中其它部件都处于一个确定的初始状态,并从这个状态开始工作。 (2)复位方法有上电自动复位和按键手动复位

(3)复位后单片机的状态为:PC=0000H、PSW=00H、SP=07H、DPTR=0000H、P0、P1、P2、P3各为FFH

13、何为单片机的中断系统?80C51单片机有几个中断源?CPU响应中断时,中断入口地址各是多少?

14、单片机对中断优先级的处理原则是什么? 15、单片机的C51语言与标准C语言的区别?

16、MCS-51单片机串行通信的初始化中,要做哪些工作? 17、CPU与外设间有哪几种数据传送方式?各有什么特点? 18、并行口8255有哪几种工作方式?怎样选择其工作方式? 19、Void main()

{unsigned int x=0x6B;

Unsignded char a[5]={0,0,0,0,0}; Unsigned char i ,j=0;

1 / 8

For(j=1;j<=5;j++)

{a[i]=x; x=x/10; i++;} }问数组A的内容?

20、简述51单片机片内的定时/计数器4种工作模式的特点? 21、已知一单片机系统的外接晶体振荡器的振荡频率为11.059MHz,请计算该单片机系统的拍节P、状态S、机器周期所对应的时间是多少?指令系统中的单字节双周期指令的执行时间是多少?

22、各中断源对应的中断服务程序的入口地址是否能任意设定? 如果想将中断服务程序放置在程序存储区的任意区域,在程序中应该作何种设置?请举例加以说明。 23、MCS-51单片机指令系统中有哪几种寻址方式?对内部RAM的0~7FH的操作有哪些寻址方式?对SFR的操作有哪些寻址方式?

24、简述MCS-51单片机CPU的中断响应条件?

25、简述MCS-51单片机定时器的四种工作方式,怎样编写定时程序?定时器的控制字如何设置? 26、简单C语言程序的阅读与编写、填空。

编程题:

1、阅读下列程序段并回答问题 。 1)、该程序执行何种操作? 2)、已知初值(60H)=23H,(61H)=61H,运行程序后(62H)=? CLR C

MOV A,#9AH SUBB A,60H ADD A,61H DA A

MOV 62H,A

2、编写KEIL C语言的中断程序。 见教材P184的4.2.8小节

3、程序填空

MOV DPTR,#2000H (DPTR)=_____________ MOV A,#80H (A)=____________

MOVX @DPTR,A (2000H)=____________ INC DPTR (DPTR)=____________ MOV A,#90H

MOVX @DPTR,A (2001H)=_____________ MOV DPTR,#2000H (DPTR)=____________ MOVX A,@DPTR (A)=_____________ MOV B,A (B)=___________ INC DPTR (DPTR)=__________ MOVX A,@DPTR (A)=_____________ 4、 编写一个子程序将内部RAM中的30H~4FH单元的内容传送到外部RAM中7E00H~7E1FH单元。

5、将片外RAM的10H到FFH单元的内容全部清零(或者,全部设置为5AH)。

2 / 8

ORG 0000H LJMP 0030H ORG 0030H MOV R0,#10H CLEAR1: CLR A MOVX @R0,A INC R0

CJNE R0,#00H,CLEAR1 SJMP $ END

6、片内RAM30H开始的单元中有10个字节的二进制数,请编程求它们之和(和<256)

7、编写程序利用定时器使图中发光二极管VD进行秒闪烁,即1s亮~暗,亮500ms,暗500ms。已知focs=12MHZ。

8、统计P1口输入的数中正数(0算作正数)、负数的个数,将统计的个数分别放入R0,R1这两个工作寄存器中去,请编程实现。 见教材P141 例3-45

9、试编写程序,分别统计在内部RAM的60H~70H单元的数据区中奇数和偶数的个数,并将奇数和偶数的个数分别存放在R6H和R7H单元中。

10、片内RAM30H开始的单元中有10个字节的二进制数,请编程求它们之和。

11、用89C51最小系统构成一个七段显示器(共阴极)的控制电路,要求实现: 8字型外框6段依次发光,成顺时针旋转状,且任意时刻仅有一段发光。并且,由一个手动开关K控制旋转速度,可选择段切换时间为0.2s或0.5s(延时100ms的子程序D100MS为已知条件可调用);

12、填写完整C51程序,求数组a中的最大数。 Void main()

{ unsigned char i=0,max;

Unsigned char a[]={1,2,100,66,123,4,8,7}; }

13、 C语言或汇编编程利用定时器T0查询方式使MCS-51的P1.0口输出周期为20ms的方波。已知fosc=6MHZ。(若输出其他频率方波,如1ms、5ms、10ms周期的,如何实现?) 参考答案:

T0初值=216-5000=60536= EC78H TH0=EC H TL0= 78H TMOD=00000001B=01H

3 / 8

ORG 0000H LJMP MAIN ORG O300H

MAIN: MOV TMOD,#0000 0001B HH1: MOV TH0,#0ECH MOV TL0,#78H

SETB TR0 LOOP: JBC TF0,NEXT SJMP LOOP NEXT: CPL P1.0 SJMP HH1 SJMP $

14、用89C51最小系统构成一个七段显示器(共阴极)的控制电路,要求实现: 8字型外框6段依次发光,从笔画F开始成逆时针旋转状,且任意时刻仅有一段发光。并且,由一个带自锁功能的手动开关控制旋转速度,可选择段切换时间为0.2s或0.5s (设延时100ms的子程序D100MS为已知条件可调用);编写汇编程序并加注释。

START:MOV A,#20H

LOOP: MOV P1, A ;当前段亮(从a段开始)

JB P3.7, LOOP2 ;若KB为高电平,每段显示0.2s(即200ms) ACALL D100MS ;若KB为低电平,每段显示0.5s(即500ms) ACALL D100MS ACALL D100MS

LOOP2: ACALL D100MS ACALL D100MS

RR A ;准备让下一段亮,其段灭

CJNE A,#80H,LOOP ;当6段显示完,再从头开始 SJMP START

15、有一脉冲信号如下图(1),要求用8051单片机将外部(INT0)来的方波信号进行4分频,然后在P2.7输出信号如下图(2)所示,请说明清楚信号的输入和输出引脚,且编程实现该功能。

4 / 8

(1)

(2)

ORG 0000H LJMP MAIN ORG 0003H LJMP I_INT0 ORG 0050H MAIN: SETB IT0 SETB EA SETB EX0 MOV R7,#0 SJMP $ I_INT0: INC R7 CJNE R7,#2,GORETI CPL P2.7 MOV R7,#0 GORETI: RETI END

16、编写航标灯控制程序。要求航标灯在白天熄灭,在夜晚断续点亮,时间间隔2秒,即亮2秒,息2秒,周期循环进行。注意:用T0定时控制P1.7口航标灯的亮灭;若P3.2为0判断为白天,而若P3.2为1判断为黑天。

主程序 ORG 2000H

MAIN:MOV SP,#30H GAT0:CLR P1.7

MOV TMOD,#09H ;T0定时,模式1,GATE=1 MOV TL0,#058H ;T0计算初值 MOV TH0,#9EH

5 / 8

MOV R7,#28H ;软件计数初值

HERE1:JNB P3.2,HERE1 ;夜晚到了吗? P3.2=0(白天)转HER1即停在此语句等待,夜晚到了P3.2=1 往下执行。

SETB TR0 ;到了,启动T0 SETB ET0 ;允许T0中断 SETB EA ;CPU开中断

HERE2:JB P3.2,HERE2 ;白天到了吗?P3.2=1(黑夜)转HERE2,即停在此语句等待,白天到了P3.2=0 往下执行。

CLR TR0 ;到了,关T0 CLR ET0 ;禁止T0中断 CLR EA ;关中断 CLR P1.7 ;关信号灯 SJMP GAT0

17、某单片机控制系统P1口接有8个发光二极管。试画出89C51与其连接的图并编程实现使它们由左向右轮流点亮0.1秒(时间控制用定时实现,已知89C51的晶振为6MHz,要求写出定时器工作在4种不同工作方式下的最大定时时间,并选择一种合适的工作方式完成题目要求)。

18、在P1.7端接一个发光二极管LED,要求利用定时控制使LED亮1s灭1s周而复始地闪烁,设时钟频率fosc=6MHz,请选择一种合适的工作方式完成题目要求。 见教材P270 例6-4。

实现方法一:定时查询;实现方法二:定时中断。

19、单片机P1口接有8个发光二极管(共阴极)。画出89C51与其连接的图并编程实现使它们由左向右轮流点亮0.1秒(时间控制用定时实现,已知89C51的晶振为6MHz,要求写出定时器工作在4种不同工作方式下的最大定时时间,并选择一种合适的工作方式完成题目要求)。 当时钟频率fosc=6MHz,Tcy=2us

方式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中断一次,完成要求的操作。因此定时器T0选择方式1下工作。T0方式1下定时100ms,计数初值X=216-100ms/2us=65536-50000=15536=3CB0H ORG 0000H AJMP MAIN ORG 000BH AJMP IP0 ORG 0030H

MAIN:MOV A,#7FH MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H SETB ET0 SETB EA

6 / 8

SETB TR0 SJMP $

IP0:MOV TH0,#3CH MOV TL0,#0B0H RR A RETI END

20、在RAM的40H开始的数据块中,连续存放了64个字节的无符号数,请编程实现从小到大冒泡法排序。

见教材P143例3-47

21、MCS-51的P3.3外接开关,若为0表示有故障输入,则P1.7的蜂鸣器故障报警;若P3.3外接开关为1,则正常工作。请编写相应的故障中断处理子程序(已知delay程序为1毫秒延时)。

22、MCS-51单片机产生矩形波、三角波或其他波形。 产生矩形波

START: MOV DPTR, #7FFFH

STEP: MOV A , #dataH ;置矩形波上限 MOVX @DPTR , A ;D/A转换

ACALL DELH ;调输出“1”时延时 MOV A , #00H ;置矩形波下限 MOVX @DPTR, A

ACALL DELL ;调输出“0”时延时 SJMP STEP ;重复执行 产生三角波

START: MOV DPTR, #7FFFH STEP1: MOV A, #00H STEP2: MOVX @DPTR, A INC A

CJNE A , #data , STEP2 STEP3: DEC A

MOVX @DPTR , A CJNE A , #01H , STEP3 AJMP STEP1 23、将2000H的高位和2001H的低位相拼成一个字节,结果送入2002H,其中2000H的高位作为2002H

7 / 8

的低位,2001H的低位作为2002H的高位(或者,高低位维持不变,编程实现)。

作图题:

1、MCS-51单片机外扩展一片8255,a.画出系统电路原理图;b.写出地址分布。要求8255A的A0、A1分别接地址总线的A0、A1,片选端以及P0.7~P0.2全部接高电平1。

2、作图实现用8031,74LS373,EPROM27128(16K*8bit)构成片外程序存储器扩展的最小系统。A.作图 B.计算其地址范围。 若换成2716又是怎样的?

3、MCS-51单片机外扩展一片8255A,(关于8255部分仅做了解) A. 画出系统电路原理图? B. 写出地址分布?

C. 编写初始化程序,使PA为方式1输入;PB为方式1输出?

4、MCS-51单片机用74LS138外扩展两片2764存储器,要求第一片地址为0000H-1FFFH;第二片地址为2000H-3FFFH;请确定一个合适的选片方式,并画出系统电路原理图。

5、利用74LS373作地址锁存器,使用6264(8K*8)构成16K的MCS-51单片机的外部数据存储系统。要求采用线选法产生片选信号,并计算6264的地址范围。(写最小的一个)

6、下图为8031扩展3片8K的程序存储器2764,图中硬件电路已经连接了一部分,请用片选法将剩下的相关硬件电路连接完成,并写出每一片2764的地址范围。

接P2.7口;其他的地址线都是高位选中,也就是P2.6~ P2.0

8 / 8

本文来源:https://www.bwwdw.com/article/5myp.html

Top