通信单片机复习提纲
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.程序如下:
2506H M5: M0V SP,#58H ;
2509H M0V 1OH,#OFH ;
25OCH M0V 11H,#OBH ;
25OFH ACALL XHD ;(PC)+2→PC
(SP)+l→SP,(PC0~PC7)→(SP)
(SP)+l→SP,(PC8~PCl5)→(SP)
addrl0~0→PC
2511H M0V 2OH,11H
2514H M5A: SJMP M5A
XHD: PUSH 10H
PUSH 11H
P0P 10H
P0P 11H
RET
问: (1)执行POP 1OH后,(10H)=? (SP)=?
(2)执行M5A:SJMP M5A后,(SP)=? (20H)=?
提示:MCS-51的堆栈,入栈时SP加1然后存数据;出栈时,数据先弹出,然后SP减1。
子程序调用ACALL需要将PC入栈以便子程序返回。
(P39堆栈)
2.分别写出实现如下功能的程序段。
(1)将片内RAM 3OH的中间4位,31H的低2位,32H的高2位按序拼成一个新字节存入33H 单元。
(2)将DPTR中间8位取反,其余位不变。
提示:(1)用ANL、ORL、RL指令实现即可。
(2)将DPTR分成DPH和DPL进行即可。
3.编制一个循环闪烁灯的程序。
有8个发光二极管,每次其中某个灯闪烁点亮10次后,转到下一个闪烁10次,循环不止。
提示:P1口连接8个发光二极管,送0电平亮,送1电平灭。
(子程序编写、调用)
4.利用8051的P1口控制8个发光二极管LED。
相邻的4个LED为一组,使2组每隔0.5s 交替发亮一次,周而复始。
编写程序(包括延时程序0.5s子程序为D05,主频12MHz)。
提示:与上题的区别在于延时子程序的精确编写。
(子程序编写、调用)
5.将片内RAM 3OH~3FH中的数据按顺序传送到片外RAM2OOOH~2OOFH,请编写子程序。
提示:片外数据传送指令是MOVX @DPTR,A。
6.在805l片内RAM2OH~3FH单元中有32字节数据,若采用方式1进行串行通信,波特f=l2MHz,用查询和中断两种方式任选编写发送程序。
率为1200波特,
OSC
提示:串行通信关于发送的核心语句,以及传输速率问题。
7.请编写串行通信数据接收程序,将接收的16字节数据送入片内RAM50H~5FH单元中。
串行接口设定为工作方式3,波特率为1200波特,
f=6MHz。
OSC
提示:串行通信关于接收的核心语句,以及传输速率问题。
8.8031外扩32KB EPROM和32KB RAM,请画出系统电路原理图并说明地址分布。
提示:如果使用2764(8KB)和6264(8KB),则各需4片。
此外,芯片上重要的“相关”引脚要标注,芯片号要标注。
9.扩展1片2764,并使用8031片内定时器编写一段程序,从P1.0输出50Hz的对称方波f=l2MHz)。
画出工作电路图并写出2764的地址范围。
(
OSC
提示:用定时器功能从P1.0端口输出方波,可见《实验指导书》。
定时器的初始值直接决定了方波的频率。
由题意,当定时为0.01s(取反一次),即可得50Hz的方波。