欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    数字电路课程设计.doc

    • 资源ID:4264300       资源大小:2.86MB        全文页数:30页
    • 资源格式: DOC        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数字电路课程设计.doc

    课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 数字式电子锁的设计与实现 初始条件: 本设计既可以使用集成电路和必要的元器件等,也可以使用单片机系统构建数字密码电子锁。自行设计所需工作电源。电路组成原理框图如图1,数字密码锁的实际锁体一般由电磁线圈、锁栓、弹簧和锁柜构成。当线圈有电流时,产生磁力,吸动锁栓,即可开锁。反之则不开锁。 图1 数字式电子锁原理框图要求完成的主要任务: (包括课程设计工作量及技术要求,以及说明书撰写等具体要求)1、课程设计工作量:1周。2、技术要求:1)课程设计中,锁体用LED代替(如“绿灯亮”表示开锁,“红灯亮”表示闭锁)。2)其密码为4位二进制代码,密码可以通过密码设定电路自行设定。3)开锁指令为串行输入码,当开锁密码与存储密码一致时,锁被打开。当开锁密码与存储密码不一致时,可重复进行,若连续三次未将锁打开,电路则报警并实现自锁。(报警动作为响1分钟,停10秒)4)选择电路方案,完成对确定方案电路的设计。计算电路元件参数与元件选择、并画出总体电路原理图,阐述基本原理。安装调试设计电路。3、查阅至少5篇参考文献。按武汉理工大学课程设计工作规范要求撰写设计报告书。全文用A4纸打印,图纸应符合绘图规范。时间安排:1、 2014 年 6 月 23 日,布置作课设具体实施计划与课程设计报告格式的要求说明。2、 2014 年 6 月 24 日至 2014 年 6 月 25 日,方案选择和电路设计。3、 2014 年 6 月 26 日至 2014 年 6 月 29 日,电路调试和设计说明书撰写。4、 2014 年 6 月 30 日,上交课程设计成果及报告,同时进行答辩。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录摘要3Abstract31绪论42设计内容及要求42.1 设计的初始条件及主要任务42.2 设计思路43. 模块硬件电路设计53.1 电路的总体构成53.2单片机最小系统53.2.1 复位以及振荡电路63.3 矩阵键盘输入73.4 显示部分83.4.1 1602液晶显示83.4.2 声光显示103.5 串口输入电路113.6 PROEUS软件介绍114模块软件程序设计124.1 矩阵键盘键值读取124.2 1602液晶显示模块124.3 延时模块124.4 密码读取模块134.5 密码设置模块134.6 密码比较模块144.7 声光状态模块144.8 KEIL 软件介绍145 仿真及调试165.1 仿真图165.2 综合逻辑功能检测166心得体会17参考文献19附录1.整体设计器件清单20附录2.数字式电子密码锁实物图20附录3.数字式密码电子锁程序源代码21摘要电子密码锁的设计主要有四部分组成:由单片机最小系统、4*4矩阵键盘接口电路、1602液晶显示电路、声光显示组成。实现锁闭状态显示、密码输入错误超次(大于三次)异常,系统锁定声光告警、初始化设置用户密码等基本的密码锁的功能。选用STC89C52单片机,运用Proteus仿真软件对电路进行仿真,运用Keil uVision4软件编写单片机的C语言程序,完成本次课程设计。关键字:4*4矩阵键盘,STC89C52,密码锁,声光告警AbstractThe design of electronic password lock is mainly composed of four parts: the smallest single-chip microcomputer system,4*4 matrix keyboard interface circuit, 1602 liquid crystal display circuit, an acousto-optic display. To realize locking state display, the password input error over time (more than three) anomaly, system locking sound light alarm, initialize the set user password and other basic password lock function. STC89C52 single chip, using Proteus simulation software for simulation of the circuit, using the Keil uVision4 software MCU C language program, completed the course design.Keywords: 4*4 matrix keyboard,STC89C52,password lock,sound and lightalarm1绪论随着人们生活水平的提高,家庭防盗这一问题越来越引人注目,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的青睐。设计本课题时构思了两种方案:一种是用以MSP430为主控芯片的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。考虑到数字电路方案电路复杂,控制度比较低,难以满足现在的安全需求,所以本设计采用前一种方案。本次课程设计就是利用所学的数字电路知识,忽略复杂的实物锁体器件的驱动,简单模拟实现数字密码锁原理功能,从而复习相关知识,达到理论与实践相结合的目的。2设计内容及要求2.1 设计的初始条件及主要任务课程设计中,锁体用LED代替(如“绿灯亮”表示开锁,“红灯亮”表示闭锁)。其密码为方4位(或8位)二进制代码(代码自设定)。开锁指令为串行输入码,当开锁密码与存储密码一致时,锁被打开。当开锁密码与存储密码不一致时,可重复进行,若连续三次未将锁打开,电路则报警并实现自锁。(报警动作为响1分钟,停10秒)选择电路方案,完成对确定方案电路的设计。计算电路元件参数与元件选择、并画出总体电路原理图,阐述基本原理。安装调试设计电路。 2.2 设计思路本系统由单片机系统、矩阵键盘、LED显示和报警系统组成。系统能完成开锁、超时报警、超次锁定、声光提示、修改用户密码基本的密码锁的功能,本系统成本低廉,功能实用。本次的设计任务,运用集成逻辑器件组成的门电路也可以完成,但是考虑到输入信号的数量、逻辑判断的复杂度可以预知其数字逻辑电路会是相当复杂的,因此基于单片机来完成此次设计成为了总体设计方案的首选。采用以单片机为核心的控制方案由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。一般来说在选取单片机时从下面几个方面考虑:性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。基于以上因素,结合本次设计任务的特点,本设计选用单片机STC89C52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁信号判断、状态保存、电平控制的功能。3. 模块硬件电路设计3.1 电路的总体构成单片机最小系统声光显示模块1602液晶显示模块矩阵键盘图2-2-1 硬件模块关系设计从总体可以分为硬件与软件两个部分。在硬件部分中,由单片机最小系统、矩阵键盘、1602液晶显示、声光显示这几个部分,其相关控制关系如图2-2-1.;在软件部分中,由矩阵键盘键值读取、1602液晶显示函数、延时模块、密码读取模块、密码设置模块、密码比较模块、声光状态模块,等几部分组成。3.2单片机最小系统此为一个单片机最小系统,其有P0P3 四组I/O口,可以进行相关的电平状态读取与图3.1.1单片机最小系统控制操作。开关SW_RST为复位开关,当其接通,单片机RST9复位端至于高电位,满足一定时长后,单片机会进行复位操作,重新开始工作。Y1、C1.2、C1.3组成了单片机的振荡电路,为单片机系统提供稳定可靠地时钟信号,协助单片机完成相关操作。Header9为一组排阻,座位上拉电阻。 3.2.1 复位以及振荡电路如下图2所示,既为STC89C52RC复位和振荡电路结构。时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位。本设计晶振选择频率为12MHZ,电容选择33pF。经计算得单片机工作胡机器周期为:12×(1÷12M)=1us。3.3 矩阵键盘输入本设计准备使用4×4键盘,对应的电路如图3.2.109输入相应的数字;在输入密码是LR分别实现输入位置的左右移动,B为退格键,C为清除键,清除当前所有的输入字符, S为功能扩展键,暂时未定义,E为确认键。由于本设计所用到的按键数量较多而不适合用独按键立式键盘。采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。 图3.2.1 4×4矩阵键盘 3.4 显示部分 3.4.1 1602液晶显示如图为1602液晶的引脚分布。1,2为液晶显示供电,3接滑动变阻器改变3的相对电位,调节显示对比度。4,5,6为液晶的控制端,调节工作状态。714为液晶的数据输入端,15、16为液晶背光电源接口。17,18可悬空。 3.4.2 声光显示光显示有红绿两种颜色的发光二极管组成,负极接单片机引脚,正极结一个限流电阻后接地。当单片机输出高电平,其不亮,当单片机输出低电平,二极管点亮。(图略)声信号告警有长鸣蜂鸣器与一个三极管、电阻组成,三极管在单片机的控制下驱动蜂鸣器正常工作。长鸣蜂鸣器,在给予有效电平时可以不间断的以一定的频率发出蜂鸣。如图。 3.5 串口输入电路如下图为单片机的程序烧录串口电路。由于STC89C52使用串口方式下载程序,因此需要使用MAX232完成程序下载的处理工作。3.6 PROEUS软件介绍 Proteus软件是英国Lab Center Electronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前比较好的仿真单片机及外围器件的工具。Proteus从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430等,2010年又增加了Cortex和DSP系列处理器,并持续增加其他系列处理器模型。在编译方面,它也支持IAR、Keil和MATLAB等多种编译器。Proteus可提供的仿真元器件资源:仿真数字和模拟、交流和直流等数千种元器件,有30多个元件库。Proteus可提供的仿真仪表资源 :示波器、逻辑分析仪、虚拟终端、SPI调试器、I2C调试器、信号发生器、模式发生器、交直流电压表、交直流电流表。理论上同一种仪器可以在一个电路中随意的调用。除了现实存在的仪器外,Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似,但功能更多。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗。这些都尽可能减少了仪器对测量结果的影响。Proteus可提供的调试手段 Proteus提供了比较丰富的测试信号用于电路的测试。这些测试信号包括模拟信号和数字信号。在PROTEUS绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。4模块软件程序设计4.1 矩阵键盘键值读取矩阵键盘接P1口,行接低4位,列接高4为。先让行为高,列为低,若有键按下,则所在行为低,得到按键的所在行数,之后令P1口,行为低,列为高,运用相似的方法得到所按键的所在列数,及确定按键位置,返回键值。由于机械键盘会出现信号抖动的情况,固在发现有按键后延时5毫秒再次确定,若让有按键,证明按键稳定,否则认为接收到的是抖动信号,不予处理。4.2 1602液晶显示模块1602具有三个工作状态控制端,调节他们的高低变化配合数据口的信息,可以显示2×16的字母或者数字,通过子函数可以实现检测初始化LCD、写指令到LCD、LCD状态、LCD清屏、输入一个字节数据到LCD、LCD光标定位到x处、LCD光标归位、输入一个字符到LCD、输入一个字符串到LCD等功能。4.3 延时模块一个程序会有许多地方需要进行延时操作,例如矩阵键盘的消抖延时。一般延时可以通过空循环与中断响应两种方法进行。由于本程序对于时间精度要求不高,故使用相对简单的空循环的方法进行延时。进行实验,单片机每空循环110次耗时1ms。故用两次循环,里面一次空循环110,外面的一次由输入决定循环次数,这样就会进行输入数值时长的延时。4.4 密码读取模块首先预读入密码的字符数组清零,显示位置清空,然后读取键值。先判断此时是否是在第九个键值输入了数字键值,如果是不响应重新读入,这样可以防止读入字符串溢出,造成密码读取错误。然后通过switch语句处理键值(字母键值),并将读取位置、显示位置进行相关调整;如果输入的是数字有效键值,存入当前指向的字符数组空间,其后将键值变量清零准备读取下一个键值。进行循环读取,直到成功读取8位密码或者因为输入了确定键提前完成读取工作。4.5 密码设置模块在系统进行初始化时,要求设置密码。整体思路是要求读取一组密码,保存在临时空间,然后再次读取密码,如果相同,证明设置成功,将新密码覆盖进标准密码数组里,如果两次的密码不同,显示错误信息,要求重新输入。图4.5.1密码设置模块第一次读入密码第二次读入密码保存密码,提示成功判断两次密码相同不相同模块启动验证密码判断错误次数显示错误信息并返回发出报警 系统锁死发出报警 系统锁死连续错误不小于三次连续错误次数小于三次密码正确密码错误4.6 密码比较模块该模块将输入密码字符串与设定密码字符串比较。如果相同,执行开锁动作并将输入错误次数清零;如果不同,累计错误次数,如果是第三次输入错误,系统锁死并发出声光告警;如果小于三次,显示密码错误信息,返回密码输入环节。逻辑框图如图4.6.1。图4.6.1密码比较模块 4.7 声光状态模块本模块通过读取相关控制变量,控制声光部件的状态。当闭锁状态点亮红灯,开锁状态点亮绿灯;当需要进行异常告警时,利用延时函数周期性的变换蜂鸣器的响静。鸣响状态下,响250ms,停250ms;鸣响状态保持50s后,静止10s,后继续进入鸣响状态,如此反复。 4.8 KEIL 软件介绍Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。Keil Vision4,2009年2月发布Keil Vision4,Keil Vision4引入灵活的窗口管理系统,使开发人员能够使用多台监视器,并提供了视觉上的表面对窗口位置的完全控制的任何地方。新的用户界面可以更好地利用屏幕空间和更有效地组织多个窗口,提供一个整洁,高效的环境来开发应用程序。新版本支持更多最新的ARM芯片,还添加了一些其他新功能。2011年3月ARM公司发布最新集成开发环境RealView MDK开发工具中集成了最新版本的Keil uVision4,其编译器、调试工具实现与ARM器件的最完美匹配。Keil C51单片机软件开发系统的整体结构。C51工具包的整体结构,uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。本次实验,通过keil软件进行单片机程序编译,生成”.Hex”文件,再将该文件的在proteus中运行,即可看到仿真效果。5 仿真及调试5.1 仿真图5.2 综合逻辑功能检测按照前述模块进行设计,制作实物电路、编写软件程序代码,然后进行相关调试。将程序代码录进硬件系统中进行总体综合测试。相关流程如下:序号测试内容具体操作状态1系统初始化,LCD显示系统上电,调节显示部分的滑动变阻器,调节LCD显示对比度正确进入密码设置状态LCD显示正常2验证键盘按键进行有序的按键操作,观察LCD显示器状态,确认键盘是否正常可以通过矩阵键盘完成正确的键值输入3密码读入、设置密码模块、密码比较模块检测进行两次密码设置操作,先进行错误设置,后进行正确设置密码操作模块可以正确的对相应数组进行正确处理4验证密码模块与声光模块的配合先进行正确密码输入,然后多次进行多次错误密码输入系统的函数间调度、衔接操作正确,未发现错误。5测试密码模块可靠性多次输入密码,随机性的决定密码的正误,看系统响应状态系统的密码模块可靠,在且只在连续三次错误时进行异常告警。 实验过程中遇到很多问题。首先电路图的问题,引脚太多,因此总是连错。由于对芯片引脚功能不了解,因此,进度很慢,而且易出错,修改了很多次。解决了电路图问题,然后就是程序问题,程序很多,一个细微的错误,就会导致仿真失败。在仿真过程中,根据液晶显示器的显示,来修改程序和电路图,最后基本能显示课程设计的要求。进行软件测试,基本能实现课设要求。当开锁密码与存储密码一致时,锁被打开。当开锁密码与存储密码不一致时,可重复进行,若连续三次未将锁打开,电路则报警并实现自锁。(报警动作为响1分钟,停10秒)6心得体会本次课程设计我学会了很多。本次课程设计,我采用单片机最小系统设计的电路,该系统成本低廉,功能实用,而运用集成逻辑器件组成的门电路也可以完成,但是考虑到输入信号的数量、逻辑判断的复杂度可以预知其数字逻辑电路会是相当复杂的,因此选择了单片机来完成此次设计。在本次设计中,我学会了对于键盘扫描程序设计,以及LM016L液晶显示器功能,运用,及芯片MAX232功能,89C52的功能。此次设计,我收获很多。参考文献1 伍时和等数字电子技术基础北京:清华大学出版社,2009.4.2 张天凡等51单片机C语言开发详解北京:电子工业出版社,2008.63 徐士良C语言程序设计教程. 人民邮电出版社,2001年4 马忠梅等单片机的C语言应用程序设计北京:北京航空航天大学出版社,2007.15 李广弟、朱月. 单片机基础. 第三版,北京航空航天大学出版社6 梅丽凤等. 单片机原理及接口技术. 北京: 清华大学出版社;北京交通大学出 版社,2004.2 附录1.整体设计器件清单名称型号数量备注单片机芯片STC89C521通讯芯片MAX2321串行接口DB91石英晶振12M1瓷片电容3321054电解电容4.7uf1电位器10K1电阻1K410K110K排阻1LED红色2绿色1长鸣蜂鸣器1三极管85501LCD显示模块10621按键开关17自锁开关1排针若干导线若干万用表1电工工具1套附录2.数字式电子密码锁实物图附录3.数字式密码电子锁程序源代码#include"reg51.h"#include "string.h"#define LCD_DATA P0 /LCD的数据口/输入方式设置#define LCD_AC_AUTO_INCREMENT0x06 /数据读、写操作后,AC自动增一#define LCD_AC_AUTO_DECREASE0x04 /数据读、写操作后,AC自动减一#define LCD_MOVE_ENABLE0x05 /数据读、写操作,画面平移#define LCD_MOVE_DISENABLE 0x04 /数据读、写操作,画面不动/设置显示、光标及闪烁开、关#define LCD_DISPLAY_ON 0x0C /显示开#define LCD_DISPLAY_OFF 0x08 /显示关#define LCD_CURSOR_ON 0x0A /光标显示#define LCD_CURSOR_OFF 0x08 /光标不显示#define LCD_CURSOR_BLINK_ON 0x09 /光标闪烁#define LCD_CURSOR_BLINK_OFF 0x08 /光标不闪烁/光标、画面移动,不影响DDRAM#define LCD_LEFT_MOVE 0x18 /LCD显示左移一位#define LCD_RIGHT_MOVE 0x1C /LCD显示右移一位#define LCD_CURSOR_LEFT_MOVE 0x10 /光标左移一位#define LCD_CURSOR_RIGHT_MOVE 0x14 /光标右移一位/工作方式设置#define LCD_DISPLAY_DOUBLE_LINE0x38 /两行显示#define LCD_DISPLAY_SINGLE_LINE 0x30 /单行显示unsigned char code tab44='1','2','3','C', '4','5','6','B', '7','8','9','S', 'L','0','R','E' /键盘键值表unsigned char input_password5=0,0,0,0,'0' /临时读入密码数组unsigned char normal_password5="1234" /密码存储数组unsigned char temp_normal_password5="1234"/临时设定密码数组unsigned char lock=0,miss=0,key=0;/系统环境变量 分别为锁状态、连续错误次数、读入键值sbit beep=P32;/蜂鸣器控制变量sbit LEDR=P34;/开锁指示灯控制变量sbit LEDE=P36;/闭锁指示灯控制变量sbit LCD_BUSY=LCD_DATA7; /LCD忙信号位sbit LCD_RW=P20; /LCD读写控制sbit LCD_RS=P21; /LCD寄存器选择sbit LCD_EN=P22; /LCD使能信号*/void LCD_cls(void);void LCD_write_data(unsigned char);void LCD_initial(void);void LCD_set_position(unsigned char);void LCD_prints(unsigned char *);void LCD_printc(unsigned char); voiddidi();/蜂鸣报警模块函数voidverify_password ();/开锁判断模块函数void Load();/初始化函数void First();voidread_password ();/读入密码模块函数voidSet_password();/设定密码模块函数void delay(unsigned char a);/毫秒延时模块函数unsigned char kbscan(); /键盘扫描模块函数void LCD_check_busy(void) /检测LCD状态 while(1) LCD_EN=0; LCD_RS=0; LCD_RW=1; LCD_DATA=0xff; LCD_EN=1; if(!LCD_BUSY)break; LCD_EN=0;void LCD_cls(void) /LCD清屏 LCD_check_busy(); LCD_RS=0; LCD_RW=0; LCD_DATA=1; LCD_EN=1; LCD_EN=0; void LCD_write_instruction(unsigned char LCD_instruction) /写指令到LCD LCD_check_busy(); LCD_RS=0; LCD_RW=0; LCD_DATA=LCD_instruction; LCD_EN=1; LCD_EN=0; void LCD_write_data(unsigned char LCD_data) /输出一个字节数据到LCD LCD_check_busy(); LCD_RS=1; LCD_RW=0; LCD_DATA=LCD_data; LCD_EN=1; LCD_EN=0; void LCD_set_position(unsigned char x) /LCD光标定位到x处 LCD_write_instruction(0x80+x);/*void LCD_go_home(void) /LCD光标归位 LCD_write_instruction(LCD_GO_HOME);*/void LCD_printc(unsigned char lcd_data) /输出一个字符到LCD LCD_write_data(lcd_data);void LCD_prints(unsigned char *lcd_string) /输出一个字符串到LCD unsigned char i=0; while(lcd_stringi!=0x00) LCD_write_data(lcd_stringi); i+; void LCD_initial(void) /初始化LCD LCD_write_instruction(LCD_AC_AUTO_INCREMENT|LCD_MOVE_DISENABLE); LCD_write_instruction(LCD_DISPLAY_ON|LCD_CURSOR_OFF); LCD_write_instruction(LCD_DISPLAY_DOUBLE_LINE); LCD_cls();/*Function:delay(unsigned char t)*Input Variables:t<256*Return Variables:None*Usage:通过读入的时间值进行延时*Notes: None*/void delay(unsigned char a)unsigned char i;while(a-)for(i=110;i>0;i-);/*Function:kbscan()*Input Variables:None*Return Variables:key*Usage:将读出的按键保存在全局变量key,并将其当做函数值返回*Notes: None*/unsigned char code kbscan() /键盘扫描模块函数 unsigned char hang,lie;if(P1!=0x0f)delay(5);/软件消抖if(P1!=0x0f)/判断是否有按键switch(P1&0x0f)case 0x0e:hang=0;break;case 0x0d:hang=1;break;case 0x0b:hang=2;break;case 7:hang=3;break;/扫描行P1=0xf0;P1=0xf0;switch(P1&0xf0)case 0xe0:lie=0;break;case 0xd0:lie=1;break;case 0xb0:lie=2;break;case 0x70:lie=3;break;/扫描列P1=0x0f;while(P1!=0x0f);key=tabhanglie;/确定按键键值elsekey=0;/无按键return (key);/*Function:Load()*Input Variables:None*Return Variables:None*Usage:系统初始化*Notes: None*/void Load()/初始化函数unsigned char i;beep=1;LEDR=0;LEDE=1;key=0;P1=0xf0;P0=0xff;for(i=0;i<5;i+)input_passwordi='0'/系统变量数组清零normal_password5='0'LCD_initial();LCD_set_p

    注意事项

    本文(数字电路课程设计.doc)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开