方波信号发生器设计论文

更新时间:2024-06-11 15:24:01 阅读量: 综合文库 文档下载

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

摘要

随着大规模集成电路技术和计算机技术的飞速发展,把计算机的运算器和控制器(即CPU)、存储器和多种接口集成在一块芯片上而成的芯片为单片机。单片机问世20年来,发展速度之迅猛,应用范围之广泛是以往任何技术都无法比拟的。单片机作为嵌入式微控制器其应用很普及。

本文介绍了单片机的概念、分类、发展过程,并使用MCS-51单片机和CD4094单片机设计多用方波发生器的硬件电路和控制电路,并对单片机进行了软件编程,使用户可以方便的制造和生产多用方波信号发生器。

本文第一章简单介绍了单片机的发展过程和应用领域;第二章以MCS-51单片机为例,具体介绍单片机的结构以及工作原理;第三章使用MCS-51单片机和CD4094单片机设计多用方波发生器的硬件电路和控制电路,并进行软件编程。 关键词:微处理器,单片机,MCS-51单片机,多用信号发生器电路,多用信号发生器程序,

ABSTRACT

Along with the large scale integrated circuit technology and the

computer technology rapid development, the computer logic unit and the controller (namely CPU), the memory and the many kinds of interfaces integration the chip which becomes together on the chip is a

monolithic integrated circuit. The monolithic integrated circuit is published for 20 years, development speed swift and violent, the

application scope was broad is formerly any technology all is unable to compare. The monolithic integrated circuit achievement inserts declines controller its application to be very popular. This article introduced the monolithic integrated circuit concept, the

classification, the developing process, and use the MCS-51 monolithic integrated circuit and the CD4094 monolithic integrated circuit design multipurpose square wave-form oscillator hardware electric circuit and the control circuit, and has carried on the software programming to the monolithic integrated circuit, causes manufacture and production multipurpose square-wave signal generating device which the user may facilitate. The this article first chapter simply introduced the

monolithic integrated circuit developing process and the application domain; Second chapter take the MCS-51 monolithic integrated circuit as the example, specifically introduces the monolithic integrated

circuit the structure as well as the principle of work; Third chapter uses the MCS-51 monolithic integrated circuit and the CD4094

monolithic integrated circuit design multipurpose square wave-form

oscillator hardware electric circuit and the control circuit, and carries on the software programming. Key word: Microprocessor,

monolithic integrated circuit, MCS-51 monolithic integrated circuit, multipurpose signal generating device electric circuit, multipurpose signal generating device program,

Key words: Microprocessor,

第一章 概述

1.1 单片机介绍

1.1.1

单片机的概念

随着大规模集成电路技术和计算机技术的飞速发展,把计算机的运算器和控制器(即CPU),存储器和多种接口集成在一块芯片上,称为微处理器(Microprocessor)。也叫微控制器,习惯上叫单片机。 微型计算机问世20年来,发展速度之迅猛,应用范围之广泛是以往任何技术都无法比拟的。单片机作为嵌入式微控制器其应用很普及。

1.1.2 单片机的分类

单片机按存储器的类型分为五种类型:

MASKROM类:程序在芯片封装过程中用掩膜工艺制作到RAM区中,如80C51,适合于大批量生产。

EPROM类:紫外线可擦写存储器类,如87C51(价格较贵)。

ROMless类:无ROM存储器,如80C31,电路扩展复杂,现在较少用。 OTPROM类:可一次性写入程序。

FlashROM(MTPROM)类:可多次编程写入存储器,如89C51,89S51等,其成本低,开发调试方便,可重复烧写程序。

1.1.3 单片机的组成

一个最基本的微型计算机通常由以下几部分组成: (1)中央处理器(CPU),包括运算器、控制器和寄存器组;

(2)存储器,包括ROM(只读存储器)和RAM(静态可读写存储器); (3)输入输出(I/O)接口,与外部输入输出设备连接。

随着计算机微型化的需要,把上述微型计算机的基本功能部件全部集成在一块半导体芯上,使得一块集成电路芯片就是一个是单片机,单片机除了具备一般微型计算机的功能外,为了增强实时控制能力,绝大部分单片机的芯片上还集成有定时器/计数器,某些单片机带有A/D转换器等功能部件,使单片机能满足多功能控制要求。

单片机结构上的设计重点是面向控制的需要,因此,它在硬件结构、指令系统和I/O能力等方面均有其独特之处,其显著的特点之一就是具有非常有效的控制功能。所以,单片机不但与一般的微机结构一样是有效的数据处理机,而且还是一个功能很强的过程控制机。只要加上较少的所需要的输入/输出设备或驱动电路,就可以构成一个实用的系统,满足各种应用领域的需要。把硬件功能软件化。

1.1.4 单片机的特点

单片机具有集成度高、体积小、功耗低、系列齐全、功能扩展容易、使用灵活方便、抗干扰能力强、性能可靠、价格低廉等特点。

1.1.5 单片机的发展概况

单片机自从1975年诞生以来,经历了近30年的发展。目前单片机的产品已达60多种系列,300多种型号。就字长而言,单片机主要有4位、8位、16位和32位多种。

1.2 单片机的应用领域

由于单片机具有体积小、使用灵活、成本低、易于产品化等的特点,特别是有强大的、面向控制的能力,使它在工业控制、智能仪表、外设控制、家用电器、机器人、军事装置等方面得到了广泛的应用。

单片机的主要应用领域有以下几方面。 1.2.1

智能化产品

单片机与传统的机械产品相结合,使传统的机械产品结构简单化,控制智能

化,构成新一代的机、电一代化产品。目前,广泛用于工业自动控制,如数控机床、可编程顺序控制、电机控制、工业机器人,离散与连续过程自动控制等;家用电器,如微波炉、电视机、录像机、音响设备、游戏机等;办公设备,如传真机、复印机等;电讯技术,如调制解调器、声像处理、数字滤波、智能线路运行控制;在电传、打印机设计中由于采用了单片机,取代了近千个机械部件;用单片机控制空调机,使制冷量无级调节的优点得到了充分的发挥,并增加了多种报警与控制功能;用单片机实现了通信系统中的临时监控、自适应控制、频率合成、信道搜索等,构成了自动拨号无线电话网、自动呼叫应答设备及程控调度电话分机等等。 1.2.2

智能化仪表

单片机引入原有的测量、控制仪表后,能促进仪表向数字化、智能化、多功能化、综合化、柔性化发展,并使监测、处理、控制等功能一体化,使仪表重量大大减轻,便于携带和使用。同时成本低,提高了性能价格比,长期以来测量仪器中的误差修正、线性化处理等难题也可迎刃而解。单片机智能仪表的这些特点不仅使传统的仪器、仪表发生根本的变革,也给传统的仪器、仪表行业技术改革带来曙光。 1.2.3

智能化测控系统

测控系统特点是工作环境恶劣,各种干扰繁杂,而且往往要求控制实时,要求检测与控制系统工作稳定、可靠、抗干扰能力强。单片机最适合应用于工业控制领域,可以构成各种工业检测控制系统。例如,温室人工气候控制、电镀生产线自动控制系统等。在导航控制方面,如在导弹控制、鱼雷制导、智能武器装置、航天导航系统等领域中也发挥着不可替代的作用。 1.2.4

智能化接口

通用计算机外部设备上已实现了单片机的键盘管理、打印机、绘图仪、磁盘驱动器、UPS等,并实现了图形终端和智能终端。

在计算机应用系统中,除通用外部设备(键盘、显示器、打印机)外,还有许多外部设备和接口全部由主机管理,势必造成主机负担过重、运行速度降低,并且不能提高对各种接口的管理水平,现在一般采用单片机专门对接口设备进行控制和管理,使主机和单片机能并行工作,不仅大大提高系统的运算速度,而且单片机还可以对接口住处进行预处理,如数字滤波、线性化处理、误差修正等,减少主机和接口界面的通信密度,极大地提高了接口控制管理的水平。例如,在通信接口中采用单片机可以对数据进行编码解码、分配管理、接收/发送控制等工作。

要开发单片机的应用,不但要掌握单片机硬件和软件方面的知识,而且还要深入了解各应用系统的专业知识,只有将这两方面的知识融会贯通和有机结合,才能设计出优良的应用系统。

1.3 单片机的发展历程

单片机自从20世纪70年代问世以来,以其鲜明的特点得到迅猛的发展,单片机的发展经历了以下几个阶段: 1. 单片机的初级阶段

1976年Intel公司推出了8位的MCS-48系列的单片机,以其体积小、重量轻、控制功能齐全和低价格的特点,得到了广泛的应用,为单片机的发展奠定了坚实的基础。

2. 单片机的发展阶段

80年代初,Intel公司推出了8位的MCS-51系列的单片机,随着单片机的应用的急剧增加,其它的单片机也随之大量涌现如:motorola的68系列,Zilog的Z8系列等。

3. 高性能单片机发展阶段

随着控制领域对单片机性能要求的增加,出现了16位的单片机,而且芯片内部也增加了其他的性能。如Intel的MCS-96系列单片机,在单片机内部集成了A/D转换器、PWM输出。

在未来,应各种电子产品对单片机的要求,单片机将会向多功能、高性能、高速度、低电压、低功耗、大容量存储器的方向发展。

1.4 单片机的产品介绍

1 MCS-51系列

MCS-51系列是Intel公司1980年推出的高档8位单片机。该系列包括基本型;8051/8751/8031;强化型8052/8032;改进型8044/8344/8744,超级型:83C252/87C252/80C252等。

基本采用HMOS工艺,片内集成有8位CPU;片内驻留4K字节ROM(8031片内无ROM)和128字节RAM以及21个特殊功能寄存器;片内还包括两个16位定时器/计数器、1个全双工串行I/O口(UART)、32条I/O线、5个中断源和两级中断,寻址能力达128K字节(其中程序存储器ROM和数据存储器RAM各64K字节)。指令系统中设置了乘、除运算指令、数据查找指令和位处理指令等。主时钟频率为12MHZ时,大部分指令周期只需lus,乘除指令也仅需4us。

强化型8052是1982年推出的产品,与基本型8051不同的是片内ROM增加

到8K字节,RAM增加到256字节,16位的定时器/计数器增加到3个,串行接口(UART)的通信速度率快6倍。

改进型8X44系列是在基本型上用一种新的串行接口SIU取代UART。SIU是一个HDLC/SDLC通信控制器,属于SIO的通信标准,通信软件已固化在器件内。由于SIU是有两根I/O线的串行通信方式,因而最适宜远距离通信和网络接口。 采用CMOS工艺的8XC51系列,其基本结构和功能与基本型相同。87C51和8XC252还具有两级程序保密系统,可禁止外部对片内ROM中的程序进行读取,为用户提供了一种保护软件不被窃取的有效手段。由于采用CMOS工艺,功耗极低。

超级型8XC252系列是超8位单片机。它们的结构、引脚和指令与MCS-51系列完全相同,但又具有MCS-96系列高速输入/输出(HIS/O)功能和脉冲宽度调制PWM,1个可做加减计数的定时器;1个可做编程计数器库阵列以及适用于串行口的场错误检测和自动地址识别。

51系列由Intel公司转让技术给Philips公司后也生产了很多个型号,产品性能也有提高。

ATMEL公司生产了AT89C51 AT89C52和AT89C1051、AT89C2051等,这些单片机片内采用可加密闪速存储器,性能优良,性价比及高。台湾也在生产51内核的单片机。

2 列的单片机由于其内部功能单元组成及指令系统不尽相同,表现出各种不同的特点,从用户使用角度来看应当有所选择。在各系列的单片机中,片内ROM的配置状态通常有4种形式;

(1)片内驻留掩膜ROM。这种单片机(如MCS-51中的8051)是由厂家用掩摸技术把应用程序写入片内ROM中。用户无法自行改写片内的程序,推广应用受限制。

(2)片内驻留EPROM。这种单片机(如MCS-51中的8751)可由用户把应用程序写入片内ROM中。用紫外线擦除后又能重新写入程序。

(3)片内无ROM。这种单片机(如MCS-51中的8031)必须外接EPROM芯片作为程序存储器,其容量可视需要来灵活配置。这是目前学校教学中使用最广泛的一种单片机,不仅其价格低廉,而且可供用户灵活使用。

(4)片内带闪速可编程电可擦除只读存储器(如AT89C51),这是目前应用产品开发中使用最多的一种单片机系列。

第二章 MCS-51单片机结构原理

2.1 MCS-51单片机的性能及结构

MCS-51系列单片机是在一块芯片上集成了CPU,RAM,ROM、定时器/计数器和多功能I/O口等基本功能部件的一台计算机。单片机必须配备部分外围元件才能使用,其系统核心是单片机芯片。

图2-1 MCS-51单片机的内部结构框图

2.2 CPU的结构

CPU包括运算器和控制器二大部分。

2.2.1 运算器

运算器包括算术/逻辑部件(ALU)、累加器A、暂存寄存器、寄存器B、程序状态寄存器(PSW),十进制调整电路等。运算器主要用于实现算术/逻辑运算及位操作运算。下面介绍运算器的各组成部分。

1、算术/逻辑部件ALU 2、累加器A 3、寄存器B

4、程序状态字寄存器PSW

图2-2 程序状态字寄存器PSW

CY(PSW.7):进位标志位。在进行加法(或减法)运算时,若运算结果最高位有进位或借位,则CY自动置“1”,否则CY置“0”,在进行布尔操作运算时,CY(简称C)作为布尔处理器。

AC:辅助进位标志位。当进行加法或减法时,若低4位向高4位有进位(或借位)时,AC被置“1”,否则AC被置“0”。在十进制调整指令中AC还作为十进制调整的判别位。

F0:用户标志位。用户可用软件对F0位置“1”或清“0”以决定程序的流向。

OV:溢出标志位,当运算结果溢出时OV为“1”,否则为“0”,此标志位反映了运算结果是否溢出。

PSW.1:未定义位。

P(PSW.0):奇偶标志位。MCS-51单片机采用的是偶校验。当累加器A中“1”的个数为奇数时,P置“1”,否则P置“0”。此位反映累加器A中内容“1”的奇偶性,它常常用于机间通信。

RS1、RS0:工作寄存器区选择位。用来选择当前工作的寄存器区。用户通过改变RS1 、RS0的内容来选择当前工作寄存器区。RS1、RS0的内容与工作寄存器区的对应关系如表2-1所示。

表2-1 RS!、RS0与片内寄存器组的对应关系

RS1 0 0 1 1 RS0 0 1 0 1 寄存器区 0 1 2 3 片内RAM地址 00H-07H 08H-0FH 10H-17H 18H-1FH 通用寄存器名称 R0-R7 R0-R7 R0-R7 R0-R7 2.2.2 控制器

1、指令寄存器IR和指令译码器ID。

指令寄存器是存放指令代码的地方。当执行指令时,CPU把从程序存储器中

读取的指令代码送入指令寄存器,然后指令译码器译码后由定时控制电路发生相应的控制信号,最终完成指令所规定的操作。 2、程序计数器PC

程序计数器PC的功能与普通微机相同,它用来存放CPU执行的下一条指令的地址。当一条指令按照PC所指的地址从程序存储器中取出后,PC会自动加1,指向下一条指令。程序计数器PC是一个16位的寄存器,可寻址64KB的程序存储器空间。

3、堆栈指针SP

4、数据指针寄存器DPTR

2.2.3 工作寄存器和特殊功能寄存器

1、工作寄存器

MCS-51有32个工作寄存器,分为四个区(或组)每个区为8个寄存器R0、R1、R2、R3、R4、R5、R6、R7,每一时刻只有一个区工作。由PSW寄存器中的RS1、RS0的值来决定当前的工作区:

当 RS1 RS0=00时,0区为工作区, RS1 RS0=01时,1区为工作区 RS1 RS0=10时,2区为工作区 RS1 RS0=11时,3区为工作区

这32个工作寄存器不但有它们的名称和区号,而且还有地址。00H-1FH共32个单元。

00H~07H为0区,分别对应R0~R7 08H~0FH为1区,分别对应R0~R7 10H~17H为2区,分别对应R0~R7 18H~1FH为3区,分别对应R0~R7

这32个单元为内部数据存储器(即片内RAM)的00H~1FH存贮空间,这与普通微机中的通用寄存器基本相同,所不同的是,普通微机的通用寄存器只有名称,不占有RAM空间,因此只有名字,没有对应的地址;而MCS-51单片机的工作寄存器R0~R7既可以用名字也可以用它的地址来表示。其中R0、R1寄存器除做工作寄

存器外还常做间址寻址的地址指针。

2、特殊功能寄存器SFR(又称专用寄存器) 这21个特殊功能寄存器详情见表2-2。

表2-2 特殊功能寄存器SFR

特殊功能寄存器 功能名称 B A PSW IP P3 IE P2 SBUF SCON P1 TL1 TL0 TH1 TH0 TMOD TCON PCON DPL DPH SP P0 通用寄存器 累加器 程序状态寄存器 中断优先级控制寄存器 P3口数据寄存器 中断允许控制寄存器 P2口数据寄存器 串行口发送/接收缓冲器 串行口控制寄存器 P1口数据存储器 T1计数器低8位 T0计数器低8位 T1计数器高8位 T0计数器高8位 地址 复位后初态 F0H 00H EDH 00H D0H 00H B8H XXX00000B B0H FFH A8H 0XX00000B A0H FFH 99H 不定 98H 00H 90H FFH 8BH 00H 8AH 00H 8DH 00H 8CH 00H 定时器/计数器方式控制寄存器 89H 00H 定时器控制寄存器 电源控制寄存器 地址寄存器低8位 地址寄存器高8位 堆栈指针寄存器 P0口数据寄存器 88H 00H 87H 00H 82H 00H 83H 00H 81H 07H 80H FFH 这21个特殊功能寄存器中,有11个寄存器具有位寻址功能,即寄存器中的每位都具有位地址,可以按位寻址。11个寄存器的位地址如图2-3所示。

图2-3 SFR块中具有位寄存器寻址功能的位地址

2.3 MCS-51单片机存储器

图2-4 8051存储器的配置图

2.3.1 程序存储器

8051单片机内部有4KB的掩膜ROM、8751单片机内部有4KB的EPROM,而8031内部没有程序存储器,必须外接程序存储器。

2.3.2 数据存储器

MCS-51系列单片机数据存储器分内部数据存储器(即片内RAM)和外部数据存储器(即片外RAM)。

1、内部数据存储器

图2-5 内部数据存

2、外部数据存储器

由于MCS-51子系列单片机内部数据存储器只有128个字节,往往不够用,这就需要扩展外部数据存储器,外部数据存储器最多可扩至64KB。

2.4 时钟电路及时序

2.4.1

1、 2、

时钟电路

内部方式时钟电路 外部方式时钟电路

(A)

(B)

图2-6 单片机时钟电路

(A)内部时钟电路; (B)外部振荡源(外部时钟电路)

2.4.2 时序

1、基本概念 (1) 振荡周期

振荡周期指为单片机提供定时信号的振荡源的周期,即晶体振荡器直接产生的振荡信号的振荡周期。

(2) 时钟周期

时钟周期是振荡周期的两倍。是对振荡器2分频的信号。时钟周期又称状态周期,用S来表示,一个时钟周期,分为两个节拍,P1和P2节拍。P1节拍通常完成算术逻辑操作,P2节拍通常完成内部寄存器间数据的传递。

(3) 机器周期

一个机器周期由6个时钟周期组成,即S1~S6,如果把一条指令的执行过程划分为几个基本操作,则完成一个基本操作所需的时间称为机器周期。

(4) 指令周期

指令周期是执行一条指令所需的全部时间。MCS-51单片机的指令周期通常由1~4个机器周期组成。

2、几种典型的取指和执行时序

(1) 单字节单周期指令 (2) 双字节单周期指令 (3) 单字节双周期指令

(4) 访问外部数据存储器指令MOVX时序

图2-7 MCS-51 单片机取址/执行时序图

2.5 输入/输出端口

2.5.1 P0口

P0口有8位,每一位由一个锁存器、两个三态输入缓冲器以及控制电路和驱动电路组成,其位结构如图2-8(a)所示。

1、 2、 P0口作通用I/O口

作分时复用的地址/数据总线

图2-8(a) P0口的位结构图

2.5.2 P1口

P1口是一个专用的8位准双向I/O口,只具有通用输入/输出口功能,每一位都能设定为输入或输出,它的位结构如图2-8(b)所示。

图2-8(b) P1口的位结构图

2.5.3 P2口

P2口是一个8位准双向I/O口,具有两种功能。一是作通用I/O口用,与P1口相同。二是作扩展系统的高8位地址总线。输出高8位地址,与P0口一起组成16位地址总线。它的位结构如图2-8(c)所示。

图2-8(c) P2口的位结构图

2.5.4 P3口

P3口也是一个8位准双向I/O口,除具有与P1口同样的功能(即可以作通用I/O口使用)外,还具有第二功能。当工作在第二功能时,每位都具有新的功能,各位的定义如表2-4。

P3口的位结构如图2-8(d)所示,当P3口作通用I/O口时,与P1口相同。

图2-8(d) P3口的位结构图

2.5.5 P0~P3口的负载能力及接口要求

P0口的输出级的每一位可驱动8个LSTTL门。P0口作通用I/O口时,由于输出级是开漏电路,故用它驱动NMOS电路时需外加上拉电阻;而作地址/数据总线时,无需外接上拉电阻。

P1口~P3口的输出级的每一位可驱动4个LSTTL门。由于它们的输出级内部有上拉电阻,因此组成系统时无需外加上拉电阻。

2.6 MCS-51单片机的引脚功能

MCS-51单片机共有40个引脚。

图2-9 MCS-51单片机的引脚及总线结构

2.7 MCS-51单片机的工作方式

MCS-51单片机有三种工作方式,复位方式、程序执行方式以及节电工作方式。

2.7.1 复位方式

1、单片机复位后的工作状态

2、复位电路

图2-10 (a)上电复位电路;(b)按钮复位电路;(c)上电及按钮复位电路

图2-11 实用上电及外部复位电路

符号 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 名称及定义 内部定时器1溢出标志。当定时器/计数器溢出时,由硬件置位,申请中断,进入中断服务后被硬件自动清除。 内部定时器1运行控制位。靠软件置位或清除,置位时,定时器/计数器接通工作,清除时停止工作。 内部定时器0溢出标志。其作用类似于TF1 内部定时期0运行控制位。其作用类似于TR1 外部中断1请求标志。检测到外部中断引脚上出现的外部中断信号有效时,由硬件置位,请求中断。进入中断服务后被硬件自动清除。 外部中断1类型控制位。靠软件来设置或清除,以控制外部中断的触发类型。高电平时,下降沿触发;低电平时,低电平触发。 外部中断0请求标志。其作用类似于IE1。 外部中断0类型控制位。起作用类似于IT1。 3、定时器0和1的操作 定时器0和 1定时和计数功能由特殊功能寄存器TMOD的控制位C/T进行选择。这两个定时/计数器4 种操作模式,通过TMOD的M1和M0进行选择。两个定时/计数器的模式0,1和2都相同,模式3不同。如下所述:

模式 0

将定时器设置成模式0时类似8048定时器,即 8位计数器带32分频的预分频器。

此模式下,定时器寄存器配置为13位寄存器。当计数从全为 1 翻转为全为 0 时,定时器中断标志位 TFn 置位。当 TRn=1 同时 GATE=0 或 INTn=1 时定时器计数。置位GATE时允许由外部输入INTn控制定时器,这样可实现脉宽测量。 该13位寄存器包含THn全部8个位及TLn的低5位。TLn的高3位不定,可将其忽略,置位运行标志 TRn 不能清零此寄存器。

模式0的操作对于定时器 0 及定时器 1 都是相同的,两个不同的GATE位 TMOD.7和 TMOD.3分别分配给定时器 0 及定时器 1。

模式 1

模式 1 除了使用了THn及TLn全部 16 位外,其它与模式0相同。 模式 2

此模式下定时器寄存器作为可自动重装的8位计数器 TLn。TLn 的溢出不仅置位TFn,而且将THn内容重新装入 TLn,THn 内容由软件预置重装时,THn 内容不变。模式2的操作对于定时器0及定时器1是相同的。

模式 3

在模式3中,定时器1停止计数,效果与将TR1设置为0相同。

此模式下定时器0的TL0及TH0作为两个独立的8位计数器。TL0占用定时器0的控制位C/T,GATE,TR0,INT0及TF。TH0限定为定时器功能(计数器周期),占用定时器1的TR1及TF1。此时TH0控制定时器1中断。

模式 3 可用于需要一个额外的8位定时器的场合。定时器0工作于模式3时,89C51 看似有 3 个定时器/计数器, 定时器1可通过开关进入/退出模式3,它仍可用作串行端口的波特率发生器,或者应用于任何不要求中断的场合。

4、中断

89C51共有5个中断源。外部中断INT0和INT1可根据寄存器TCON中的IT0 和IT1位状态分别设置为电平或者边沿触发。实际产生的中断标志是TCON中的位IE0和IE1。当产生外部中断时,如果是边沿触发,进入中断服务程序后由硬件清除中断标志位。如果中断是电平触发,由外部请求源而不是由片内硬件控制请求标志。

定时器0和定时器1中断由TF0和TF1(分别由各自的定时/计数寄存器控制, 定时器0工作在模式3时除外)产生。当产生定时器中断时,进入中断服务程序后由片内硬件清除标志位。

所以这些产生中断的位都可通过软件置位或清零。与通过硬件置位或清零的效果相同。简而言之,中断可由软件产生,推迟或取消。

当中断服务程序执行到RETI指令时,通知处理器中断程序已执行完毕,然后从堆栈弹出两个字节重新装入PC,继续执行被中断的程序。

注意:RET指令也可以返回被中断的程序,但这样会使中断系统认为中断仍在执行,那么后面的中断就无法响应.

5、中断优先级结构

每个中断源都可通过编程中断优先级寄存器IP单独设置优先级。一个中断服务程序可响应更高级的中断,但不能响应同优先级或低级中断。最高级中断服务程序不响应其它任何中断。如果两个不同中断优先级的中断源同时申请中断时,响应较高优先级的中断申请。下面就简单介绍一下IP寄存器。

IP寄存器定义如下图所示:

表7. IP寄存器定义

* * * PS PT1 PX1 PT0 PX0 各位的作用如下表所示:

表8. IP寄存器各位作用

符号 PS PT1 PX1 PT0 PX0 名称及定义 串行口中断优先级设定位。高电平时,串行口为高优先级,相反为低优先级。 内部定时器1中断优先级设定位。高电平时,T1为高优先级,相反为低优先级。 外部中断1优先级设定位。高电平时,外部中断1为高优先级,相反为低优先级。 内部定时器0中断优先级设定位。高电平时,T0为高优先级,相反为低优先级。 外部中断0优先级设定位。高电平时,外部中断0为高优先级,相反为低优先级。 IP寄存器中包含了一些无效位,由于这些位可能用于其它89C51系列产品中,用户软件不应将这些位写入1。

89C51共有5个中断源,为了使每个中断源都能被独立的允许或禁止,以使用户灵活使用,它在每个中断信号的通道中设置了一个中断屏蔽触发器。只有该触发器无效,它所对应的中断请求信号才能进入CPU,即此类型中断开放。同时,CPU内还设置了一个中断允许触发器,它控制CPU能否相应中断。

中断屏蔽触发器和中断允许触发器由中断允许寄存器IE控制,其各位定义如下表所示:

表9. IE寄存器各位定义

EA * * ES ET1 EX1 ET0 EX0 各位的作如下表所示:

表10. IE寄存器各位作用

符号 EA ES ET1 EX1 名称及定义 中断总允许位。低电平时,禁止一切中断;高电平时,每个中断源是否允许由各自的允许位确定。 串行口中断允许位。低电平禁止,高电平允许。 内部定时器1中断允许位。低电平禁止,高电平允许。 外部中断1允许位。低电平禁止,高电平允许。 ET0 EX0 内部定时器0中断允许位。低电平禁止,高电平允许。 外部中断0允许位。低电平禁止,高电平允许。 另外,每个中断向量都有其相应的中断入口地址,如下表所示:

表11. 中断入口地址

中断源 外部中断0 定时器0 外部中断1 定时器1 串行口中断 6、堆栈指针SP

向量地址 0003H 000BH 0013H 001BH 002BH 堆栈操作是在内存RAM区专门开辟出来的按照‘先进后出’原则进行数据存取的一种工作方式,主要用于子程序调用及返回和中断处理断点的保护和返回,它在完成子程序嵌套和多重中断处理中是必不可少的。为保证逐级正确返回,进入栈区的‘断点’数据应遵循‘先进后出’的原则。SP用来指示堆栈所处的位置,在进入操作之前,先用之令给SP赋值,以规定栈区在RAM区的起始地址。当数据进入栈区后,SP的值也自动随之变化。89C51系统复位后,SP初始化为07H。

2.9 CD4094芯片简介

CD4094是带输出锁存和三态控制的串入/并出高速转换器,具有使用简单、功耗低、驱动能力强和控制灵活等优点。

CD4094的引脚定义如图2-15。其中{1}脚为锁存端,{2}脚为串行数据输入端,{3}脚为串行时钟端。{1}脚为高电平时,8位并行输出口Q1~Q8在时钟的上升沿随串行输入而变化;{1}脚为低电平时,输出锁定。利用锁存端可方便地进行片选和级联输出控制。{15}脚为并行输出状态控制端,{15}脚为低电平时,并行输出端处在高阻状态,在用CD4094作显示输出时,可使显示数码闪烁。{9}脚QS、{10}脚Q′S是串行数据输出端,用于级联。QS端在第9个串行时钟的上升沿开始输出,Q′S端在第9个串行时钟的下降沿开始输出。

当CD4094电源为5V时,输出电流大于3.2mA,灌电流为1mA。串行时钟频率可达2.5MHz。

1、CD4094 是8 位移位存贮总线寄存器其功能表如下

表2-2 CD4094功能表

CLK OE STR D 并行输出 串行输出 ↑ ↓ ↑ ↑ ↑ ↓ L L H H H H * * L H H H * * * L H H Q1 三态 三态 不变 L H 不变 Qn 三态 三态 不变 Qn-1 Qn-1 不变 QS’ Q7 不变 Q7 Q7 Q7 不变 QS 不变 Q7 不变 不变 不变 Q7 * 在时钟脉冲正沿移位寄存器第7 级的内容传送到Q8 和QS

2、CD4094 管脚图

图2-15 CD4094 管脚图

第三章 多用方波信号发生器设计

信号发生器是科研及工程实践中最重要的仪器之一,以往多用硬件组成,系统结构比较复杂,可维护性和可操作性不佳.随着计算机技术的发展,信号发生器的设计制作越来越多的是用计算机技术,种类繁多,价格,性能差异很大.

3.1 多种方波信号发生器的比较

3.1.1 一般的方波发生器

一般的方波发生器只有频率和幅度是可调的,而占空比则不可调。其频率和幅度的改变都是通过旋转螺钮来实现的。用螺钮来实现频率可调的弊端就在于,这样做不仅保证不了方波频率的精确性,而且人工旋转螺钮到一定频率本身就是比较困难的事。所以,随着实验本身的重要性和其精度要求的不断提高,一般的方波发生器注定将被淘汰,而对其改进的方波发生器也将应运而生。

3.1.2 多功能方波发生器

多功能方波发生器就是在对一般方波发生器进行改进的基础上设计的。在此

设计中,方波的频率,占空比和幅度都是可调的,频率的变化范围为10HZ到10KHZ,幅度的变化范围为。其中,频率和占空比都是随着键盘输入值的改变而改变的,也就是说,你只需在键盘上输入你所期望的方波频率和占空比,通过一定的程序后,在单片机的输出端就可以得到满足要求的方波,其频率值也可在数码管上显示出来。这样的话就可以使我们的实验操作更加简单,输出方波的参数也更加精确。方波幅度的调节也是通过旋转螺钮来实现的,这是因为在一般的实验中,对方波幅度的要求不太高,而且方波幅度对实验结果影响不大,所以这部分没有作太大的改变,希望大家谅解。

3.2 设计性能与应用前景

3.2.1 本设计的性能

本设计的多用方波信号发生器具有的基本性能如下:

①可以产生正弦波,方波,三角波,锯齿波等几种周期性信号;

②可以用键盘编辑生成正弦波,方波,三角波这三种信号的线性组合.

③增加外部存储器后可以方便的是现信号存储功能,即有记忆功能系统可以实现的功能;

④信号存储功能可存储掉电前用户编辑的信号和设置; ⑤可实现用键盘编辑产生任意信号.

3.2.2 本设计的应用前景

当然,本设计的方波发生器的功能跟现在市场上的比起来并不是最多的。市场上的方波发生器大多数不仅能产生方波,还可以产生正弦波,三角波,锯齿波等波形。但这并不意味着本设计没用此项功能。本设计只是针对方波这一部分设计的,如果想得到其他波形,只需要对得到的方波再进行处理即可。例如:。要想得到三角波,只需要在方波发生器后面再连接一个积分电路即可。

所以,本设计的应用前景相当广泛。另外,本设计除了可以用作实验仪器外,还可以用在其它多种工作场合。

3.3 信号发生的原理

3.1.1 系统框图

系统结构框图如图3-1。

图3-1 系统框图

3.1.2 信号发生电路原理

信号发生电路原理框图如图3-2所示.该信号发生器采用MCS-51芯片作为系统的CPU,配以少量的外围接口芯片,构成单片机的最小控制系统.5V电源经二极管降压后得到3.6V电压用作单片机电源.人机对话部分用A口组成键盘及数码管显示(图中略去未画);信号输出部分用MCS-51提供的2个10位的数模转换器,即DAC1和DAC2,以及外部运放电路组成.

图3-2 信号发生电路原理图

①多功能信号发生器可产生正弦波,方波,三角波和由用户编辑的特定信号.信号的发生方法有两种:一是采用硬件,二是采用软件.如果采用硬件方法.可以使频率范围做得很大,然而为了配合智能化设置,其幅度,频率的调整,仍然要利

用软件驱动I/O口进行切换,对于信号发生器来说,输出的信号种类较多,采用硬件的方法会使硬件电路相当复杂,并且调试也很困难.故障率也会大大增加.本设计中采用软,硬件相结合方法,可节约大量的硬件电路,信号的种类,频率完全由软件通过D/A变换来产生,幅度调整由可以用数字量控制的硬件电路实现.在高频端采用软件压缩的方法,可以得到较好的效果.

信号生成过程如下:

将生成信号的数据写入DAT1后,数字量转换为模拟量经DAT1引线端输出,输出电流加在电阻R9上形成信号电压,信号电压经运放U2A组成的跟随器输入数字电位器DP1(MAX5400)[2]的高端,数字电位器DP1将分压后信号输入由运放U2C组成的跟随器后输入由运放U2D组成的运算放大器放大后输出.由于单片机的DAC只能输出电流,在电阻R9上形成的信号电压始终≥0,要输出正反相信号需调整信号信号的电平,为此,利用DAC2输出电流加在电阻R8上形成偏置电压,经由运放U2A组成的反相器形成负偏置电压(Vr)后,加在输出放大器U2D输入端,达到调整输出信号电平的目的.

图3-3 电平调整原理

②输出信号幅度的调节方式:在0~5V的(峰~峰值)范围,要实现步进0.1V,如果完全使用软件实现,失真会非常严重.因为10位输出按0.1V步进,则峰~峰值最小为0.1V;又因为D/A数字最大为1023,输出对应5V,则0.1对应数字20,在这个很小的范围内,输出各种信号失真会很大.为了减小失真度,将信号峰~峰值固定对应数字1023,而其中参考电压由DAC2提供,以实现步进幅度为0.1V要求的硬件原理.低电压输出时信号时,这里使用数字电位器DP1的是调整输出信号的信号,数字电位器DP1产生的偏差通过输入DAC1的数字量进行修正,为此需要检测输出信号与期望值的偏差,所以系统中将数字电位器分压信号反馈给SPCE061A的模数转换通道(IOA0),借以检测输出信号是否达到规定要求.实验测量信号电压可实现0.02V幅度步进.信号电平调整原理如图3-3所示.图3-3(a)为数字电位器分压信号,图3-3(b) DAC2提供的由反相器U2A形成的负偏置电压(Vr),图3-3(c)为输出放大器U2D放大后的输出信号.系统中运放采用一片TI公司的4运放芯片TLC2254[3],该芯片为rail-to-rail型低功耗运放,可以提供-5V~+5V摆幅输出。

为使输出信号得到进一步改善,在输出端再加1级RC低通滤波器,以实现输出信号的平滑.

3.2.2 信号分析与计算

(1)正弦波信号计算

由于信号都是周期性的,所以只要设计出一个完整周期的正弦波。在信号输出部分,采用了10位的D/A变换器,其最大输出值为1023。为了与D/A变换器相适应,在2π一个周期内,将其输出信号的幅值,角频率量化,如图3(a)所示,将正弦波向上平移,使其最低点为0,而且对于奇函数,其傅里叶级数只能用正弦项表示,即有

f(k)=512sinkω0 (0≤k≤512) y(k)=512+f(k)

式中ω0=2π/1024.由此可以求出1024个离散值,形成数据表,以备计算驱动程序调用。

图3-4 三角波信号形成原理

(3)三角波的计算

三角波信号形成原理如图3-4所示,按DAC满幅输出计算三角波的上升沿和下降沿的N个DAC输出的小阶梯,由于阶梯很小从宏观上看它可以近似成三角波波信号,如图4中实线所画的波形。阶梯之间的时间间隔t1,t2由定时器TimerA 的定时值决定通过改变t1和t2的值来改变三角波信号上升沿和下降沿的时间T1,T2从而改变三角波信号的频率。

(4)方波信号的计算

方波计算比较简单,只需根据给出高电平时间t1和低电平t2时间,分别用定时器计时即可实现。

以上计算所的数据(10位有效数据)在写入DAC寄存器时,要写入DAC数据寄

存器的高10位。因为,SPCE06lA的DAC数据寄存器中只有高10为有效,低6位无意义。

3.2 控制电路设计

3.3.1 时钟复位电路设计

采用单片机片内的振荡器、上电复位和外部硬件看门狗电路。看门狗采用MAXIM公司的MAX706芯片,硬件电路如图3-5。 MAX706可以提供至少200ms宽度的复位脉冲,为使看门狗溢出有效必须把MAX706的WDO和MR连接起来,看门狗输入WDI连接4051的任何一个I/O端口都可。MAX706在程序运行期间监控整个系统的运行,喂狗程序必须在1.6秒之内使WDI引脚电平发生改变,否则MAX706将发出复位指令,使整个系统复位,看门狗时序如图3-6所示。

图3-5 复位电路

图3-6 看门狗时序图

3.3.2 单片机与D/A的接口电路设计

D/A选用AD公司的AD7226。AD7226是具有8位精度的四通道D/A转换器,最小分辨电压约为4mV,可以满足设计的精度要求。每个通道都有一个输入锁存器,可以对输入的数字量进行锁存;输出端带有输出缓冲放大器。AD7226有一条写入控制线WR,两条地址线A0、A1,通过地址线可以选择不同的D/A转换通

道。写入时序如图3-7所示。

图3-7 AD7226写入时序

由于4051没有专门的地址和读写控制引脚,此处可以通过普通的I/O引脚参考AD7226的写入时序,利用软件进行时序模拟。可以通过改变延时的时间来改变输出的频率。图3-8是利用4051的P3.0、P3.1口作为A0、A1的地址线,P3.5作为WR的写入控制线的硬件参考电路,相应的示例程序如下: ??..

MOV P1, A ;P1口置数 MOV P3, #0FCH ;选择通道A CLR P3.5 ;置P3.5 低电平

SETB P3.5 ;置P3.5 高电平,上升沿锁存数据 LCALL DELAY ;调用延时子程序 ??..

图3-8 单片机与D/A接口电路

3.3.3 偏移电路设计

AD7226的每一个通道都可以单独用来提供单极性或双极性的输出,要获得双极性的输出必须外加运算放大器和偏移电阻,输出电压的范围取决于参考电压的大小,如图3-9是在单极性电源供电情况下的双极性输出电路图,要注意偏移电阻的阻值匹配。

图3-9 AD7226双极性输出电路

3.3.4 放大电路设计

放大电路主要是对AD7226输出的双极性电压信号幅值进行处理,以达到使用的要求。放大电路的输入极增加一个一阶低通滤波器,以防止D/A输出的高频成分干扰;采用低频运放作为射随器以提高输入阻抗。放大电路部分如图3-10所示。

图 3-10 放大电路(部分)

3.5 软件程序

3.5.1 系统主要程序流程框图

主程序流程如图3-11所示。

初始化 显示设置数正弦波 选择输出 三角波 计算 方 波 输出 其 它 扫描键盘 Y N 有键按下

图3-11 主程序流程图

3.5.2 软件设计

本模块软件设计主要分三大块,首先,通过相应的计算程序,把键盘输入的频率数字为实际的频率,然后再把频率转化为计时器的初值,最后通过定时器产生方波。

先介绍算法程序。键盘输入的频率是五个毫无关系的数字,假设分别放在R5,R4,R3,R2,R1中,要想把它计算为实际的频率,应该有这样一个程序,R5乘10000,R4乘1000,依此类推,最后把所有的结果加起来,就是频率,频率暂时放在寄存器R2R3中。程序流程图如下:

图3-12 总计算程序流程图

其中,R3*1000和R4*10000的具体程序流程图如下所示:

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

Top