电子琴制作汇报文档格式.docx
- 文档编号:18999554
- 上传时间:2023-01-02
- 格式:DOCX
- 页数:18
- 大小:225.96KB
电子琴制作汇报文档格式.docx
《电子琴制作汇报文档格式.docx》由会员分享,可在线阅读,更多相关《电子琴制作汇报文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
2.3单片机及主要元器件介绍………………………………………………………………6
2.3.189C51单片机………………………………………………………………………6
2.3.2BCD—七段译器…………………………………………………………………7
2.3.374138集成译码器………………………………………………………………8
2.3.4数码管…………………………………………………………………………8
2.3.593C46………………………………………………………………………………9
第三章软件设计…………………………………………………………………………10
3.1键盘程序设计……………………………………………………………………………10
3.2显示程序设计……………………………………………………………………………11
3.393C46的程序设计………………………………………………………………………12
第四章系统调试……………………………………………………………………………13
4.1硬件的调试………………………………………………………………………………13
4.2软件的调试………………………………………………………………………………13
结束语与谢辞………………………………………………………………………………13
参考文献……………………………………………………………………………………15
引言
随着社会物质财富的日益增长,安全防盗已成为社会问题。
而锁自古以来就是把守门户的铁将军,人们对它要求甚高,既要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。
在安全技术防范领域,具有防盗报警功能的电子密码锁代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步,使偷盗者很难有机可乘。
如:
宾馆、办公大楼、仓库、保险柜等由于人员的变动比较大,开锁的钥匙也不再是只有一人拥有,容易造成丢失。
购得新居的家庭,由于装修施工等入住时也要把原有的锁胆更换,况且钥匙随身携带也诸多不便。
这样机械锁就暴露了一个弱点,人们迫切的需要一种理想的,安全的锁,这样随之就产生了密码锁的概念,随着技术的发展电子密码锁就成了密码锁中的主流。
而机电一体化的电子密码锁其功能大大超过弹子锁,且能更安全可靠。
所以比起弹子锁,电子密码锁有着无比的优越性。
电子密码锁不仅仅在一个行业中被应用,它在各行各业中都应用的比较广泛.例如在机动车领域,最有名的是上海新卫电子设备公司开发的一百亿电子密码锁为有车组带来了福音,这种密码锁装在机动车里不用担心车被偷,外人即使进入汽车启动车,只要密码不对,发动机也会在15秒内自动熄火.还有,电子密码锁在高级宾馆,甚至监狱中使用都十分安全和便利.所以电子密码锁在现在起了一个主导的作用,给了人们很大的安全和方便,从而结束了钥匙带给人们的不便和烦恼。
本设计是用单片机设计的,单片机是智能仪器、计算机外部设备、生产过程控制的控制核心。
在大多数应用中,被控对象都是大功率的执行部件,功率接口技术已是单片机应用中的一项关键技术。
本设计主要是利用单片机AT89C51,AT89C51是一款应用最为广泛的8051单片机,更重要的是他具有反复烧写(FLASH)的特性,在设计程序时可反复修改原程序、编译、并烧写到单片机里面。
这样可以在制作过程中更加的方便设计者,可以减低成本。
第一章方案设计
1.1硬件方案
本设计的主芯片用到89C51,其P1口接键盘,用来密码的输入和一些功能间的输入,P0口接显示接口,在这个口上接上7448和74LS138两块芯片就能满足用一个口开控制段选和位选的信号,如果用一个口来控制段选,再用其他口来控制位选,这样可能导致单片机的接口不够;
P2.0接一个发光二极管,用来判断输入的密码是否正确;
P3口接外围串行EEPROM——9346用来存储密码,来保证断电后仍有密码可用,EEPROM的应用特性有:
采用+5V电压清除EEPROM时通常不需要设置单独的清除操作,而是在写入的过程中自动清除即可。
但目前清除的时间较长,约需10ms左右,故要有足够的写入时间。
EEPROM大多是并行总线传输的,但也有采用串行传输数据的EEPROM,这种EEPROM具有体积小、成本低、电路连接简单、占用系统地址线少和数据少的优点,我采用的就是串行的EEPROM存储器;
再则就是一些外围电路,如外部复位电路和振荡电路。
对于原理方框图如下:
89C51
1.2软件方案
此次设计要求如下:
1、开始后,显示器显示“000000”,密码由TABLE读取,“221582”为内定密码,或由EEPROM93C46读取密码。
只要输入此密码便可开门,这样可预防万一停电时密码改变或未设定密码的新产品,无密码可用。
2、按“#”,清除显示器为“000000”。
3、更改密码时,先键入新号码再按“*”,即可建立新密码,并存入30H~35H的地址(8571)及EEPROM93C46的01~03地址处。
4、键入号码,再按“D”开门键,若号码与密码相符,则开门,否则显示器会消除为“000000”。
5、按住“C”,既可显示密码,放开则显示“000000”。
根据要求,设计方案主要解决的问题是密码的输入、显示和比较,所以程序在键盘和显示上占了很大的比重。
硬件电路加了EEPROM93C46,这也是程序上需要解决的一个重点问题,因为在断电后,密码要从这里读出来。
第二章硬件设计
2.1概述
电子密码锁是一种数字系统的应用,数字系统是指离散或数字化表示的,具有信号存储,信号处理和信号传输功能的逻辑系统.
由于设计方法的千差万别,电子密码锁的结构也是不同的,但是大体结构类似,下图给出密码锁的一般结构模型.一般由输入部件,存储器,信号处理部件,输出部件四部分组成.
输入部件:
从系统外获得相关的信息进行前端信号处理供系统使用.
存储器:
用于存放供系统使用的数字信息.
信号处理部件:
根据系统功能的要求,由各部件的工作状况对系统输入,存储,信号处理和输出部件进行相应的协调,控制和信息处理工作.此处主要是指运用比较器判断输入的密码与预置的密码是否相同,同时做出相应的信号输出.
输出部件:
把系统中所处理的各种信息传到下一级系统的接口或者本级负载.
而此次设计主要是键盘、控制、显示三部分组成。
先是键盘输入通过程序的转换一路控制锁一路通过两块集成块的转化,输出到数码管,从而显示出密码。
原理图见附件
2.2各部分电路介绍
2.2.1键盘电路
键盘采用的是4*4的矩阵式,它接单片机的P1口,其设计如下图:
在键盘的设计时我一开始选用的是大的按键,但是考虑到PCB板的大小,我后来选用的是小的按键,可以节省覆铜板。
按键的八个接口分别接P1口的八位(如上图所示),在按键前,我先给P1口置F7H,当第一行上有键按下的时候,对应列位输出低电平,反之无键按下为高电平。
相同方法扫描各列,反复循环,直到有键按下。
2.2.2显示电路:
显示电路我选用共阴极数码管,在设计时用7448来提供段选,用74LS138提供位选,这样可以节省单片机端口。
具体电路图如下:
段选的信号和位选的信号都由P0口提供,P0口的前四位接7448的A,B,C,D四位,由它把单片机输出的十进制转换成数码管能显示的字型码。
P0口的后面三位接3—8译码器的A,B,C,通过译码器,输出的数据可以作为数码管的位选,使数码管一个一个的点亮,从而达到动态显示的要求。
2.2.3控制电路:
这部分是整个设计的核心所在,主要运用了单片机,所有信号的处理都通过控制部分输出,在加上93C46,能使断电后仍有密码可以读取。
如下图就是93C46与单片机的接法
芯片的1,2,3,4脚分别接单片机的17(RD),16(WR),15(T1),14(T0)有关这块芯片的应用会在元器件的介绍中详细介绍它的工作原理,这里不再详细介绍。
2.2.4主要外围电路(振荡电路):
电路里采用的是12MHz的晶振,则周期为:
T=1/(12*106)Hz*1/12=1us
有关电路如下图:
XTAL1(19脚):
接外部晶体的一端。
在片内它是振荡电路反向放大器的输入端。
在采用外部时钟,对于HMOS单片机,该端引脚必须接地,对于CHMOS单片机,此引脚作为驱动端。
XTAL2(18脚):
接外部晶体的另一端。
在片内它是一个振荡电路反向放大电路的输出端,振荡电路的频率是晶体振荡频率。
若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;
对于CHMOS单片机,此引脚应悬空。
这部分的电路十分简单,Y1是外接在18、19脚的一个振荡器。
C1、C2瓷片电容与Y1振荡器组成振荡电路。
2.3单片机及主要元器件介绍
2.3.189C51单片机:
这次方案设计的89C51单片机采用的是PDIP的封装形式,PDIP是塑料双列直插式封装。
PDIP封装具有很多特点,适合在PCB(印刷电路板)上穿孔焊接,操作方便。
比TO型封装易于对PCB布线,芯片面积与封装面积之间的比值较大,故体积也较大。
89C51是一块高性能单片机,因为受到引脚数目的限制,所以不少引脚具有第二功能,下面说明这些引脚的名称和功能。
89C51引脚图如图所示
89C51引脚的功能分类:
a、基本引脚:
电源VCC、VSS,时钟XTAL2、XTAL1和复位RST。
b、并行扩展总线:
数据总线P0口,地址总线P0口(低8位)、P2口(高8位)和控制总线ALE、PSEN、EA。
c、串行通信总线:
发送口TXD和接收口RXD。
d、I/O端:
P1口为普通I/O口,P3口可复用作普通I/O口,P0、P2不作并行口时也可作普通I/O口。
ATMEL89系列单片机是以8031核构成的,所以,它和8031系列单片机是兼容的系列。
这个系列对于以8031为基础的系统来说,是十分容易进行取代和构造的
89C51与80C51完全兼容,内部框图如图:
2.3.2BCD—七段译器:
七段字形译码器的功能是把“8421”二—十进制代码成对应于数码管的七个字段信号,驱动数码管显示出相应的十进制数码。
译码器的每一个输出端代表了输入变量相应的一个最小值,而任何逻辑函数又都可以变换成最小项之和的表达式,因此可以利用译码器和门电路来实现任何逻辑函数。
如图7448的功能表
2.3.374138集成译码器
74LS138功能表
该译码器为3线-8线译码器,由逻辑图可知,该译码器有3个输入A,B,C,它们共有8种状态的组合,即译8个输出信号Y0~Y7。
较其他译码器,该译码器的主要特点是,设置了G1、G2A和G2B3个使能输入端。
由功能表可知,对于正逻辑,当G1=1,且G2A和G2B均为0时,译码器处于工作状态。
2.3.4数码管:
数码管在工业控制中有着很广泛的应用,例如用来显示温度、数量、重量、日期、时间,还可以用来显示比赛的比分等,具有显示醒目、直观的优点。
数码管分为七段来显示,它是由A、B、C、D、E、F、G七段组成,所以人们称它为七段数码管。
数码管又可以分为共阳极和共阴极,它的显示方式又有静态和动态显示,来满足不同的实际情况。
2.3.593C46
CS
芯片选择
SK
时钟
DI
串行数据输入
DO
串行数据输出
GND
接地
ORG
选择位
VCC
+5V
93C46串行EEPROM指令格式选择如表所示:
指令
起始位
操作数
地址
数据
64*16
128*8
读READ
1
10
A5~A0
A6~A0
清除ERASE
11
写WRITE
01
D15~D0
D7~D0
写使能EWEN
00
11×
×
写禁止EWDS
00×
芯片清除ERAL
10×
芯片写入WRAL
01×
说明:
(1)、64*16和128*8分别是指ORG为HI和LO时的情况。
(2)、读(READ):
当下达10×
指令后,将使地址(×
)的数据在SK=HI时由DO输出。
(3)、写(WRITE):
在写数据前,必须先下达写使能(EWEN)指令,然后再下达01×
指令后,当SK为HI时,会把数据嘛写入指定的地址(×
);
而DO=0时,表示还在进行烧写,烧写完成后,DO会转为HI;
写入动作完成后,必须再下达写禁止(EWDS)指令。
(4)、清除(ERASE):
下达清除指令11×
,会将地址(×
)的数据清除。
(5)、写使能(EWEN):
下达0011×
指令后,才可进行写入(WRITE)的动作。
(6)、写禁止(EWDS):
下达0000×
指令后,才可重复进行写入(WRITE)的动作。
(7)、芯片清除(ERAL):
下达0010×
指令后,全部禁止。
(8)、芯片写入(WRAL):
下达0001×
指令后,全部写入“0”。
第三章软件设计
软件的设计主要是对程序的设计。
要求密码在断电后也不消失,我在设计时把密码存在EEPROM93C46中,程序主要包括显示和键盘程序,再加上延时等一些子程序,就是一个完整的程序。
下面就部分程序的设计进行说明。
3.1键盘程序设计:
键盘是通过接口电路与单片机的P1口相连。
CPU可以采用查询或是中断方式了解有无键输入并查找是哪个键被按下,我在设计时是使用查询的方式,这样理解起来更加方便,通过指令执行该键的功能程序,执行完又返回到原始状态。
键输入接口与软件之间的主要问题是如何消除键的抖动,我们可以采用两中方法去键的抖动,一种是硬件,一种是软件。
硬件上采用的是键输出端加R-S触发器或单稳态电路构成去抖动电路。
软件上采用的措施是:
在检测到有键按下时,执行一个延时程序后,再确认该键电平是否仍保持闭合状态电平,若仍保持为闭合状态电平,则确认键处于闭合状态,从而去除了抖动的影响。
本次设计同样也运用了消除键抖动:
MOVR7,#10;
消除抖动
D1:
MOVR6,#248
DJNZR6,$
DJNZR7,D1
D2:
MOVA,P1
XRLA,R4;
按钮是否放开
JZD2
而任何一组按键或键盘都要通过I/O口线查询按键的开关状态。
根据不同的键盘结构,采用不同的编码方法。
但无论有无编码,以及采用什么编码,最后都要转换成为与累加器中数值相对应的键值.
MOVDPTR,#TABLE
MOVCA,@A+DPTR
02
03
0C
04
05
06
0D
07
08
09
0E
0A
0B
0F
如下图就是键盘的编码设计:
2
3
A
4
5
6
B
7
8
9
C
*
#
D
键盘设计编码设计
因此,一个完善的键盘控制程序应能完成下述任务;
1、测有无键按下;
2、有键按下后,在无硬件去抖动电路的情况下,应用软件延时方法除去抖动影响;
3、有可靠的逻辑持续处理办法,如N键锁定,即只处理一个键,其间任何按下又松开的键不产生影响,不管一次按键持续有多长时间,仅执行一次按键功能程序;
3、确定的键号以满足指定的要求。
3.2显示程序设计:
显示是通过数码管完成的,而它可分为静态和动态两种,设计中是采用了动态显示这种工作方式是分时轮流选通数码管的公共端,使得各个数码管轮流导通,即各数码管是由脉冲电流导电的(导通时间一般为1ms)。
当所有数码管依次显示一遍后,软件控制循环,
使每位显示器分时点亮。
这种方式不但能提高数码管的发光效率,并且由于各个数码管的字段线是并联使用的,因而大大简化了硬件电路。
各个数码管虽然是分时轮流通电,但由于发光数码管具有余辉特性及人眼具有视觉暂留作有,所以适当选取循环扫描频率时,看上去所有数码管是同时点亮的,察觉不出有闪耀现象。
不过对于这种方式数码管不宜太多,否则每个数码管所分配到实际导通的时间会太少,使得亮度不足。
通常采用动态显示字形码输出及位选信号输出应经过驱动后再与数码管相连。
在设计中是通过LS138芯片与数码管间的联系来完成载入和显示的,先载入显示值,
在通过LS138扫描输出到P0口显示,在这里举D6示值为例子,程序如下:
MOVA,3BH;
载入D6的显示值
ADDA,#50H;
加上D174L38扫描
MOVP0,A;
输出至P0显示D1
LCALLDELAY;
扫描延时
其他的显示值都是同样的道理,按照这样的程序显示出来的。
上面所讲到的程序在附件里都有详细的说明。
3.393C46的程序设计:
有关这块集成块在运用的一些注意情况在上面已经介绍得很详细了,这里不再
介绍,下面就一个子程序说明一下:
93C46的读操作:
SREAD:
MOVA,ADR46;
载入93C46地址
ADDA,#80H;
操作码
LCALLSDT46;
读入地址DI
LCALLRDT46;
读出数据DO,存入3CH
MOV3CH,A
读出数据DO,存入3DH
MOV3DH,A
LJMPEX9346
SDT46:
MOV22H,#8;
左移8次
SD1:
RLCA
MOVDI,C;
从DI读入
SETBCLK
LCALLDELAY1
CLRCLK
LCALLDELAY2
DJNZ22H,SD1
RET
第四章系统调试
本设计的调试主要分为硬件调试、软件调试二部分。
经过初步的分析设计后,打算在制作硬件电路的同时,调试也在穿插进行。
但由于时间的关系,我是在硬件完成以后,再进行调试。
软件编程中,我是首先完成单元功能模块的调试,然后进行系统调试,整体上与硬件调试的方法差不多。
4.1硬件的调试:
硬件调试过程中的工具和测量仪器:
1、5V稳压电源;
2、MF500型万用表;
3、MCS-51单片机仿真软件;
4、MCS-51实验箱;
在总个设计的完成到差不多一半的时候,硬件电路图已经设计完成。
但是于最次的设计电路图相比有所改动。
在进行设计后,发现输出的锁部分不怎么合理,所以改用了发光二极管,这样能比较形象的表达出锁的动作与不动作,这样一改以后就发现现在的电路图与原先的要简化多了;
但是考虑到PCB板的布线问题,我把电路板分成了三块,而且这样也比较的经济,符合设计的要求。
还有在74LS138的运用上由于把输出信号搞错了,一开始在138输出信号上加了非门,后来把74LS04去掉,把上面的非门用导线短接,就把原来的错误改正了,最终使硬件调试顺利的完成
4.2软件的调试:
在本设计中,程序的设计与编辑是通过看书上的资料,通过老师和同学的帮助,完成的比较顺利,但是在调试的过过程中遇到了不少的问题,比如在调试键盘和显示程序的时候,由于把MOVA,@Ri和MOVXA,@Ri搞错了,所以一开始不管你按什么键,数码管
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电子琴 制作 汇报