Ⅰ mcs-51/52系列单片机内部包含哪些主要逻辑功能部件
8051单片机内部由以下几个逻辑部件组成:码基
1)1个8位中央处理单元CPU;
2)1个片内绝清振荡器及时钟发生器;
3)128B的数据RAM;
3)21个特殊功能寄存器SFR;
5)4KB程序ROM;
6)4个8位I/O并行端口P0----P3;
7)1个全双工窜行端口;
8)2个16位可编程定时计数器T1、T2;
9)1个可管理5个中断源、2级优先嵌套的中断管理系统;
10)1个可寻址64KB外部程序ROM和64KB外部数据RAM空间的控制电路;
ANL逻辑与运算、ORL逻辑或运算、XRL是逻辑异或指令!根据这些运算来作判断控制!当然还有加、减、乘、除。以上是MSC单片机的逻辑功能并模前!
Ⅱ MSC-51单片机交通灯论文
单片机交通灯控制系统设计--带仿真的论文编号:JD943 论文字数:7687,页数:29摘要
本设计是交通信号灯控制系统,随着社会的不断的进步,社会的不断发展。交通也日渐复杂,交通的自动化也不断更新,交通的一些指挥系统光靠人来完成是远远不够的,这就需要设计各种交通指挥自动化系统来完成这些复杂的工作。从而使交通指挥系统更加有秩序,更加安全。至此本人设计了交通信号灯控制系统,来指挥十字路口车辆的停通,使红绿灯指挥系统实现自动化,无人化。
该交通灯控制系统控制的是东西和南北两个方向上的车辆通行,系统共采用6个发光二极管来模拟各路交通信号灯,4个LED七段数码管以倒计时的方式显示各个方向上允许通行或禁止通行的信号灯剩余的时间。停35S,准备5S,之后通行30S,并在东西和南北两个方向上这两种状态不断循环。此系统核心元件为单片机AT89C51,单片机)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。对其编写相关程序来控制交通信号灯和数码管的时间显示,并采用外部中断来控制紧急情况。此设计的硬件电路不是很复杂,关键在于软件的设计,即程序的编写。本设计采用的程序编写语言为现在流行的C语言,简单又便于阅读。编写程序的原则是:1.满足设计的要求。2.尽量采用最好,最有效的算法。3.编写时应尽量用最简洁的语言。编写好源程序后,采用keil软件对其进行编译,使其生成单片机可以识别的.hex文件,再把此文件导入单片机89C51中即可。
硬件电路和源程序及目标文件都设计完后,我们可以采用相关软件进行仿真,以使交通信号灯控制系统的设计更加准确,可靠。设计者采用PROTUES软件进行仿真调试,仿真时注意此软件使用,从而进一步熟悉并学习此软件。仿真成功后,就做好本次设计报告,写出此次设计的心得与体会。
关键词:交通指示灯;单片机;控制
目录
1 概述 3
1.1 交通灯设计方案选择与论证: 3
1.2设计要求及目的: 3
1.2.1基本要求: 3
1.2.2提高要求: 3
1.2.3设计目的: 4
1.3交通灯控制系统的简单说明: 4
2 系统总体方案及硬件设计 5
2.1 硬件电路各元件介绍: 5
2.1.1核心芯片AT89C51单片机的说明 5
2.1.2两位八段式数码管 7
2.1.3其它元件的说明 9
2.2总电路的设计及过程说明 10
2.2.1设计基本框架图:(如图6所示) 10
2.2.2总体电路的工作原理: 10
2.2.3各端口控制作用: 11
2.2.4复位和时钟电路: 12
2.3设计思想: 13
3 软件设计 14
3.1交通灯状态的分析: 14
3.2主程序流程图:(如图一,图二所示) 15
3.3中断程序流程图:(如图三所示) 17
4 Proteus软件仿真 18
4.1仿真过程: 18
(1)南北红,东西绿 18
4.2检测与调试: 20
5课程设计体会 22
5.1心得体会: 22
参考文献 22
附1:源程序代码 23
附2:系统原理图 28 答案来自:http://www.lwtxw.com/html/42-5/5746.htm
Ⅲ MSC51和89C51有什么区别
MCS51系列单片机是美国Intel公司于1980年推出的一种8位单片机系列。该系列的基本型产品是8051、8031和8751。这3种产品之间的区别只是在片内程序存储器方面。8051的片内程序存储器(ROM)是掩膜型的,即在制造芯片时已将应用程序固化进去;8031片内没有程序存储器;8751内部包含有用作程序存储器的4KB的EPROM。由于8051的编程需要制造商的支持,8751的价格昂贵,因此8031获得了更为广泛的使用。
89c51是msc51系列中的一个成员。如果只是编程的话,完全可以通过该书来学习;如果需要自己设计电路的话,还需要去阅读89c51的datasheet。
Ⅳ msc51单片机控制器:背后的魔法
msc51单片机控制器由一系列精密的部件组成,包括指令寄存器、指令译码器、复位电路、时钟发生器等。本文将深入探究这些部件的工作原理,帮助读者更好地了解msc51单片机控制器。
📝指令寄存器和指令译码器
指令寄存器和指令译码器是msc51单片机控制器的核心部件。指令寄存器存储指令代码,指令译码器将指令代码翻译成可执行的操作码。
🕰️时钟发生器
时钟发生器是msc51单片机控制器的重要组成部分。它有两种模式:内部方式和外部方式。内部方式利用内部的振荡电路和石英晶振,而外部方式则直接接收0.5~16mhz的外部振荡信号。
🔌复位电路
复位电路是msc51单片机控制器的保障。它确保系统始终从稳定状态开始运行。无论是上电、人工还是系统复位,都能确保系统的稳定运行。但请注意,如果cpu和外部i/o接口不同步,可能会出现问题。这时,可以通过延时初始化或调整复位电路来解决。
⏰定时功能
别忘了cpu的定时功能。从振荡周期到机器周期,每一个环节都有其独特的意义。一条指令的执行时间,也就是指令周期,可以是一个或多个机器周期。
Ⅳ 8031和8051主要有什么区别各有什么特点
健康贝贝BABY 魔法学徒 一级(32) | 我的提问 | 我的回答 | 个人中心 | 退出 资讯 网页 贴吧 知道 MP3 图片 网络 帮助
单片机 8031
生产厂家:Intel公司
特性:
8031单片机是Intel公司生产的MCS-51系列单片机中的一种,除无片内ROM外,其余特性与MCS-51单片机基本一样。
MCS-51单片机的引脚描述及片外总线结构
一、芯片的引脚描述
HMOS制造工艺的MCS-51单片机都采用40引脚的直插封装(DIP方式),制造工艺为CHMOS的80C51/80C31芯片除采用DIP封装方式外,还采用方型封装工艺,引脚排列如图。其中方型封装的CHMOS芯片有44只引脚,但其中4只引脚(标有NC的引脚1、12、23、34)是不使用的。在以后的讨论中,除有特殊说明以外,所述内容皆适用于CHMOS芯片。
如图,是MCS-51的逻辑符号图。在单片机的40条引脚中有2条专用于主电源的引脚,2条外接晶体的引脚,4条控制或与其它电源复用的引脚,32条输入/输出(I/O)引脚。
下面按其引脚功能分为四部分叙述这40条引脚的功能。
1、主电源引脚VCC和VSS
VCC——(40脚)接+5V电压;
VSS——(20脚)接地。
2、外接晶体引脚XTAL1和XTAL2
XTAL1(19脚)接外部晶体的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。当采用外部振荡器时,对HMOS单片机,此引脚应接地;对CHMOS单片机,此引脚作为驱动端。
XTAL2(18脚)接外晶体的另一端。在单片机内部,接至上述振荡器的反相放大器的输出端。采用外部振荡器时,对HMOS单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;对XHMOS,此引脚应悬浮。
3、控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP
①RST/VPD(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。推荐在此引脚与VSS引脚之间连接一个约8.2k的下拉电阻,与VCC引脚之间连接一个约10μF的电容,以保证可靠地复位。
VCC掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。当VCC主电源下掉到低于规定的电平,而VPD在其规定的电压范围(5±0.5V)内,VPD就向内部RAM提供备用电源。
②ALE/PROG(30脚):当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路。
对于EPROM单片机(如8751),在EPROM编程期间,此引脚用于输入编程脉冲(PROG)。
③PSEN(29脚):此脚的输出是外部程序存储器的读选通信号。在从外部程序存储器取指令(或常数)期间,每个机器周期两次PSEN有效。但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。PSEN同样可以驱动(吸收或输出)8个LS型的TTL输入。
④EA/VPP(引脚):当EA端保持高电平时,访问内部程序存储器,但在PC(程序计数器)值超过0FFFH(对851/8751/80C51)或1FFFH(对8052)时,将自动转向执行外部程序存储器内的程序。当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。对于常用的8031来说,无内部程序存储器,所以EA脚必须常接地,这样才能只选择外部程序存储器。
对于EPROM型的单片机(如8751),在EPROM编程期间,此引脚也用于施加21V的编程电源(VPP)。
4、输入/输出(I/O)引脚P0、P1、P2、P3(共32根)
①P0口(39脚至32脚):是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。
②P1口(1脚至8脚):是准双向8位I/O口。由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。P1口能驱动(吸收或输出电流)4个LS型的TTL负载。对8052、8032,P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2的外部控制端。对EPROM编程和程序验证时,它接收低8位地址。
③P2口(21脚至28脚):是准双向8位I/O口。在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。在对EPROM编程和程序验证期间,它接收高8位地址。P2可以驱动(吸收或输出电流)4个LS型的TTL负载。
④P3口(10脚至17脚):是准双向8位I/O口,在MCS-51中,这8个引脚还用于专门功能,是复用双功能口。P3能驱动(吸收或输出电流)4个LS型的TTL负载。
作为第一功能使用时,就作为普通I/O口用,功能和操作方法与P1口相同。
作为第二功能使用时,各引脚的定义如表所示。
值得强调的是,P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。
表 P3各口线的第二功能定义
口线 引脚 第二功能
P3.0 10 RXD(串行输入口)
P3.1 11 TXD(串行输出口)
P3.2 12 INT0(外部中断0)
P3.3 13 INT1(外部中断1)
P3.4 14 T0(定时器0外部输入)
P3.5 15 T1(定时器1外部输入)
P3.6 16 WR(外部数据存储器写脉冲)
P3.7 17 RD(外部数据存储器读脉冲)
二、MCS-51单片机的片外总线结构
综合上面的描述可知,I/O口线都不能当作用户I/O口线。除8051/8751外真正可完全为用户使用的I/O口线只有P1口,以及部分作为第一功能使用时的P3口。如图,是MCS-51单片机按引脚功能分类的片外总线结构图。
由图我们可以看到,单片机的引脚除了电源、复位、时钟接入,用户I/O口外,其余管脚是为实现系统扩展而设置的。这些引脚构成MCS-51单片机片外三总线结构,即:
①地址总线(AB):地址总线宽为16位,因此,其外部存储器直接寻址为64K字节,16位地址总线由P0口经地址锁存器提供8位地址(A0至A7);P2口直接提供8位地址(A8至A15)。
②数据总线(DB):数据总线宽度为8位,由P0提供。
③控制总线(CB):由P3口的第二功能状态和4根独立控制线RESET、EA、ALE、PSEN组成。
下表列出各个子系列的配制情况供读则参考。
芯片种类 片内存储器 中断源 定时/计数器 串行口 电源消耗(mA) 制造工艺
ROM/EPROM RAM
8051(8751,8031) 4K 128 5 2 同、异步方式,8位或10位可程序控制 125 HMOS
8052(8752,8032) 8K 256 6 3 同、异步方式,8位或10位可程序控制 100 HMOS
80C51(87C51,80C31) 4K 128 5 2 同、异步方式,8位或10位可程序控制 24 CHMOS
80C52(87C52,80C32) 8K 256 7 3 同、异步方式,8位或10位可程序控制 24 CHMOS
8044(8744,8344) 4K 192 5 2 S.L.U 200 HMOS
MSC-51单片机中央处理器
中央处理器是单片机内部的核心部件,它决定了单片机的主要功能特性。中央处理器主要由运算部件和控制部件组成。下面我们把中央处理器功能模块和有关的控制信号线联系起来加以讨论,并涉及相关的硬件设备(如振荡电路和时钟电路)。
1、运算部件:它包括算术、逻辑部件ALU、布尔处理器、累加器ACC、寄存器B、暂存器TMP1和TMP2、程序状态字寄存器PSW以及十进制调整电路等。运算部件的功能是实现数据的算术逻辑运算、位变址处理和数据传送操作。
MCS-51单片机的ALU功能十分强,它不仅可对8位变量进行逻辑“与”、“或”、“异或”、循环、求补、清零等基本操作,还可以进行加、减、乘、除等基本运算。为了乘除运算的需要,设置了B寄存器。在执行乘法运算指令时,用来存放其中一个乘数和乘积的高8位数;在执行除法运算指令时,B中存入除数及余数。MCS-51单片机的ALU还具有一般微机ALU,如Z80、MCS-48所不具备的功能,即布尔处理功能。单片机指令系统中的布尔指令集、存储器中的位地址空间与CPU中的位操作构成了片内的布尔功能系统,它可对位(bit)变量进行布尔处理,如置位、清零、求补、测试转移及逻辑“与”、“或”等操作。在实现位操作时,借用了程序状态标志器(PSW)中的进位标志Cy作为位操作的“累加器”。
运算部件中的累加器ACC是一个8位的累加器(ACC也可简写为A)。从功能上看,它与一般微机的累加器相比没有什么特别之处,但需要说明的是ACC的进位标志Cy就是布尔处理器进行位操作的一个累加器。
MCS-51单片机的程序状态PSW,是一个8位寄存器,它包含了程序的状态信息。
2、控制部件
控制部件是单片机的神经中枢,它包括时钟电路、复位电路、指令寄存器、译码以及信息传送控制部件。它以主振频率为基准发出CPU的时序,对指令进行译码,然后发出各种控制信号,完成一系列定时控制的微操作,用来控制单片机各部分的运行。其中有一些控制信号线能简化应用系统外围控制逻辑,如控制地址锁存的地址锁存信号ALE,控制片外程序存储器运行的片内外存储器选择信号EA,以及片外取指信号PSEN。
替换型号:80C31、8032、80C32。
8031最小系统板,全工艺双面板,原与64路输出板配套。
本人早期使用,全工艺双面板,P1口由74xx244(可省略且搭接焊盘直接输出)驱动,P3口直接输出。74xx373锁存驱动地址线,8031通过插座与74xx244层叠安装,ROM2764通过插座与74xx373层叠安装,晶振装于底面,故面积仅4.8cm*7.2cm,原与由8只74xx373锁存、8只ULN2804驱动组成的64路输出板配套。
http://www.a-v-o.com/index/procts/mini8031/mini8031.htm
⊙8031用户系统
根据调查研究.单片机应用系统大致可分为如下几大类,
1.模拟量采集,模拟量输出,PID调节,程序控制可选用我厂生产的SCB-31-5.
2.智能仪表,实时控制,显示调整系数.可加选我厂生产的通用键盘显示板.
3.特殊要求的用户,可专为用户设计加工专用的控制板.
☆SCB-31-5
1)资源配有
8031,74LS373,2764,6264,74LS139,8155,74LS04,MC1413,ADC0809,DAC0832
时钟为6MHz.由以上硬件构成了一个最小的控制板板上提供了:
2764 EPROM 8K 地址为0000-1FFF 6264 ROM 8K 地址为4000-5FFF
I/0 P1口 地址为90 8155 命令口 地址为7900
A口 地址为 7901 B口 地址为7902 C口 地址为7903
定时器(低) 地址为7904 定时器(高) 地址为7905
256字节RAM 地址为7800-78FF
0809 AD 地址为6800 0832 DA 地址为6000
2)硬件设计思想:
1.为使控制板能适应现场需要,提高抗干扰性能,译码电路采用了片选法.
2.考虑到用户能直接控制继电器电路,在8155的PA1-PA7上配备MC1413,能直
接驱动50V,500MA以下的负载.
3.在使用电源上,采用单正+5V供电,以提高电源的稳定度,在整机设计时可
以忽略对电源引线的压降所带来的麻烦,同时也可以在系统中保持相对
的独立性.
4.考虑到用户可方便地增加各种功能,将所有数据总线,地址总线,控制总
线 I/O线全部引出.
3)SCB-31-5引线:
A面(元件面) B面(焊点面)
VCC A1 B1 VCC GND A2 B2 GND A3 B3 P0.0 P0.2 P0.4 P0.6 P1.0
P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 CS0 CS1 GND +12V
PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0 PA7 PA6
PA5 PA4 PA3 PA2 PA1 PA0 A4 A5 A6 A7 A8 A9 A10 A11
A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22 A23 A24 A25 A26 A27
A28 A29 A30 A31 A32 A33 A34 A35 A36 B4 B5 B6 B7 B8 B9 B10
B11 B12 B13 B14 B15 B16 B17 B18 B19 B20 B21 B22 B23 B24 B25 B26
B27 B28 B29 B30 B31 B32 B33 B34 B35 B36
P0.1 P0.3 P0.5 P0.7 RXD P3.0 TXD P3.1 INT0 P3.2 INT1 P3.3
T0 P3.4 T1 P3.5 WR P3.6 RD P3.7 RESET GND -12V D/A
定时器出 定时器入
PC5 PC4 PC3 PC2 PC1 PC0 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0
4)SCB-31-5板上CZ1(DC2-20)引脚定义
1 CLK(ALE) 2 NC 3 WR 4 A0 5 D1 6 GND 7 RESET 8 NC
9 D7 10 GND 11 D6 12 D5 13 D4 14 D3 15 D2 16 D0
17 CS 18 RD 19 RESET 20 VCC
☆用开发机和SCB-31-5板联机
1.连线
拨下SCB-31-5板上8031,用40线扁平仿真电缆连接SCB-31-5板和DICE系列开
发机.
2.读写RAM
DICE系列开发机进入P......态.SCB-31-5板上6264
地址为4000-5FFF,8155片内256个单元地址为7800-78FF
(1)写6264或8155显示内容
4000 XX 按 55 4000 55 按 NEXT 4001 XX 按 AA 4001 AA 按 NEXT
4002 XX 按 CC 40O2 CC
(2)读6264或8155显示内容
4000 按 ODRW 4000 55 按 NEXT 4001 AA 按 NEXT 4002 CC 按 NEXT
3.仿真
用户程序在开发机内,进入仿真态P……态用户程序假如为:
0000 904000 MOV DP TR,#4000H 0003 7488 MOV A , #88
0005 F0 MOVX @DPTR ,A 0006 A3 INC DPTR
0007 74FF MOV A,#OFFH 0009 FD MOVX @DPTR ,A
000A 80FE LP: SJMP LP
从0000地址开始执行单步,执行到000A,SCB-31-5板上6264片内4000H,4001H
中内容为88和FF.用非全速断点,全速断点,连续运行命令可得到同样结果.
4.开发
把上述程序固化到EPROM或EEPROM中把该片插在SCB-31-5板上2764位置,
DICE系列开发机进入H……态,从0000H地址开始用连续运行,非全速断点,
单步命令执行到000A地址,可得到仿真时同样结果.
8031片内不带程序存储器ROM,使用时用户需外接程序存储器和一片逻辑电路373,外接的程序存储器多为EPROM的2764系列。用户若想对写入到EPROM中的程序进行修改,必须先用一种特殊的紫外线灯将其照射擦除,之后再可写入。写入到外接程序存储器的程序代码没有什么保密性可言。
数字移相技术的分析和实现
--------------------------------------------------------------------------------
摘要:两个同频信号之间的移相,是电子行业继电保护领域中模拟、分析事故的一个重要手段,利用移相原理可以制作校验各种有关相位的仪器仪表、继电保护装置的信号源。因此,移相技术有着广泛的实用价值。本文介绍两种基于单片机的数字移相方法,借以说明实现移相的原理,并对两种移相方法进行性能分析和比较。
关键词:移相 单片机 D/A转换 计数器
两个同频信号之间的移相与实现方式
所谓移相是指两种同频的信号,以其中的一路为参考,另一路相对于该参考作超前或滞后的移动,即称为是相位的移动。两路信号的相位不同,便存在相位差,简称相差。若我们将一个信号周期看作是3600,则相差的范围就在0°~360°。
要实现移相,通常有两个途径:
一是直接对模拟信号进行移相,如阻容移相,变压器移相等,早期的移相通常采用这种方式。采用这种方式制造的移相器有许多不足之处,如:输出波形受输入波形的影响,移相操作不方便,移相角度随所接负载和时间等因素的影响而产生漂移等.在此不予讨论.另一个是随电子技术的发展,特别是单片机技术的发展而兴起的数字移相技术,是目前移相技术的潮流。数字移相技术的核心是:先将模拟信号或移相角数字化,经移相后再还原成模拟信号。
数字移相主要有两种形式:
一种是先将正弦波信号数字化成,并形一张数据表存入ROM芯片中,此后可通过两片D/A转换芯片在单片机的控制下连续地循环输出该数据表,就可获得两路正弦波信号,当两片D/A转换芯片所获得的数据序列完全相同时,则转换所得到的两路正弦波信号无相位差,称为同相。当两片D/A转换芯片所获得的数据序列不同时,则转换所得到的两路正弦波信号就存在着相位差。相位差的值与数据表中数据的总个数及数据地址的偏移量有关。这种处理方式的实质是将数据地址的偏移量映射为信号间的相位值。
另一种是先将参考信号整形为方波信号,并以此信号为基准,延时产生另一个同频的方波信号,再通过波形变换电路将方波信号还原成正弦波信号。以延时的长短来决定两信号间的相位值。这种处理方式的实质是将延时的时间映射为信号间的相位值。
利用D/A转换实现移相
图1给出了一个设计实例。单片机为8031,D/A转换芯片采用两片8位字长的DAC0832,由于DAC0832的输出信号为电流型,故需加运算放大器将电流型信号转换成电压型信号。该设计中运算放大器采用双极型双运放4558。转换所用的数据为256个8位字长的数据,随程序一起存入ROM存储器中,即一个信号周期有256个转换值。
在进行D/A转换的程序中,数据表中数据共有256个,每两个相邻数据之间的相位差为360o÷256=1.4o。我们只需改变R1中的值就可改变两路正弦波的相位差。程序中R1=8,故第一路正弦波滞后第二路正弦波1.4o×8=11.2o。
利用单片机进行方波信号的移相
利用单片机进行方波信号的移相则是数字移相的另一个途经,已有多种成功之作,有些偏重硬件,有些偏重软件。总体说来,偏重硬件的精度较高,但制造及调试较复杂;偏重软件,的结构简单,成本较低,但往往精度受影响。本文介绍一种己获得较为理想效果的设计。设计的原理框图如图2所示。
工作原理:作为参考信号的A,经整形后得到方波信号a,再利用锁相技术对a作3600倍频,并将此倍频信号作为单片机中CTC的计数脉冲,以此来产生相移和测量移相的实际值。由于计数脉冲是通过锁相环产生的,在锁相环允许的频率范围内,计数脉冲始终是a信号的3600倍,因此,可以看成是将a信号的一个信号周期分为了3600份,且允许a的频率可在一个小的范围内波动。若一个信号周期为360o,那么在一个信号周期内每个计数脉冲即代表0.1o。我们只需以a信号为参考,延时若干个计数脉冲的时间来产生c信号即可做到移相,改变延时计数脉冲的个数即可改变移相值,亦可记录两个信号的上沿(或下沿)间的脉冲个数来获得两信号的相位差。正是由于锁相环的存在,才使得移相信号B与参考信号A的频率完全相同。比起由软件测得A信号的周期后再来产生B信号的方式来,其精度要高得多。锁相环倍频的频率愈高则移相的最小单位愈小,若作7200倍频,那么在一个信号周期内每个计数脉冲即代表0.05o。
图3是以上述方式进行移相的时序图,设计数脉冲的频率是a信号的360o倍,那么从a信号的上沿开始经N个计数脉冲后产生c信号的上沿,则有a信号超前c信号 N×0.1o。但我们需要的是A信号与B信号之间的移相。A信号与a信号的相位是相同的,但c信号与B信号的相位,由于波形转换电路的存在而不相同,其相位差视波形转换电路的参数而定。故A信号与B信号之间的实际移相值无法由N×0.1o来计算。要获得A信号与B信号之间的实际移相值,可将B信号整形成b信号(两信号相位相同)后反馈给单片机,由单片机测量出a信号与b信号之间的计数脉冲个数n即可,实际移相值为n×0.10。改变N的值即可改变移相值。
要实现上述设计,除需要用锁相环产生计数脉冲外,还需要三个16位的计数器,分别用来计N,n及180o的值。笔者将8032中的计数器作如下分配:T0计N的值、T1计n的值、T2计180o的值。T0、T1及T2的启停全部由中断服务程序控制。接线如图2所示。具体是:
① a信号的上沿产生INT0中断,其中断服务程序分别将-N及0赋给TH0TL0和TH1TL1;然后使T0、T1开始计数。
② T0归零,其中断服务程序关闭T0;置P3.0;-1800赋TH2TL2;使T2开始计数。
③ T2归零,其中断服务程序清P3.0;关闭T2。
④ b信号的上沿产生INT0中断,其中断服务程序关闭T1;读取TH1TL1的计数值n。
两种移相方式的性能比较
通过以上介绍,我们可以看出:以D/A转换方式实现的移相,虽然所用元件少,但输出信号的频率难以细调,特别是移相的最小单位太大(1.4o/步)。在50Hz频率下,要达到0.1o/步移相细度难以办到。因此,该方式只适合于对频率要求不高,且移相角度固定的场合。
以延时输出方波的方式实现的移相,其硬件电路比较复杂(锁相及波形变换电路)。输出信号的频率以参考信号的频率为准,而参考信号的频率则可以精确给定。移相的最小单位可小于0.1o/步,这就为无级移相提供了基础。因此,该方式可用于对频率要求高,且需360o无级移相的场合。