任务一:认识51单片机
1、80C51单片机有多少条控制线? 各控制线的作用是什么?
RST:引脚9。——复位信号。
上电及手动复位电路如图1-4所示。 其中,C和R1构成上电复位,K、R2、R1、
要形成手动复位,复位电路是否有效的关键取决于9脚产生的高电平是否维持单片机的2个机器周期以上,这是由RC充放电常数决定的。 另外,产生高电平的上升沿是否强也很关键,否则不利于复位。
2.
图1-4 上电及手动复位电路
EA/Vpp:引脚 31,外部寻址使能/编程电压。 当EA为高电平时,从内部程序寄存器开始访问; 当EA为低电平时,跳过内部程序存储器,从外部程序存储器开始访问。
编程时,该端为编程电压输入端。 可根据不同单片机芯片的选型选择不同的编程电压(可根据编程软件选择芯片)。
ALE/PROG:引脚30。——地址锁存使能信号。
第一个功能:访问外部存储器时:ALE用于锁存扩展地址的低8位(P0口)的地址信号。
当外部存储器不被访问时:ALE将输出1/6的振荡频率,可用于向外部提供定时和时钟信号。
第二个功能:当对单片机进行编程时,该引脚连接到编程脉冲。
PSEN:引脚29。——外部程序存储器读选通信号。
当访问外部存储器时,该引脚会定时输出负脉冲作为读取外部存储器的信号。
2. 描述P3口的第二个功能。
端口 P3:引脚 10 至 17。
作为 I/O 端口。 用于控制和特殊功能端口。 P3口的次要功能如表1-2所示。
表1-2 P3口的辅助功能
P3口第二功能
P3.0 RXD 串行数据接收口
P3.1 TXD 串行数据发送口
P3.2 0
INT 外部中断0输入
P3.3 1
INT 外部中断1输入
P3.4 T0 计数器0计数输入
P3.5 T1 计数器1计数输入
P3.6 WR 外部RAM写选通信号
P3.7 RD 外部 RAM 读选通信号
3.80C51中的RAM部件是如何划分的,它们的作用是什么?
内部数据存储器的下部 128 个单元根据其用途分为三个区域。
1. 通用寄存器区
通用寄存器有四组,每组有8个寄存器单元,每组有寄存器单元号R0~R7。 由状态寄存器 PSW 中 RS1 和 RS0 位的状态组合决定。 通用寄存器与RS1、RS0 的关系如表1-3 所示。
表1-3 通用寄存器与RS1、RS0 的关系。
RS1 RS0
0 0 第一组 R0~R7 (00H~07H)
0 1 第二组 R0~R7 (08H~0FH)
1 0 第三组 R0~R7 (10H~17H)
1 1 第四组 R0~R7 (18H~1FH)
2. 位寻址区
位可寻址区域可以是位可寻址的,也可以是字节可寻址的。
位运算和位地址的概念:对8位二进制的每一位进行单独的运算。 这种操作称为位操作。 每个位都有自己独立的地址,称为位地址。
以2FH单元为例说明位地址与单元地址的关系。 内部RAM2FH 单元地址与其位地址的关系如表1-4 所示。
表 1-4 内部 RAM2FH 单元地址及其位地址关系
单元地址 位地址
高→低 7 6 5 4 3 2 1 0 2FH 7F 7E 7D 7C 7B 7A 79 78
3.用户内存
数据缓冲区、堆栈、工作单元。 扣除4*8=32个通用寄存器后,还有16个位寻址单元,剩余128-32-16=80个。 这80个单元是用户的通用RAM区域。 单元位置为30H~7FH。 一般情况下,堆栈中的数据放置在用户RAM区域中。
1.4.2 内部数据存储器高128个单元
内部高128个单元为特殊用途寄存器,因此称为特殊功能寄存器(SFR)。 它们也可以称为专用寄存器,其单元地址为80H~FFH。
8051共有22个特殊功能寄存器:
B.AC
C、PSW、IP、P0、P1、P2、P3、IE、SUBF、SCON、TH1、TL1、TH0、TL0、TMO
D、TCON、PCON、DPH、DPL、SP、(PC)。
4. 简述程序状态字寄存器PSW 各位的定义名称、位号及功能。
5、程序状态字是一个8位寄存器,用于存储程序运行的状态信息。 状态寄存器PSW
具体含义请参见表1-5。
6. 表 1-5 状态寄存器 PSW 各位的含义
7.CY(PSW.7)—进位标志。
8、最常用的标志位功能:存放算术运算的进位标志。 在位运算中,用作累加位。
发送,
9、按位与、按位或、等位运算。
10.CY(PSW.6)—辅助进位标志。
11、加减运算时,当低4位向高4位有进位或借位时,作为辅助进位标志。
12.CY(PSW.5)—用户标志位。
13. 这是一个用户定义的标志,可以根据控制过程的需要由软件设置或重置。
程序的执行被重定向。
14. 用户标志位具体应用: 温度控制时,初始将 PSW.5 设置为 0。当温度超过
设置该值,将PSW.5设置为1,当程序检测到PSW.5=1时,转入停止加热丝的过程。
序列,由输出端子停止
15. 控制。
16.RS1和RS0(PSW.4 PSW.3)—寄存器组选择位(通过匹配原理选择四组工作寄存器
记忆)。
17.OV(PSW.2)—溢出标志。
18、有符号数的加减法中,OV=1表示运算结果超出有符号数的有效范围(-128~+127)
发生溢出,结果错误。 OV=0,运算结果无溢出。
19.P(PSW.0)—奇偶校验标志。
20、表示累加器A中“1”个数的奇偶性,当有奇数个“1”时,P=1,当有偶数个“1”时,
P=0
任务2 单片机开发工具之一——Keil C软件
以下为跑马灯节目。 使用Keil μVision 2创建“marquee”工程,并在该工程下添加“marquee.c”程序。 请按照以下步骤正确输入。 要求编译通过时能够生成“marquee.hex”。 文档。
(1)观察程序空间的机器码;
(2)观察P1口数据;
(3)使用断点进行程序调试,重点观察P1口的数据变化。
(1)
(2)
(3)
任务3 单片机开发工具2——Proteus仿真软件跑马灯示意图如图1-76所示。 使用Proteus 7 Professional/ISIS 7 Professional软件正确绘制原理图。 跑马灯原理图中各元件参数如表1-7所示。
表1-7 跑马灯原理图中各元件参数
组件序列号 组件名称(值)
微控制器 U1 AT89C52
晶振CRYSTAL(12MHZ)
振荡电容 C1C2 CAP (15P~30P)
重置按钮 BUTTON
上电复位
C3 GENELECT22μ16V
电解电容
电阻R1~R8R9 RES(二极管限流电阻510Ω,复位电阻1kΩ)
发光二极管D1~D8 LED-RED
在图1-76的跑马灯原理图中,将本文任务2中生成的“marquee.hex”加载到CPU(U1)中,单击“运行”,观察8个二极管的变化。 大批
图1-76 跑马灯示意图
任务4 微控制器C语言
1、收集资料,简述C语言和汇编语言的比较。
(1)汇编语言利用语言直接控制硬件,硬件间接达到一定的控制效果。C语言是一种比较高级的语言。 编写者可以直接命令计算,无需考虑硬件。
机器实现了这种控制效果。也就是说,汇编语言更注重描述过程,而C语言
基于类的高级语言更注重描述结果。
(2)C语言是高级语言,可移植性高,设备依赖性低。 汇编语言是一种低级语言,可移植性较差,并且极度依赖 CPU。
2、51单片机直接支持哪些变量类型?
微控制器不支持任何所谓的变量类型。 支持的变量类型取决于所使用的编译器。 编译器将程序转换为
编译成机器代码,以便微控制器可以基于它执行程序。
普通的单片机支持C语言编程,那么它的编译器就会支持C语言使用的变量类型,如整数、字符、指针、数组等。
3. 请查资料解释一下C51中的中断函数和普通函数的区别?
答:中断函数的定义与普通函数相同。 表示中断函数不需要被主程序调用,直接被中断调用,而一般函数需要被主函数调用才可以使用。
4. 指出下列程序中的语法错误:
#包括
主要的()
a=C;
整数a=7,C
延迟(10)
无效延迟();
字符我;
对于(i=O;i