◆波特率公式:TH1=256-f/(波特率*12*32/2^SMOD)
◆MCS-51系列单片机内部有哪些主要的逻辑部件?答案:一个8位的CPU、一个布尔处理机、一个片内振荡器、128B的片内RAM、21个特殊功能寄存器、4个8位并行I/O接口、一个全双工的串行口、2个16位的定时器/计数器、5个中断源、2个中断优先级。
◆机器周期是指:完成MCS-51一个典型的指令花费的振荡周期称为一个机器周期 ;一个机器周期由六 个状态组成,包含有 12个 振荡周期;
◆当外部中断采用低电平触发方式时,为了避免在中断返回后再次响应该中断,要求外部中断源在执行的中断程序返回前撤销中断请求信号(使引脚电平变高);
◆程序计数器PC是用来存放下一条将要执行的指令地址,共16 位。单片机上电复位后,PC =0000H;
◆当单片机的P1口做为一般的I/O口使用时,为8位准双向口的意思是指: 当输入信号时,需先向P1口锁存器写1,以保证读引脚的正确性 ;
◆何谓堆栈?它设置在哪个存储区?在实际编程中,它有何应用价值?
答:堆栈是一个后进先出的特殊的数据缓冲区,并由栈指针SP指示堆栈中的数据深度。在MCS-51系列单片机中,堆栈设置在内部RAM数据存储区内。在实际编程中,可用于数据的传递,数据的交换、保存CPU现场等作用
◆简述MCS-51单片机程序存储器的几个特殊入口地址的含义。
0000H:复位入口地址
0003H:外部中断0中断服务程序入口地址
000BH:定时器/计数器0溢出中断服务程序入口地址
0013H:外部中断1中断服务程序入口地址
001BH:定时器/计数器1溢出中断服务程序入口地址
0023H:串行口中断服务程序入口地址
◆何谓静态显示?何谓动态显示?两种显示方式有何优缺点?
所谓静态显示,是指当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止,公共端接固定的电平。
LED动态显示是将所有位的段选线并接在一个I/O接口上,称为段口,共阴极端或共阳极端分别由相应的I/O接口线控制,称为位口。
静态显示显示稳定,但软件简单;动态显示硬件简单,但软件需要不断地刷新。
◆编程将片内RAM 30H~39H单元中的内容送到以3000H为首的存储区中。
MOV R0,#30H
MOV DPTR,#3000H
MOV R7,#10
L1: MOV A,@R0
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R7,L1
RET
◆片内RAM 60H开始存放20个数据,试统计正数、负数及为零的数据个数,并将结果分别存在50H、51H、52H单元中。
MOV 50H,#0
MOV 51H,#0
MOV 52H,#0
MOV R7,#20
MOV R0,#60H
L3: MOV A,@R0
JZ L1
JB ACC.7,L2
INC 50H
SJMP LEND
L2: INC 51H
SJMP LEND
L1: INC 52H
LEND: INC R0
DJNZ R7,L3
RET
◆从片外RAM 2000H单元开始存有20个有符号数,要求把它们传送到片外RAM 3000H开始的单元,但负数不传送,试编写程序。
MOV DPTR,#2000H
MOV R0,#20H
MOV R7,#20
L1: MOVX A,@DPTR
MOV @R0,A
INC DPTR
INC R0
DJNZ R7,L1
MOV DPTR,#3000H
MOV R0,#20H
MOV R7,#20
L2: MOV A,@R0
JB ACC.7,L3
MOVX @DPTR,A
L3: INC DPTR
INC R0
DJNZ R7,L2
RET
◆在片外RAM 2000H、2001H和3000H、3001H中分别存放两个字数据(高8位在偶地址),试比较两个数的大小,把大数存放在4000H、4001H单元中。
MOV DPTR,#2000H
MOVX A,@DPTR
MOV 20H,A
INC DPTR
MOVX A,@DPTR
MOV 21H,A
MOV DPTR,#3000H
MOVX A,@DPTR
MOV 30H,A
INC DPTR
MOVX A,@DPTR
MOV 31H,A
CLR C
MOV A,21H
SUBB A,31H
MOV A,20H
SUBB A,30H
JNC L1
MOV A,20H
MOV B,21H
SJMP L2
L1: MOV A,30H
MOV B,31H
L2: MOV DPTR,#4000H
MOVX @DPTR,A
INC DPTR
MOV A,B
MOVX @DPTR,A
RET
◆试编写一段对中断系统初始化的程序,允许外部中断0、外部中断1、定时器/计数器T0溢出中断、串行口中断,且使定时器/计数器T0溢出中断为高优先级中断。
SETB EA
SETB EX0
SETB EX1
SETB ET0
SETB ES
SETB PT0
IE名称:EA:中断允许总控制位;ES:串行口中断;ET1:定时器/计数器1中断;EX1:外部中断1中断;
IP名称:PS:串行口中断;PT1:定时器/计数器1中断; PX1:外部中断1中断。
◆设MCS-51单片机时钟为12MHz,利用定时器T0编程令P1.0引脚输出2ms的矩形波程序,要求占空系数为1:2(高电平时间短)。
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0INT
ORG 0030H
MAIN: MOV SP,#60H
MOV R7,#0
MOV TMOD,#01H ;初始化
MOV TH0,#0FDH ;定时666微妙
MOV TL0,#66H
SETB EA
SETB ET0
SETB TR0
L1: SJMP L1;中断服务程序
T0INT:MOV TH0,#0FDH ;重载初始值
MOV TL0,#66H
INC R7
CJNE R7,#1,LL1
CLR P1.0
SJMP LLEND
LL1: CJNE R7,#3,LLEND
SETB P1.0
MOV R7,#00H
LLEND:RETI
◆如果MCS-51单片机系统的晶振频率为12MHz,分别指出定时器/计数器方式1和方式2的最长定时时间。
方式1:65536us; 方式2:256us
◆设MCS-51单片机的晶振频率为12MHz,要求在P1.0输出周期是200ms的方波,试编写程序。
ORG 0000H
LJMP MAIN
ORG 001BH
LJMP T1INT
ORG 0030H
MAIN: MOV SP,#70H
MOV TMOD,#10H ;T1方式1
MOV TH1,#3CH ;定时50ms
MOV TL1,#0B0H
MOV R7,#2 ;50ms*2=100ms
SETB EA
SETB ET1
SETB TR1
SJMP $
T1INT: MOV TH1,#3CH
MOV TL1,#0B0H
DJNZ R7,L1
MOV R7,#2
CPL P1.0
L1: RETI
◆设串行异步通信的传送速率为2400波特,传送的是带奇偶校验的ASCII码字符,每个字符包含10位(1个起始位,7个数据位,1个奇偶校验位,1个停止位),试编程初始化程序。
设定串行口位方式1.
MOV SCON,#40H
MOV PCON,#80H
MOV TMOD,#20H
MOV TH1,#0F4H
MOV TL1,#0F4H
SETB TR1
◆设外部晶频率振为11.0592MHz,串行口工作在方式1,波特率为4800b/s。编写用T1作为波特率发生器的方式字并计算T1的计数初值。
TMOD:20H
TH1=TL1=0FAH
◆设计一个单片机的双机通信系统,串行口工作在方式1,编写通信程序将甲机内部RAM 30H~3FH存储区的数据块通过串行口传送到乙机内部RAM 40H~4FH存储区中。
甲机发送(采用查询方式):
MOV SCON,#80H ;设置工作方式2
MOV PCON,#00H ;置SMOD = 0,波特率不加倍
MOV R0,#30H ;数据区地址指针
MOV R2,#10H ;数据长度
LOOP: MOV A,@R0 ;取发送数据
MOV C,P ;奇偶位送TB8
MOV TB8,C
MOV SBUF,A ;送串行口并开始发送数据
WAIT: JBC TI,NEXT ;检测是否发送结束并清TI
SJMP WAIT
NEXT: INC R0 ;修改发送数据地址指针
DJNZ R2,LOOP
RET
乙机接收(采用查询方式):
MOV SCON,#90H ;工作方式2,并允许接收
MOV PCON,#00H ;置SMOD = 0
MOV R0,#40H ;置数据区地址指针
MOV R2,#10H ;等待接收数据长度
LOOP: JBC RI,READ ;等待接收数据并清RI
SJMP LOOP
READ: MOV A,SBUF ;读一帧数据
MOV C, P
JNC LP0 ;C不为1转LP0
JNB RB8,ERR ;RB8 = 0,即RB8不为P转ERR
AJMP LP1
LP0: JB RB8,ERR
LP1: MOV @R0,A
INC R0
DJNZ R2,LOOP
RET
◆在一个8031应用系统中扩展一片2764、一片8255A和一片6264。试画出系统框图,并指出所扩展的各个芯片的地址范围。
将图8-23中的/CE1接74LS138译码器的/Y0端。
2764的地址空间范围:0000H~1FFFH
6464的地址空间范围:0000H~1FFFH
82552A的口地址:PA口:0FFFCH;PB口:0FFFDH;PC口:0FFFEH;控制口0FFFFH。
◆单片机采用晶振6MHZ,P1口接有8个发光管,围成圆形(跑马灯)。要求:
① 发光管每次只亮一个,一次从P1.0~P1.7循环发光,切换时间为1秒(低电平亮);
② 延时采用T0定时器,工作于自动装入时间常数的定时器工作方式,允许T0中断,试写出完整的可调试程序。
ORG 0000H
LJMP start
ORG 000BH
LJMP timer0
ORG 30H
start:MOV TMOD,#02H ;T0工作于方式2—自动重装载
MOV TL0,#06 ;定时器自动重装初值
MOV TH0,#06
MOV R7,#100
MOV R6,#20 ;R6、R7中断次数,一次中断500uS,即500*100*20=1s
MOV A,#0FEH ;循环送出的控制字节
MOV P1,A ;送出控制字节,P1.0灯亮
SETB TR0
SETB ET0
SETB EA
wait:SJMP wait ;主程序,无限循环
timer0:DJNZ R7,EXIT
MOV R7,#100
DJNZ R6,EXIT
MOV R6,#20
RL A ;左循环一位
MOV P1,A
EXIT:RETI
END
◆ 一个单片机系统,时钟频率fosc=11.059Mhz,现要求串行口通信的波特率为9600bps,采用T1作为波特率发生器,试计算出定时器T1的自动重装载值、实际波特率并验算实际波特率与理论波特率的相对误差?
取:SMOD=0;
T1 自动重装载值:
演算:
误差计算:
程序段:MOV TMOD,#20H
MOV TH1,#0FDH
MOV TL1,#0FDH
SETB TR1
◆8255初始化:PORTA EQU (A口地址)
PORTB EQU (B口地址)
PORTC EQU (C口地址)
CS8255 EQU (/CS地址)
ORG 0000H
MOV DPTR #CS8255
MOV A,#10010000B
MOVX @DPTR,A
◆编制一个计算符号函数y=SGN(x)的完整的可调试的程序。
Y=
设自变量已经存入外部数据存储区的100h单元,范围-128≤x≤127;y存入外部数据区的200h单元。
答案:ORG 0000H SUL: MOV DPTR,#200H
LJMP START MOVX @DPTR,A
ORG 0030H RET
START: MOV DPTR,#100H NEG: MOV A,#0FFH
MOVX A,@DPTR; SJMP SUL
JZ SUL WAIT: LJMP WAIT
JB ACC.7,NEG END
MOV A,#01
◆用一片2764和一片6264扩展8k的程序存储器(从2000H~3FFFH)和8K的数据存储器(6000H~7FFFH),不采用线译码,试完成用8051与之连接的连接图。
单片机考点总结及考试大题
1. 单片机由CPU、存储器及各种I/O接口三部分组成。
2. 单片机即单片微型计算机,又可称为微控制器和嵌入式控制器。
3. MCS-51系列单片机为8位单片机,共40个引脚,MCS-51基本类型有8031、8051和8751.
4. MCS-51单片机共有16位地址总线,P2口作为高8位地址输出口,P0口可分时复用为低8位地址输出口和数据口。MCS-51单片机片外可扩展存储最大容量为216=64KB,地址范围为0000H—FFFFH。(1.以P0口作为低8位地址/数据总线;2.以P2口作为高8位地址线)
5. MCS-51片内有128字节数据存储器(RAM),21个特殊功能寄存器(SFR)。
(1)MCS-51片内有128字节数据存储器(RAM),字节地址为00H—7FH;
(2)21个特殊功能寄存器(SFR)(21页—23页);
(3)当MCS-51上电复位后,片内各寄存器的状态,见34页表2-6。
PC=0000H, SP=07H, P0~P3=FFH
6. 程序计数器PC:存放着下一条要执行指令在程序存储器中的地址,即当前PC值或现行值。程序计数器PC是16位寄存器,没有地址,不是SFR.
7. PC与DPTR的区别:PC和DPTR都用于提供地址,其中PC为访问程序存储器提供地址,而DPTR为访问数据存储器提供地址。
8. MCS-51内部有2个16位定时/计数器T0、T1,1个16位数据指针寄存器DPTR,其中MOVE DPTR, #data16 是唯一的16位数据传送指令,用来设置地址指针DPTR。
9.程序状态字寄存器PSW(16页)
(2)PSW寄存器中各位的含义;
Cy:进位标志位,也可以写为C。
Ac:辅助进位标志位。
RS1、RS0:4组工作寄存区选择控制位。
P为奇偶标志位:该标志位用来表示累加器A中为1的位数的奇偶数
P=1, A中1的个数为奇数;
P=0, A中1的个数为偶数。
另:使用加法指令时,累加器A中的运算结果对各个标志位的影响:
(1)如果位7有进位,则置1进位标志位Cy,否则清0 Cy;
(2)如果位3有进位,置1辅助进位标志位Ac,否则清0 Ac;
(3)如果位6有进位,而位7没有进位,或者位7有进位,而位6没有,则溢出标志位OV置1,否则清0 OV。即只要位7和位6中有一个进位,而另一个没进位,OV就置1.
10. MCS-51指令系统的七种寻址方式,熟练掌握各寻址方式。(40页)。
12. MCS-51有5个中断源,2级中断优先级。5个中断源名称及其中断入口地址分别是什么?哪些中断源的中断请求标志位在响应中断时由硬件自动清除?那些中断源的中断请标志位必须使用软件清除?记住各个中断请求标志位,优先级标志位,触发方式标志位。(102页—108页)
前面4种都是硬件自动清0,串行中断必须使用软件清除,因为串行接收和发送共享串行中断,在中断处理中必须使用T1和R1判断串行接收还是发送中断。
13. MCS-51的串行口为全双工的异步串行通信口,串行口有几种工作方式?每种工作方式的帧格式和波特率是什么?
串行口有4种工作方式:
SM0、SM1:串行口4中工作方式的选择位
TXD P3.1 RXD P3.0 REN 允许串行接收 设240字符每秒 异步通讯240*10=2400bit
SCON:串行口控制 PCON 波特率设置
15.系统总线
按其功能通常把系统总线分为三组:(1)、地址总线(Address Bus ,简写AB)
地址总线用于传送单片机发出的地址信号,以便进行存储单元和I/O端口的选择。地址总线是单向的,只能由单片机向外送出。地址总线的数目决定着可直接访问的存储单元数目。
MCS-51单片机最多可以扩展64KB,即65536个地址单元,因此,地址总线为16条。
(2)、数据总线(Data Bus,简写DB)
。MCS-51单片机是8位字长,所以,数据总线的位数也是8位的。数据总线是双向的,可以进行2个方向的传送。
控制总线)
15.单片机外部扩展存储器地址分配的方法线选法和译码法。外部扩展存储器容量大小的确定方法(1)由该存储器芯片上的地址根数决定,如程序存储器芯片27128有A0—A13共14根地址线,故27128的存储容量=214=16KB;(2)用存储器芯片型号后面的数字÷8 即可得到该芯片的存储容量,如27128的存储容量=128÷8=16KB;
16.P0口作第八位的地址、数据总线,P2口作为高位地址线,PSEN:ALE作为P0口低八位所存控制,EA-ROM的选择控制
16.存储器扩展的读写控制:
外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为 O E和 W E。外扩的RAM的读写控制引脚分别与MCS-51的R D和 WR引脚相连。
外扩的EPROM在正常使用中只能读出,不能写入,故EPROM的芯片没有写入控制引脚,只有读出引脚,记为OE,该引脚与MCS-51 的PSEN相连。
17.在MCS-51单片机系统中,外接程序存储器和数据存储器共用16位地址线和八8位数据线,为何不发生冲突?
外接程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于访问外扩程序存储器时是PSEN信号有效, 而访问数据存储器时是R D或 WR 信号有效。而这些控制信号是由MCS-51执行访问外部外序存储器和或访问外部数据存储器的指令产生,任何时候只能执行1种指令,只产生1种控制信号,所以不会产生数据冲突的问题。
已知8051单片机的fosc=12MHZ,用T1定时,试编程P1.1周期为2ms的方波
MOV TMOD,#20H ;T1方式2定时
MOV TH1,#06H ;定时250μs
MOV TL1,#06H
SETB TR1
L2: MOV R2,#04H
L1: JNB TF1,$
CLR TF1
DJNZ R2,L1
CPL P1.1
SJMP L2
请回答:(共16分)
1.下图中外部扩展的程序存储器和数据存储器容量各是多少?(2分)
2.两片存储器芯片的地址范围分别是多少?(地址线未用到的位填1) (6分,)
3.请编写程序,要求:
(1)将内部RAM 30H~3FH中的内容送入1# 6264的前16个单元中;(4分)
(2)将2# 6264的前4个单元的内容送入40H~43中;(4分)
解: 1. 外扩程序存储器的容量是8K,外扩数据存储器的容量是16K
2. 2764范围: C000H~DFFFH
1#范围: A000H~BFFFH
2#范围: 6000H~7FFFH
3.请编写程序
(1) MOV R1 ,#10H
MOV DPTR,@0A000H
MOV R0,#30H
LOOP: MOV A,@R0
MOVX @DPTR,A
INC DPTR
INC R0
DJNZ R1,LOOP
RET
(2) MOV R1,#04H
MOV DPTR,#6000H
MOV R0 ,#40H
LOOP:MOVX A ,@DPTR
MOV @R0 ,A
INC DPTR
INC R0
DJNZ R1,LOOP
RET
将外部数据存储器中的5000H—50FFH单元全部清零(10分)。
答: ORG 0100H (1分)
MOV DPTR #5000H
MOV R0,#00H
CLR A (3分)
LOOP : MOVX @DPTR,A
INC DPTR (3分)
DJNZ R0,LOOP (2分)
HERE: SJMP HERE (RET或SJMP $ 等)(1分)
题 9.9电路图可以参考图9-10,PA口每一位接二极管的正极,二极管的负极接地。PB口每1位接一开关和上拉电阻,开关另一端直接接地。这样只需要将读到的PB口的值送给PA口就可以满足题目要求了。
ORG 0100H
MIAN: MOV A,#10000010B ;设置PA口方式0输出,PB口方式0输入
MOV DPTR,#0FF7FH ;控制口地址送DPTR
MOVX @DPTR,A ;送方式控制字
MOV DPTR,#0FF7DH ;PB口地址送DPTR
MOVX A,@DPTR ;读入开关信息
MOV DPTR,#0FF7CH ;PA口地址送DPTR
MOVX @DPTR,A ;PA口的内容送PB口点亮相应的二极管
END
单片机知识点总结第一章:微型计算机基础1、微型计算机数制及他们之间的相互转换2、微型计算机码制和编码第二章:MCS-51单片机结构…
单片机考点总结1.单片机由CPU、存储器及各种I/O接口三部分组成。2.单片机即单片微型计算机,又可称为微控制器和嵌入式控制器。3…
波特率公式TH1256f波特率12322SMODMCS51系列单片机内部有哪些主要的逻辑部件答案一个8位的CPU一个布尔处理机一个…
第1章1、微型计算机通常由哪些部分组成?各有哪些功能?答:微型计算机通常由控制器、运算器、存储器、输入/输出接口电路、输入设备和输…
第一部分硬件基础1单片机的组成2单片机的并行IO口在使用时有哪些注意的地方3单片机的存储器程序存储器和数据存储器的寻址范围地址总线…
第1章1、微型计算机通常由哪些部分组成?各有哪些功能?答:微型计算机通常由控制器、运算器、存储器、输入/输出接口电路、输入设备和输…
单片机知识点总结第一章:微型计算机基础1、微型计算机数制及他们之间的相互转换2、微型计算机码制和编码第二章:MCS-51单片机结构…
计算机组成原理白中英复习第一章计算机系统概论电子数字计算机的分类P1通用计算机超级计算机大型机服务器工作站微型机和单片机和专用计算…
单片机考点总结1.单片机由CPU、存储器及各种I/O接口三部分组成。2.单片机即单片微型计算机,又可称为微控制器和嵌入式控制器。3…
单片机考点总结及考试大题1234单片机由CPU存储器及各种IO接口三部分组成单片机即单片微型计算机又可称为微控制器和嵌入式控制器M…
在本站51hei-5板子上做315兆无线解码和红外解码试验的时候,延时函数的精度很重要,要做到相当精确才可以成功,所以大家一定要掌…