第章 绪
11音乐门铃电子密码锁简介
现代电子产品中 电子音乐门铃具悦耳动听价格低廉耗电少等优点现代家居中应越越流行毕业设计基单片机叮咚门铃通单片机控制输出频率音频功率放器LM386放扬声器发出单调提示音响流行音乐旋律客访时钮门铃会奏出优美电子音乐电子密码锁种传统机械锁通密码输入控制电路者芯片工作继控制机械开关闭合完成开锁闭锁务电子类产品类众简单电路产品基单片机芯片产品现应较广泛电子密码锁控制芯片核心通程序编译实现性安全性远远超机械锁特点:
(1)保密性编码量远远弹子锁机开锁成功率零
(2)密码变户时更改密码防止密码盗时避免员更锁密级降
(3)误码输入保护输入密码次错误时报警系统动启动
(4)活动零件会磨损寿命长
(5)灵活性机械锁必须佩带钥匙开锁
(6) 电子密码锁操作简单易行学会
门铃电子密码锁进步结合起出现新代功语音门铃
12语音门铃发展趋势
年着市场智化楼房断升温门铃系统已作智化办公室智化住宅区分割组成部分商家户接受渐渐开始惯利门铃系统代传统铁钥匙理种通道门促门铃系统突破性发展
前叮咚门铃价格便宜性耗电量少安装简便然音乐门铃叮咚声悦耳音乐客耐心等现门铃已出现视门铃屋里屋外视机话通话里屋动旋纽开门样亲出开门方便
目前门锁老式机械式锁样锁钥匙容易丢失需携带钥匙方便况钥匙丢失锁安全性降低针机械锁带便满足锁应求增加锁安全性密码代钥匙密码锁诞生生活带极方便安全极市场发展前景着电子元件进步发展电子密码锁研究出种类功逐渐强起更加方便保护性更强前单密码输入发展现密码加感应功元器件实现双重电子加密者密码电子钥匙中开锁电子元器件发展保密性求提高产生更电子密码锁出安全方便等方面需许电子密码锁已相继问世类产品特点针特定效卡指纹声音效实现远程控制适保密求高供箱柜房间等出组合电子信息电子密码锁发展趋势
微型计算机出现量类社会带入新时代单片微型计算机(简称单片机)中扮演着十分重角色单片机控制功强灵活体积性高性价高产品化等特点年智仪器仪表机电体化实时控制分布式机系统家电气等领域广泛应行业技术改造产品更新换代起着重推动作生活质量提高产生深刻影响传统门铃叮咚声具备功较少较弱结构复杂根满足飞速发展社会需门铃会更智化更性化满足类种需
13 设计实现目标
次设计TTMEL公司AT89S51实现基单片机功语音门铃具功:
(1) 客访时钮门铃会奏出优美电子音乐会播放音乐编6首电子音乐
(2) 密码通键盘输入密码正确锁开
(3) 报警锁定键盘功密码输入错误数码显示器会出现错误提示密码输入错误次数超 3 次蜂鸣器报警锁定键盘
(4) 电子密码锁设计三部分组成:4×4 矩阵键盘接口电路密码锁控制电路输出八段显示电路外系统 LED 提示灯报警蜂鸣器等
(i)密码输入功:数字键-显示右边数码时先前输入-左移动位
(ii)密码清功:清键时清前面输入值清显示
(iii)开锁功:开锁键系统输入密码进行检查核果正确锁开否开
设计实施程:首先选 ATMEL公司单片机 AT89C51选购电子元器件第二步Protel 99设计硬件电路原理图第三步 Keil uVision4软件编写单片机 汇编C 语言程序仿真软件调试第四部 Proteus软件进行模拟软硬件调试联合软硬件调试电路板完成次毕业设计
第二章 系统方案选择证
21系统基方案
211系统框图
简易语音门铃面部分组成图21示:
单片机
AT89C51
键盘模块
晶振电路
报警模块
音频放器
扬声器
显示模块
图21 电子密码锁控制系
晶振电路:石英振荡器两样电容组成
键盘模块:16 轻触式开关组成
单片机控制模块:ATMEL公司生产AT89C51作控制模块
显示模块:采六数码时时显示前输入数
报警模块:采发光二极蜂鸣器做声光报警
语音模块:音频放器扬声器组成
212 模块方案选择证
(1)单片机选择
方案:
采AT89C51 单片机51 系列单片机兼容部ROM 全部采FLASH ROM高时钟频率达24MHz 3V 超低压工作支持ISP 线编程技术部ROM 仅4KB 利功扩展
方案二:
采AT98S51 单片机具时AT98C51 全部功外支持ISP 线编程技术部ROM 8KB 利功扩展
(2)键盘选择
方案:独立式键控制
独立式键控制数码显示样需键键实现易控制程序编写简单键接拉电阻占单片机量IO 接口资源单片机外扩IO 口电路焊接方面方便浪费量资源提高成
方案二:采矩阵式键控制
键行列组成矩阵行列交点应键样键少判定键键位置种称键扫描法样然提高编程难度节约单片机量IO 口免拉电阻焊接带方便提高整块电路板美观度
(3)显示模块选择
方案:数码静态显示
采LED 数码静态显示方法电路容易理解驱动程序简单需数码块74LS47 驱动显示增高成浪费系统硬件资源需占单片机IO 口
方案二:数码动态显示
采LED 数码动态扫显示方法需块数码驱动器芯片块译码器芯片驱动数码价格便宜需7 IO 口时驱动8 数码显示硬件利效率高驱动程序容易理解编程
方案三:液晶显示
采LCD 液晶显示显示位数单片机驱动方案美观显示清晰样优点时液晶显示器驱动程序复杂编程困难成高价格昂贵浪费量资源
(4)数码驱动选择
采74LS47 驱动数码74LS138 译码器控制数码COM 端74LS47 驱动阳数码74LS138 输出低电效74LS138 输出端加入反器接数码COM 端
方案:74LS04 芯片选择
采74LS04 芯片做反器74LS47 集成六反器芯片刚驱动六数码输入输出引脚两边均分布造成跳线较电路焊接时带麻烦影响整块电路美观度
方案二:三极选择
三极具反功采PNP 电路连接中方便减少跳线提高美观度
(5)报警模块选择
方案:
采语音报警然整系统更加完美会程序更加复杂提高整系统造价
方案二:
采发光二极蜂鸣器报警发出声光报警降低成
(6)语音模块选择
方案:电阻三极控制扬声器发出声音
方案二:利音频功率放器输出信号功率音频信号效失真进行放推动扬声器发出声音少噪声干扰
213系统模块终方案
结合整系统功成美观度等综合考虑AT89S51 单片机控模块4×4 键盘输入74LS4774LS138 三极驱动六数码做显示模块发光二极蜂鸣器做报警模块系统框图图2
4×4键盘输入
时钟电路
声光报警
LM386
扬声器
六位数码显示
AT89C51
图22系统框图
第三章 系统硬件介绍
31 芯片AT89C51介绍
该设计芯片AT89C51现组成部分情况介绍:中央处理器部数存储器部程序存储器定时器串行口中断控制系统时钟复位电路等等
311 AT89C51功
1般控制应 8 位单芯片
2晶片部具时钟振荡器时钟电路
3部程式存储器(ROM) 4KB
4部数存储器(RAM) 128B
5外部程序存储器扩充 64KB
6外部数存储器扩充 64KB
732 条双输入输出线条均单独做 IO 控制
85 中断源两优先级嵌套中断结构
92 组独立 16 位定时器
101 全工串行通信端口
11具位寻址功适合逻辑运算位处理机
1221特殊功寄存器
312 AT89C51芯片定义功
AT89C51芯片引脚图图31示芯片引脚介绍:
(1)电源引脚
Vcc(40脚):单片机供电电源引脚般接+5V电源正端
Vss(39脚):单片机供电电源引脚般接+5V电源端
(2)外接晶体振荡器引脚
XTAL1(19脚):晶体1反相振荡放器输入部时钟发生电路输入
XTAL2(20脚):晶体2反相振荡放器输出
(3)控制线
ALE:址锁存ALE英文Address Latch Enable缩写表示址锁存器启信号正常情况ALE输出信号定值16振荡频率作外部时钟者定时访问外部存储器时ALE输出脉降锁存P0口输出低8位址线P2口结合形成16位址总线次访问外部数时ALE脉忽略时宜作时钟输出
图31 AT89C51引脚图
PSEN:片外程序存储器读选通信号输出端Program Store Enable缩写意程序储存启外部程序存储器读取指令常数期间该信号机器周期两次效通数总线P0口读回指令常数访问外部数存储器时该信号出现
EA:片外程序存储器选端低电效该引脚高电时访问部程序存储器PC(程序计数器)值超片程序存储器空间动转外部程序存储器程序该引脚低电时访问外部程序存储器否部程序存储器
RSTVPD:复位备电源线RST含义复位(RESET)VPD 含义备电源该引脚单片机电复位掉电保护输入端复位分电复位系统运行中复位简单复位电路形式次引脚Vss引脚间连接约82千欧拉电阻Vcc引脚间连接约10uF电容保证复位单片机系统正常运行时该引脚出现持续两机械周期高电单片机回复初始状态实现单片机复位操作种形式复位称系统运行中复位AT89S51重置引脚高电动作晶片重置时引脚电提升高电保持两机器周期时间AT89S51便完成系统重置项动作
(4)输入输出口
PORT0(P00~P07):
端口08位宽开路汲极(Open Drain)双输出入端口8位P00表示位0P01表示位1类推三IO端口(P1P2P3)具电路组态部提升电路P0做IO时推动8LSTTL负载果EA引脚低电时(取外部程序代码数存储器)P0工方式提供址总线(A0~A7)数总线(D0~D7)设计者必须外加锁存器端口0送出址栓锁住成A0~A7配合端口2送出A8~A15合成完整16位址总线定址64K外部存储器空间
PORT2(P20~P27):
端口2具部提升电路双IO端口引脚推动4LSTTL负载端口2输出设高电时端口便成输入端口P2做般IO端口外AT89S51扩充外接程序存储器数存储器时提供址总线高字节A8~A15时候P2便做IO
PORT1(P10~P17):
端口1具部提升电路双IO端口输出缓器推动4LS TTL负载样端口1输出设高电便端口输入数果80528032话P10做定时器2外部脉输入脚P11T2EX功做外部中断输入触发脚位
PORT3(P30~P37):
端口3具部提升电路双IO端口输出缓器推动4TTL负载时具第二功包括串口通信外部中断信号控制计时计数控制外部数存储器容读取者写入控制等功
引脚分配:
P30:RXD串行口输入端
P31:TXD串行口输出端
P32:INT0外部中断0请求输入
P33:INT1外部中断1请求输入
P34:T0计时计数器0计数脉输入
P35:T1计时计数器1计数脉输入
P36:WR:外部数存储器写选通信号输出
P37:RD外部数存储器读选通信号输出
32 时钟电路设计
时钟电路产生单片机运行需时钟信号保证步工作方式实现电路应时钟信号控制严格时序进行工作时序研究指令执行中种信号间相互时间关系
51芯片部构成振荡器高增益反放器输入端芯片引脚XTAL1输出端引脚XTAL2两引脚连接晶体振荡器微调电容组成联谐振回路形成乐反馈电路构成稳定激振荡器[6]图32示:
图32 时钟电路设计
部程序存振荡晶体12MHz~12MHz间选择电容值严格求电容值取值振荡频率输出稳定性振荡电路起振速度少许影响CX1CX220pF~100pF间取值60pF~70pF时振荡器较高频率稳定性设计选取晶振110592MHz电容30pF
33 复位电路设计
复位单片机初始化操作功PC初始化成入口址0000H单片机入口址处开始执行程序仅进行系统正常初始化时程序运行毛病者操作系统处死锁状态时处理种情况复位键重新启动系统
振荡器工作时RST脚保持少两机器周期高电实现系统复位保证电复位RST保持高电时间少振荡器启动时间通常毫秒加两机器周期
单片机RESET高电控制程序计数器(PC)特殊功寄存器复位表3-1示单片机复位影响芯片部RAM状态RESET引脚保持高电单片机循环复位复位效期间ALE﹑PSEN输出高电
表31 复位寄存器状态
寄存器
复位状态
寄存器
复位状态
PC
0000H
TMOD
00H
ACC
00H
TCON
00H
B
00H
TL0
00H
PSW
00H
TH0
00H
SP
07H
TL1
00H
DPTR
0000H
TH1
00H
P0—P3
0FFH
SCON
00H
IP
××000000B
SBUF
定
IE
0×000000
PCON
0×××0000
次设计复位电路图33示
图33 复位电路
34 存储器分配
51系列单片机存储器结构物理址空间分片片外程序存储器片片外数存储器4部分片片外程序存储器统编址户角度寻址(逻辑址)空间分:片统64KB程序存储器128B部数存储器64KB外部数存储器3独立址空间访问3逻辑空间采形式指令
35 振荡器特性
XTAL1XTAL2分反放器输入输出振荡器频率取决晶体震荡频率般晶体12~12MHz间选择电容C1C2般取30Uf该反放器配置片振荡器采外部时钟源驱动器件XTAL2应接余输入部时钟信号通二分频触发器外部时钟信号脉宽说没求必须保证脉高低电求脉宽
36 芯片擦
芯片电擦通正确控制信号组合保持ALE脚处低电10ms 实现芯片擦操作中代码阵列全写1非空存储字节重复编程前该操作定执行
外AT89C51部稳态逻辑工作闲置模式时CPU停止工作RAM定时器计数器串行口中断系统然工作工作掉电模式够保存数存储器容冻结振荡器
37 单片机工作方式
80C51工作方式:复位方式程序执行方式掉电保护方式低功耗方式EPROM编程校验方式工作方式代表单片机处状态单片机工作方式少衡量单片机性项重指标
371 程序执行方式
程序执行方式单片机基工作方式单片机复位PC回初始入口址程序总入口址开始执行程序执行方式分成连续执行单步运行两种
1连续执行方式
连续执行方式指定址开始连续执行程序存储器ROM中存放程序次程序PC动加1
2单步运行方式
程序单步运行方式指单步运行键控制完成次单步运行键程序序执行条指令单步运行方式通常户采仿真器调试程序种特殊运行方式观察条指令执行情况
372 掉电保护方式
CPU执行条置PCON1(Power Down)1指令系统进入掉电工作方式
掉电具体含义指电源障电源电压丢失工作电压低正常求范围值掉电单片机系统运行采取保护措施会丢失RAM寄存器中数单片机设置掉电保护措施进行掉电保护处理具体做法:检测电路旦发现掉电立先程序运行程中信息转存RAM然备电源维持RAM供电
退出掉电方式种硬件复位进行复位时特殊功寄存器容初始化没改变部数存储器区数
掉电工作方式Vcc降2V掉电方式开始工作前Vcc降低退出掉电方式前Vcc定恢复正常工作电压值需维持时间(约10ms)振荡器重启稳定方退出掉电方式
373 80C51低功耗方式
单片机量应携带产品家消费产品低电压低功耗特性尤重许单片机已22V电压运行已12V09V电压工作功耗降uA级粒纽扣长期
1机工作方式
程序PCONIDLE位置系统进入空闲工作方式工作方式单片机工作电流降正常工作方式电流德 15左右振荡器继续工作中断系统串行口定时器模块时钟驱动工作时钟提供CPU说CPU处机状态工作暂停
退出空闲方式方法两种种中断退出种键复位退出
2掉电工作方式
掉电工作方式372掉电保护方式中已详细说明重复
第四章 系统硬件设计实现
41 系统硬件概述
系统客访时钮门铃会奏出优美电子音乐会播放音乐编6首电子音乐通键盘扫描模块够显示数修改密码开锁密码具强功通键盘扫描模块输入单片机控制系统AT89C51中然通数码显示模块显示数报警模块输入密码相时显示模块灯点亮输入密码错误时绿灯点亮报警模块立刻发出声音报警达设定功装置键盘扫描模块单片机控制模块数码显示模块声光报警模块电子音乐模块等5模块组成
42单元电路设计
421 键盘扫描模块电路设计
图41示模块作进行键盘扫描首先判定没键然判定键位置键盘矩阵键时键处行线列线接通开关间接通扫描表明键紧接着应进行抖动处理般采软件抖动软件方法采时间延迟躲抖动行线状态稳定进行行状态输入
图41键盘扫描模块
422 单片机控制模块电路设计
单片机作装置核心器件系统中起控制声光报警数码动态显示作中采AT89C51AT89C51 标准40 引脚双列直插式集成电路芯片4 八位行双IO 端口分记作P0P1P2P3第20 引脚接端第40引脚电源端第31 引脚需接高电位单片机选部程序存储器第1819 脚间接12MHz 晶振单片机提供时钟信号第9 脚复位脚接高电位时单片机停止工作P0 口接两发光二极蜂鸣器实现声光报警功P2 口连接片七段译码器片38 译码器动态扫描方式时驱动六数码P1 口16 阵列式键相连实现键盘扫描通编程识译码器驱动数码显示数时通运行指令达完成声光报警动态显示数码等功图42 示
图42单片机控制模块
423 声光报警模块电路设计
图43声光报警模块
图43示模块作开锁钮时果数码前显示值相绿灯点亮输入数密码时红灯点亮蜂鸣器立刻发出声音报警
424 数码显示模块电路设计
图44 示该模块74LS47 译码器74LS138 译码器6 8 段数码显示组成图示编码器输送数两片74LS47 芯片74LS138 蕊片译码传送8 段数码显示显示根接收数电高低显示数
图中单片机P2 口低4 位连接片74LS47 七段译码器74LS47 阳极数码七段译码器选阳极数码单片机P20P213 输出信号74LS47 译码驱动数码段码显示相应数字外74LS47 输出数码间接7 470 欧姆限流电阻防止电流流时烧坏数码P24P26 口接38 译码器74LS138 三输入端74LS138 输出端通三极分接八数码公极通P14P16 口输出量控制74LS138 选择点亮某数码74LS138 低电位效应该采PNP 型三极驱动数码三极相开关作两块芯片控制数码实现动态扫描显示
例:六数码显示123456第时刻输出000174LS47数码显示1时输出000 74LS138选择第数码工作余数码工作样第时刻第数码显示1余数码均显示理第二时刻第二数码显示2次类推第N 时刻第N 数码显示N肉眼分辨01 秒变化果时刻001 秒频率循环变化起感觉数码点亮显示123456
图44数码显示模块
1 74LS47译码器引脚功
图45 74LS47引脚图
74LS47BCD7段数码译码器驱动器74LS47功BCD码转化成数码块中数字然通进行解码直接数字转换数码数字简化程序节约单片机IO开销非常芯片芯片成较等译码芯片较贵目前节约成角度考虑类芯片已少采部分情况动态扫描数码形式实现数码显示
引脚功
LT:试灯输入检查数码段否正常发光LT0时输入A3 A2 A1 A0种状态译码器输出均低电数码工作正常显示8
BI:灭灯输入够灭掉位数码BI0时LT输入端口A3 A2 A1A0种状态译码器输出电位高电然会7段数码全部熄灭
RBI:灭零输入熄灭想显示0位A3 A2 A1 A00时应显示0RBI0作译码器输出全1样结果利灭灯信号结果样0熄灭
RBO:灭零输出灭灯输入端口BI端口两者够配合运够位数码显示实现灭零控制
2.74LS47译码器原理
译码身编码逆程编码时赋予代码含义编译产生够译码逻辑电路成译码器译码器输出代码输入代码应关系74LS47输出低电会显示七段字形译码器数码配合进行正表列出74LS47真值表表明数码间应关系
LT
RBI
A3
A2
A1
A0
RI
RBO
a
b
c
d
e
f
g
1
1
0
0
0
0
1
0
0
0
0
0
0
1
0
1
X
0
0
0
1
1
1
0
0
1
1
1
1
1
1
X
0
0
1
0
1
0
0
1
0
0
1
0
2
1
X
0
0
1
1
1
0
0
0
0
1
1
0
3
1
X
0
1
0
0
1
1
0
0
1
1
0
0
4
1
X
0
1
0
1
1
0
1
0
0
1
0
0
5
1
X
0
1
1
0
1
1
1
0
0
0
0
0
6
1
X
0
1
1
1
1
0
0
0
1
1
1
1
7
1
X
1
0
0
0
1
0
0
0
0
0
0
0
8
1
X
1
0
0
1
1
0
0
0
1
1
0
0
9
X
X
X
X
X
X
0
1
1
1
1
1
1
1
熄灭
1
0
0
0
0
0
0
1
1
1
1
1
1
1
熄灭
0
X
X
X
X
X
1
0
0
0
0
0
0
0
8
表41 74LS47功表
3.七段数码工作原理
7段数码分阴阳两种显示方式果7段数码段等效成发光二极正负两极阴abcdefg7发光二极负极连接起接7正极接7段译码驱动电路74LS48相应驱动端(abcdefg)时显示数字1译码驱动电路输出段bc高电段扫描输出端低电类推果7段数码阳显示电路需选74LS47译码驱动集成电路阳abcdefg7发光二极正极连接起接5V电源余7负极接74LS47相应abcdefg输出端阴极阳极7段显示电路必加限流电阻然通电7段译码烧坏限流电阻选取:5V电源电压掉发光二极工作电压10mA15mA出数限流电阻值发光二极正常工作电压般18V22V通常选2V发光二极正常工作电流般选取620mA电流果选低7段数码发出光亮选高数码工作时间长较容易坏掉功率7段数码根实际情况进行选取限流电阻电阻
4 74LS138芯片介绍
74LS1383线8线基译码输入输出端外便扩展成更位译码电路实现数分配功74LS138三输入端 EN1 EN2AEN2B 74LS138真值表部逻辑图分见表42图(a)图1(c)示符号图中输入输出效极性指示符表示时极性指示符标明信号方74138三输入(称选通ST)信号间逻辑关系 EN1高电效EN2AEN2B低电效端效电(EN1EN2AEN2B100)时74138输入进行译码相应输出端低电输出信号低电效EN1EN2AEN2B ≠100时译码器停止译码输出效电(高电)
1)74LS138原理图
图46 74LS138原理图
2)引脚功
A0~A2:址输入端
STA(E1):选通端
STB(E2)STC(E3):选通端(低电效)
Y0~Y7:输出端(低电效)
VCC:电源正
GND:
3)工作原理
①选通端(E1)高电两选通端((E2))(E3))低电时址端(A0A1A2)二进制编码Y0Y7应输出端低电译出:A2A1A0110时Y6输出端输出低电信号
②利 E1E2E3级联扩展成 24 线译码器外接反相器级联扩展成 32 线译码器
③选通端中作数输入端时74LS138作数分配器
④8086译码电路中扩展存
425 音频功率放电路
LM386美国国家半导体公司生产音频功率放器 种音频集成功放具身功耗低更新链增益调整电源电压范围外接元件少总谐波失真等优点功率放器常应录音机收音机等低电压消费类产品般减少外围元件电压增益置常20通常引脚1引脚8间外接电阻电容便电压增益调200值输入端果位作参考时输出端会动偏置电源电压半6V电源电压静态功耗仅仅24mWLM386常应电池供电场合
LM386概述
1特性:
1) 静态功耗较低约4mA电池进行供电
2) 正常工作电压范围较宽412V 者518V
3) 外围元件少
4) 电压增益调20200
5) 低失真度
2应特点:
LM386美国国家半导体公司生产音频功率放器通外接电路电压增益调意值200外6V电源电压静态功耗仅24mWLM386特适电池供电场合
3部电路:
LM386部电路原理图三级放电路
第级差分放电路T分T2T3T4构成复合作差分放电路放T5T6构成镜电流源作T1T2源负载T3信号T4信号基极输入T2集电极输出双端输入单端输出差分电路镜电流源成差分放电路源负载单端输出电路增益基等双端输出电容放增益
第二级射极放电路T7放恒流源做源负载增放电路放倍数
第三级中T8T9复合成PNP型NPN型T10构成准互补输出级二极D1D2够输出级供适宜偏置电压够消信号交越带失真
电阻R7输出端T2发射极连接起构成反馈通路R5R6构成反馈网络引入深度电压串联负反馈整电路具稳定电压增益
4LM386引脚图:
LM386外形引脚图48示引脚2反相输入端3相输入端引脚5输出端引脚64分电源引脚18电压增益设定端时引脚7间接旁路电容通常取10μF
查LM386datasheet电源电压412V518V(LM386N4)静态消耗电流4mA电压增益2020018脚开路时带宽300KHz输入阻抗50K音频功率05W
图47 LM386引脚图
第五章 系统软件设计
51 音乐符设计
(1)首先建立音乐音乐音符找出建立音符定时常数T值表编写程序时T值表序建立TABLE栏发音符字节字节位(简谱码)代表音符节拍果1拍04秒4分拍01秒设定延时时间求节拍时间假设4分拍1DELAY拍应4DELAY次类推求出4分DELAY时间4分拍延时设125ms节拍码音符应简谱码频率定时常数表:
表51 节拍码
节拍数
节码数
1
14拍
2
24拍
3
34拍
4
1拍
5
114拍
6
112拍
8
2拍
A
212拍
C
3拍
F
334拍
表52音符应简谱码频率定时常数
音符
简谱码
频率(HZ)
定时常数(T)
低SO
1
392
64260
低LA
2
440
64400
低TI
3
494
64524
中DO
4
523
64580
中RE
5
587
64684
中MI
6
659
64777
中FA
7
698
64820
中SO
8
784
64898
中LA
9
880
64968
中TI
A
988
65030
高DO
B
1046
65058
高RE
C
1175
65110
高MI
D
1318
65157
高FA
E
1397
65178
高SO
F
1568
65217
发音
0
( 2)定时器初始值求法:
T=65536N=65536Fi÷2÷Fr
例:设K=65536F=1000000=Fi=1MHz求低音DO(261Hz)中音DO(523Hz)高音DO(1046Hz)定时器初始值
T=65536N=65536Fi÷2÷Fr=655361000000÷2÷Fr=65536500000Fr
低音DO:T=65536500000262=63627
中音DO:T=65536500000523=64580
高音DO:T=655365000001047=65059
52 语音程序设计方法
1).单片机实定时计数器T0产生赫兹频率根定时计数器T0取定时250us例700HZ频率3次250us定时500HZ频率4次250us定时
信号产生方法:500Hz信号周期2ms信号电1ms(4X250us)变反1次
2).设计程SP0启动T0开始工作T0工作完毕回初状态
3).例叮咚声音占05秒定时计数器T0完成05秒定时250us基准定时2000次
53 语音程序流程图
设计程SP0启动T0开始工作T0工作完毕回初状态流程图图51
54 电子锁流程图
系统工作流程:通键盘扫描实现三种功刚开始设置初始密码123456 通数码显示10 键输入0 9 右左次输入三键显示密码修改密码开锁等开锁钮时果数码前显示值相点亮LED1数码值时点亮LED2立刻发出报警声音流程图图52:
程序开始
初始化变量
初始化定时器
演奏电子音乐
等键
否键
Y
N
图51 语音程序流程图
开始
初始化
检子程序
键盘扫描子程序
键
显示子程序
循环
相应子程序
图52电子锁程序流程图
程序说明:单片机复位进入初始化初始密码123456次存放40H 45H六单元中30H 35H 六单设置六位数码显示数存放址设置完毕调检子程序进入检状态检完毕调扫描子程序键盘进行扫描键盘连接P2 口赋扫描码例:MOV P2#0FEH扫描行键写入扫描码P2 口高4 位写入1设输入状态低4位中P20 0P2 口高4 位通键低4 位相连时P2 口高4位读入低4 位数键相连接高位口读入数0高位口读入1识出键次P2 口写入FDHFBH07H分扫描第三第二第行样交循环便完成4×4 键盘扫描果键跳转相应子程序调显示子程序30H 35H 六单元数六数码显示出显示完毕跳加扫描子程序继续键盘进行扫描循环
541移位子程序
开始
(34H)→ (35H)
(33H)→ (34H)
(32H)→ (33H)
(31H)→ (32H)
(30H)→ (31H)
相应数→(30H)
返回
图53 移位子程序流程图
移位程序说明:进入移位子30H 35H 六单元里数右移位移位完毕35H 单元里数推出30H 单元空出
542开锁子程序
开锁程序说明判断30H 35H 单元里数40H 45H 单元里数否相果相开锁成功绿灯亮果相开锁成功报警红灯亮蜂鸣器响图56示
开始
(30H)~ (35H)
(40H ) ~ (45H)
开锁
返回
报警
YES
NO
图 54 开锁子程程序流程图
543修改密码子程序
开始
成功开锁?
修改密码
修改
返回
YES
NO
图 55 修改密码子程序流程图
修改密码程序说明:判断绿灯否已点亮点亮说明已开锁成功修改密码
否修改
第六章 软件介绍
设计中绘图编程序赖软件软件PROTEL99SEPROTEUSKeil uVision4等
61 PROTEL99SE简介
着计算机技术发展电路设计中工作交计算机完成样仅减轻设计员劳动量保证设计规范性电子设计动化已成逆转时代潮流
Protel99SEPROTEL公司推出款性较稳定EDA软件升级前版基础形成全面集成全32位电路设计系统PROTEL99SE包含种功集原理图设计电路混合信号仿真PCB设计布线等功体电路设计领域相重位
Protel 99SE中功模块:
(1) 原理图设计系统
该模块电路原理图设计原理图元件设计种原理图报表生成等
(2)印刷电路板设计系统模块
该模块够提供功强互相交流PCB设计环境应PCB设计元件封装设计报表形成PCB输出
(3)动布线系统模块
该模块集成网格动布线系统布线效率较高
(4)PCB信号完整性分析模块
该模块够提供较精确板级物理信号分析够检查出串扰延时阻抗等问题够动出具体解问题决方案
(5)电路仿真系统模块
该模块基较新Spice35标准仿真器户设计前端提供完整直观解决方案
(6)编程逻辑器件设计系统模块
该模块集成PLD开发环境原理图CUPL硬件描述语言作设计前端提供工业标准JEDEC输出
设计中通PROTEL软件完成原理图
62 Keil 软件
621 Keil软件概述
次设计语音录放系统AT89C51核心建立系统软件编辑方面需语音门铃电子锁俩部分分构成子函数进行编辑编辑中需Keil uVision4软件
2009年2月发布Keil uVision4Keil uVision4引入较先进窗口理系统样开发员够台监视器视觉窗口位置方进行完全控制新户界面够更运屏幕空间更效组织窗口提供较整洁高效环境开发应程序
目前Keil uVision4产品Keil MDKARMKeil C51Keil C166Keil C251
622 Keil 新特征
(1)新Keil uVision4 IDE旨提高开发员生产力实现更快更效程序开发
(2)uVision4引入灵活窗口理系统够拖放视图方包括支持显示器窗口
(3)uVision4μVision3 IDE基础增加更众化功
(4)显示器灵活窗口理系统
(5)系统浏览器窗口显示设备外设寄存器信息
(6)调试原视图创建保存调试窗口布局
623 Keil编译结果
Keil编译结果图6162示
图61 Keil编译结果(a)
图62 Keil编译结果(b)
63 PROTEUS简介
631 proteus 软件概述
Proteus软件功较强集电路设计制版仿真等种功汇集身仅够电工电子技术学科等涉电路进行设计分析够微处理器进行设计仿真功较齐全年电子设计爱者较青睐款新型电子线路设计仿真软件
Proteus基ProSPICE混合模型仿真器完整嵌入式系统软硬件设计仿真台包含ISISARES应软件
ISIS智原理图输入系统系统设计仿真基台
ARES高级PCB布线编辑软件
Proteus中原理图设计单片机编程系统仿真PCB设计气呵成真正实现概念产品完整设计
Proteus特点
①够单片机仿真SPICE电路仿真结合起带模拟电路仿真数字电路仿真单片机外围电路组成系统仿真键盘LCD系统仿真功种虚拟仪器例示波器逻辑分析仪信号发生器等
②够实现流单片机系统仿真
③够进行软件系统调试功
④具强原理图绘制功
总该软件款集合单片机SPICE分析身仿真类软件功强Proteus真正超群处单片机电路设计仿真单片机程序设计软件Keil兼容够Keil编译*Hex文件置入Proteus单片机硬件中实现软硬件体电路仿真+
632 Proteus仿真程
1 开Ptoteus软件首先进入Proteus ISIS编辑环境选择FileNew Design菜单项弹出模板话框中选择DEFAULT模板新建设计文件保存设定文件夹文件名LiuQiDSN图63示
图63 Proteus ISIS编辑环境
2 放置元器件单击象选择器钮弹出Pick from Libraries页面Keyword输入AT89C52系统象库中进行搜索查找搜索结果显示Results中图6465示
图64象选择器窗口
图65输入AT89C52象库
操作象选择器窗口中已AT89C52元器件象图66示
图66元器件象
3 象选择器窗口中选中AT89C51鼠标置图形编辑窗口该象欲放位置单击鼠标左键完成该象放置图67示
象位置需移动鼠标移动该象单击鼠标右键时该象颜色已变红色表明该象已选中鼠标左键拖动鼠标象移新位置松开鼠标完成移动操作
图67元器件放置图
4 元器件间连线Proteus智化体现画线时够进行动检测鼠标指针接元器件连接点时着鼠标指针出现×号代表找元器件连接点单击鼠标左键移动鼠标(拖动鼠标)鼠标指针元器件连接点时鼠标指针出现×号找元器件连接点时屏幕出现粉红色连接单击鼠标左键粉红色连接线换成深绿色线形直线动变成90°折线选中线路动路径功
5 Keil中设置选项卡 Project→Options for TargetTarget’设置单击确定钮图6869示
图68 Options for TargetTarget’设置(1)
图69 Options for TargetTarget’设置(2)
6 Proteus仿真结果图610示
图610 Proteus仿真结果
总结
通次课程设计进步解单片机编程电路分析系统控制原理等专业知识分析方法解决实际问题全面综合锻炼
尤编程方面进步认识掌握通查阅资料断总结发现足
次课程设计次单片机基原理应系统开发汇编语言锻炼机会次课程设计电路设计程序编写较正规时日三毕业设计中坚实基础
通次毕业设计次专业知识专业技分析解决问题全面系统锻炼单片机基原理单片机应系统开发程常编程设计思路技巧(特汇编语言)掌握方面前迈步日成合格应型良基础
次设计中完成基单片机音乐门铃电子锁设计结果算完美努力获丰富知识完善学四年中纯理模仿学资料收集中掌握单片机知识学知识巩固提高单片机新发展技术解整程中学新知识增长见识然通次设计发现许知识欠缺通毕业设计单单完成设计题目认识设计方法思路日子里然断充实争取学领域作
程中值总结方尤应Protel99画原理图需细节性东西较清楚返工率会较少调试程中心态遇见问题非常正常做做较分析逐步排原坚信事办法解决问题出现定原样定调试成功脚踏实认真严谨实事求学态度怕困难坚持懈吃苦耐劳精神次设计中收益想次意志磨练实际力次提升会未学工作帮助
致谢
通次毕业设计仅知识融会贯通丰富脑时查找资料程中解许课外知识开拓视野认识电子发展方专业知识方面动手力方面质飞跃
毕业设计作名学生完成学业次作业学校学知识全面总结综合应走社会实际操作应铸良开端毕业设计学知识理检验总结够培养提高设计者独立分析解决问题力 校期间学校交份综性作业
次单片机实现语音门铃电子锁功设计加深单片机认识查阅关方面书籍获许专业方面知识开拓视野通硬件电路软件电路设计实际生活理知识结合起更加巩固单片机学
通次毕业设计次专业知识专业技分析解决问题全面系统锻炼单片机发展历史发展现状单片机硬件结构更加深入系统解学单片机基原理应系统开发程常编程设计思路技巧日常生活紧密相连真正体验实践理统
感谢指导老师林老师悉心指导感谢老师学帮助设计程中通查阅量关资料老师请教等方式学少知识历少艰辛收获样巨整设计中懂许东西培养独立工作力树立工作力信心相信会学工作生活非常重影响提高动手力充分体会创造程中探索艰难成功时喜悦总次毕业设计锻炼机会方面力提高走出校园事相关工作实践方式
参考文献
[1] 汪贵李登峰龚贤武雷旭等新编单片机原理应北京机械工业出版社20099
[2] 丁元杰单片机原理应[M]北京:机械工业出版社2000
[3] 李广弟朱月秀王秀山等单片机基础[M]北京:北京航空航天学出版社2000
[4] 杨居义马宁王益武单片机原理工程应北京:清华学出版社20093
[5] 付家单片机实验实践北京:高等教育出版社20063
[6] 沙占友王彦朋孟志永单片机外围电路设计[M]北京:电子工业出版社2003
[7] 刘乐善微型计算机接口技术应[M]武汉:华中科技学出版社2000
[8] 胡汉单片机原理接口技术(第2版)北京:清华学出版社2006
附录1 系统总体电路原理图
附录2 仿真图
仿真电路图()
仿真电路图(二)
附录3 系统程序
程序()
#include
sbit led_lampP3^7
unsigned char display_count[17] {0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x770x7f0x390x3f0x7b0x710x3f}
unsigned char display_bit[8] {0xfe0xfd0xfb0xf70xef0xdf0xbf0x7f}
unsigned char hang
unsigned char lie
unsigned char key_number
unsigned char password_number[4]{0x050x060x070x08}
unsigned char display_number
unsigned char add_bit0
unsigned char shumaguang_number[8]
unsigned int led_count
unsigned char stop_flag
unsigned char scanf_flag0
unsigned char ret_password_bit
unsigned char password_ret_flag
void delay(unsigned int count) 延时子函数
{
unsigned int k
while(count)
{
for(k0k<125k++)
}
}
void timr0_init() 定时中断初始化子程序
{
TMOD 0X01
TH00xd8
TL00xf0
TF00
ET01
EA 1
}
void INT_timer0() interrupt 1 定时中断服务函数
{
TH00xd8
TL00xf0
led_lamp0
led_count++
if(led_count > 199)
{
led_count 0
led_lamp1
TR00
}
}
void scankey() 键盘扫描子程序
{
P20xf0
if((P2&0xf0)0xf0)
{
switch(P2)
{
case 0x70hang1break
case 0xb0hang2break
case 0xd0hang3break
case 0xe0hang4break
defaultbreak
}
delay(5)
P2 0x0f
if((P2&0x0f)0x0f)
{
switch(P2)
{
case 0x07lie1break
case 0x0blie2break
case 0x0dlie3break
case 0x0elie4break
defaultbreak
}
}
key_number((hang1)*4+lie)
}
}
void key_password_compare() 密码否正确子程序
{
unsigned char kou_for
if(password_number[0]shumaguang_number[0])
{
if(password_number[1]shumaguang_number[1])
{
if(password_number[2]shumaguang_number[2])
{
if(password_number[3]shumaguang_number[3])
{
TR01
scanf_flag0
stop_flag0
for(kou_for0kou_for<4kou_for++)
{
shumaguang_number[kou_for]0
}
}
}
}
}
}
void display(unsigned char display_strat_init) 初始化显示子函数
{
unsigned char shaomiao_for
unsigned char bit_for
for(shaomiao_for0shaomiao_for<10shaomiao_for++)
{
P0 display_count[display_strat_init]
for(bit_for0bit_for<4bit_for++)
{
P1 display_bit[bit_for]
delay(1)
}
}
}
void KEY_funcation() 密码输入子函数
{
if((P2&0xf0)0xf0)
{
add_bit++
if(add_bit>5)
{
add_bit0
stop_flag++
if(stop_flag>2)
{
while(1)
}
}
delay(50)
switch(add_bit)
{
case 1scanf_flag1break
case 2shumaguang_number[0]key_numberbreak
case 3shumaguang_number[1]key_numberbreak
case 4shumaguang_number[2]key_numberbreak
case 5shumaguang_number[3]key_numberbreak
case 6scanf_flag1break
}
}
}
void password_display() 密码输入显示子函数
{
unsigned char i
{
for(i 0 i < 50 i++)
{
P0 display_count[shumaguang_number[0]]
P1 display_bit[0]
delay(1)
P0 display_count[shumaguang_number[1]]
P1 display_bit[1]
delay(1)
P0 display_count[shumaguang_number[2]]
P1 display_bit[2]
delay(1)
P0 display_count[shumaguang_number[3]]
P1 display_bit[3]
delay(1)
P0 display_count[shumaguang_number[4]]
P1 display_bit[4]
delay(1)
P0 display_count[shumaguang_number[5]]
P1 display_bit[5]
delay(1)
P0 display_count[shumaguang_number[6]]
P1 display_bit[6]
delay(1)
P0 display_count[shumaguang_number[7]]
P1 display_bit[7]
delay(1)
}
}
}
void password_ret_display() 密码设置显示子函数
{
unsigned char k
for(k0k<10k++)
{
P0 display_count[password_number[0]]
P1 display_bit[0]
delay(1)
P0 display_count[password_number[1]]
P1 display_bit[1]
delay(1)
P0 display_count[password_number[2]]
P1 display_bit[2]
delay(1)
P0 display_count[password_number[3]]
P1 display_bit[3]
delay(1)
}
}
void password_ret() 密码设子函数
{
unsigned char password_ret_flag
if(key_number0x0f)
{
password_ret_flag1
while(password_ret_flag)
{
password_ret_display()
if((P2&0xf0)0xf0)
{
ret_password_bit++
if(ret_password_bit>6)
{
ret_password_bit0
password_ret_flag0
}
delay(100)
switch(ret_password_bit)
{
case 1password_ret_flag1break
case 2 password_number[0]key_numberbreak
case 3 password_number[1]key_numberbreak
case 4password_number[2]key_numberbreak
case 5password_number[3]key_numberbreak
case 6password_ret_flag0break
defaultbreak
}
}
}
}
}
void main() 函数
{
timr0_init()
while(1)
{
led_lamp0
display(0x08)
scankey()
if(key_number0x0f)
{
password_ret_flag1
while(password_ret_flag)
{
scankey()
password_ret()
password_ret_display()
}
}
if(key_number0x0e)
{
scanf_flag1
while(scanf_flag)
{
scankey()
KEY_funcation()
password_display()
if(key_number0x10)
{
key_password_compare()
}
}
}
}
}
程序(二)
ORG 00H
JMP START
ORG 0BH
JMP TIM0
STARTMOV TMOD#00000001B
MOV IE#10000010B
JB P37
CALL DELAY1
JNB P37
MOV 31H#00
START0
MOV 30H#LOW SONG
NEXT MOV A30H
MOV DPTR#TABLE
MOVC A@A+DPTR
MOV R2A
JZ END0
ANL A#0FH
MOV R5A
MOV AR2
SWAP A
ANL A#0FH
JNZ SING
CLR TR0
JMP D1
SINGDEC A
MOV 22HA
RL A
MOV DPTR#TABLE
MOVC A@A+DPTR
MOV TH0A
MOV 21HA
MOV A22H
RL A
INC A
MOVC A@A+DPTR
MOV TL0A
MOV 20HA
SETB TR0
D1 CALL DELAY
INC 30H
JMP NEXT
END0 CLR TR0
MOV A31H
XRL A#00H
JNZ END1
JB P37
CALL DELAY1
JNB P37
INC 31H
MOV 30H#LOW SONG1
JMP NEXT
END1
MOV A31H
XRL A#01H
JNZ END2
JB P37
CALL DELAY1
JNB P37
INC 31H
MOV 30H#LOW SONG2
JMP NEXT
END2
MOV A31H
XRL A#02H
JNZ END3
JB P37
CALL DELAY1
JNB P37
INC 31H
MOV 30H#LOW SONG3
JMP NEXT
END3
MOV A31H
XRL A#03H
JNZ END4
JB P37
CALL DELAY1
JNB P37
INC 31H
MOV 30H#LOW SONG4
JMP NEXT
END4 MOV A31H
XRL A#04H
JNZ END5
JB P37
CALL DELAY1
JNB P37
INC 31H
MOV 30H#LOW SONG5
JMP NEXT
END5
JMP START
TIM0 PUSH ACC
PUSH PSW
SETB RS0
CLR RS1
MOV TL020H
MOV TH021H
CPL P30
POP PSW
POP ACC
RETI
DELAY MOV R7#02
D2 MOV R4#125
D3 MOV R3#248
DJNZ R3
DJNZ R4D3
DJNZ R7D2
DJNZ R5DELAY
RET
DELAY1MOV R4#20
D4MOV R3#248
DJNZ R3
DJNZ R4D4
RET
ORG 300H
TABLE
DW 64620644006452464580
DW 64684647776482064898
DW 64968650306505865110
DW 651576517865217
SONG 1
DB 42H42H42H52H64H04H
DB 62H62H62H72H84H04H
DB 92H92H82H72H64H04H
DB 82H82H52H62H44H04H
2
DB 42H42H42H52H64H04H
DB 62H62H62H72H84H04H
DB 92H92H82H72H64H04H
DB 82H82H52H62H44H04H
DB 00H
SONG1 1
DB 82H01H81H94H84H
DB 0B4H0A4H04H
DB 82H01H81H94H84H
DB 0C4H0B4H04H
2
DB 82H01H81H0F4H0D4H
DB 0B4H0A4H94H
DB 0E2H01H0E1H0D4H0B4H
DB 0C4H0B4H04H
DB 00H
SONG2 1
DB 84H94H88H
DB 64H54H68H
DB 84H64H54H44H
DB 62H82H42H62H58H
2
DB 84H94H88H
DB 64H54H68H
DB 84H64H54H44H
DB 52H42H52H62H48H
DB 00H
SONG3 1
DB 84H02H82H64H54H
DB 64H54H48H
DB 64H02H52H44H24H
DB 14H24H18H
2
DB 24H02H22H42H24H
DB 44H54H68H
DB 54H02H52H84H84H
DB 54H64H48H
DB 00H
SONG4 1
DB 44H54H64H44H
DB 44H54H64H44H
DB 64H74H88H
DB 64H74H88H
2
DB 82H92H82H72H64H44H
DB 82H92H82H72H64H44H
DB 44H84H48H
DB 44H14H48H
DB 00H
SONG5 1
DB 62H82H82H62H98H
DB 92H0B2H0B2H82H98H
DB 62H82H82H52H68H
DB 92H0B2H0B2H82H98H
2
DB 62H82H82H62H92H92H94H
DB 92H0B2H0B2H92H84H94H
DB 0B8H0B4H04H
DB 00H
END
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档