




已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
电子综合设计与制作实践设计报告1摘要摘要在日常的生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。若使用传统的机械式钥匙开锁,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。密码锁具有安全性高、成本低、功耗低、易操作等优点。在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。本次设计使用STC公司的STC89C52实现一基于单片机的电子密码锁的设计,其主要具有如下功能1密码通过键盘输入,若密码正确,则将锁打开,语音提示开锁,蜂鸣器播放一段开锁音乐。2密码可由管理员修改设定,锁打开后才能修改密码。修改密码之前必须再次输入密码,在输入新密码时需要二次确认,以防止误操作。3报警、锁定键盘功能。密码输入错误,LCD液晶显示器会出现错误提示,同时语音提示错误信息,蜂鸣器鸣响;若密码输入错误次数达到3次,蜂鸣器报警并且锁定键盘,蜂鸣器播放一段报警音乐。主要的设计过程首先,选用STC公司的单片机STC89C52,以及选用其他电子元器件。第二步,使用ALITMDESIGNER设计硬件电路原理图,完成人工布线。第三步,使用KEILC51软件编写单片机的C语言程序、仿真、软件调试。最后,联合软、硬件调试电路板,完成本次电子综合设计。关键词44矩阵键盘;STC89C52;ISD1760;LCD液晶显示器;密码二次确电子综合设计与制作实践设计报告2认电子综合设计与制作实践设计报告3目录第一部分总述4一引言4二课题内容及要求4第二部分硬件设计部分5一设计总框图5二单片机STC89C52介绍5三输入键盘6四LCD液晶显示8五ISD1760语音提示9六蜂鸣器发声10第三部分软件设计部分11一程序流程图11二键盘扫描设计11三液晶显示设计13四语音提示设计18五蜂鸣器发声设计9第四部分调试报告20一硬件调试24二软件调试24三调试心得24总结25参考资料25电子综合设计与制作实践设计报告4附录26一元器件清单26二工具27三硬件设计总图27四源程序28电子综合设计与制作实践设计报告5第一部分总述一引言科技的发展是电子产品的应用越来越广泛,电子电路的设计也越来越重要。随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于结构简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。同时随着电子产品向智能化和微型化的不断发展,数字逻辑电路电子芯片已成为电子产品研制和开发的首选控制器。用电子逻辑电路设计的密码锁经实际操作表明,该密码锁具有安全、实用、成本低等优点,符合一般锁的需要,具有一定的现实意义。本系统采用STC公司的单片机STC89C52作为主控芯片,结合外围的矩阵键盘输入、LCD显示、报警系统和开锁等电路,用C语言编写主控芯片的控制程序,设计了一款可以多次更改密码且具有报警功能的电子密码锁。用户想要打开锁,必先通过提供的键盘输入正确的密码才能将锁打开,且密码输入错误时有提示,为了提高安全性,当密码连续输入错误三次将报警。密码只可以由管理员自己修改、设定,锁打开后只有管理员才能修改密码。修改之前必须先输入管理员登录密码,然后再次输入旧密码,在输入新密码时需要二次确认,以防止误操作。二课题内容及要求1设计内容采用LCD液晶显示,44的矩形键盘输入的基于单片机的电子密码锁,能够实现修改密码,纠错,确认的功能。2基本要求硬件布局基本合理,焊接比较美观,器件运用基本合理,用比较简单的电路实现修改密码、纠错、确认等基本功能。3提高部分电子密码锁能够实现管理员登陆、动态显示登陆密码、登陆密码验证,登陆成功与否给出提示、超次锁定并报警鸣示、在登陆成功的情况下管理员可以进行修改和确认密码,新密码位数不够或太简单给出提示,能在修改密码成功的情况下给出提示。另外,可以用语音发声芯片发出相应的提示信息,并用蜂鸣器报警,播放简单的音乐段。本方案采用一种以STC89C52为核心的单片机控制方案。利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能,以及一些扩展功能。电子综合设计与制作实践设计报告6第二部分硬件设计部分一设计总框图4三LCDST8952R图一总体设计框图2单片机STC89C52介绍STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROMFLASHPROGRAMABLEANDERASABLEREADONLYMEMORY)的低电压,高性能COMOS8的微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS51指令集和输出管脚相兼容。STC89C52具体介绍如下主电源引脚(2根)VCCPIN40电源输入,接5V电源GNDPIN20接地线外接晶振引脚(2根)XTAL1PIN19片内振荡电路的输入端XTAL2PIN20片内振荡电路的输出端控制引脚(4根)RST/VPPPIN9复位引脚,引脚上出现2个机器周期的高电平将使单片机复电子综合设计与制作实践设计报告7位。ALE/PROGPIN30地址锁存允许信号PSENPIN29外部存储器读选通信号EA/VPPPIN31程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。可编程输入/输出引脚(32根)STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。P0口(PIN39PIN32)8位双向I/O口线,名称为P00P07P1口(PIN1PIN8)8位准双向I/O口线,名称为P10P17P2口(PIN21PIN28)8位准双向I/O口线,名称为P20P27P3口(PIN10PIN17)8位准双向I/O口线,名称为P30P37STC89C52主要功能如表二所示。表二STC89C52主要功能主要功能特性兼容MCS51指令系统8K可反复擦写FLASHROM32个双向I/O口256X8BIT内部RAM3个16位可编程定时/计数器中断时钟频率024MHZ2个串行中断可编程UART串行通道2个外部中断源共6个中断源2个读写中断口线3级加密位低功耗空闲和掉电模式软件设置睡眠和唤醒功能3输入键盘由于本设计所用到的按键数量较多而不适合用独立按键式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。本设计中使用的这个44键盘不但能完成密码的输入还能作特别功能键使用,比电子综合设计与制作实践设计报告8如清空显示功能等。键盘的每个按键功能在程序设计中设置。其原理图如下图二矩阵键盘每一条水平(行线)与垂直线(列线)的交叉处不相通,而是通过一个按键来连通,利用这种行列式矩阵结构只需要N条行线和M条列线,即可组成具有NM个按键的键盘。在这种行列式矩阵键盘非键盘编码的单片机系统中,键盘处理程序首先执行等待按键并确认有无按键按下的程序段。当确认有按键按下后,下一步就要识别哪一个按键按下。对键的识别通常有两种方法一种是常用的逐行扫描查询法;另一种是速度较快的线反转法。对照图四所示的44键盘,说明线反转法工作原理首先辨别键盘中有无键按下,有单片机I/O口向键盘送全扫描字,然后读入行线状态来判断。方法是向行线输出全扫描字00H,把全部列线置为低电平,然后将列线的电平状态读入累加器A中。如果有按键按下,总会有一根行线电平被拉至低电平从而使行线不全为1。判断键盘中哪一个键被按下使通过将列线逐列置低电平后,检查行输入状态来实现的。方法是依次给列线送低电平,然后查所有行线状态,如果全为1,则所按下的键不在此列;如果不全为1,则所按下的键必在此列,而且是在与零电平行线相交的交点上的那个键。电子综合设计与制作实践设计报告912345678三0/图三按键操作面板示意图(顺序以实际电路为准)10个数字键用来输入密码,0键有切换模式的功能,另外6个功能键分别是权限键、退出键、清零键、开启键、删除键、确定键。其中权限键的功能是设置密码修改权限,只有管理员可以登录修改密码。退出键的功能是退出当前程序。清零键键的功能是当前输入数据清零。开启键的功能是退出屏幕保护界面,开启LCD显示功能未按下时LCD动态显示屏保图形,需要开锁时按下此键,LCD上会显示“HELLOENTERYOURCODE”。未输入密码时,单独按下0键具有切换模式功能,密码输入后0作为数字键。4LCD液晶显示为了提高密码锁的密码显示效果能力。本设计的显示部分由液晶显示器LCD1602取代普通的数码管来完成。只有按下键盘上的开启按键后,显示器才处于开启状态。同理只有按下退出按键后显示器才处于屏保状态。否则显示器将一直处于开启状态,当需要对密码锁进行开锁时,按下键盘上的开启按键后利用键盘上的数字键09输入密码,每按下一个数字键后在显示器上显示一个,输入多少位就显示多少个(设定为6个)。当密码输入完成时,按下确认键,如果输入的密码正确的话,LCD上显示“SUCCESSFULLYLOCKISOPENED”,单片机其中P31引角会输出低电平,使三极管Q1导通,电磁铁吸合,电子密码锁被打开,如果密码不正确,LCD显示屏会显示“CODEERROR”,P31输出的是高电平,电子密码锁不能被打开。若连续三次密码输入错误,则密码所被锁定,LCD电子综合设计与制作实践设计报告10上显示“PLEASEWAIT”。若密码修改太简单,则显示“CODEISTOOSIMPLE”。若输入的密码大于原密码,则LCD上显示“LARGE”,若输入的密码小于原密码,LCD上显示“SMALL”。通过LCD显示屏,可以清楚的判断出锁所处的状态。其显示部分引脚接口如图六所示VS1D2L3R4/W5E60789BAKCUGN图四显示电路原理图5ISD1760语音提示本设计采用ISD760单片60秒高保真语音录放电路进行语音操作,实时提示当前状态。当密码连续输入3次错误之后语音芯片给出语音提示“连续3次密码输入错误,键盘已锁定”。语音电路如图CDTMIOSANLPPXOFYU三EKY图五语音电路原理图电子综合设计与制作实践设计报告116蜂鸣器发声报警模块由蜂鸣器和单片机组成。选择一只压电式蜂鸣器,压电式蜂鸣器工作时约需要100MA驱动电流。蜂鸣器电路如图七所示。当89C52的P31口输出为低电平时,蜂鸣器产生蜂鸣音,89C52输出为高电平时,蜂鸣器不发声。P10234578RST9/XDINWALGEOVCUKES三Q图六报警电路原理图电子综合设计与制作实践设计报告12第三部分软件设计部分一程序流程图三YN0图七程序流程图二键盘扫描设计键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。主要程序如下UCHARKEYSCANVOID/键盘扫描函数,使用行列逐级扫描法UCHARVALKEYPORT0XF0/高四位置高,低四位拉低电子综合设计与制作实践设计报告13IFKEYPORT0XF0/表示有按键按下DELAY10/去抖IFKEYPORT0XF0/表示有按键按下KEYPORT0XFE/检测第一行IFKEYPORT0XFEVALKEYPORTVAL0X0EWHILEKEYPORT0XFEDELAY10/去抖WHILEKEYPORT0XFERETURNVALKEYPORT0XFD/检测第二行IFKEYPORT0XFDVALKEYPORTVAL0X0DWHILEKEYPORT0XFDDELAY10/去抖WHILEKEYPORT0XFDRETURNVALKEYPORT0XFB/检测第三行IFKEYPORT0XFBVALKEYPORTVAL0X0BWHILEKEYPORT0XFBDELAY10/去抖WHILEKEYPORT0XFBRETURNVALKEYPORT0XF7/检测第四行IFKEYPORT0XF7VALKEYPORTVAL0X07WHILEKEYPORT0XF7DELAY10/去抖WHILEKEYPORT0XF7RETURNVAL电子综合设计与制作实践设计报告14RETURN0XFF/按键值处理函数,返回扫键值/UCHARKEYPROVOIDSWITCHKEYSCANCASE0XEERETURN1BREAK/1按下相应的键显示相对应的码值CASE0XDERETURN2BREAK/2CASE0XBERETURN3BREAK/3CASE0XEDRETURN4BREAK/4CASE0XDDRETURN5BREAK/5CASE0XBDRETURN6BREAK/6CASE0XEBRETURN7BREAK/7CASE0XDBRETURN8BREAK/8CASE0XBBRETURN9BREAK/9CASE0XE7RETURN10BREAK/删除CASE0XD7RETURN0BREAK/0模式CASE0XB7RETURN11BREAK/确定CASE0X7ERETURN13BREAK/开启CASE0X7DRETURN14BREAK/清零CASE0X7BRETURN15BREAK/退出CASE0X77RETURN16BREAK/权限DEFAULTRETURN12BREAK三液晶显示设计由于是显示数据,所以就要用到如下几个显示子程序,分别是开锁状态显示子程序、密码输入及修改状态显示子程序、密码输入错误后的提示子程序。密码在规定的时间内输入错误次数超过3次后的锁定状态显示子程序,输入密码错误的情况下清除密码子程序等。动态显示主要程序VOIDDELAY_GDINTMS/延时子程序INTIWHILEMS电子综合设计与制作实践设计报告15FORI0I0W_CHTMIAOELSETR10/显示部分/电子综合设计与制作实践设计报告19VOIDDISPLAY1UCHARTABUCHARIWRITE_COM0X80FORI0I8ISD_SENDDATAENDADRISD_SENDDATAENDADR8ISD_SENDDATA0X00SS1ISD_SENDDATA0X05/RD_STATUS状态寄存器ISD_SENDDATA0X00STATUISD_SENDDATA0X00SS1WHILESTATU/RD_STATUS状态寄存器ISD_SENDDATA0X00STATUISD_SENDDATA0X00SS1电子综合设计与制作实践设计报告21ISD_SENDDATA0X07/PD掉电ISD_SENDDATA0X00SS1/功能发送数据返回接收数据UCHARISD_SENDDATAUCHARBUF_ISDUCHARI,DATBUF_ISDSCLK1SS0FORI0I1IFMISODAT|0X80SCLK1I_DELAYMOSI0RETURNDAT五蜂鸣器发声设计蜂鸣器的工作原理蜂鸣器发声原理是电流通过电磁线圈,使电磁线圈产生磁场来驱动振动膜发声的,因此需要一定的电流才能驱动它,单片机IO引脚输出的电流较小,单片机输出的TTL电平基本上驱动不了蜂鸣器,因此需要增加一个电流放大的电路,一多半采取一个三极管来放大驱动蜂鸣器。蜂鸣器的正极接到Q1的集电极C电子综合设计与制作实践设计报告22极上面,蜂鸣器的负极地,三极管发射极E极接电源VCC,基极B经过限流电阻R33后由单片机的P31引脚控制,当P31输出高电平时,三极管T1截止,没有电流流过线圈,蜂鸣器不发声;当P31输出低电平时,三极管导通,这样蜂鸣器的电流形成回路,发出声音。因此,我们可以通过程序控制P31脚的电平来使蜂鸣器发出声音和关闭声音。程序中改变单片机P31引脚输出波形的频率,就可以调整控制蜂鸣器音调,产生各种不同音色音调的声音,另外改变P31输出电平的高低电平占空比则可以控制蜂鸣器的声音大小。蜂鸣器简单发声程序VOIDBEEP_UINTFRQ,UINTTIMEUINTTT1,TT2FORTT1TIMETT10TT1BEEP0FORTT2FRQTT20TT2BEEP1FORTT2FRQTT20TT2蜂鸣器播放歌曲首先,蜂鸣器按其结构可分为两种蜂鸣器压电式、电磁式。有源蜂鸣器内部带振荡源,无源蜂鸣器内部不带振荡源。这里所说的“源”不是指“电源”,而是指“振荡源”。有源蜂鸣器直接接上额定电源就可连续发声而无源的需要在其供电端上加上高低不断变化的电信号才可以驱动发出声音。对于无源的我们可以先让BUZZ1接着延时一小段时间,在又关闭BUZZ即BUZZ0这样才能听到连续变化的声音。蜂鸣器播放歌曲程序UNSIGNEDCHARTIMER0H,TIMER0L,TIME/单片机晶振采用12MHZ/频率半周期数据表高八位本软件共保存了四个八度的28个频率数据CODEUNSIGNEDCHARFREQH0XF2,0XF3,0XF5,0XF5,0XF6,0XF7,0XF8,/低音12345670XF9,0XF9,0XFA,0XFA,0XFB,0XFB,0XFC,0XFC,/1,2,3,4,5,6,7,I0XFC,0XFD,0XFD,0XFD,0XFD,0XFE,/高音2345670XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFF/超高音1234567/频率半周期数据表低八位CODEUNSIGNEDCHARFREQL0X42,0XC1,0X17,0XB6,0XD0,0XD1,0XB6,/低音12345670X21,0XE1,0X8C,0XD8,0X68,0XE9,0X5B,0X8F,/1,2,3,4,5,6,7,I0XEE,0X44,0X6B,0XB4,0XF4,0X2D,/高音2345670X47,0X77,0XA2,0XB6,0XDA,0XFA,0X16/超高音1234567/电子综合设计与制作实践设计报告23/世上只有妈妈好数据表要想演奏不同的乐曲,只需要修改这个数据表CODEUNSIGNEDCHARSSZYMMH56,2,3,5,2,1,3,2,2,5,2,2,1,3,2,6,2,1,5,2,1,6,2,4,3,2,2,5,2,1,6,2,1,5,2,2,3,2,2,1,2,1,6,1,1,5,2,1,3,2,1,2,2,4,2,2,3,3,2,1,5,2,2,5,2,1,6,2,1,3,2,2,2,2,2,1,2,4,5,2,3,3,2,1,2,2,1,1,2,1,6,1,1,1,2,1,5,1,6,0,0,0/可惜不是你数据表CODEUNSIGNEDCHARSSZYMMH16,2,1,5,3,1,3,3,1,1,3,1,2,3,1,2,3,4,5,2,1,5,3,1,3,3,1,5,2,1,1,3,1,1,3,4,6,2,1,5,3,1,3,3,1,1,3,1,7,2,2,7,2,1,1,3,1,2,3,1,4,3,3,3,3,1,3,3,1,3,3,4,0,0,0/北京欢迎你数据表CODEUNSIGNEDCHARSSZYMMH23,2,2,5,2,2,1,3,1,5,2,1,6,2,2,6,2,1,5,2,1,3,2,1,3,2,1,5,2,1,5,2,4,3,2,1,5,2,1,6,2,1,1,3,1,2,3,1,1,3,1,5,2,1,3,2,1,2,2,1,5,2,1,3,2,1,3,2,1,3,2,2,0,0,0/送别数据表CODEUNSIGNEDCHARSSZYMMH35,2,2,3,2,1,5,2,1,1,3,4,6,2,2,1,3,1,6,2,1,5,2,4,5,2,2,1,2,1,2,2,1,3,2,2,2,2,1,1,2,1,2,2,4,0,0,0/中国人数据表CODEUNSIGNEDCHARSSZYMMH46,2,3,1,3,1,6,2,1,5,2,1,6,2,3,1,3,1,6,2,1,5,2,1,6,2,1,5,2,1,6,2,1,5,2,1,3,2,4,6,2,2,6,2,1,5,2,1,3,2,1,2,2,1,3,2,1,5,2,1,1,3,1,7,2,1,6,2,1,5,2,1,6,2,4,1,3,2,7,2,2,6,2,2,5,2,2,6,2,8,0,0,0/报警数据表CODEUNSIGNEDCHARSSZYMMH61,3,1,6,1,1,1,3,1,6,1,1,1,3,1,6,1,1,1,3,1,6,1,1,1,3,1,6,1,1,1,3,1,6,1,1,0,0,0/电子综合设计与制作实践设计报告24VOIDT0INTINTERRUPT1/T0中断程序,控制发音的音调TR00/先关闭T0BEEPBEEP/输出方波,发音TH0TIMER0H/下次的中断时间,这个时间,控制音调高低TL0TIMER0LTR01/启动T0/VOIDDELAY_FMQUNSIGNEDCHART/延时程序,控制发音的时间长度UNSIGNEDCHART1UNSIGNEDLONGT2/TT2FORT10T1重庆大学出版社熊壮编著2清华大学出版社任勇王永东何伟编著3北京航空航天大学出版社李华编著3机械工业出版社沈杰等编著电子综合设计与制作实践设计报告27附录一元器件清单二工具名称数量STC89C52单片机1个IDS1760语音芯片1个LCD液晶显示屏1个扬声器1个发光二极管2个12MHZ晶振1个蜂鸣器1个底座若干51K欧电阻3个1K欧电阻7个47K欧电阻3个10K欧电阻2个200欧电阻1个100欧电阻8个100欧排阻2个33PF电容3个30PF电容2个22UF电解电容1个47UF电容3个01UF电容5个NPN三极管6个按键22个导线若干麦克风1个10K滑动变阻器1个名称数量电烙铁1个钳子1个镊子1个平头螺丝刀1个焊锡、松香、导线若干电子综合设计与制作实践设计报告28三硬件设计总图P102345678RST9/XDINWALGEOVCUBKCDMSANLPOFYKEYU三Q四源程序INCLUDE/文件库包含INCLUDEDEFINEUCHARUNSIGNEDCHARDEFINEUINTUNSIGNEDINTDEFINEKEYPORTP2/端口定义SBITRSP35SBITLCDENP34SBITLCDRWP30SBITBEEPP31SBITSSP10电子综合设计与制作实践设计报告29SBITSCLKP11SBITMOSIP12SBITMISOP13VOIDI_DELAYVOID/函数声明VOIDDELAY_MSUINTDVOIDPLAYUCHARNUMUCHARISD_SENDDATAUCHARBUF_ISDUCHARKEYPROVOIDVOIDDISPLAY2UCHARTABUCHARTEMPUCHARSTATUUINTSTARTADR,ENDADRUCHARDATACORRECT_CODE1,2,3,4,5,6/数据定义UCHARDATACORRECT_CODE_QX4,8,3,7UCHARDATASAVE_CODE6UCHARDATASAVE_CODE16UCHARDATASAVE_CODE_QX4UCHARCODEWELCOME“WELCOME“UCHARCODEOPENED“LOCKISOPENED“UCHARCODEHELLO“HELLO“UCHARCODEENTER“ENTERYOURCODE“UCHARCODEENTER_“ENTERADCODE“UCHARCODESORRY“SORRY“UCHARCODE_DIG“CODEMUST6DIG“UCHARCODE_DIG_QX“CODEMUST4DIG“UCHARCODEERROR_CODE“CODEERROR“UCHARCODEMODIFY_“MODIFYYOURCODE“UCHARCODEADMINI_“ADMINISTRATOR“UCHARCODEYOU_CODE“YOURCODEIS“UCHARCODESIMPLE“TOOSIMPLE“UCHARCODEOR_NOT“ORNOT“UCHARCODEYES_“YES“UCHARCODENEW_CODE“ENTERNEWCODE“UCHARCODEOLD_CODE“ENTEROLDCODE“UCHARCODERENEW_CODE“CONFIRMNEWCODE“UCHARCODECODM“CODEMODIFY“UCHARCODESUCCESS“SUCCESSFULLY“UCHARCODEFAIL“FAILED“UCHARCODEWAIT“PLEASEWAIT“UCHARCODEMODE_D“DEFAULTMODE“UCHARCODEMODE_1“SIMPLEMODE“UCHARCODE_LARGE“LARGE“电子综合设计与制作实践设计报告30UCHARCODE_SMALL“SMALL“UCHARCODEDIS1“CQUNIVERSITY“UCHARCODEDATE“20120706“UCHARFLAG0FLAG_QX0/标志位定义UCHARCONFLAG0,OUT0UCHARCONFLAG_QX0UCHARJ0,J_QX0,KKUCHARCOUNTER0UCHARCOUNTER_QX0UCHART0,MIAO30UCHARXXX0/蜂鸣器播放音乐/蜂鸣器播放音乐/蜂鸣器播放音乐/UNSIGNEDCHARTIMER0H,TIMER0L,TIME/单片机晶振采用12MHZ/频率半周期数据表高八位本软件共保存了四个八度的28个频率数据CODEUNSIGNEDCHARFREQH0XF2,0XF3,0XF5,0XF5,0XF6,0XF7,0XF8,/低音12345670XF9,0XF9,0XFA,0XFA,0XFB,0XFB,0XFC,0XFC,/1,2,3,4,5,6,7,I0XFC,0XFD,0XFD,0XFD,0XFD,0XFE,/高音2345670XFE,0XFE,0XFE,0XFE,0XFE,0XFE,0XFF/超高音1234567/频率半周期数据表低八位CODEUNSIGNEDCHARFREQL0X42,0XC1,0X17,0XB6,0XD0,0XD1,0XB6,/低音12345670X21,0XE1,0X8C,0XD8,0X68,0XE9,0X5B,0X8F,/1,2,3,4,5,6,7,I0XEE,0X44,0X6B,0XB4,0XF4,0X2D,/高音2345670X47,0X77,0XA2,0XB6,0XDA,0XFA,0X16/超高音1234567/世上只有妈妈好数据表要想演奏不同的乐曲,只需要修改这个数据表CODEUNSIGNEDCHARSSZYMMH56,2,3,5,2,1,3,2,2,5,2,2,1,3,2,6,2,1,5,2,1,6,2,4,3,2,2,5,2,1,6,2,1,5,2,2,3,2,2,1,2,1,6,1,1,5,2,1,3,2,1,2,2,4,2,2,3,3,2,1,5,2,2,5,2,1,6,2,1,3,2,2,2,2,2,1,2,4,5,2,3,3,2,1,2,2,1,1,2,1,6,1,1,1,2,1,5,1,6,0,0,0/可惜不是你数据表电子综合设计与制作实践设计报告31CODEUNSIGNEDCHARSSZYMMH16,2,1,5,3,1,3,3,1,1,3,1,2,3,1,2,3,4,5,2,1,5,3,1,3,3,1,5,2,1,1,3,1,1,3,4,6,2,1,5,3,1,3,3,1,1,3,1,7,2,2,7,2,1,1,3,1,2,3,1,4,3,3,3,3,1,3,3,1,3,3,4,0,0,0/北京欢迎你数据表CODEUNSIGNEDCHARSSZYMMH23,2,2,5,2,2,1,3,1,5,2,1,6,2,2,6,2,1,5,2,1,3,2,1,3,2,1,5,2,1,5,2,4,3,2,1,5,2,1,6,2,1,1,3,1,2,3,1,1,3,1,5,2,1,3,2,1,2,2,1,5,2,1,3,2,1,3,2,1,3,2,2,0,0,0/送别数据表CODEUNSIGNEDCHARSSZYMMH35,2,2,3,2,1,5,2,1,1,3,4,6,2,2,1,3,1,6,2,1,5,2,4,5,2,2,1,2,1,2,2,1,3,2,2,2,2,1,1,2,1,2,2,4,0,0,0/中国人数据表CODEUNSIGNEDCHARSSZYMMH46,2,3,1,3,1,6,2,1,5,2,1,6,2,3,1,3,1,6,2,1,5,2,1,6,2,1,5,2,1,6,2,1,5,2,1,3,2,4,6,2,2,6,2,1,5,2,1,3,2,1,2,2,1,3,2,1,5,2,1,1,3,1,7,2,1,6,2,1,5,2,1,6,2,4,1,3,2,7,2,2,6,2,2,5,2,2,6,2,8,0,0,0/报警数据表CODEUNSIGNEDCHARSSZYMMH61,3,1,6,1,1,1,3,1,6,1,1,1,3,1,6,1,1,1,3,1,6,1,1,1,3,1,6,1,1,1,3,1,6,1,1,0,0,0/VOIDT0INTINTERRUPT1/T0中断程序,控制发音的音调TR00/先关闭T0BEEPBEEP/输出方波,发音TH0TIMER0H/下次的中断时间,这个时间,控制音调高低TL0TIMER0LTR01/启动T0/电子综合设计与制作实践设计报告32VOIDDELAY_FMQUNSIGNEDCHART/延时程序,控制发音的时间长度UNSIGNEDCHART1UNSIGNEDLONGT2/TT2FORT10T18ISD_SENDDATAENDADRISD_SENDDATAENDADR8ISD_SENDDATA0X00SS1ISD_SENDDATA0X05/RD_STATUS状态寄存器ISD_SENDDATA0X00STATUISD_SENDDATA0X00SS1WHILESTATU/RD_STATUS状态寄存器ISD_SENDDATA0X00STATUISD_SENDDATA0X00SS1ISD_SENDDATA0X07/PD掉电ISD_SENDDATA0X00SS1/功能发送数据返回接收数据UCHARISD_SENDDATAUCHARBUF_ISDUCHARI,DATBUF_ISDSCLK1SS0FORI0I1IFMISO电子综合设计与制作实践设计报告35DAT|0X80SCLK1I_DELAYMOSI0RETURNDAT/延时函数/VOIDDELAYUINTZUINTX,YFORYZY0YFORX100X0XVOIDI_DELAYVOIDUCHARIFORI0I0CFORB142B0BFORA2A0A/LCD滚动显示部分/LCD滚动显示部分/LCD滚动显示部分/VOIDDELAY_GDINTMS/延时子程序INTIWHILEMSFORI0I0TT1BEEP0FORTT2FRQTT20TT2BEEP1FORTT2FRQTT20TT2/键盘扫描部分/键盘扫描部分/键盘扫描部分/UCHARKEYSCANVOID/键盘扫描函数,使用行列逐级扫描法UCHARVALKEYPORT0XF0/高四位置高,低四位拉低IFKEYPORT0XF0/表示有按键按下DELAY10/去抖IFKEYPORT0XF0/表示有按键按下KEYPORT0XFE/检测第一行IFKEYPORT0XFEVALKEYPORTVAL0X0EWHILEKEYPORT0XFEDELAY10/去抖电子综合设计与制作实践设计报告39WHILEKEYPORT0XFERETURNVALKEYPORT0XFD/检测第二行IFKEYPORT0XFDVALKEYPORTVAL0X0DWHILEKEYPORT0XFDDELAY10/去抖WHILEKEYPORT0XFDRETURNVALKEYPORT0XFB/检测第三行IFKEYPORT0XFBVALKEYPORTVAL0X0BWHILEKEYPORT0XFBDELAY10/去抖WHILEKEYPORT0XFBRETURNVALKEYPORT0XF7/检测第四行IFKEYPORT0XF7VALKEYPORTVAL0X07WHILEKEYPORT0XF7DELAY10/去抖WHILEKEYPORT0XF7RETURNVALRETURN0XFF/按键值处理函数,返回扫键值/UCHARKEYPROVOIDSWITCHKEYSCANCASE0XEERETURN1BREAK/1按下相应的键显示相对应的码值电子综合设计与制作实践设计报告40CASE0XDERETURN2BREAK/2CASE0XBERETURN3BREAK/3CASE0XEDRETURN4BREAK/4CASE0XDDRETURN5BREAK/5CASE0XBDRETURN6BREAK/6CASE0XEBRETURN7BREAK/7CASE0XDBRETURN8BREAK/8CASE0XBBRETURN9BREAK/9CASE0XE7RETURN10BREAK/删除CASE0XD7RETURN0BREAK/0模式CASE0XB7RETURN11BREAK/确定CASE0X7ERETURN13BREAK/开启CASE0X7DRETURN14BREAK/清零CASE0X7BRETURN15BREAK/退出CASE0X77RETURN16BREAK/权限DEFAULTRETURN12BREAK/LCD写指令写数据初始化/LCD写指令写数据初始化/LCD写指令写数据初始化/VOIDWRITE_COMUCHARCOMP0COMRS0LCDEN0DELAY5LCDEN1DELAY5LCDEN0VOIDWRITE_DATEUCHARDATEP0DATERS1LCDEN0DELAY5LCDEN1DELAY5LCDEN0电子综合设计与制作实践设计报告41VOIDINITLCDEN0WRITE_COM0X38DELAY10WRITE_COM0X0CDELAY10WRITE_COM0X06DELAY10WRITE_COM0X01DELAY10/定时中断/VOIDINTRUPTTMOD0X10TH16553650000/256TL16553650000256EA1ET11TR11VOIDW_CHTUCHARDATUCHARDAT1,DAT2DAT1DAT/10DAT2DAT10WRITE_COM0X800X400X06WRITE_DATE0X30DAT1WRITE_DATE0X30DAT2VOIDT_RUPTINTERRUPT3TH16553650000/256TL16553650000256T0IFT020T00MIAOIFMIAO0W_CHTMIAOELSETR10电子综合设计与制作实践设计报告42/显示部分/VOIDDISPLAY1UCHARTABUCHARIWRITE_COM0X80FORI0I0RETURN2/小了BREAKIFD22|C21|C32|C3C13RETURN1ELSERETURN0/密码比对部分/VOIDCONFIRMUCHARKFORK0K0COUNTER0WRITE_COM0X800X40J1/确定删除对象WRITE_DATE/显示空格即为删除SAVE_CODEJ0/删除后数据清零WRITE_COM0X800X40J/为下次输入数据时写好位置,必须是在最后一个后面ELSEFLAG1VOIDDELETE_RENEWIFJ0COUNTER0WRITE_COM0X800X40J1/确定删除对象WRITE_DATE/显示空格即为删除SAVE_CODE1J0/删除后数据清零WRITE_COM0X800X40J/为下次输入数据时写好位置,必须是在最后一个后面ELSE电子综合设计与制作实践设计报告45FLAG1/权限密码删除最后一位/VOIDDELETE_QXIFJ_QX0COUNTER_QX0WRITE_COM0X800X40J_QX1/确定删除对象WRITE_DATE/显示空格即为删除SAVE_CODE_QXJ_QX0/删除后数据清零WRITE_COM0X800X40J_QX/为下次输入数据时写好位置,必须是在最后一个后面
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 邢台医学高等专科学校《大数据管理》2023-2024学年第一学期期末试卷
- 中国音乐学院《嵌入式系统及应用》2023-2024学年第一学期期末试卷
- 农产品跨境贸易合作协议书
- 农业生产农产品质量安全协议
- 品牌合作推广协议书说明
- 中国外汇储备规模与通货膨胀的联动效应及政策调控研究
- 山东省淄博周村区五校联考2026届中考物理押题卷含解析
- 景区能耗管理办法
- 教室用水管理办法
- 景区考核管理办法
- 徐州市贾汪区中小学校选调教师笔试真题2024
- 电气设备采购安装协议
- 铁道机车总体考试题库及答案
- 家庭教育健康讲座:做智慧父母育幸福孩子
- 2024-2025学年鲁教版八年级数学下学期期末模拟卷(全解全析)
- 2025年财会业务知识竞赛题库及答案(600题)
- 刚出炉的初二数学试卷
- 民办培训机构终止时学员及教师安置情况报告范文
- 2025年广东省中考英语试题(附答案)
- 2025版新《中华人民共和国治安管理处罚法》全文课件(原创)
- 物业环境部培训
评论
0/150
提交评论