脉冲按键电话按键显示器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计
题目脉冲按键电话按键显示器
学院自动化学院
专业
班级
姓名
指导教师
2014 年07 月06 日
课程设计任务书
学生姓名:专业班级:
指导教师:工作单位:自动化学院
题目: 脉冲按键电话按键显示器设计
初始条件:
1.运用所学的模拟电路和数字电路等知识;
2.用到的元件:实验板、电源、连接导线、74系列芯片、555芯片等。

要求完成的主要任务:
1.设计一个具有7位显示的电话按键显示器;
2.显示器应能正确反映按键数字,显示器显示从低位向高位前移,逐位显示按键数字,最低位为当前显示位,七位数字输入完毕后,电话接通;
3.扬声器发出“嘟——嘟”接通声响,直到有接听信号输入,若一直没有接听,10秒钟后,自动挂断,显示器清除显示,扬声器停止,直到有新号码输入。

4.严格按照课程设计说明书要求撰写课程设计说明书。

时间安排:
第1天下达课程设计任务书,根据任务书查找资料;
第2~4天进行方案论证,软件模拟仿真并确定设计方案;
第5天提交电路图,经审查后领取元器件;
第6~8天组装电路并调试,检查错误并提出问题;
第9~11天结果分析整理,撰写课程设计报告,验收调试结果;
第12~14天补充完成课程设计报告和答辩。

指导教师签名: 2014年 6月23日系主任(或责任教师)签名: 2014年 6月23日
目录
引言
1 设计意义及要求 (1)
1.1 设计意义 (1)
1.2 设计要求 (1)
2 方案设计 (2)
2.1 设计思路 (2)
2.2 方案设计 (3)
2.2.1设计方案一电路图 (3)
2.2.2设计方案二电路图 (4)
2.3 方案比较 (6)
3 部分电路设计 (7)
3.1 显示电路 (7)
3.2 时钟脉冲触发移位电路 (9)
3.3 数字脉冲触发发声电路 (10)
3.4 发声模块电路 (10)
3.5 反馈清零电路 (11)
4 调试与检测 (13)
4.1 调试中故障及解决办法 (13)
4.2 调试与运行结果 (14)
5 仿真操作步骤及使用说明 (16)
结束语 (17)
参考文献 (18)
附录电路图 (19)
本科生课程设计成绩评定表
引言
电话是我们日常生活中的常见的物品,自从贝尔发明电话以来,它就成为了我们人类生活中不可或缺的物品。

一百多年来,它一直在证明着它的价值所在。

的确,电话给了给了我们很多的方便之处,再也没有“烽火连天”的岁月,也没有八百里加急的骏马,只有在导线中以光速飞奔的电子,刹那间将信息从祖国的这头传到那头,祖国瞬间连为一体如同村落一般,事实上整个世界也是如此,直至有这样的名词“地球村”。

在百年之后科技高速发达的今天,我们站在一个新的起点上对科技有了不一样的看法。

电话现如今对我们而言,由最初的成型产品变成了产品中的一个基本元素,其功能的实现已经相当方便。

作为新时代的大学生,国家未来的栋梁之材,打好坚实的电子电力技术的基础对我们而言尤为重要。

因而我们从这基本的产品出发,逐步掌握、熟悉一些常用的设计方法、思路以及基本技术,这个课题就是我们以目前所学的知识实现电话的部分功能,包括:按键、数码管显示、扬声器几大模块。

课题中我们主要用到的是数字电子技术的内容,用到了编码器、译码器、锁存器、七段显示译码器(七段译码管)、集成单稳态触发器、单稳态触发器、多谐振荡器以及常用的逻辑门元件。

设计思路是采用编写程序常用的模块化编程思想进行模块化设计,然后在进行部分电路功能设计。

部分电路设计中遵循的是,明白要求、具体化功能、挑选逻辑器件、设计电路、简化电路的思路。

经过一个星期左右的设计与改进,基本完成了课题的设计要求实现了电路的功能,可以实现按键并且数码管有相应的数字显示,数字逐步左移,按足七位时扬声器发声,未接听时10秒后数码管清零、扬声器关闭,接听时数码管立即清零、扬声器停止发声的功能。

同时,在这期间还巩固了本学期所学的数电知识内容,掌握了一些简单的设计方法,对设计产品的流程有了初步的认识,收获颇丰。

1 设计意义及要求
1.1设计意义
此课题中设计的产品为电话的部分功能,设计本产品可以对其基本的原理结构有了一定的了解、学习掌握基本的技术理论。

这是电话设计的基本基础所在,此外这也是很多衍生产品中里的基本元素,例如电梯的按键显示、冰箱、空调的按键控制,因而这对于我们以后接触其他的电子产品起了奠定基础的作用,能让我们在今后的生活学习工作中学会举一反三。

除了技术上的掌握外,此次设计的另一个目的所在就是,培养我们的独立思考、独立解决问题、合作解决问题的能力,在以后的工作中这些能力都是不可或缺的。

我们会在设计过程遇到各种各样的问题,当出现问题时,我们必须独立的思考拿出解决问题的几种方案,然后从中选取方案,不断的尝试直至找到解决问题的最佳方案。

有时问题会层出不穷,这就需要我们追本溯源,从最初的设计开始查找问题,是否从一开始是错误的,因而这也培养了了我们的耐心与毅力。

1.2设计要求
根据所学的模数电知识和以下元件:实验板、电源、连接导线、74系列芯片、555芯片等,设计一个电路,使得电路具有以下几个方面的功能:
(1)具有7位显示的电话按键显示器;
(2)显示器应能正确反映按键数字,显示器显示从低位向高位前移,逐位显示(3)按键数字,最低位为当前显示位,七位数字输入完毕后,电话接通;
扬声器发出“嘟——嘟”接通声响,直到有接听信号输入,若一直没有接听,10秒钟后,自动挂断,显示器清除显示,扬声器停止,直到有新号码输入。

2 方案设计
2.1设计思路
根据设计要求与功能,可以知道此电路设计分为几个部分:按键、数码管以及扬声器几大部分。

进一步思考可以知道:
(1)按键、数码显示模块:按键的同时要有相应的数码显示,必须有编码和译码器的存在,为了简洁方便采用了带有译码功能的七段译码显示器;数码管可以进行左移位功能那么须有寄存功能的元件,如寄存器、移位寄存器、锁存器等,在这里我采用锁存器74175;注意到锁存器需要在按键同时给一正脉冲将电位传出,因而采用了将所有按键电位变化的一端用与门连接起来,有按键动作时,产生负脉冲经反相器编程正脉冲给连在一起的所有74175锁存器的时钟端进行电位信号传输,实现移位的功能;
(2)扬声器模块:按足七位数字后要使扬声器报警,则需要在按足七位数时给扬声器的发生模块一个脉冲动作信号,注意到一个特殊标志“F”,当够七位时,“F”消失,利用其每个电位都是高电位的特点,进行与运算,当“F”消失时,产生一个下降沿;扬声器模块可以用典型的由两片555芯片组成的单稳态触发器和多谐振荡器结合,只要有负脉冲触发就可以根据单稳态触发器的RC时间常数控制输出,即多谐振荡器的震荡时间,也即报警时间;显示模块给出的下降沿不能够满足负脉冲的触发要求,想到了集成单稳态触发器74123,可以将下降沿转变成负脉冲,巧妙的解决了这一问题;同时在74123和单稳态之间需要进行隔离,不然会有电位钳制的影响导致电路无法正常工作,因而采用了三极管和继电器组成的电路进行隔离。

(3)反馈模块:根据要求在触发之后要求进行清零操作,即数码管清零和扬声器停止报警;并且有两种情况:第一,按键清零,在这里我将与数码管的连接的锁存器的清零端,与单稳态触发器的清零端接在一起,当按键时,会将低电
平给这两个清零端,进行清零,松开按键后恢复原态;第二,10秒后自动清零,这时我注意到,十秒后我们可以观测到单稳态触发器的输出端会有一个下降沿,再次想到了74123的作用,将下降沿转变成负脉冲给数码管和单稳态的清零端,实现清零操作。

2.2方案设计电路图
2.2.1设计方案一电路图
个人方案系统设计的总体框图:
图2-1 方案一系统框图
工作原理:
如图,电路启动时,数码管显示“000000F”字样,等待输入号码,当按下数字时,经过编码和译码会有相应的数字显示,每按下一位时,锁存器打开,数字向左移动一位显示,直至有七次输入时,最高位的下降沿触发发声报警模块的单稳态触发器,产生10秒的高电平输出,使得多谐振荡器震荡,扬声器发声;若不按下接听键,10秒后单稳态的高电平输出变成低电平,振荡停止,扬声器停止发声,同时将下降沿转变成负脉冲反馈到数码管和单稳态触发器的清零端,数码管清零,使得电路回到初始状态,等待下次的号码输入;若按下接听键,直接将低电平给清零端,扬声器立即停止发声,数码管同时清零,电路回到初始状态,松开按键,清零端恢复到高电位状态。

个人方案系统设计的Proteus电路图
图2-2 方案一电路图
2.2.2设计方案二电路图
在小组方案中我和组员一起主要负责软件上的工作,我负责编写数码管显示部分和时钟中断以及主程序和整体程序的调试工作(程序见附录),小组方案系统设计的总体框图:
图2-3 方案二系统框图
工作原理:
如图,给电路通电时,单片机开始工作,电路处于初始状态,数码管没有显示,扬声器不发声,单片机等待键盘扫描,当键盘有输入时,进入程序循环,进行移位和数码显示程序,直至有七次输入后,程序进入定时中断,扬声器开始发声报警,若无接听时,即单片机没有扫描到键盘接听键按下,10秒结束后,扬声器停止发声,数码管显示关闭,程序回到初始状态等待下一次输入;若有接听时,即单片机扫描到键盘的接听键按下,扬声器立即停止发声,数码管显示关闭,程序回到初始状态等待下一次输入。

图2-4 方案二电路图
2.3方案比较
个人方案:
优点:采用独立的逻辑器件,元件比较容易得到,功能实现原理比较简单,对于刚刚接触电子技术的同学来说比较容易上手
缺点:由于逻辑器件的功能比较单一,实现复杂的功能时需要较多的元器件,成本升高,而且由于较多的连线使得比较电路不大稳定
小组方案:
优点:采用可编程逻辑器件,功能实现过程比较容易,采用的其他元器件很少,使得价格比较低廉,另外功能也比较稳定。

因而我们在小组方案时采用的51单片机。

缺点:由于在使用时pc机不可缺少,因而其实现在实际中受到了一定的局限,而且对于刚刚接触电子技术的同学而言,相对于独立的逻辑器件比较难理解。

3 部分电路设计
3.1显示电路设计
如图,按下按键时,低电平从10-4线的输入端输入,根据74147的功能表相应的输出为编码的反码,给第一位数码管的锁存器,BCD译码管接锁存器的反相端,这样数码管就能正确的显示对应的数字;同时下一位的数码管锁存端接本位的数码管输出端,下一位数码管直接接锁存输出,以此类推。

并且所有的锁存器的清零端和时钟信号端连接在一起,可以实现同时清零与同时移位的功能。

图3-1 显示部分电路图
表3-1 74147功能表
表3-2 74175功能表
如图3-2所示,编码器的四位输出和按键“0”接到U20、U21、U22的输入,U22的输出经反相器接到所有的锁存器的时钟引脚。

当有按键按下时,编码器的四位输出或者按键“0”至少有一位是低电平,松开按键后恢复到高电平,在反相器的输出端产生一个正脉冲,使得锁存器的电平能够输出到七段译码显示器。

同时,由于后一位输入接的是前一位的输出,因而在打开锁存器的同时会产生移位的效果。

图3-2 时钟脉冲触发移位部分电路图
如图3-3所示,最高位数码管对应的锁存器输出端接U20、U21的输入端,
输出端接发声模块的输入,初始时,为低电平。

同时注意到,初始状态最低位有“F ”显示,即数码管所接的锁存器的四个输出端都是高电平。

随着按键的动作,“F ”移动,当按足六位时“F ”移到最高位,这时U22与门输出端变为高电平。

当按下第七位数字时“F ”溢出,与门输出端变为低电平,这时将下降沿信号传送到74123,将下降沿信号转变成脉冲信号,触发发声模块开始发声。

图3-3 数字脉冲触发发声部分电路图
3.4发声模块电路
如图3-4所示,发声模块由两片555芯片组成,其中一片构成的是单稳态触
发器,另一片构成的是多谐振荡器。

单稳态触发器的2、6脚接数字脉冲触发电路的输出端,3脚输出端接多谐振荡器的清零端。

当有负脉冲输入时,单稳态触发器输出高电平,多谐振荡器正常工作开始震荡,输出为变化的电平,驱动扬声器发声。

其中单稳态触发器的输出高电平的时间由公式t RC =确定,设计中要求10秒钟,故采用的是10u 的电容和100k Ω的电阻,另外多谐振荡器的占空比也可由112/()w w w q t t t =+确定,其中1440.7w t R C =,23440.7()w t R R C =+,经计算考虑,均采用20k Ω的电阻和10n 的电容实现1/3的占空比。

表3-3 555芯片的功能表
图3-4 发声模块电路图
3.5反馈清零电路
如图3-5所示,将单稳态触发器的清零端和所有锁存器的清零端连接在一起(锁存器只列举一个),只要有负脉冲输入就会将数码管显示模块和发声模块进行清零初始化。

我们将单稳态触发器的输出端经74123接到清零端,触发扬声器10秒后3脚输出端由高电平变成低电平,下降沿变为负脉冲后,传给清零端,实现清零。

另外,在扬声器发生后的10秒内,我们可以直接按下按钮开关可以将负脉冲直接输入到清零端,实现同样的操作。

表3-4 74123功能表
图3-5 反馈清零电路图
4 调试与检测
4.1调试中的故障及解决办法
当第一次设计完电路时发现,自动清零基本达到要求,但是清零并不彻底。

仿真只能进行一次,后面会出现电平紊乱的现象,查找原因发现,按键清零时只是将扬声器断开,并没有将555内部的电容里的电放掉,导致虽然扬声器并不发声但是,震荡依然存在,电路并未恢复到原来的状态。

当振荡结束时依然会有一个上升沿使得触发器翻转,U22与门的输出与开始恰成相反的状态。

这种方法“治标不治本”电路无法正常工作
解决方案:这种情况下,推翻了之前的将按键连接到触发器,控制扬声器通断的清零方案;经过仔细观察发现555芯片构成的单稳态触发器有一个清零端,当给一个负脉冲时,输出立即为低电平,后面的多谐振荡器也随之消失了。

因而如图,我将其清零端与数码管的清零端以及接听键的电平变化端接在一起,这样清零就很彻底,实现了电路的回复初始态的功能,障碍排除。

图4-1 原始反馈清零电路图
图4-2 改进反馈清零电路图4.2调试与运行结果
调试与运行的结果:
(1)初始状态
图4-3 初始状态仿真图
(2)运行时:
图4-4 运行状态仿真图
(3)10秒后、按下接听键后状态,即初始状态(见(1)中图)。

5 仿真操作步骤及说明
一、各部件说明
(1)开关0-9为电话号码数字输入键,开关接听键为清零端,控制数码管和扬声器的清零操作
(2)数码管从右至左为从低位到高位显示,仿真会从低位到高位逐步移位显示(3)扬声器在按足七位时,会发出响声,10秒后或者按下接听键停止发声
二、仿真步骤说明
(1)打开仿真开关,数码管显示“000000F”,等待按键
(2)按下数字键盘,数码管会显示所按下的数字。

当“F”消失时,即按够七位数字时,扬声器发出“嘟嘟”声
(3)若此时没有按下接听键,约10s后扬声器停止发生,数码管清零,回到初始状态;若此时按下接听键,扬声器立即停止发生,数码管清零,回到初始状态。

(4)回到初始状态后,等待下次的拨号。

结束语
为期两周的课程设计结束了,这是我们大学里的第一次课程设计,有很多的不一样的感受。

这将是大学里最为难忘的两周。

首先,值得祝贺的是,我完成了基础的课程任务,巩固了我的知识,也学到了很多新的知识。

至今在我的脑海里还在翻腾着74系列的芯片功能表,电平变化、上升沿、脉冲等等这样的术语在我的眼前不停的显现着。

想到在课程设计之前,复习数电的时间里,还在为怎么记忆这些芯片的功能而烦恼,现在看来,这些都不是问题了,功能表在这两周里早已烂熟于心了。

其次,最大的收获应该是在方法上,我学到了不一样的思维方式,不一样的设计方法,在这次课设中模块化的设计思想尤为突出,将问题化成一部分来解决的确方便很多;另外,这次课程设计也很好的培养了我的独立思考能力和耐心与毅力,我们常常会遇到很多问题,这就需要我有足够的耐心独立的去解决,毫无疑问这样的素质与能力将对我以后的工作学习有很大的帮助。

除此之外,收获应该是团队合作的能力。

在此次小组方案设计中,我们一致同意采用没有学习过的单片机进行设计,而可编程逻辑器件主要的核心部分就在于软件程序。

我和队友不畏艰难毅然承担起了这一重责,编写调试程序,我们分工明确,我负责主程序的编写和数码显示部分的程序,同时我们又互相交流帮助,协调统一,经过不断的调试运行终于完满完成任务,这对我而言确实是一大挑战。

最后,我应该感谢小组员的通力协作,我们圆满的完成任务,一个好汉三个帮,团队的力量永远是强大的,谢谢你们!另外更应该感谢的是,指导老师宽容与支持,耐心的审核我们的方案给出指导意见,并督促我们设计时间的安排,我们才能在短时间内完成从未接触的任务,谢谢老师!
我相信,有了这次经历后,以后在面对任何的挑战与困难,我们都会迎难而上!
参考文献
[1] 刘可文.数字电子电路与逻辑设计,科学出版社,2013.3
[2] 郭天祥.51单片机C语言教程,电子工业出版社,2009.1
[3] 马德骏等.C语言程序设计(第二版),科学出版社,2009.12
附录
附录一:
个人方案整体电路图
图1 个人方案整体电路图
小组方案整体电路图:
图2 小组方案整体电路图
小组方案的程序:
#include<stdio.h>
#include<reg51.h>
//变量定义及函数声明
#define uint unsigned int
int keyboardvalue,key=19;
int inputvalue[7]={12,12,12,12,12,12,12}; int i_move, i_digtal;
int answer;
int times,num,i;
sbit voice=P2^0;
sbit digtalone=P0^1;
sbit digtaltwo=P0^2;
sbit digtalthree=P0^3;
sbit digtalfour=P0^4;
sbit digtalfive=P0^5;
sbit digtalsix=P0^6;
sbit digtalseven=P0^7;
void delayms(uint);
void digtal(int);
void matrixkeyscan();
void dispalay();
//主程序
void main()
TMOD=0X01;
TH0=(65536-50000)/256;
TH1=(65536-50000)%256;
EA=1;
ET0=1;
P0=0xff;
voice=0;
while(1)
{
matrixkeyscan();
if (((key>=0)&&(key<=9))&&(times!=7))
{
times++;
//数字寄存移位程序
for (i_move=5;i_move>=0;i_move--)
{
inputvalue[i_move+1]=inputvalue[i_move];
}
inputvalue[0]=key;
key=19;
}
dispalay();
if(times==7) //数码管显示、扬声器发声{
voice = 1;
TR0=1;
}
}
//******功能函数******
//延时函数
void delayms(uint yms)
{
int i,j;
for (i=yms ; i>0 ; i--)
for(j=110;j>0;j--);
}
//数码管的段选程序
void digtal(int keyboardvalue)
{
uint
keyboard[]={~0x03,~0x9f,~0x25,~0x0d,~0x99,~0x49,~0xc1,~0x1f,~0x01,~0x19};
P1 = keyboard[keyboardvalue];
}
//矩阵键盘扫描
void matrixkeyscan()(此部分由其他组员编写)
void dispalay()
{
if (inputvalue[0]!=12)
{
digtalseven =0;
keyboardvalue = inputvalue[0];
digtal(keyboardvalue);
delayms(6);
digtalseven =1; P1=~0xff;
}
if (inputvalue[1]!=12)
{
digtalsix = 0; keyboardvalue = inputvalue[1]; digtal(keyboardvalue); delayms(6);
digtalsix = 1; P1=~0xff; }
if (inputvalue[2]!=12)
{
digtalfive = 0; keyboardvalue = inputvalue[2]; digtal(keyboardvalue); delayms(6);
digtalfive =1;
P1=~0xff;
}
if (inputvalue[3]!=12)
{
digtalfour = 0; keyboardvalue = inputvalue[3]; digtal(keyboardvalue); delayms(6);
digtalfour =1; P1=~0xff;
}
if (inputvalue[4]!=12)
{
digtalthree = 0;
keyboardvalue = inputvalue[4];
digtal(keyboardvalue);
delayms(6);
digtalthree = 1; P1=~0xff;
}
if (inputvalue[5]!=12)
{
digtaltwo = 0;
keyboardvalue = inputvalue[5];
digtal(keyboardvalue);
delayms(6);
digtaltwo = 1; P1=~0xff;
}
if (inputvalue[6]!=12)
{
digtalone = 0;
keyboardvalue = inputvalue[6];
digtal(keyboardvalue);
delayms(6);
digtalone = 1; P1=~0xff;
}
}
void T0_time() interrupt 1 {
TH0=(65536-50000)/256; TH1=(65536-50000)%256; num++;
voice=~voice;
if(num==200)
{
num=0;
voice = 0; P1=~0xff;
for(i=0;i<=6;i++)
inputvalue[i]=12;
times=0;
TR0=0;
key=19;
}
}
武汉理工大学《电工电子综合课程设计》
本科生课程设计成绩评定表
指导教师签字:
2014年7月9日
27。

相关文档
最新文档