版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、钦州学院电子电路课程设计报告数字万用表的设计院 系 物理与电子工程学院 专 业 自动化 学 生 班 级 自动本101班 姓 名 _韦永强_ 指导教师单位 学院 指导教师 申康 指导教师职称 讲 师 2013年10月38 / 41摘要在现如今快节奏的生活中,人们对于时间的要求越来越苛刻,很多时候都需要对时间进行规划,然后到时间点就要有时间提醒,这就必须用到时钟提醒装置,亦可称为打铃装置。打铃装置有很多种,比如手机的打铃系统,闹钟的机械打铃装置,广播打铃系统等等,但是日常生活中见得最多的还是校园的自动打铃系统。在学校生活中,每天上下课都离不开打铃系统的使用。打铃器可以为上下课的学生和老师们提供时间
2、提醒,有利于师生对上课和学习的合理安排,同时,也可作为一个提醒学生们作息时间的时间表,让老师和学生都能有一个规律和科学的时间安排。因此,打铃系统的核心部分也是时钟部分,为系统提供时间基准。本设计主要是针对适用于校园打铃系统要求的,其介绍了一种基于单片机的自动打铃系统的设计方法,系统以AT89C52单片机为控制器,以ISD4004时钟芯片为系统提供时间,并在液晶显示器上显示,通过按键可以设定定时打铃时间和打铃的时间间隔。系统软件设计采用C语言来完成,C语言语法简洁,使用方便,用于完成软件设计非常方便。本文提出的设计方法电路简单、成本低廉、实用性强。关键字:打铃器、AT89C52单片机、ISD40
3、04、液晶显示器目录1 前言11.1 选题目的与意义11.2 论文容12 方案设计22.1 方案比较与选择22.1.1 系统方案选择22.1.2 时钟芯片选择22.1.3 显示器件选择32.2 设计方案33 系统硬件设计43.1 硬件电路图43.2 时钟电路43.2.1 时钟电路设计43.3 按键电路53.4 单片机电路63.4.1 单片机简介63.4.2 单片机最小系统电路93.5 显示电路103.6 打铃电路114 系统软件设计124.1 软件设计流程图124.2 读取ISD4004时间程序设计134.3 显示程序设计144.4 按键设定程序设计175 系统调试185.1 元件清单185.
4、2 调试过程186 总结与展望20心得体会20参考文献21附录221 前言1.1 选题目的与意义随着现代科技的发展,管理水平的完善,具有自动提示功能的打铃器能够为企业节省人力资源,减少开支,对做到一体化管理具有很大的帮助。而且自动打铃系统不断影响着我们的学习和生活,它已被广泛应用于各个学校中,它能够实现学校的办公自动化,便于学校的管理。用单片机控制的自动打铃器,充分发挥了体积小,价格便宜,功耗低可靠性好等特点,而且具有可改性,用于学校作息,方便了广大师生。目前自动打铃系统的研究和使用已经非常普与,之所以选这个课题就是看在他的成熟性和普遍性。打铃器可以为上下课的学生和老师们提供时间提醒,同时,也
5、可作为一个提醒学生们作息时间的时间表,让大家有一个时间意识,形成规律的生物钟,对自身的健康也有很大的好处的。对于那些上课精力过于集中、知识面拓展比较广的老师的拖堂现象也给了一个下课时间提醒,以免耽误学生们下一节课的上课时间。打铃器作为一个提醒人们时间的设备,自然离不开提供时间的系统,最原始的打铃器是人工根据时间通过敲钟来提醒,随着技术的发展,开始有了机械时打铃器。随着二十世纪电子技术的发展和二十一世纪半导体技术和集成电路的发展,电子技术开始渗入到各行各业,以电子表为主要基础提供时间基准的打铃器自然也是更新换代的更快,现在各种功能更多、使用更先进的打铃器层出不穷,有的还可以以音乐响铃代替传统的“
6、呤呤”声,打铃器更多的向着智能型转变。设备的智能化离不开单片机的使用。单片机简单的说就是一款微型的计算机,包含中央处理器CUP、随机存取存储器RAM、只读存储器ROM、I/O口、串行口等部分,可以作为一个系统的主控制器,将其他部分电路整合到一起组成一个系统,为控制提供智能化。基于以上原因,本课题设计了一款基于单片机的自动打铃系统,使用简单方便、功能齐全。本次的设计重点在于实现自动打铃系统的基本功能之外,争取设计出亮点,出新意,对我本身是个不小的挑战,因此对这个课题的研究不管是对于我本身还是对此项目在科技方面的发展都是有很重要的意义1.2论文容本设计是以AT89C52单片机为核心的一款自动打铃系
7、统,以时钟芯片来实现计时功能,然后单片机负责将时间送入显示电路显示,整个系统不是很复杂,其设计主要包括单片机控制模块、时钟电路和显示电路三个模块的设计,在设计前本人在学校图书馆看了很多关于单片机方面的书,也在网上查了不少资料,也查阅过跟此设计相似的论文或者期刊,得到了不少启发和经验,对本人的设计工作有很大的帮助,能很好的把握设计的整体方向和细节。2 方案设计2.1 方案比较与选择2.1.1 系统方案选择方案一:采用数字电路来搭建,利用555时基电路构成振荡器产生100Hz频率的振荡电路,再通过分频器得到1Hz频率,即产生1秒计时时间,显示部分通过锁存器和驱动芯片将计时时间送入数码管显示。设计框
8、图如图2-1所示。这种方案电路结构比较复杂,芯片使用比较多,灵活性不高,而且准确度不够精确,不利于系统的扩展。而且这种电路中需要使用独立式的数码管,每一个数码管都需要连接一个数据锁存器和数码管驱动芯片,连接线比较多,制作的过程中很容易出错。NE555时基电路分频器100Hz信号数据锁存器1Hz信号数码管驱动数码管显示图2-1 方案一设计框图方案二:采用AT89S51单片机作为系统控制单元,通过时钟芯片来实现计时功能,单片机负责将时间送入显示电路显示。设计框图如图2-2所示。这种方案电路设计简单,时间精确,使用方便。而且单片机的强大功能使得系统方便扩展,有利于提高智能性。时钟芯片秒计时单片机液晶
9、显示器显示计时时间图2-2 方案二设计框图综上所述,本设计选用第二种设计方案。2.1.2 时钟芯片选择方案一:因为本文设计的数字钟只需要显示分钟和秒,因此可以直接采用单片机定时计数器提供秒信号,使用程序实现分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大,硬件就比较复杂,稳定性低,而且不易控制。所以不采用此方案。方案二:采用ISD4004时钟芯片实现时钟。ISD4004,它是I2C总线接口实时时钟芯片,可以独立于CPU工作,不受CPU主晶振与其电容的影响,且计时准确,月累积误差一般小于10秒。芯片还具有主电源掉电情况下的时钟保护电路,ISD4004的时钟靠后备电池
10、维持工作,拒绝CPU对其读出和写入访问。同时还具有备用电源自动切换控制电路,因而可在主电源掉电和其它一些恶劣环境场合中保证系统时钟的定时准确性。同时,ISD4004芯片部还集成有一定容量、具有掉电保护特性的静态RAM,可用于保存一些关键数据。所以采用ISD4004作为时钟芯片。2.1.3 显示器件选择为了能以十进制数码直观地显示数字系统的运行数据,目前广泛使用了七段字符显示器,或称做七段数码管。这种字符显示器由七段可发光的线段拼合而成。常见的七段字符显示器有半导体数码管和液晶显示器两种。半导体数码管的每个线段都是一个发光二极管(Light Emitting Diode,简称LED),因而也把它
11、叫作LED数码管或LED七段显示器。半导体数码管不仅具有工作电压低、体积小、寿命长、可靠性高等优点,而且响应时间短(一般不超过0.1us),亮度也比较高,但是只能显示数字,显示容比较受到限制,又过多的占用单片机的I/O口。液晶显示器简称LCD,液晶是一种既具有液体的流动性又具有光学特性的有机化合物,它的透明度和呈现的颜色受外加电场的影响,利用这一特点便可以做成字符显示器。液晶显示器最大的优点是功耗极小,每平方厘米的功耗在1uW以下。它的工作电压也很低,在1V以下仍能工作。而且显示容比数码管要丰富。因此,液晶显示器在电子表以与各种小型、便携式仪器、仪表中得到了广泛的应用。综上所述,本设计中选用液
12、晶显示器作为显示单元器件。2.2 设计方案本设计系统框图如图2-3所示。系统以AT89C52单片机为控制器,通过ISD4004来为系统提供标准时间,单片机读取ISD4004时间后送液晶显示器显示,通过按键来设置打铃时间。当打铃时间到时,系统实现蜂鸣器和LED灯声光提示。系统设计框图如下:时钟电路按键设定打铃时间单片机控制显示电路打铃电路3 系统硬件设计3.1 硬件电路图根据系统设计框图,本设计硬件电路主要由时钟电路、按键设定电路、单片机电路、显示电路和打铃电路组成,电路原理图见附录一所示。系统工作原理:系统时间由时钟芯片ISD4004来提供,单片机通过P3口读取了ISD4004的时间数据后,经
13、过处理得到时间显示模式的时钟数据,并通过P2口送液晶显示器显示出来。再通过扫描P1口是否有按键按下,有按键按下时,通过液晶显示器显示来设置定时时间、打铃时间间隔,通过设定、移位、加数来实现。当到达打铃时间时,单片机引脚启动蜂鸣器和LED灯电路工作以声光形式实现打铃功能。3.2 时钟电路3.2.1 时钟电路设计 时钟电路如图3-2所示。时钟芯片的SCL引脚和SDA引脚分别由单片机的P3.1和P3.2引脚控制,单片机只需按照ISD4004的工作时序来控制DS1307即可实现时间的写入和读取,其中ISD4004的时钟端与数据端需外接上拉电阻,本设计选用5针排阻来充当上拉电阻。图3-1 时钟电路3.3
14、 按键电路键盘是单片机应用中常用的一种输入器件,键盘的按键有触点式和非触点式之分,按接口原理有编码键盘和非编码键盘之分。编码键盘主要用硬件来实现对按键的识别,非编码键盘是由软件来实现键盘的定义与识别。常用的按键一般为触点式按键,根据按键所连接的单片机引脚的电平高低来判断其是否按下。按功能分,键盘有独立按键和矩阵按键之分,独立按键每一路按键就占用单片机的一个控制引脚,单片机直接获取其信息;矩阵按键将按键排成由行和列组成的行列式,通过确认按键的行号和列号来确定每一路按键,利用少的单片机引脚控制更多的按键。本设计中按键电路如图3-2所示,由单片机的P1口控制按键电路。本设计中按键用于设定定时时间、打
15、铃时间间隔,所以只需4路按键即可实现所需功能,采用独立式按键即可。由于按键是机械式触点,所以在断开或闭合时,一般都有抖动产生,虽然这个抖动时间在我们看来非常短,但是单片机执行指令的速度为微秒级别,很容易会读取这个时间而将其判断为真正的工作状态,从而引起误判。因此,在设计中必须考虑到按键抖动的影响。常用的去抖动的方法有两种:硬件方法和软件方法。硬件方法一般是加电容或者RS触发器;软件方法是在单片机在检测引脚所连接的按键的工作状态时加一个延时程序再次确认,通过2次的确认就可以确保按键的工作状态不受机械抖动的影响了。图3-2 按键电路3.4 单片机电路3.4.1 单片机简介单片机是一种集成电路芯片,
16、是采用超大规模集成电路技术把具有数据处理能力的CPU、RAM、ROM、多种I/O口、中断系统和定时器/计时器功能集成到一块芯片上的完善的计算机系统,它最早是被用在工业控制领域。由于单片机在工业控制领域的广泛应用,为使更多的业人士、学生和爱好者学习掌握这门技术,产生了单片机开发板。早期的单片机是8位或4位的,其中最成功的是INTEL的8031单片机,因简单可靠而获得了很大的好评。此后,在8031的基础上发展出了MCS51系列单片机,基于这一系统的单片机一直到现在还广泛应用着。随着工业控制领域要求的提高,开始出现了16位的单片机,因性价比不好并未得到广泛的应用。90年代后期随着消费电子产品的大发展
17、,单片机技术得到了很大的提高,32位机迅速代替了16位机进入主流市场,传统的8位机的处理速度也提高了数百倍,而且价格也降低了很多,得到了广泛的应用。现在人们生活中几乎每个电子产品或机械产品都或多或少带有单片机控制系统,智能仪器仪表、医疗器械、家用电器、儿童玩具等等,汽车电子中单片机的应用也是非常广泛,一般汽车上配备有接近40多个单片机系统。AT89C52是一种带4K字节闪烁可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失性存储器制造技术,与工业标准的MCS-51指令集和输出管脚相兼容。主要特性:与MCS-
18、51产品指令系统完全兼容;4K字节在系统编程(ISP)Flash闪速存储器;1000次擦鞋周期;4.0-5.5V的电压工作围;全静态工作模式:0Hz-33MHz;三级程序加密锁;128*8字节部RAM;32个可编程I/O口线(P1、P2、P3、P4);2个16位定时/计数器,可通过编程实现4种工作方式;1个具有6个中断源、4个优先级的中断潜嵌套结构;全双工UART通道;低功耗空闲和掉电模式;中断可从空闲模式唤醒系统;看门狗(WDT)与双数据指针;掉电标识和快速编程特性;灵活的在系统编程(ISP字节或页写模式)。AT89C52单片机部主要由9个部件组成:1个8位中央处理器;4KBFlash存储器
19、;128B的数据存储器;32条I/O口线;2个定时器/计数器;1个具有6个中断源、4个优先级的中断嵌套结构;用于多处理机通信、I/O扩展或全双工UART的串行口;特殊功能寄存器;1个片振荡器和时钟电路。AT89S51系列单片机完全继承了MCS-51的指令系统,共有111条指令,按其功能可分为五大类:数据传送类指令、算术运算类指令、逻辑运算类指令、控制转移类指令、布尔操作。中断技术是计算机中的重要技术之一,它既和硬件相关,也和软件相关,正因为有了“中断”才使得计算机的工作更加灵活、效率更高。所谓中断实际是一个处理时间的过程,这一过程一般是由计算机部或外部某种紧急事件引起并向主机发出请求处理的信号
20、,主机在允许情况下相应请求,暂停正在执行的程序,保存好“断点”处的现场,转去执行中断处理程序,处理完后自动返回到原断点处,继续执行原程序。引起中断的原因,或是能发出中断申请的来源,称为中断源。AT89C52提供5个中断源,即:外部中断源/INT0:由P3.2输入;外部中断源/INT1:由P3.3输入,I/O设备中断请求信号,或掉电故障异常事件中断请求信号都可以作为外部中断源连/INT0、/INT1。定时器/计数器T0溢出中断:TF0做标志,由P3.4输出;定时器/计数器T1溢出中断:TF1做标志,由P3.5输出;片串行口产生的中断:RX、TX。I/O口分配:P0口(P0.0P0.7)为双向8位
21、三态I/O口,当作为I/O口使用时,可直接连接外部I/O设备。它是地址总线低8位与数据总线分时服用口,可驱动8个TTL负载。一般作为扩展时地址/数据总线口使用。P1口(P1.0P1.7)的每一位都可以分别定义为输入线和输出线(做输入时,锁存器必须置1),可驱动4个TTL负载。P1口常用作通用I/O口,它是一个标准的准双向口。P2口(P2.0P2.7)为8位准双向I/O口,当作为I/O口使用时,可直接连接外部I/O设备。它是地址总线的高8位复用,可驱动4个TTL负载。一般作为扩展地址总线的高8为使用。P3口(P3.0P3.7)为8位准双向I/O口,是双功能复用口,可驱动4个TTL负载,能够实现第
22、一功能,可作为通用I/O口。P3口的第二功能定义如表3-1所示:表3-1 P3口第二功能定义引脚定义功能引脚定义功能P3.0-RXD串行输入口P3.1-TXD串行输出口P3.2-外部中断0P3.3-外部中断1P3.4-T0计时器0外部输入P3.5-T1计时器1外部输入P3.6-外部数据存储器写选通P3.7-外部数据存储器读选通RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:地址锁存允许信号输出。在CPU访问外部程序存储器或外部数据存储器时,ALE提供一个地址锁存信号,将低8位地址锁存在片外锁存器中。在与Flash并行编程/校验期间,该引脚也是编程
23、负脉冲的输入端。在正常操作状态下,该引脚端口输出恒定频率的脉冲。其频率为晶振频率的1/6,可用作外部定时或其他触发信号。如果需要,可通过SFR的第0位置禁止ALE操作,但ALE的禁止位不影响对外部存储器的访问。:片外程序存储器选通信号,低电平有效。当AT89S51执行来自外部程序存储器的指令代码时,PSEN/每个机器周期两次有效。在访问外部数据存储器时,PSEN/无效。:片外程序存储器访问允许信号,低电平有效。当接地时,CPU只执行片外存储器中的程序;当接Vcc时,CPU首先执行片程序存储器中的程序(0000H0FFFH),然后自动转向执行片外程序存储器中的程序(1000HFFFFH)。如果程
24、序锁定位LB1被编程(P),那么值将在复位时由片锁存。在与Flash并行编程/校验期间,该引脚施加12V的编程电压VPP。XTAL1:反向振荡放大器的输入与部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。AT89S51引脚图如图3-3所示3.4.2 单片机最小系统电路单片机最小系统由晶振电路和复位电路组成。电路如图3-5所示。晶振电路用于产生单片机工作时所需要的时钟信号,单片机的指令必须在时钟信号下按照时序执行。晶振电路通常用两种设计方式:部振荡方式和外部振荡方式。部振荡方式是在单片机的XTAL1和XTAL2引脚外接一个晶体振荡器,与单片机部的振荡器组成时钟信号;外部振荡方式是在外部将
25、已有的脉冲信号引入单片机,一般用于使单片机的时钟与外部信号保持同步。本设计选用部振荡方式,在XTAL1和XTAL2引脚之间连接一个12MHz的晶振,再分别外接30p的对地电容。单片机在启动时需要复位,使系统各器件处于初始状态。复位引脚为RST,当系统上电后晶振电路稳定后,RST引脚有一个高电平且持续2个机器周期以上,单片机系统就可以实现复位功能。复位一般有手动复位和上电复位功能。手动复位是在RST引脚设置按键,当按键按下时,RST引脚会有高电平,即可实现复位功能;上电复位是在RST引脚连接一个电解电容接至电源,再接一个电阻接地,系统上电时,电容充电,只要电源的上升时间不超过1ms,就可以实现复
26、位功能。本设计选用按键复位。图3-4 单片机最小系统电路3.5 显示电路LCD1602为字符型液晶显示器,分为带背光和不带背光两种,主要技术参数:显示容量,16×2个字符;芯片工作电压,4.5V-5.5V;工作电流,2.0mA;模块最佳工作电压,5V;字符尺寸,2.95×4.35mm。LCD1602共有16个引脚,引脚说明如下:1脚,VSS,电源地;2脚,VDD,电源正极,接+5V;3脚,VL,液晶显示偏压,接正电源时对比度较弱,接地时对比度最高;4脚,RS,数据/命令选择,高电平时选择数据寄存器,低电平时选择指令寄存器;5脚,R/W,读/写选择,高电平时进行读操作,低电平
27、时进行写操作,当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据;6脚,E,使能信号,当E端由高电平跳变为低电平时,液晶块执行命令;7-14脚,D0-D7,8位双向数据线;15脚,BLA,背光源正极;16脚,BLK,背光源负极。单片机的P2口作为LCD1602的数据线端口,P3口控制LCD1602的使能端。单片机读取数据后,通过控制LCD1602的读写端、复位端和使能端将其设置为写入数据状态,再将数据通过P2口送入LCD1602实现显示功能。3.6 打铃电路 打铃电路一般用声音或音乐作为提醒,本设计选用蜂
28、鸣器和LED灯实现声光双重打铃功能,电路如图3-7所示。打铃时间到时,单片机P3.3引脚置高,三极管9013导通,继而蜂鸣器和LED灯导通,实现蜂鸣和灯亮打铃功能。图3-5 打铃电路4 系统软件设计4.1 软件设计流程图 系统软件设计流程图如图4-1所示。图4-1 软件设计流程图 程序设计过程:首先要定义单片机的引脚,然后初始化器件,再利用ISD4004的读写时序读取时间数据。再利用按键进入时间设定状态,设定完时间后单片机通过比较时间是否到达设定的时间来确定是否到打铃时间,如果达到打铃时间,则控制蜂鸣器响LED灯亮。4.2 读取ISD4004时间程序设计ISD4004中的时间寄存器地址编码为0
29、0H-07H,而具有掉电保护的RAM寄存器的地址编码为08H-3FH。当地址指针指向RAM的最后一个地址3FH时,若进行多字节操作,则地址指针将会复位而指向00H,这样原来存在00H的数据将会丢失。DS1307的各类时间数据均以BCD码的格式存储在相应的时间寄存器中,具体分配如表4-1所示:表4-1 ISD4004寄存器分配00H01H02H03H04H05H06H07H秒分小时星期日期月年控制字单片机通过读取ISD4004相应的寄存器字节,可以获取时钟和日历信息。时钟和日历信息以BCD码的形式存放在寄存器中,寄存器0的第7位为时钟停止位,振荡器停止工作。由于在初次上电时,所有寄存器的状态是不
30、确定的,所以在初始化时必须将寄存器0中的第7位设为0。ISD4004可运行在12/24小时模式下,并由时间控制器中的相应位来进行控制。根据小时寄存器的第6位是0还是1,置为1时,是工作于12小时模式下,此时,小时寄存器的第5位为AM/PM标志。在24小时模式中,小时寄存器的第5位和第4位共同组成小时的十位数。时钟模块设计流程:单片机按如下顺序将数据写入到ISD4004 寄存器或部RAM 中:1、START 信号2、写SLA+W(0xd0)字节,DS1307 应答(ACK);3、写1 字节存地址(在以下第四步写入的第一字节将存入到DS1307 该地址处,DS1307应答);4、写数据(可写多个字
31、节,每一字节写入后DS1307 部地址计数器加一,ISD4004应答);5、STOP 信号单片机读取ISD4004子程序流程图如图4-2所示:图4-2 单片机读取DS1307子程序流程图4.3 显示程序设计LCD1602的基本操作时序:读状态:输入:RS=L,RW=H,E=H;输出:D0-D7=状态字。写指令:输入:RS=L,RW=L,D0-D7=指令码,E=高脉冲;输出:无。读数据:输入:RS=H,RW=H,E=H;输出:D0-D7=数据。写数据:输入:RS=H,RW=L,D0-D7=数据,E=高脉冲;输出:无。LCD1602初始化过程:延时15ms;写指令38H(不检测忙信号);延时5ms
32、;写指令38H(不检测忙信号);延时5ms;写指令38H(不检测忙信号);以后每次写指令、读/写数据操作均需要检测忙信号;写指令38H,显示模式设置;写指令08H,显示关闭;写指令01H,显示清屏;写指令06H,显示光标移动设置;写指令0CH,显示开与光标设置。LCD有11条控制指令,如表4-2所示。表4-2LCD1602控制指令表序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001DLNF*7置字符发生存储
33、器地址0001字符发生存储器地址8置数据存储器地址001显示数据存储器地址9读忙标志或地址01BF计数器地址10向CGRAM或DDRAM写数10要写的数据容11从CGRAM或DDRAM读数11读出的数据容LCD1602部自带有80×8位的RAM缓冲区,RAM地址映射如表4-3所示。表4-3 LCD1602的RAM地址映射表00010203040506070809404142434445464748490A0B0C0D0E0F10274A4B4C4D4E4F5067LCD1602写操作时序如图4-3所示。图4-3 LCD1602写操作时序向LCD1602写数据程序子程序流程图如图4-4
34、所示:图4-4 向LCD1602写数据程序子程序流程图4.4 按键设定程序设计单片机读取按键的方式有2种:查询方式和中断方式。查询方式是利用单片机引脚不断查询是否有按键按下,如果有按键按下,利用延时程序去除抖动再次确认后,进入该按键对应的子程序执行命令。中断方式是利用单片机的外部中断功能来检测是否有按键按下。利用中断功能可以不用在主程序中不断的执行查询命令,有中断产生即有按键按下时,再进入中断子程序中进行处理。本设计选用查询方式处理按键设定程序。每个独立式按键直接接至单片机引脚,每个按键的键值与单片机端口的8个引脚的8位二进制码相对应。本设计为P1.0-P1.3引脚控制4路按键。单片机控制按键
35、子程序流程图如图4-5所示:图4-5 单片机控制按键子程序流程图5 系统调试5.1 元件清单本设计中的硬件制作中所用元器件如表5-1所示。表5-1 元件清单元器件名称个数元器件名称个数AT89S51单片机1DS13071LCD1602132.768KHz晶振11N4148二极管15.1K电阻29013三极管1蜂鸣器1发光二极管112MHz晶振122P电容210U电解电容110K电阻210K电位器147电阻1按键45针排阻1万用板15.2 调试过程 制作调试过程中所用仪器有:数字万用表、电烙铁,焊锡丝、焊锡膏、剥线钳、尖嘴钳、圆口钳、镊子,吸锡器等,另外准备尽量多的导线。制作与调试过程如下:1、
36、按照元器件清单准备好所需要用到的元器件。2、按照电路原理图焊接硬件电路板,先焊接芯片的底座,再焊接其外围电路。实物电路图如图5-1所示:图5-1 实物电路图3、当定时时间到时,蜂鸣器响,LED灯亮。4、每隔设置的打铃时间间隔,蜂鸣器响,LED灯亮,实现打铃功能。经上述调试,系统工作正常,实现设计要求的功能。6 总结与展望经过这段时间的努力,毕业设计也接近了尾声。本文从选题目的与意义开始,介绍了系统的方案设计,其中提供了两种设计方案,经过互相之间的比较后选择了简单易行的一种方案,后面还列出了其他两种模块的设计方案,并经比较后选择了合适的方案,然后对系统的硬件设计进行了阐述,包括电路图和元器件的介
37、绍,对它们实现的功能和部结构都进行了说明,接着是软件部分的设计,这也是此设计的关键部分,有很详细的说明。本设计是针对学校的作息时间而设计的一种自动打铃系统,但是它同样可以用于其他的场所,如工厂,生厂车间等等,它能很好的起到时钟提醒的作用,方便了人们的日常生活。在硬件设计部分,显示器件选的是液晶显示器,它具有功耗和工作电压低的特点,而且它的显示质量高,可视面积大,能很好的达到设计要求,还降低了软件的编程难度。本设计的自动打铃系统还存在不足和缺点,主要表现在这些方面:虽然系统能够很好的实现打铃的要求,但是能够设定的打铃时间只有六个,这是因为想降低编程时的难度,在不影响其功能的前提下,降低了要求;还
38、有就是其扩展性不强,后续的发展比较困难,制约了系统的升级,在商品竞争中没什么优势,需要进一步的研究和开发。通过此次毕业设计,我对所学专业的知识有了很好的回顾和实践,提高了自己的动手和思考能力,这对我自身的发展有很大的帮助,同时在此期间我查阅了很多的书籍和资料,从中学到了很多课本上没有的知识,拓展了自己的知识面,如果没有前期的准备工作是没法很好的完成此次设计的,所以多学、多看、多想、多动手才是学好知识的必要素质,这对我未来的发展和进步有着至关重要的作用。心得体会回顾这次设计的过程,感慨良多,收获颇丰,首先要感我的导师,成凌飞老师。在这段时间里成老师经常给提醒我们在做毕业设计过程中应当注意的事项,
39、并在百忙之中特地抽出时间为我们讲课,讲解论文的排版与写作技巧,使我们受益不浅,还不忘督促我们按步骤完成每一项容,可以说从毕业设计的开始到完能看见老师的身影,没有老师的辛勤辅导和对学生的责任心就没有我现在这样一篇毕业论文。同时我还要感大学四年所有教导过我的老师,是他们的谆谆教诲给了我大学四年的专业知识,在学习的道路上,他们就是我的领路人,真的非常感,还要感陪伴了我四年的每一个同学,因为他们,我的大学才不苍白,因为他们,我的大学才精彩,也是因为他们,我的大学才有意义。毕业设计告一段落了,但是我的人生却迎来了另一个出发点,毕业并不意味着结束,它同时是一个新的开始,我会带着老师们的希冀,朋友们的祝福和
40、友谊走得更远、更高、更坚定,你们!参考文献1 凤言.电子电路基础.高等教育,1995.2 戴佳,戴卫恒,博文等.51单片机C语言应用程序设计实例精讲.电子工业,2008.3 江宏等. Protel 99 电路设计与应用.机械工业,2001.4 阎石.数字电子技术基础.高等教育,1998.5 风强,兰婵丽.单片机语言C51应用实战集锦.电子工业,2001. 6萌,和湘,斌等.单片机应用系统开发综合实例.清华大学,2007.7 义和.例说51单片机(C语言版),人民邮电,2010. 10 徐福成.一款人性化的打铃器.电子制作,2008,(2):36-37.附录源程序#include <reg
41、52.h>#include"YUYIN3.H"/#include"match.H"#define uchar unsigned char#define uint unsigned int#define keyinc 0xfb / P32#define keydec 0xf7 / P33/#define flaginc 0xfe /P30/#define flagdec 0xfd/P31/uchar num;sbit rw=P06;sbit lcdrs=P07;sbit lcden=P05;sbit sda=P04;sbit scl=P03;sbit
42、 warming=P00;/报警中断/*sbit k1= P30;/加sbit k2= P31;/sbit k3= P32; /加sbit k4= P33;/ 加sbit k5= P34;/ jiansbit k6= P35;/ jian*/ sbit k7= P01; /fensbit k8= P02;/ jiansbit LED= P10;/ jianuint year;uchar s,hour,min,sec,week,mon,day,r,x=1,p=0,d=0,m;uchar flag=0;uchar code table='0','1','2&
43、#39;,'3','4','5','6','7','8','9',':','-'/uint code table1="Mon","Tue","Wed","Thu","Fri","Sat","Sun"uchar code table1='S','u','n','
44、M','o','n','T','u','e','W','e','d','T','h','u','F','r','i','S','a','t'uchar code table2="flag"uchar code fen=0x10,0x11,0x15,0x20,0x25,0x30,0x35,0x40,0
45、x45,0x50,0x55; /fendingshiuchar code shi=0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x20,0x21,0x22,0x23; /fendingshivoid delayus();void write_add(uchar address,uchar date);delay(uint t)/延时函数uint i,j;for(i=0;i<t;i+)for(j=0;j<120;j+);void write
46、_(uchar )/写指令于lcdrw=0;lcdrs=0;P2=;delay(5);lcden=1;delay(5);lcden=0;void write_data(uchar date)/写容与lcd显示lcdrs=1;P2=date;delay(5);lcden=1;delay(5);lcden=0;void init()/初始化rw=0;lcden=0;write_(0x38);write_(0x0c);write_(0x06);write_(0x01);write_(0x80+0x10);sda=1;delayus();scl=1;delayus();write_add(0x00,0
47、x00);/00write_add(0x01,0x00);/00write_add(0x02,0x50);/57秒钟write_add(0x03,0x09);/56分钟write_add(0x04,0x01);/09小时write_add(0x05,0x13);/20 日期write_add(0x06,0x07);/04 星期write_add(0x07,0x10);/ 01 月write_add(0x08,0x13);/ 10 年/write_add(0x02,0x00);/秒设置/*write_add(0x09,0X49);/报警时间49分write_add(0x0A,0X22); /报警
48、时间22小时 write_add(0x01,0x12); /报警生效 */*void warming1() /uchar p,d,m; write_add(0x09,fenp);/报警时间49分write_add(0x0A,shid); /报警时间22小时 write_add(0x01,0x12); /报警生效 if(k1=0)/被按下 if(p<0x60)LED=LED;p+;/fen else p=0x00; if(k2=0) if(d<0x25)d+;LED=LED; else d=0x01; /shi if(k3=0)if(m<0x32)m+;LED=LED; /ti
49、an else d=0x01; if(k4=0) if(p>0x01)p-;LED=LED; else p=0x00;if(k5=0) if(d>0x02)d-;LED=LED; else p=0x01;if(k6=0) if(m>0x02)m-; LED=LED; else p=0x01; */void delayus()/延时微秒函数;void start() /开始信号sda=1;delayus();scl=1;delayus();sda=0;delayus();void stop() /停止sda=0;delayus();scl=1;delayus();sda=1;d
50、elayus();void respons() /应答uchar i;scl=1;delayus();while(sda=1)&&(i<250)i+;scl=0;delayus();void write_byte(uchar date)/写一个字节子函数uchar i,temp;temp=date;for(i=0;i<8;i+)temp=temp<<1;scl=0; delayus();sda=CY;delayus();scl=1;delayus();scl=0;delayus();sda=1;delayus();uchar read_byte()/读一个字节函数uchar i,k;scl=0;delayus();sda=1;delayus();for(i=0;i<8;i+)scl=1;delayus();k=(k<<1)|sda;scl=0;delayus();return k;void write_add(uchar address,uchar date)/往一个单元里写容函数star
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务管理课件 项目4 财务控制
- 春愈·戴埠理想生活节策划案
- 高尔基海燕课件
- 促销活动总结范文(30篇)-1
- 量词劳动合同法
- 房屋租赁转让合同的意思
- 合同审批组组职责
- 6.4.1建设工程监理人的索赔管理-学习情境六建设工程索24课件讲解
- 《东风日产分析报告》课件
- 五年级下美术课件-中国美术作品中人物的情感表现岭南版
- 2025年重庆货运从业资格证考试题及答案详解
- 生命不是游戏拒绝死亡挑战主题班会
- 本地化部署合同
- 2024年云南省中考历史试卷
- 油气管线安全保护方案
- 国家职业技术技能标准 4-07-05-04 消防设施操作员 人社厅发201963号
- 2024-2030年中国辣椒碱市场占有率调查及经营战略可行性分析研究报告
- 全过程工程咨询项目部管理制度
- 仪器使用登记表模版
- 2024年中国能源建设集团投资限公司社会招聘32人高频难、易错点500题模拟试题附带答案详解
- 保健艾灸师职业技能竞赛理论考试题库及答案
评论
0/150
提交评论