分频器的设计.docx

上传人:b****5 文档编号:6431962 上传时间:2023-01-06 格式:DOCX 页数:19 大小:519.68KB
下载 相关 举报
分频器的设计.docx_第1页
第1页 / 共19页
分频器的设计.docx_第2页
第2页 / 共19页
分频器的设计.docx_第3页
第3页 / 共19页
分频器的设计.docx_第4页
第4页 / 共19页
分频器的设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

分频器的设计.docx

《分频器的设计.docx》由会员分享,可在线阅读,更多相关《分频器的设计.docx(19页珍藏版)》请在冰豆网上搜索。

分频器的设计.docx

分频器的设计

学号:

课程设计

 

题目

分频信号发生器的分析与设计

学院

自动化学院

专业

电气工程及自动化

班级

姓名

指导教师

 

 

课程设计任务书

学生姓名:

专业班级:

题目:

分频信号发生器的分析与设计

 

要求完成的主要任务:

(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)

1.设:

有一输入方波信号f0(<1MHz)。

要求输出信号:

f1=f0/N,N通过键盘输入。

2.画出简要的硬件原理图,编写程序。

3.撰写课程设计说明书。

内容包括:

摘要、目录、正文、参考文献、附录(程序清单)。

正文部分包括:

设计任务及要求、方案比较及论证、软件设计说明(软件思想,流程,源程序设计及说明等)、程序调试说明和结果分析、课程设计收获及心得体会。

时间安排:

12月26日-----12月28日查阅资料及方案设计

12月29日-----01月02日编程

01月03日-----01月07日调试程序

01月08日-----01月09日撰写课程设计报告

 

指导教师签名:

年月日

系主任(或责任教师)签名:

年月日

 

摘要

利用89C51的计数功能,按输出要求,通过计数功能实现分频的功能。

采用这种方法,简单实用。

原理相对简单,可操作性强。

其中还简单的介绍了如何利用8253实现分频的功能。

通过对比介绍,突出利用89C51实现分频器的优越性。

最优设计方案为外部信号源将信号送给51单片机计数输入引脚T0(P3.4),通过设置内部的16进制计数器的计数初值来达到计数分频的效果,当计数器计满后产生中断,通过I/O产生高低电平来模拟产生方波信号,达到了预期分频的效果。

关键词:

STC89C51分频器计数器16进制计数器方波信号

分频信号发生器的分析与设计

1设计任务及要求

1.1设计任务

(1)设计一个能对1MHZ以下的脉冲信号进行分频的器件。

(2)分频系数由51单片机的小键盘输入(2-1000)

(3)由4位7段数码管显示分频系数

1.2设计要求

(1)画出简要的硬件原理图,编写程序。

(2)撰写课程设计说明书

 

2.分频信号发生器原理

2.1系统原理框图的设计

依课设要求,需要设计一个对1MHZ以下的脉冲信号进行分频的器件,分频系数由键盘键入,并用数码管显示分频系数,在方案选取以后,我们决定用89C51的计数功能,来实现分频的功能,所以设计的分频发生器包括89C51单片机,输入信号、输出信号、键盘输入电路、分频显示电路、供电电路。

分频信号发生器系统原理框图如图2-1所示:

图2-1原理框图

2.2分频器原理说明

首先了解到,分频就是受外部周期信号激励的震荡,使得到的频率恰为激励信号频率的纯分数,都叫做分频。

所以,只要一个一个周期信号的震荡,理所当然的就想到了计数器。

计数器的选取不同,分频频率就不同。

每隔一个计数周期输出一次输入信号,就实现了需要的功能。

3.系统方案设计与论证

3.1方案一:

基于51单片机的分频器设计

3.1.151单片机最小系统设计

(1)51单片机

根据原理,我们知道需要一个计数器,而AT89C51具有计数功能,所以我就想到了利用AT89C51来完成。

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,即单片机。

AT89C51单片机引脚图如图3-1所示:

图3-1AT89C51引脚图

 

AT89C51是标准的40引脚双列直插式集成电路芯片,其各个引脚功能如下:

VCC:

+5V电源。

VSS:

接地。

RST:

复位信号。

当输入的复位信号延续两个周期以上的高电平时即为有效,用来完成单片机的初始化操作。

XTAL1和XTAL2:

外接晶体引线端。

当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。

P2口:

内部有上拉电阻的8位I/O口,本次设计选用P2^0作为时钟电路的输出。

(2)最小系统原理图

单片机最小系统或者称为最小应用系统是指用最少的元件组成的单片机可以工作的系统,对51系列单片机来说最小系统一般应该包括:

单片机、晶振电路、复位电路。

89C51最小系统原理图如3-2:

图3-2单片机最小系统原理图

 

3.1.251单片机分频器原理图

输入信号源通过计数输入引脚To(P3.4)将信号送给51单片机,而此时键盘输入分频系数,数码管显示分频系数,而通过输入的分频系数,来设置16进制计数循环的循环初值,以实现控制计数周期的功能。

当计数一个周期时,通过I/O端口产生高低电平模拟产生方波信号,实现分频的功能。

89C51单片机分频器原理图如图3-3:

图3-3分频器原理图

3.2方案二:

基于8086CPU的分频器的设计

3.2.18086CPU简介

8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。

可寻址的内存空间为1MB。

8086CPU引脚图如图3-4:

图3-48086CPU引脚图

8086CPU由于引脚的使用不同,可工作在两种工作模式下,即最小模式和最大模式。

最小模式用于由8086单一微处理器构成的小系统。

在这种方式下,由8086CPU直接产生小系统所需要的全部控制信号。

器系统特点是:

总线控制逻辑直接由8086CPU产生和控制。

若有CPU以外的其他模块想占用总线,则可以向CPU提出请求,在CPU允许并响应的情况下,该模块才可以获得总线控制权,使用完后,又将总线控制权还给CPU。

最大模式用于实现多处理机系统,其中,8086CPU被称为主处理器,其他处理器被称为协处理器。

在这种方式下,8086CPU不直接提供用于存储器或I/O读写的读写命令等控制信号,而是将当前要执行的传送操作类型编码为3个状态位输出,由总线控制器8288对状态信号进行译码产生相应控制信号。

最大模式系统的特点是:

总线控制逻辑由总线控制器8288产生和控制,即8288将主处理器的状态和信号转换成系统总线命令和控制信号。

协处理器只是协助主处理器完成某些辅助工作,即被动的接受并执行来自主处理器的命令。

和8086配套使用的协处理器有两个:

一个是专用于数值计算的协处理器8087,另一个是专用于输入输出操作的协处理器8089。

8087通过硬件实现高精度整数浮点数运算。

8089有其自身的一套专门用于输入输出操作的命令系统,还可带局部存储器,可以直接为输入输出设备服务。

增加协处理器,使得浮点运算和输入输出操作不再占用8086时间,从而大大提高了系统的运行效率。

部分引脚功能

GND:

接地线

TEST:

测试信号,输入低电平有效

BHE:

为0时,总线高字节允许传送;为1时,总线高字节禁止传送

DT/R:

数据驱动器数据流向控制信号。

当DT/R#=1时,数据驱动器进行数据发送;DT/R#=0时,数据驱动器进行数据接收

DEN:

数据使能信号,输出,三态,低电平有效。

用于数据总线驱动器的控制信号。

为0时,数据输出有效,与DT/R#配合,用于控制双向数据总线收发器的开与关

ALE:

地址锁存使能信号,输出,高电平有效。

是用来作为地址锁存器的锁存控制信号

 

3.2.28255并行I/O芯片

8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。

同时必须具有与外设连接的接口A、B、C口。

由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:

与CPU连接部分、与外设连接部分、控制部分

3.2.38253计数器

8253是可编程计数器/定时器,8253具有3个独立的计数通道,采用减1计数方式。

在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。

当计数脉冲是已知周期的时钟信号时,计数就成为定时。

计数器通过三个引脚和外部联系,一个为时钟输入端CLK,一个为门控信号输入端GATE,另一个为输出端OUT。

每个计数器内部有一个8位的控制寄存器,还有一个16位的计数初值寄存器CR、一个计数执行部件CE和一个输出锁存器OL。

让8253工作在方式3,就可以作为分频器使用。

8253根据输入的分频系数,把从clk口输入的高频率脉冲进行分频。

分频的具体方法是,先输入分频系数,保存起来,开始时,out输出的是高电平,向wr输入一个负脉冲后,从该负脉冲上升后,clk第一个下降沿开始,每过一个clk输入波形的周期将输入的分频系数减一,当减到分频系数的一半时,out输出低电平,分频系数减到0时,再输入高电平,并重复,这样,设分频系数为n,out就输出周期为clk周期的n倍,换句话说,就是把clk方波的频率分成了原来的1/n。

8253计数器的引脚图如图3-5:

图3-58253计数器引脚图

3.2.4系统原理图

根据分频器原理,系统原理图如图3-6所示:

图3-6系统原理

3.3方案比较与选择

方案一:

利用89C51的计数功能,实现分频的功能,电路简单,芯片相对较常用,掌握较熟练,相比之下,更利于完成本次课设。

唯一的缺点就是,输出不是那么精确。

方案二:

用8086作为CPU,利用8253的计数方式3的计数功能,以及8255来实现分频的功能,但是,此方案用到了三个需编程芯片,而这些芯片都相对较复杂。

为了更好的完成本次课设,在小组成员讨论后,最终我们选择了方案一。

即利用89C51来实现分频的功能。

4.软件设计

4.1软件流程图

软件流程图如图1-1所示:

 

4.2源程序

#include

sbitbeep=P2^3;

sbitdula=P2^6;

sbitwela=P2^7;

unsignedchari=100;

unsignedcharj,k,temp,key;

voiddelay(unsignedchari)//延时函数定义

{

for(j=i;j>0;j--)

for(k=125;k>0;k--);

}

unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};

display(unsignedcharnum)

{

P0=table[num];

dula=1;

dula=0;

P0=0xc0;

wela=1;

wela=0;

}

voidkeyscan()//键盘检测函数

{

while

(1)

{

P2=0xfe;

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

delay(10);

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xee:

key=0;

break;

case0xde:

key=1;

break;

case0xbe:

key=2;

break;

case0x7e:

key=3;

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

beep=0;

}

beep=1;

display(key);

P1=0xfe;

}

}

P3=0xfd;

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

delay(10);

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xed:

key=4;

break;

case0xdd:

key=5;

break;

case0xbd:

key=6;

break;

case0x7d:

key=7;

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

beep=0;

}

beep=1;

display(key);

P1=0xfc;

}

}

P3=0xfb;

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

delay(10);

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xeb:

key=8;

break;

case0xdb:

key=9;

break;

case0xbb:

key=10;

break;

case0x7b:

key=11;

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

beep=0;

}

beep=1;

P1=0xf8;

}

}

P3=0xf7;

temp=P3;

temp=temp&0xf0;

if(temp!

=0xf0)

{

delay(10);

if(temp!

=0xf0)

{

temp=P3;

switch(temp)

{

case0xe7:

key=12;

break;

case0xd7:

key=13;

break;

case0xb7:

key=14;

break;

case0x77:

key=15;

break;

}

while(temp!

=0xf0)

{

temp=P3;

temp=temp&0xf0;

beep=0;

}

beep=1;

display(key);

P1=0xf0;

}

}

}

}

voidmain()

{

TMOD=0x01;//模式设置,00000001,设置定时器0工作在模式1(M1=0,M0=1)。

TR0=1;//打开定时器

TH0=0Xff;//定时器设置,每隔100微秒发起一次中断。

TL0=0Xa4;

ET0=1;//开定时器0中断

EA=1;//开总中断

}

5总结体会

通过为期十余天的微机原理课程设计——分频信号发生器的设计与分析,我首先了解到了分频、倍频之间的定义和区别,构思和设计过程中,了解分频原理后,通过原理,很快就制定了这个设计的框图,而下一步,自然而然的就是,通过框图每个区域的功能,选择正确的芯片和电路。

最终构思了两个截然不同的方案,通过方案的操作性,复杂度,和效果对比,最终选择了我们的主方案。

完成了此次课程设计。

在本次课设中,我重新认识了89C51,20个引脚的功能,以及各个引脚组合所能实现的功能。

看是很简单的一个分频功能,在设计过程中,却遇见了很多问题,分频系数的控制,输出频率的可靠性,以及稳定输出等。

随着设计的推进,问题也层出不穷。

但是,也因此学会了如何分析并解决问题,学会通过查阅资料和深入分析解决问题。

在方案选取上,也学会了一些方案最优化的问题。

大学,学习的就是遇见问题,能够独立解决问题的能力,而本次课设,也达到了这个目的。

在老师的帮助下,终于成功地完成了课设。

参考文献

[1].江国强.现代数字逻辑电路习题指导.北京:

电子工业出版社,2002.4

[2].吴友宇.数字电子技术基础.北京:

清华大学出版社,2008

[3].伍时和.数字电子技术基础.北京:

清华大学出版社,2009

[4].康华光.电子技术基础模拟部分(5版).北京:

高等教育出版社,2006.1

[5].李宜达.数字逻辑电路设计与实现.北京:

科学出版社,2004.11

附录

附录一 元件清单

器件名称

型号

数量

共阴数码管

A型

1个

89C51定时器

40引脚

1片

电阻

470欧

4个

电阻

100k

2个

单刀双掷开关

——

1个

面包板

——

1块

导线

——

若干

 

本科生课程设计成绩评定表

姓名

性别

专业、班级

课程设计题目:

分频信号发生器的分析与设计

课程设计答辩或质疑记录:

 

成绩评定依据:

评定项目

最高分限

评分成绩

1.选题合理、目的明确

10

2.设计方案正确、具有可行性、创新性

20

3.设计结果(例如:

系统设计程序、仿真程序)

20

4.态度认真、学习刻苦、遵守纪律

15

5.设计报告的规范化、参考文献充分(不少于5篇)

10

6.答辩

25

总分

100

最终评定成绩(以优、良、中、及格、不及格评定)

 

指导教师签字:

年月日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1