定时打铃器的设计.docx

上传人:夺命阿水 文档编号:909110 上传时间:2024-01-12 格式:DOCX 页数:31 大小:191.16KB
返回 下载 相关 举报
定时打铃器的设计.docx_第1页
第1页 / 共31页
定时打铃器的设计.docx_第2页
第2页 / 共31页
定时打铃器的设计.docx_第3页
第3页 / 共31页
定时打铃器的设计.docx_第4页
第4页 / 共31页
定时打铃器的设计.docx_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《定时打铃器的设计.docx》由会员分享,可在线阅读,更多相关《定时打铃器的设计.docx(31页珍藏版)》请在课桌文档上搜索。

1、课程设计说明书课程设计名称:专业课程设计课程设计题目:定时打铃器的设计学院名称:信息工程学院专业:电子信息工程班级:110411学号:11041130姓名:M评分:教师:李翔文2014年6月跄日专业课程设计(论文)任务书I、专业课程设计(论文)题目:定时打铃器的设计II、专业课程设计(论文)使用的原始资料(数据)及设计技术要求:(1)显示时钟格式:*时*分*秒。(2)可任意设定时间到达定时控制,定时点可有2个(3)定时时间到,打铃1分钟,然后自动关闭打铃。IIK专业课程设计(论文)工作内容及完成时间:第17周:设计电路图,参考文献,仿真。第18周:领取元器件,按照电路图焊接。第19周:调试装置

2、,总结实验,完成实验报告。IV、主要参考资料:1张先庭.单片机原理、接口与C51应用程序设计.北京:国防工业出版社,2023生2吴开志、陈黎娟、邓谦、任爱山.单片机技术及应用实验指导书.南昌.南昌航空出版社,2023年.3吴清绣.微型计算机原理及接口技术.北京.中国科学技术大学出版社,2004更4吴向军.汇编语言程序设计.北京.高等教育出版社,2001年.李光飞.51系列单片机设计实例.北京:北京航空航天大学出版社.2003年信息工程学院电子信息工程专业110411班学生(签名):张明日期:自期23年6月5日至20日年6月年日指导老师(签名):助理指导老师(并指出所负责的局部):电子系(室)主

3、任(签名):定时打铃器的设计学生姓名:张明班级:110411指导老师:李翔文摘要:随着电子技术的不断开展,定时提示功能在生活中、工作中越来越重要,在一些重要领域,对时间的精确度及实现多个时间点提示功能的要求也越来越高,通过合理的技术实现定时提示功能的多样化及高精度性越来越成为当下一迫切的需要。根据单片机的特性制作的定时打铃系统能很好的实现定时提示功能多样化的要求,且能满足一定程度下的时间精度要求。本文介绍的是以STC89C51芯片为核心结合其他硬件模块制作的定时打铃器实现定时提示功能。本文主要介绍了定时打铃器的硬件、软件的设计及调试过程。硬件主要由:单片机最小系统、键盘显示电路、数据存储电路、

4、打铃电路组成。单片机最小系统主要由AT89C51芯片构成;键盘显示电路主要由HD7279控制的4x4矩阵键盘和八个数码管构成;数据存储电路是以AT24C02芯片为根底的具有掉电保存数据功能的小型模块。打铃电路实现了到达定时点响铃提醒功能。软件采用Keil开发环境作为开发平台,程序由C语言编写,可读性强及可移植性。程序主要由主程序、键盘扫描子程序、定时中断子程序,显示子程序,数据存储子程序组成。通过单片机程序烧写软件,将程序写入AT89C51芯片中,结合硬件电路实现了通过程序控制硬件电路实现定时打铃功能。经测试,本定时打铃器很好的实现了定时打铃功能,能设定四个定时时间点,响铃提示时间长达一分钟,

5、且具有掉电保护功能,能存储设定好的定时时间点。由于本次设计中采用了模块化设计思想,故可以很方便的扩充相应的功能,诸如在芯片容量及硬件电路条件允许范围内增加多个定时时间点、增加数据的存储等。本次设计能为今后更多的定时打铃系统的设计提供了珍贵的研究根底,能在更多的工程工程中发挥不可或缺的重要作用。关键词:AT89C51HD7279AT24C02定时打铃Keil目录第一章绪论21.1 课题的背景及意义31.2 国内外开展趋势31.3 设计要求41.4 研究内容4第二章系统组成及工作原理52.1 系统组成52.2 系统工作原理5第三章硬件电路设计73.1单片机控制系统电路设计73.2 键盘显示电路设计

6、83.3 数据存储电路设计113.4 打铃电路设计13第四章软件设计154.1 系统软件开发平台的介绍154.2 主程序设计164.3 子程序设计18键盘扫描子程序18定时中断效劳子程序194.3.3 显示子程序204.3.4 数据存取子程序21第五章系统的安装及调试225.1 硬件调试235.2 软件调试25第六章总结与展望266.1 总结266.2 展望26参考文献27附录一程序清单28附录二实验原理图44附录三元件清单45致谢46第一章绪论1.1 课题的背景及意义随着人类文明的不断开展,科学技术不断的得到提高,特别是在电子领域,生活中我们经常需要根据时间来方案将要完成的事情,定时提示功能

7、就显得非常重要,起初的定时提示功能是以定时打铃器的形式出现在学校、机关、工厂、车站、码头、医院、邮电等企事业单位,用于实现作息安排功能,机械式且打铃单调,使用范围有限而且时间不准确,不适合于更高精度时间的要求领域,因此,研究新型的定时打铃器引领变革具有重要的意义。近年来在电子领域单片机产品的出现及其技术的成熟与完善,使得大量基于单片机为根底的定时打铃器运用而生,而且种类繁多,定时精确度也相对有了很大的提高,打铃器的打铃方式也多种多样,有使用计算机声卡发声的,也有通过使用串口控制打铃设备电源的一些产品,但是在现今通过生产利润与技术本钱控制提高企业竞争力背景下,这些种类的定时打铃器不适合大量生产,

8、而且在某种条件或者环境中使用及其不方便,因此,设计一种简单方便同时又具有相对全面的计时功能、打铃功能的定时打铃器显得及其重要。综上所述,在电子技术飞速开展的时代下,设计一个功能全面,定时准确且适用领域和适用环境广泛、生产本钱合理相对有技术含量的定时打铃器具有很重要的价值,而且这种打铃器简单便捷,能根据工程所需实现的功能要求进行适当的修改,进而实现重要的定时提示功能,具有很大的生产与使用价值。1.2 国内外开展趋势现今社会中,定时提示功能变得越来越重要,日常生活中的闹钟,学校或者企业的作息铃声,体育行业中的计时以及一些高精密的仪器中都需要用到定时提示功能,快节奏工作生活前提下,对定时精准性要求也

9、越来越高,定时打铃器在国内外技术上其实己有了很大的开展与革新。起初大局部定时打铃器都是比拟简单电子元器及适当的程序控制件构成,但是很容易受到内外部的干扰,比方电压不稳定等,引起很大的偏差甚至错误,随着单片机技术的出现,基于单片机为核心的与外部电路结合的电子定时打铃器开始大量出现,形式各异,相比之下计时更精准电路,更稳定,受外部影响较小,而且电路模块化,程序设计更便捷简单,可实现更多的功能。而大局部基于单片机为根底的定时打铃器大都是由三个局部组成,即键盘控制、数码显示、打铃电路三个模块组成,比方AT89C51芯片与HD7279芯片构成的键盘控制电路,通过程序的编写控制I/O口的输出进而控制显示定

10、时数据及打铃电路。当然也有局部采用8255芯片为核心部件的定时打铃器,原理都大同小异。现今高科技时代在一些特殊的对定时精确度要求高的领域比方,微电子方面,体育田径工程等行业,单片机技术显然会有一定的误差,于是随之出现了局部通过计算机控的定时打铃器,或者是结合其他影像技术设计而成的打铃器。随着技术的不断开展,定时打铃器不断地走向体积小、模块化的集成电路的形式,在一些大型的电子设备或机械仪器中充当不可或缺的一局部,基于单片机为根底的打铃器不仅有较成熟的技术而且本钱低廉、体积小,根据功能需求可以很容易的设计多元的定时器,未来定时打铃器将会朝着多元化的趋势行进,比方定时与记忆保护功能的实现,基于单片机

11、为根底的定时打铃器适合于低本钱的大量生产,多元化开展的道路上具有很大的开展前景。1.3设计要求本设计采用STC89C51单片机与HD7279键盘控制模块结合,用于实现控制外部电路对定时时间的存储及打铃,主性能为:1 .显示时钟格式:*时*分*秒2 .可任意设定时间到达定时控制,定时点至少有两个3 .可对设定的时间进行存取,实现掉电保护功能4 .定时时间到,打铃一分钟,自动关闭打铃继续计时1.4研究内容L开发板STC89C5】单片机、HD7279键盘控制模块及开发环境Keil平台的使用。2 .AT24C02存储电路、打铃电路的工作原理和电路图的设计。3 .键盘控制电路的工作原理及程序设计。4 .

12、时钟显示模块及AT24C02存储电路的程序设计。第二章系统组成及工作原理2.1 系统组成通过一周的资料查找及对单片机知识的学习,本次设计采用如下设计方案:(系统组成框图)定时打铃器主要有四大模块组成,即:单片机控制模块、键盘显示模块、数据存取模块、打铃电路模块。单片机控制局部通过相应的程序存储芯片在使用时运行程序对其余模块进行控制实现数据的发送与接收;时间显示主要是由数码管组成,用于显示时、分、秒;键盘用于控制或者改变数码管的显示内容,根据设计要求中要实现至少两个定时点的设置,不同按键可实现切换不同响铃时间点时分秒的显示,对时间的校准,以及可设置四个定时点;数据存取模块主要实现掉电保护功能,保

13、存四个设定定时点,在断电恢复后能保存并继续上一次的计时设置值;打铃电路模块主要作用是通过单片机输出的不同电压实现在定时点到达后及时响铃。2.2 系统工作原理定时打铃器主要通过软件编程来控制硬件电路进而实现时间数据的显示、存取、按键扫描、即时打铃功能的。系统的工作原理主要分为如下两大模块:(1)硬件模块定时打铃器的单片机控制模块主要是由AT89C5I芯片构成与八个数码管组成显示的局部相连接,同时还与4x4矩阵键盘连接,矩阵键盘的扫描控制通过HD7279芯片完成,具有记忆功能的芯片AT24C02芯片充当了数据存储局部的核心部件,矩阵键盘及存储芯片与单片机是串行连接,单片机通过内部程序的运行适时对这

14、两局部进行数据的读与写的操作,当定时器计时到达时,单片机通过P口输出上下电平给输出接口局部,继电器起保护作用,p口输出电压的不同将使得响铃器发出铃声从而实现定时打铃功能。矩阵键盘局部设置了十二个按键用于对显示内容的控制,即:力H、减、切换、确定、选择键共五个类型的按键。数据存取局部通过程序中不断地对时间的扫描不断地存储更新的时间数据,通过串行数据传输的方式存储在芯片中,当断电时,断电前一刻的时间信息己存入芯片,重新接通电源后会先读取并显示前一次的数据,进而实现掉电保护功能。(2)软件模块软件局部主要是有以下几个局部组成:数据存取局部键盘扫描局部主程序时间显示局部软件模块中,主程序局部组要定时中

15、断局部是包含子程序的调用语句、对数据的读取及存储及判断定时时间是否正确算法程序;键盘扫描局部主要是不断地对4x4矩阵键盘进行扫描判断按下的键,进而不断地赋给相应的变量,主程序判断按键按下的情况控制数码管现实的数值;定时中断局部主要是一算法组成,变量不断地自加一,实现时分秒的递增,当到达一定数值时,进入中断程序对变量进行清零,比方秒钟变量到达60秒时进入中断后重新从零开始。时间显示局部程序那么不断的显示键盘所控制下应该显示的变量值,比方显示时-分-秒,年-月日,或者在切换键的作用下显示四个定时时间值,或者在加减按键的作用下显示数据的更改值。第三章硬件电路的设计3.1 单片机控制系统电路设计单片机

16、最小控制系统主要由AT89C51芯片及相关电阻电容等电子元件构成单片机、时钟电路、复位电路等局部组成,MCS51芯片有40个引脚构成,大致有电源、外界晶体引脚、I/O口、控制引脚三大类组成,根本电路原理图如下列图所示:单片机的总体结构上可分为微处理器、数据存储器、程序存储器、中断控制、特殊功能存放器、串行口、I/O口几大局部,本次课程设计采用晶振频率为12MHZ的芯片,单片机的复位方式有两种:上电复位和手动复位,两种方式都是使RST引脚维持高电平一段时间。51单片机内部有128字节的数据存储区,内部RAM编址为OOH7FH,不同的区域功能完全不相同,对程序存储器只能进行读操作。微处理器主要由运

17、算器和控制器组成。I/O口有pO、pl、P2、P3、四大类,除了充当I/O口作用外,Pl口是纯I/O口,P2口还可以充当扩展系统的地址总线使用,输出高八位地址,p3口具有第二功能,p口用作地址总线的低八位及数据线。图中电容Cl、C2一般取53OPF,作用是使振荡器起振,同时对振荡频率起微调作用。3.2 键盘显示电路设计本次课程设计的键盘显示电路的核心部件是HD7279芯片,HD7279芯片是串行接的,可以同时驱动八位共阴数码管的智能显示驱动芯片,有多种译码方式,可单独控制显示段,同时可以接多达64键的矩阵键盘,内部含有去抖电路。单片即可完成LED显示,键盘接口的全部功能。HD引脚图如下列图所示

18、。HD7279芯片共有28个引脚,与单片机建立握手连接主要是通过CS、CLK、DATAKEY引脚与单片机的Pl口连接,进行指令、数据的传送,CS是片选端,DATA是串行数据输入/输出端,CLK是时钟输入端,KEY是按键有效输出端。HD7279芯片的控制指令分为两大类:纯指令和带有数据的指令。纯指令有:复位指令A4H、左移指令A1H、右移指令AOH。带有数据指令有:下载数据按方式O译码、下载数据按方式1译码、下载数据不译码、读键盘数据指令15H、闪烁控制指令88H。局部指令格式如下:1 .下载数据按方式O译码其中a2ala为地址,ddld2d3是数据,OOOMOOl显示09,1010显示一,11

19、11显示空白。2 .下载数据按方式1译码与上一条指令根本相同,但是d-d3值对应的是09,AF.3 .下载数据不译码a2ala为位地址,AGDP显示数据,对应七段数码管,对应的数据为1时,该段数据点亮。4 .闪烁控制指令88Hdld8对应八个数码管,为0时闪烁,1时不闪烁。5 .读键盘控制指令15H其中该指令从7279中读出当前按键代码,前一个字节0I5H为指令代码,范围是003FH无键按下时是FFH,检测到有效按键时,KEY引脚由高电平变低电平,一直到按键结束,此期间输出当前按键代码。HD7279芯片的串行接口时序图如下:1 .纯指令2 .带数据指令3 .读键盘指令根据对数据的操作的读与写的

20、不同,DATA分别作为数据输入端和数据输出端。键盘控制与显示电路图如下列图所示:其中16个按键与芯片SA-SG及局部电阻元件的连接构成矩阵键盘扫描局部,程序中通过对键盘的扫描,KEY引脚电平发生改变,矩阵键盘由行和列组成,通过使某列为低电平,当按键按下时,行变为低电平,与列有交叉点进而读出按键的地址确定按下的具体键位,通过程序的编写,按键的按下可使相应的变量值发生改变进而使现实的内容发生改变。数据显示局部由八个共阴数码管与7279芯片DlGODIG7DP及局部电阻元件构成,电阻起保护作用。MCU通过DATA、KEY、CLK、CS与HD7279握手连接,程序中根据7279芯片时序图不停地对矩阵键

21、盘扫描,通过不同的译码方式对数码管显示的数据进行变,本次设计中八位数码管用于显示时、分、秒(格式为:XX-XX-XX)。本次设计中采用了12个按键对数据进行操作,各键的地址如下列图:各按键的实际意义如下列图:注:本设计中根据要求设计了四个定时点,通过按键定时点14,可查看四个设定的时间点,通过时分秒的加减六个按键可对设定时间点进行修改,确定键课进行修改时间确实认,通过切换键可查看时钟信息与定时点信息。3.3 数据存取电路设计数据存取电路的实质作用就是实现掉电保护功能,对四个设定的时间进行保存,在断电恢复后不丧失上一次操作所设定的响铃时间。数据存取电路的核心芯片是AT24C02芯片,是CMOS型

22、EPRoM,有256x8的存储空间,引脚图如下所示:其中AOAlA2三个引脚是地址线,用于确定芯片的硬件地址,SDA为串行数据输入/输出,SCL为串行时钟,SDA,SCL为漏极开路端,需接一5.1KQ的上拉电阻,WP为写保护端,接地时允许对芯片进行一般的读写操作,高电平时只能进行读操作。对芯片进行读写操作时应领先IOlOA2AlAOR/WPC从机地址片选或块选读/写控制位式如下:高四位是识别位,A2A1A0是片选,说明数据将存储在芯片的内具体位置,R/W是读写,为1说明对24c02进行读操作,为0那么进行写操作。读写操作过程如下列图所示:硬件连接图如下列图所示:硬件电路设计时将AT24C02芯

23、片的地址线、地线、WP口均接地,保证了数据存储的初始地址从0开始,且可对数据进行读写操作。同时24c02需要2,5V+5.5V的电源供电,在时钟SCL控制下SDA与单片机进行握手连接,实现数据的存储与读取。3.4 打铃电路设计当设定的时间到达时,单片机通过P1.3口电平信号的改变反响到打铃电路中实现打铃的功能,打铃一分钟后又P1.3口关闭打铃。硬件连接图如下列图所示:电路设计原理:打铃电路由继电器、三极管、蜂鸣式报警器、电阻、反向器、+5V+12V电源组成,单片机P1.3口输出低电平时,经过74LS04反向器使三极管9013基极处于高电平而导通,那么+12V电源与三极管Cbe三极导通,在继电器

24、内部,电感线圈与金属片的吸引使得+5V电源与蜂鸣报警器连通,进而实现响铃功能,继电器实质上是起一个开关的作用。当P1.3口输出高电平时,蜂鸣报警器又不导通,停止响铃。理论计算:9013是NPN型三极管,集电极电流允许最大电流0.5A,放大倍数为60,74LS04输出高电平时,有:I=5VlK=0.5mAIc=0.5mA.60=0.3mA59?Ni24C02EPROM芯片的数据的存储与时子聿序一位一位的传送,每次读或写而对相应的地址处的数据进行操作,执行完上上02的访问。程序流程图如下列图所示:秒清零,分加一(存数据漪程图)开始分59?的小1读数据流癌即安NZ开始AT24C02初始化实功隼缸各中

25、定时由捽制JAT24C02初始化肩动由路的注坟分清零,时加一其中还而将+5V*+I2V电源的接#1线连接在一起5此次设原那么掉电保I11VKH11V场M吊.H写入控制命令字N时24?做出应答时清零和软件if写读控制命令字如下列写入存数据地址因此在调试的过攀中元升作不当f做出应答C语言编写的程序路几大硬件局部而因此对速件局碎地调试也根据从局部到整体的一二的调试,作出应答式,打铃电路的调试,2279为&心的J盘显示电路集成在开发板中,恢复现场I时候检*脚的电压是否正检杳品缺,进存数据的1位打钱丽打铃电路达8次?停止写入读数据地址连接木听W可的旭天T而7主意的是,由于种种操产止皿ELdjZT查芯片的

26、供电电源是片发热做出应答桃)口的电压从地址中读1位键的按下前后复位引至判断晶振是否完好无、74LSL句器,蜂鸣器,电阻,901工三极管组成冷沓元件的完好达8次?性后进行焊接,对该模块调试时,先用万用表检测是否有断点、短路等问题,防止对元器件造成损坏,特别是继电器极易因电压不适宜而烧坏,接通电源后测量各点的电压,判断是否符合理论的计算与分析。三极管有Cbe三极,电压电流过大会造成损坏,继电器图如下:继电器有+5V、+I2V两个电源提供,正确接入才能正常工作。AT24C02芯片是可擦除的EPROM,能存储数据,供电电压为+5V,调试时先检测该局部电路连接是否正确,再上电检测各点电压是否正常。正确连

27、接电路各模块观擦进行整体调试,排除整个硬件系统的问题,如下列图:经过根据局部到整体的调试原那么进行硬件调试过程,排除了很多问题。在用局部程序对局部电路进行测试时发现打铃局部不响铃,经屡次排查发现:三极管导通电压为到达,此时合理调整电阻的值;继电器与蜂鸣器也易烧毁。存储电路数据未能正确存储,经排查发现,外部电路与单片机P口的连接接触不良,同时程序也存在一定的问题。总之,硬件调试需要很大的耐心与正确的调试方法及正确的操作方法才能使系统渐渐实现所需的功能。5.2 软件调试由C语言编写的程序具有可读性强、可移植性好的特点。本次设计软件局部主要由:主程序、键盘扫描子程序、显示子程序、定时中断子程序、数据

28、存取子程序组成。软件调试同样采用局部到整体的原那么结合已经调试好的硬件局部进行综合调试,完善系统的功能,解决细节性瑕疵。首先针对主程序,根据程序设计思路,主程序流程图,对程序进行编译修正错误,合理的设置并跟踪变量值的变化;其次移植入键盘扫描子程序,显示子程序,中断效劳子程序,合理的调试协调解决程序报错之处,此时连接好硬件电路,观察现象,键盘局部按键的使用及数码管显示是否符合程序设计初衷,时钟及定时时间的设置是否实现预期现象;最后添加数据存取子程序,修正错误,根据程序流程图排除程序错误,检测掉电保护功能,做合理的调整及调试,使程序条理清晰,实现系统的定时打铃功能。最终调试结果如下列图:(到达定时

29、点打铃图)(断电保存数据图)(上电恢更定时点数据图)软件调试过程难度远大于硬件的调试,期间遇到很多复杂的问题,比方响铃一分钟未能精确实现,经排查,由于程序过长,响铃过程执行其他子程序或者循环程序带来很大的时间上的误差,需通过对变量值的修改来进行调整;程序必须严格根据硬件的特点(时序图、与单片机的连接等)来编写,否那么数据不能正确的传输,比方掉电保护功能对应的子程序,由于保存数据地址的设置不合理,上电时不能正确的恢复个定时点保存的数据。经过对程序的不断地调整与修改,对硬件电路的测试与元件的更换,及软件结合硬件电路的综合调试,终于实现了带有掉电保护功能的定时打铃电路。第六章总结与展望6.1 总结本

30、次设计通过对硬件电路的设计、软件的编写及系统的综合调试,和对相关资料的查阅与学习,更加熟练的掌握了单片机最小系统、HD7279.AT24C02等芯片的工作原理及使用方法,根本上完成了设计要求所需实现的功能,具体实现的功能如下:(1)可显示时钟,且时钟格式为:*o(2)可任意设置时钟到达定时控制,定时点可设置4个。(3)定时时间到,打铃一分钟,打铃结束后自动关闭打。(4)具有掉电保护功能,上电后能自动恢复上一次设定的定时时间点的信息。本次设计通过单片机对各模块的控制,实现了定时打铃的功能,同时附加了掉电保护功能,能对设定信息进行存取操作,本次设计取得了巨大的成功。与此同时,本次设计也给自我带来了

31、巨大的收获,不仅是理论知识的稳固运用与实践经验的增长,更加体会到未来工作中严谨求实、认真仔细、坚持不懈的工作态度的重要性。可以说,本次设计让自我心灵带有了一次质的提升的过程。6.2 展望本次课程设计虽完美的实现了设计目标,但仍然有很多缺乏之处需要改良,比方:(I)按键设置太多,对矩阵键盘按键资源造成浪费,不利于功能的扩充。(2)程序过于垄长,重复性语句较多,未合理的综合利用子程序。(3)定时精度不高,造成系统不稳定因素很多,实际应用还有很多步骤需进行。虽然本系统有诸如此类缺乏之处需要改良,但该系统在未来仍然具有很大的参考价值,作为实践应用的雏形,在各种形式的定时打铃系统或者更高级庞大的仪器中可

32、充当不可或缺的模块,为实现重要功能做奉献。总之,定时打铃器凝聚了无数辛苦付出的泪水与汗水,科技之路永远不会停滞,该设计成果能否得到真正的实际运用,路途还很遥远,仍需不断地努力付出。参考文献1张5德赵麒浪摸单片微型机原理、应用与实验.上海.复旦大学出版社,2023年5月.2吴开志、陈黎娟、邓谦、任爱山.单片机技术及应用实验指导书.南昌.南昌航空出版社,2023年.3吴清绣.微型计算机原理及接口技术.北京.中国科学技术大学出版社,2004年.4吴向军.汇编语言程序设计.北京.高等教育出版社,2001年.5谭浩强编著.C程序设计(第二版).北京清华大学出版社,1999.12郭天祥编著51单片机C语言

33、教程北京电子工业出版社,2023-12张先庭、项英、王忠单片机原理、接口与C51应用程序设计国防工业出版社202312附录一程序清单:#include typedef unsigned char BYTE;#denne Set-Bit(BIT)#denne Clear_Bit(BIT)自定义字节类型(BIT = 1)(BIT = 0)定义置1函数定义清O函数/*7279指令*/#deHneHD7279_TESTOXbf/颂试#denneHD7279.RLC0xa3循环左移#denneHD7279_RRC0xa2循环右移#denneHD7279,RLOxal左移#deHneHD7279.RROX

34、ao彷移#defineDECODEO0x80译码方式0#denneHD7279_I)ECODE10xc8译码方式1#defineUNDECoDE0x90译码方式2:不译码#deHneHD7279,HIDE0x98消隐#denneHD7279_FLASH0x88闪烁#denneHD7279.SEGONOxeO段亮#denneHD7279.SEGOFFOxcO段灭#deHneCMILREAD0x15读键盘指令#deHneIedon1#defineIedofTO*函数定义*/void delay(j);void write7279(BYTE,BYTE);BYTE read7279(BYTE);voi

35、d Send-Byte(BYTE);BYTE Receive_Byte(void);void ShOrjDeIay(Void);void LOIlg_Delay(Void);void Mcu_Init(void);void distime(void);void (Iiscalendar 1 (void);void discalendar2(void);void discalendar3(void) void discalcndar4(void) void HD7279key(void);BYTE Key_number;定义HD7279写函数定义HD7279读函数定义HD7279发送字节函数定义

36、HD7279接收字节函数定义短延时函数定义长延时函数定义MCU初始化函数显示时间显示日历显示日历按键控制定义键值变量unsignedcharsecond=0,minute=0,hour=0,F;秒、分、时变量second1=0,minutel=12,hourl=0,second2=0,minutc2=14,hour2=0,second3=0,minutc3=16,hour3=0,sccond4=0,minute4=18,hour4=0;unsignedinta,ij,I,dock,wait=。;/年月日等变量sbitkey=Pl7;/定义HD7279中断硬件连接XNTlSbitHD7279,C

37、lk=Pl5;定义HD7279时钟硬件连接sbitHD7279_Data=Pl6;定义HD7279数据硬件连接sbitHD7279-CS=P14;片选sbitgatc=Pl3;*24c02局部*/sbitSda=Pl0;/24c02数据线sbitSd=Pl1;/24c02时钟线#deHneucharunsignedchar#defineuintunsignedintvoiddelay24c02();)voiddelayms(uintz)延时程序(uintij;for(i=0;iz;i+)for(j=0110u+);)voidstart()(sda=l;delay24c02();scl=l;de

38、lay24c02();sda=O;delay24c02();)voidstop()(sda=O;delay24c02();scl=l;dclay24c02();sda=l;delay24c02();)voidrespond()(uchari;scl=l;dclay24c02();whilc(sda=l)&(i250)i+;scl=O;dclay24c02();)voidinit()(sda=l;delay24c02();scl=l;delay24c02();)voidwrite_byte(uchardate)启动信号停止信号应答信号总线初始化写数据uchari,temp;temp=date;f

39、or(i=0;i8;i+)temp=tcmpl;scl=O;delay24c02();sda=CY;delay24c02();scl=l;delay24c02();scl=O;dclay24c02();sda=l;delay24c02();)charread_byte()读数据(uchari,k;scl=O;dclay24c02();sda=l;delay24c02();for(i=0;i8;i+)(scl=l;delay24c02();k=(k0;a-);for(b=100;b0;b-);)*24c02子函数到此结束*/*主函数*/voidmain(void)(init();读时hourl=read_add(0);delay1(50);init();hour2=read_add(3);delay1(50);init();hour3=read_add(6);de!ayl(50);init();hour4=read_add(9);delayl(50);init();读分minutel=read_add(l);delay1(50);init();minute2=read_ad(l(4);delay1(50);init();minute3=read_add(7);delay1(50);init();minute4=read-add(10

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号