好文档 - 专业文书写作范文服务资料分享网站

单片机红外控制发射器设计【非常详细】

天下 分享 时间: 加入收藏 我要投稿 点赞

●两个串行中断 ●两级加密位

●内置一个模拟比较放大器 ●软件设置睡眠和唤醒功能

3.1.3 AT89C2051单片机的主要组成部分 1.CPU

CPU是单片机的核心部分,他的作用是读入和分析每条指令,根据每条指令的功能要求,控制各个部件执行相应的操作。AT89C2051单片机内部有一个8位的CPU,它是由运算器和控制器组成[13]。 A.运算器

运算器主要包括算术、逻辑运算部件ALU、累加器ACC、寄存器B、暂存器YMP1、YMP2、程序状态寄存器PSW、布尔处理器及十进制调整电路等。 运算器主要用来实现数据的传送、数据的算术运算、逻辑运算和位变量处理等。 B.控制器

控制器包括时钟发生器、定时控制逻辑、指令寄存器指令译码器、程序计数器PC、程序地址寄存器、数据指针寄存器DPTR和堆栈指针SP等。

控制器是用来统一指挥和控制计算机进行工作的部件。它的功能是从程序存储器中提取指令,送到指令寄存器,再进入指令译码器进行译码,并通过定时和控制电路,在规定的时刻发出各种操作所需要的全部内部控制信息及CPU外部所需要的控制信号,如ALE、PSEN、RD、WR等,使各部分协调工作,完成指令所规定的各种操作。 2.存储器 A.程序存储器

程序存储器用于存放编好的程序、表格和常数。CPU的控制器专门提供一个控制信号EA来区分内部ROM和外部ROM的公用地址区:当EA为无效电平时,单片机从片内ROM的2KB存储器取指令,而当指令超过07FFH后,就自动转向片外ROM取指令;当EA为有效电平时,CPU只从片外ROM取指令。 在程序存储器中,有6个单元具有特殊存储功能。

0000H—0002H:是所有执行程序的入口地址,2051单片机复位后,CPU总是从0000H单元开始执行程序。 0003H:外部中断0入口。

000BH:定时/计数器0溢出中断入口。 0013H:外部中断1入口。

8

001BH:定时/计数器1溢出中断入口。 0023H:串行口中断入口。

使用时,通常在这些入口地址处存放一条绝对跳转指令,使程序跳转到用户安排的中断程序起始地址,或者从0000H起始地址跳转到用户设计的初始程序上。 B.数据存储器

片内数据存储器的8位地址共可寻址256B单元,2051单片机将其分为两个区:00H—FFH的128B单元为片内RAM区,可以读、写任何数据;80H—FFH的高128B单元为专用寄存器区。在低128B的内部RAM中,前32个单元(地址为00H—1FH)为通用工作寄存器区,共分为四组(寄存器0组、1组、2组、3组),每组8个工作寄存器由R0—R7组成,共占32个 单元。选用哪一组由程序状态字PSW中的RS1、RS0 这两位的设置决定,若程序并不需要四个4组工作寄存器,那么剩下的工作寄存器可作一般的存储器来使用。CPU在复位时自动选中0组20H—2FH的16个单元为位寻址区,每个单元8位,共128位。其位寻址范围为00H—7FH。位寻址区的每一位都可当作软件触发器,由程序直接进行处理。程序中通常把各种程序状态标志、位控变量设在位寻址区。同样,位寻址区的RAM单元也可作为一般的数据存储器按字节单元使用。 3.特殊功能寄存器 A.累加器A

累加器A是一个最常用的8位特殊功能寄存器,它既可用于存放操作数, 也可用于存放运算的中间结果。大部分单操作数指令的操作数就取自累加器。用ACC表示A的符号地址。 B.寄存器B

寄存器B是一个8位寄存器,主要用于乘法和除法的运算。乘法运算时,B

中存放乘法,乘法操作后,乘积的高8位又存于B中;除法运算时,B中存放除数,出发操作后,B中又存放余数。在其他指令中,寄存器B可作为一般的寄存器使用,用于暂存数据[14]。

3.2定时器/计数器

3.2.1主要特性

(1) AT89C2051单片机有两个可编程的定时器/计数器——定时器/计数器0

与定时器/计数器1,可有程序选择作为定时器用或作为计数器用,定时时间或记数值也可由程序设定。

9

(2) 每一个定时器/计数器具有4种工作方式,可用程序选择。

(3) 任一定时器/计数器在定时时间到或记数值到时,可有程序安排产生中断

请求信号或不产生中断请求信号[15]。

3.2.2定时/计数器0和1的控制和状态寄存器

特殊功能寄存器TMOD和TCON分别是定时/计数器0和1的控制和状态寄存器,用于控制和确定各定时/计数器的功能和工作模式。 1.模式控制寄存器TMOD

TMOD用于控制T0和T1的工作方式和4种工作模式。其中低4位用于控制T0,高4位用于控制T1。其格式如下:

GATE

GATE位:门控位。

当GATE=1时,只有INTO非或INT1非引脚为高电平且TR0或TR1置1时,相应的定时/计数器才被选通工作;当GATE=0,则只要TR0和TR1置1,定时/计数器就被选通,而不管INT0非或INT1非的电平是高还是低

C/T非位:计数/定时功能选择位。

C/T非=0,设置为定时器方式,计数器的输入是内部时钟脉冲,其周期等于机器周期。

C/T非=1,设置为计数器方式,计数器的输入来自T0(P3.4)或T1(P3.5)端的外部脉冲。

M1、M0位:工作模式选择位。2位可形成4中编码,对应4种工作模式,见下表: M1 M0 00 01 10 11

2. 控制寄存器TCON

TCON用来控制T0和T1的启、停,并给出相应的控制状态,高4位用于控制定时器0、1的运行;低4位用于控制外部中断。格式如下:

TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 10

C/T非 M1 M0 GATE C/T非 M1 M0 功 能 描 述 方式0:13位定时器/计数器 方式1:16位定时器/计数器 方式2:具有自动重装初值的8位定时器/计数器 方式3:定时/计数器0分为两个8位定时/计数器,定时/计数器1在此方式无实用意义

TF1:定时器1溢出标志。

当定时器1溢出时,由硬件置1。使用查询方式时,此位做状态位供查询,查询有效后需由软件清零;使用中断方式时,此位做中断申请标志,进入中断服务后被硬件自动清零。

TR1位:定时器1运行控制位。

该位靠软件置位或清零,置位时,定时/计数器接通工作,清零时,停止工作。

TF0位:定时器溢出标志位,其功能和操作情况类同于TF1。 TR0位:定时器0运行控制位,其功能和操作类同于TR1。 IE位:外部中断请求标志位。

当CPU采样到INT0非(或INT1非)端出现有效中断请求时,IE0(或IE1)由硬件置1,中断响应完成后转向中断服务时,再由硬件自动清零。

IT位:外部中断请求出发方式位。

IT0(IT1)=1为脉冲触发方式,后负跳有效。 IT0(IT1)=0为电平触发方式,低电平有效。 3.定时/计数器的初始化

AT89C2051单片机的定时/计数器是可编程的,因此,在进行定时或计数之前也要用程序进行初始化。初始化一般应包括以下几个步骤:

(1) 对TMOD寄存器赋值,以确定定时器的工作模式;

(2) 置定时/计数器初值,直接将初值写入寄存器的TH0,TL0或TH1,

TL1;

(3) 根据需要,对寄存器IE置初值,开放定时器中断;

(4) 对TCON寄存器中的TR0或TR1置位,启动定时/计数器,置位以

后,计数器即按规定的工作模式和初值进行计数或开始定时。

在初始化过程中,要置入定时/计数器的初值,这时要做一些计算。由于计数器是加法计数,并在溢出时申请中断,因此不能直接输入所需的计数值,而是要从计数最大值倒退回去一个计数值才是应置入的初值。设计数器的最大值为M(在不同的工作模式中,M可以为8192,65536,256),则置入的初值可以这样来计算。

计数方式时

X=M—记数值 定时方式时

(M—X)T=定时值 所以

11

X=M—定时值/T

式中,T为计数周期,是单片机的机器周期[13]。

3.2.3 T0和T1的4种工作方式

方式0:13位定时/计数器,TL1(或TL0)的低5位和TH1(或TH0)的8位构成,TL中的高3位弃之未用。当TL的低5位记数溢出时,向TH进位,而全部13位计数器溢出时使计数器回零,并使溢出标志TF置1,向CPU发出中断请求。

方式1:16位定时/计数器,其逻辑电路和工作情况与方式0几乎完全相同,唯一的差别就是方式1中TL的高3位也参与了计数。

方式2:把TL配置成一个可以自动重装载的8位定时/计数器

方式3:仅对T0有意义,将16位定时/计数器分成两个互相独立的8位定时/计数器TL和TH,

3.3独立式按键结构

独立式按键是指直接用I/O线构成的单个按键电路,每个独立式按键占有一根I/O口线,每根I/O口线上的按键的工作状态不会影响其他I/O口线的工作状态,其结构简单,但I/O口线浪费较大[16]。

独立式按键配置灵活,软件结构简单,上拉电阻保证了按键断开时,I/O口线有确定的高电平,其电路原理图如下

图3.2 独立式按键电路

12

单片机红外控制发射器设计【非常详细】

●两个串行中断●两级加密位●内置一个模拟比较放大器●软件设置睡眠和唤醒功能3.1.3AT89C2051单片机的主要组成部分1.CPUCPU是单片机的核心部分,他的作用是读入和分析每条指令,根据每条指令的功能要求,控制各个部件执行相应的操作。AT89C2051单片机内部有一个8位的CPU,它是由运算器和控制器组
推荐度:
点击下载文档文档为doc格式
3cb7b327pb3jk4h7snn8
领取福利

微信扫码领取福利

微信扫码分享