单片机数字钟毕业设计 - 图文

更新时间:2024-06-11 03:26:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

酒 泉 职 业 技 术 学 院

毕 业 设 计(论 文)

级 电气自动化 专业

题 目: 单片机设计数字钟 毕业时间: 二O一三年六月 学生姓名: 指导教师: 班 级:

2013 年 6月20日

**职业技术学院 11 届各专业 毕业论文(设计)成绩评定表

姓名 指导教师第一次指导意见 指导教师第二次指导意见 年 月 日 年 月 日 年 月 日 成绩: 签字(盖章) 年 月 日 成绩: 签字(盖章) 年 月 日 签字(盖章) 年 月 日 签字(盖章) 年 月 日 班级 专业 指导教师第三次指导意见 指导教师评语及评分 答辩小组评价意见及评分 教学系毕业实践环节指导小组意见 学院毕业实践环节指导委员会审核意见

专科毕业设计说明书(论文)

目 录

第 I 页 共 I 页

一、绪论 ............................................................... 2

(一) 课题提出的目的及意义 ........................................... 2 (二) 设计的任务及要求 ............................................... 2

1.硬件要求 .................................................... 2 2.软件要求 .................................................... 2

二、总体方案设计 ....................................................... 3

(一) 单片机选型 ..................................................... 3 (二) 时钟芯片选择 ................................................... 4

1.DS1302简介 .................................................. 5 2.管脚说明 ..................................................... 5 3.读写和控制说明 ............................................... 5

三、系统硬件设计及实现 ................................................. 7 (一) 单片机外围电路设计.............................................7

(二) DS130与单片机接口设计........................ ..... ............7 (三) LED显示电路........................... ........................8

(四) 按键电路设计 ................... .............................. 9

1.电路设计..... ...............................................9 2.按钮控制........ ...........................................11 (五) 闹铃电路设计 ................................................. 11 (六) 电源设计 ..................................................... 12 四、硬件原理图 ........................................................ 12 五、软件设计 .......................................................... 13

(一) 主程序设计 ................................................... 13 (二) 按键流程设计.... ..............................................13 (三) 定时器流程设计................ ................................14 六、系统调试 .......................................................... 15

(一) 软件调试 ..................................................... 15 (二) 硬件调试 ..................................................... 15 结束语 ................................................................ 17 致谢 .................................................................. 17 参考文献 .............................................................. 18 附件: ................................................................. 19 原件清单.............................................................19 源程序...............................................................20

专科毕业设计说明书(论文)

单片机设计数字钟

摘要:本系统采用

第 2 页 共 I 页

AT89C2051单片机和DS1302 配合,实现实时时间日期的

保存和显示。系统中还有一块1602显示屏,用以显示系统中所需的符号和时间日期。另外系统中还装有2个独立式按钮,用于系统操作与控制。并接一个直流蜂呜器和一个交流蜂呜器,用以进行音响提示。DS1302可以实现对系统是的时、分、秒,等信息的保存,使系统在掉电的情况下仍然能够准确的保存并运行时间信息。利用单片机的定时器,实现了倒计时和秒表功能的设计。

关键字:单片机;DS1302;数字钟

一 、绪论

(一)课题提出的目的及意义

此课题是用51系列单片机对数字钟的设计。分析了单片机数字钟试验的必要性及试验条件的要求,并着重讲述了其工作原理、结构、硬件以及软件的设计等。该系统利用51系列单片机,来实现对单片机数字钟的设计,能够实现作息时间的基本控制。通过本次设计从而达到进一步理解和运用单片机技术的能力。

(二)设计的任务及要求

设计制作一个单片机数字钟及控制电路,能够根据预先设定好的作息时间

表自动启停控制电路,完成对外部设备(如电铃、广播、充电器)的实时控制。 1.硬件要求

设计一个AT89C2051单片机基本应用系统,用AT89C2051单片机的串行口扩展四位静态显示电路,作为输出电路,显示器用七段共阳LED显示器,显示小时和分钟;设计两个按钮开关作为输入电路,进行手动调时和调分,秒信号用发光二极管闪烁表示。 2.软件要求

专科毕业设计说明书(论文)

(1) 实现24小时时间控制。 (2) 实现小时和分钟显示。 (3) 实现秒表闪烁功能。 (4) 实现调时和调分功能。

第 3 页 共 I 页

二 、总体方案设计

(一)单片机选型

目前在单片机系统中,应用比较广泛的微处理器芯片主要为8XC5X系列单片机。该系列单片机均采用标准MCS-51内核,硬件资源相互兼容,品类齐全,功能完善,性能稳定,体积小,价格低廉,货源充足,调试和编程方便,所以应用极为广泛。 例如比较常用的AT89C2051单片机,带有2KB Flash可编程、可擦除只读存储器(E2PROM)的低压、高性能8位CMOS微型计算机。拥有15条可编程I/O引脚,2个16位定时器/计数器,6个中断源,可编程串行UART通道,并能直接驱动LED输出。

仅仅是为了完成时钟设计,应用AT89C2051单片机完全可以实现。但是本设计中需要更多的I/O引脚,故本设计采用具有32根I/O引脚的STC89C52单片机。 STC89C52单片机是一款低功耗,低电压,高性能CMOS 8位单片机,片内含8KB(可经受1000次擦写周期)的FLASH可编程可反复擦写的只读程序存储器,器件采用CMOS工艺和高密度、非易失性存储器(NURAM)技术制造,其输出引脚和指令系统都与MCS-51兼容。片内的FLASH存储器允许在系统内可改编程序或用常规的非易失性存储器编程器来编程。因此,STC89C52是一种功能强,灵活性高且价格合理的单片机,可方便的应用在各个控制领域[1]。 工作电压: 3.6V - 2.4V, 可低至2.4V - 1.9V

I/O 口: P0,P1,P2,P3 口可以承受5V 输入。P0 口不要接到5V 系统,只能接3.3V 系统,如果接5V系统要接上拉电阻。 A/D 转换在P1 口, P1.0 - P1.7 八路。

专科毕业设计说明书(论文)

第 4 页 共 I 页

图1 STC89C52管脚图

(二)时钟芯片选择

在电子时钟设计中,常用的实时时钟芯片有DS12887、DS1216、DS1643、DS1302。每种芯片的主要时钟功能基本相同,只是在引脚数量、备用电池的安装方式、计时精度和扩展功能等方面略有不同。DS12887与DS1216芯片都有内嵌式锂电池作为备用电池; X1203引脚少,没有嵌入式锂电池,跟DS1302芯片功能相似,只是相比较之下,X1203与STC89C52搭配使用时占用I/O口较多。DS1643为带有全功能实时时钟的8K×8非易失性SRAM,集成了非易失性SRAM、实时时钟、晶振、电源掉电控制电路和锂电池电源,BCD码表示的年、月、日、星期、时、分、秒,带闰年补偿。同样,DS1643拥有28只管脚,硬件连接起来占用微处理器I/O口较多,不方便系统功能拓展和维护。故而从性价比和货源上考虑,本设计采用实时时钟日历芯片DS1302。

专科毕业设计说明书(论文) (1)DS1302简介 第 5 页 共 I 页 DS1302是美国DALLAS公司推出的一种高性能、低功耗的实时时钟日历芯片,附加31字节静态RAM,采用SPI三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号和RAM数据。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31天时可以自动调整,且具有闰年补偿功能。工作电压宽达2.5~5.5V。采用双电源供电(主电源和备用电源),可设置备用电源充电方式,提供了对后备电源进行涓细电流充电的能力。有主电源和备份电源双引脚,而且备份电源可由大容量电容(>1F)来替代。需要强调的是,DS1302需要使用32.768KHz的晶振[2]。 (2)DS1302管脚说明 DS13021234VCC1X1X2GNDVCC2SCLKI/ORST8765 图2 DS1302芯片引脚图 表1 DS1302引脚功能说明 引脚号 1 2 3 4 5 6 7 8 名称 VCC1 X1 X2 GND RST I/O SCLK VCC2 功能 2备份电源输入 132.768KHz晶振输入 32.768KHz晶振输出 地 控制移位寄存器/复位 数据输入/输出 串行时钟 主电源输入 (3) DS1302读写和控制说明

专科毕业设计说明书(论文)

第 6 页 共 I 页

DS1302的数据读写方式有两种,一种是单字节操作方式,一种是多字节操作方式。每次仅写入或读出一个字节数据称为单字节操作,每次对时钟/日历的8字节或31字节RAM进行全体写入或读出的操作,称其为多字节操作方式。当以多字节方式写时钟寄存器时,必须按数据传送的次序依次写入8个寄存器。但是,当以多字节方式写RAM时,不必写所有31字节。不管是否写了全部31字节,所写的每一个字节都将传送至RAM。

为了启动数据的传输,CE引脚信号应由低变高,当把CE驱动至逻辑1的状态时,SCLK必须为逻辑0,数据在SCLK的上升沿串行输入。无论是读周期还是写周期,也无论送方式是单字节传送还是多字节传送,都要通过控制字指定40字节中的哪个将被访问。在开始8个时钟周期把命令字(具有地址和控制信息的8位数据)装入移位寄存器之后,另外的时钟在读操作时输出数据,在写操作时输入数据,所有的数据在时钟的下降沿变化。所有写入或读出操作都是先向芯片发送一个命令字节。对于单字节操作,包括命令字节在内,每次为2个字节,需要16个时钟;对于时钟/日历多字节模式操作,每次为7个字节,需要72个时钟;而对于RAM多字节模式操作,每次则为32字节,需要多达256个时钟[3]。

表2 LCD1602引脚功能

引脚编号 引脚符号 1 2 3 4

VSS(输入) Vdd(输入) V0(输入) RS(输入)

功能规格 接地,0V 接电源,5V±5%

反视度调整,使用可变电阻调节,可改变对比度 寄存器选择。1:选择资料寄存器,0:选择指令寄存器

5 6 7 8 9 10 11

R/W(输入) 读写选择,1:读;0:写

使能选择。1:LCD可读写。0:LCD不可读写 数据端口的第0位 数据端口的第1位 数据端口的第2位 数据端口的第3位 数据端口的第4位

E(输入) DB0 DB1 DB2 DB3 DB4

专科毕业设计说明书(论文)

12 13 14 15 16

DB5 DB6 DB7 Vdd(输入) VSS(输入)

数据端口的第5位 数据端口的第6位 数据端口的第7位 背光电源正极,5V±5% 背光电源负极,0V

第 7 页 共 I 页

三 、系统硬件设计及实现

该设计的硬件电路由主控部分(单片机STC89C52)、计时部分(实时时钟芯片DS1302)、显示部分(LCE1602)、按键部分(独立式键盘)、音响部分(直流蜂鸣器)5个部分组成。各部分之间相互协作,构成一个统一的有机整体,实现数字时钟的功能。各部分的硬件电路设计如下:

(一) 单片机外围电路设计

单片机STC89C52作为主控芯片,控制整个电路的运行。单片机外围需要一个复位电路,复位电路的功能是:系统上电时提供复位信号,直至系统电源稳定后,撤消复位信号。为可靠起见,电源稳定后还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。该设计采用含有二极管的复位电路,复位电路可以有效的解决电源毛刺和电源缓慢下降(电池电压不足)等引起的问题,在电源电压瞬间下降时可以使电容迅速放电,一定宽度的电源毛刺也可令系统可靠复位。复位电路的设计图如图3示:

RST

图3复位电路设计图

(二)DS1302与单片机的接口设计

时钟芯片DS1302与单片机STC89C52的接口是由3条线来完成的,单片机

专科毕业设计说明书(论文)

第 8 页 共 I 页

STC89C52的P1.6与时钟芯片的数据传输端相连,P1.5用来作为DS1302输入时钟SCLK控制端,P1.7控制DS1302的复位输入端。DS1302的第8管脚与一个独立电池连接,2、3管脚接标准32.768KHz石英晶振。DS1302与单片机的接口电路如图4所示:

图4 DS1302与单片机的连接

(三) LED显示电路

显示器普遍地用于直观地显示数字系统的运行状态和工作数据,按照材料及产品工艺,单片机应用系统中常用的显示器有: 发光二极管LED显示器、液晶LCD显示器、CRT显示器等。LED显示器是现在最常用的显示器之一,如下图所示。

图5 LED显示器的符号图

专科毕业设计说明书(论文)

第 9 页 共 I 页

发光二极管(LED)由特殊的半导体材料砷化镓、磷砷化镓等制成,可以单独使用,也可以组装成分段式或点阵式LED显示器件(半导体显示器)。分段式显示器(LED数码管)由7条线段围成8字型,每一段包含一个发光二极管。外加正向电压时二极管导通,发出清晰的光。只要按规律控制各发光段亮、灭,就可以显示各种字形或符号。LED数码管有共阳、共阴之分。图是共阳式、共阴式LED数码管的原理图和符号.

图6 共阳式、共阴式LED数码管的原理图和数码管的符号图

显示电路显示模块需要实时显示当前的时间,即时、分、秒,因此需要6个数码管,另需两个数码管来显示横。采用动态显示方式显示时间,硬件连接如下图所示,时的十位和个位分别显示在第一个和第二个数码管,分的十位和个位分别显示在第四个和第五个数码管,秒的十位和个位分别显示在第七个和第八个数码管,其余数码管显示横线。LED显示器的显示控制方式按驱动方式可分成静态显示方式和动态显示方式两种。对于多位LED显示器,通常都是采用动态扫描的方法进行显示。

(四)按键电路设计及按钮控制

1.电路设计

专科毕业设计说明书(论文)

第 10 页 共 I 页

该设计需要校对时间,所以用三个按键来实现。按hour来调节小时的时间,按 minute来调节分针的时间,按 sceond来调节秒的时间。下图是按键硬件连接图。

图7按键控制电路的硬件连接图

2.按钮部分控制

由两个按钮控制SW-进入设置按钮 SWJ-显示时间时长;长按-显示当前秒;闹铃时:按两秒闹铃停止或1分钟后自动停止。

设置时:改变设置

SW按第一次,修改当前小时(进入按SWJ改变下同)。 SW按第二次,修改当前分钟。 SW按第三次,修改闹铃小时。 SW按第四次,修改闹铃分钟。

SW按第五次,闹铃开关(off关on开)。

SW按第六次,每天微调(-“nn”表示每天要减nn秒,“-|nn”表示每天要加nn秒。

SW按第七次,设置显示屏类型(1,2)秒点不显示时改变此项。 SW按第八次,保存设置并退出到时间显示。

(五)闹铃电路设计

闹铃音乐可以直接采用蜂鸣器闹铃,如当前时刻与闹铃时间相同,单片机向蜂

专科毕业设计说明书(论文)

第 11 页 共 I 页

鸣器送出高电平,蜂鸣器发声。采用蜂鸣器闹铃结构简单,控制方便,但是发出的闹铃声音单一。闹铃的音乐不是本设计中的重点,故采用最简单的方法,占用单片机一根I/O口P1.3,中间用PNP型三极管S9012连接P1.3和蜂鸣器。当P1.3引脚为低电平时,S9012的发射极和集电极导通,使蜂鸣器发声。当响铃标志位为“1”时,P2.0送一定频率脉冲,使蜂鸣器发出声音[5]。如图9所

图9 闹铃电路

(六)电源设计

时钟芯片DS1302有很宽的工作电压范围,其工作电压为2.5~5.5V。单片机

STC89C52的工作电压范围相对较窄,为4.0~5.5V,所以本设计中,利用直流电1.5v的四节电池作为电源。

四、硬件原理图

专科毕业设计说明书(论文)

第 12 页 共 I 页

专科毕业设计说明书(论文)

五、软件设计

(一)主程序设计

第 13 页 共 I 页

主程序是先开始,然后启动定时器,定时器启动后在进行按键检测,检测完后,就可以显示时间。

开始

启动定时器

按键检测

图10主程序流程图 时间显示 (二)按键处理

是先检测秒按键是否按下,秒按键如果按下,秒就加1;如果没有按下,就检测分按键是否按下,分按键如果按下,分就加1;如果没有按下,就检测时按键是否按下,时按键如果按下,时就加1;如果没有按下,就把时间显示出来。

专科毕业设计说明书(论文)

N 第 14 页 共 I 页

开始 sceond按键按Y sceond加1 N minute按键按Y minute加1 N hour按键按Y hour加1 显示时间 结束

(三)定时器中断

时是先检测1秒是否到,1秒如果到,秒单元就加1;如果没到,就检测1分钟是否到,1分钟如果到,分单元就加1;如果没到,就检测1小时是否到,1小时如果到,时单元就加1,如果没到,就显示时间。

专科毕业设计说明书(论文)

N 第 15 页 共 I 页

开 始 秒时间一Y 秒单元加1

N 60秒时间Y 秒单元清零,分单N 60分钟Y 分单元清零,时单元N 24小时 Y 时单元清零

时间显中断返回 六 、系统调试

(一)软件调试

软件调试相对比较简单,但是要掌握仿真软件的用法,首先在仿真软件(Proteus)上建立仿真模型(电路图),然后用Keil C编程序和Proteus进行联机仿真调试,分别对显示、按键、时钟等各个部分进行调试,检测电路原理图的正确与否。

(二)硬件调试

单片机基础电路包括电源、单片机、外部时钟震荡电路、复位电路和外部接口电路。调试过程需要注意以下几点: 1.检查电源是否完好。

2. 单片机电源要连接正确,并且保证AT89C51的31号引脚接高电平。AT89C51

专科毕业设计说明书(论文)

片内程序存储器内取指令。

3. 如果使用P0口做I/O口,要接上拉电阻。

第 16 页 共 I 页

的31号引脚是外部程序存储器选择信号端,当该引脚为高电平时,单片机会一直从

4. 使用万用表排查电路中是否存在断路或者短路情况。笔者在制作外部接口电路时使用的是排针,焊接时容易出现管脚之间短路,所以在上电以前必须先排查电路。

5.编辑一个简单程序,上电运行,检查单片机是否正常工作,复位电路是否正确。

1.显示电路调试

由于显示电路中连线比较多,所以应该先使用万用表排除电路中是否存在断路或者短路情况,可别是插针部分,此外特别注意LCD1602的三个控制管脚P1.0、P1.1、P1.2是否与单片机连接上了。然后编写简单的显示程序运行,检查电路是否正常。

2.DS1302电路调试

该电路包含DS1302芯片、主电源、备用电源、晶振等部分。在与单片机连接的过程中需要注意以下几点:

(1) 清楚DS1302与单片机连接的管脚。本设计定义为:DS1302的SCLK连接P3.1,I/O连接P3.0,RST连接P3.7。 (2) 注意电源正负极连接。

(3) DS1302接32.768KHz的晶振。该晶振体型比较小,在焊接时要小心,注意不要将晶振引脚弄断。同时也要尽量使晶振离DS1302的X1、X2引脚近距离焊接。

(4) 编写DS1302的时钟/日历程序,只要求能够正确显示时间。烧录进单片机,检查电路电源正负极连接是否正确,检查无误后可以上电检查[10]。 3.按键电路的调试

按键电路比较简单,故调试起来也很容易。如果确保按键焊接正确的情况下,编写一个简单的按键程序和显示程序一起就可以检测其正确性了。

专科毕业设计说明书(论文)

结束语

第 17 页 共 I 页

经过一个多月的努力我的毕业设计终于完成了,但是现在回想起来做毕业设计的整个过程,颇有心得,其中有苦也有甜,艰辛同时又充满乐趣,不过乐趣尽在其中!通过本次毕业设计,没有接受任务以前觉得毕业设计只是对这几年来所学知识的单纯总结,但是通过这次做毕业设计发现毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。

这次毕业设计要求是基于单片机控制的作息时间系统,自行设计这对我将来踏上工作岗位是非常有帮助的。这也是我对自己的考验。于是本次设计过程中我完全按照软件设计步骤的要求来进行,从课题分析开始,再进行总体设计、详细设计,最后到系统实现。每一步都让我将理论学习的知识应用到实践中去。也使我掌握了一整套规范的控制操作流程。

在课题分析阶段,由于本次是设计一个单片机控制系统,所以对其中的单片机的工作分析尤为重要。对指导老师提供的资料必须要吃透。这是关键,从查阅资料、提出问题,到慢慢一一解决问题,在总体设计阶段,由于课题分析做的比较全面,很快就对系统的功能,控制机制有了充分的认识,形成了自动控制流程图.在详细设计阶段,首先考虑各电路模块的主要功能及软件的设计,分别进行安装调试。其次将写好的程序进行上机调试,这时就遇到了非常大的困难,烦琐的接口采集数据,分析数据,检测,调用,很容易出错。

最后,系统运行环节。对已完成的程序和硬件系统相结合。调试时,由于控制逻辑上出现了一点问题,使得硬件和软件不能完全统一。当时我心里是非常焦急的,这一出错也意味着前功尽弃。然而,在指导老师的分析与鼓励下,我重新纠错找到了错误并改正。使我意识到今后不论遇到什么情况都要分析原因,沉着应对,必然能“化险为夷”。

致谢

这次毕业设计让我学习到很多。虽然结束了,但这只能是一个开始。怎样使自己的能力得到提高,在单片机领域,要学的实在太多,仅大学生涯所学实在有限。我们只有对自己有了更高的要求,才能作为动力不断取得新的成绩!

另外要感谢我的指导老师谢老师对我悉心的指导,感谢老师给我的帮助。并向

专科毕业设计说明书(论文)

第 18 页 共 I 页

老师请教等方式,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。在整个设计中我懂得了许多东西,也培养了我独立工作的能力,树立了对自己工作能力的信心,相信会对今后的学习工作生活有非常重要的影响。

在写这篇毕业设计论文的过程中,我也遇到了许多的困难,之所以能坚持至今,这都离不开我的导师和同学的帮助。导师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。不仅使我树立了远大的学术目标、掌握了基本的研究方法,还使我明白了许多待人接物与为人处世的道理。

本论文从选题到完成,每一步都是在导师的指导下完成的,倾注了导师大量的心血。在此,谨向导师表示崇高的敬意和衷心的感谢!最后,感谢我的母校;感谢在这三年来教给我知识的所有老师;也感谢所有在本次毕业设计中给过我帮助的老师、同学和舍友,是你们的鼓励、支持和帮助,才使得我能坚持完成毕业论文。 参考文献

[1]李及. 赵利民.MCS-51系列单片机原理与应用[M].长春:吉林科学技术

社,1995.23-25.

[2]万胜前. 基于KeilC51软件的电子钟设计与制作[J],鄂州大学学报,2007年第

2期.

[3]蒋敏. 单片微机万年历设计[D],职大学报,2000年第2期.

[4]林敏等. 计算机控制技术及工程应用[M],国防工业出版社,2009.8.90-93 [5]何书森等. 用电子线路设计速成[M],福州:福建科学技术出版社,2005.10.12-13 [6]黄明强. DS1302在单片机系统中的应用[J].保定师范专科学校学报,2004,17(2) [7]蒋敏. 单片微机万年历设计[J],职大学报,2000年第2期

[8]林敏等. 计算机控制技术及工程应用[M],国防工业出版社,2009.8.66-69 [9]戴佳,戴卫恒. 51单片机C语言应用程序设计实例精讲[M],北京:电子工业出

版社,2006.4.192-193

[10]沈红卫. 基于单片机的智能系统设计与实现[D],北京:电子工业出版社,

专科毕业设计说明书(论文)

附件:

第 19 页 共 I 页

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

DS1302元器件明细表

型号 数量 PCB编号 接线座2芯 1 J1 5.1K 5 R1~R5 680欧姆 8 Ra~Rg Rdp IN4184 1 D5 DS1302 1 U2 22P 2 C8~C9 32768HZ晶振 1 Y2 自锁开关 1 AT89C51 1 跳线(32768晶振固定) 1 自备 0.1Uf(104) 1 C4 1u(105) 1 C5 2SA1015 5 Q1~Q5 数码管座 2 DIP20座 1 12MHZ晶振 1 Y1 30P 2 C6~C7 微动开关 2 SW SWJ 电池座 1 220uF 1 C3 5V蜂鸣器 1 BZ1 2032-3V电池 1 BT1 四位七段LED 1 DS1 PCB 1 原程序

ORG 0000H ;定位

AJMP START ;跳转到主程序 ORG 000BH ;定位 AJMP TIME0

ORG 001BH ;定位

专科毕业设计说明书(论文)

AJMP TIME1

ORG 0100H ;定位 START: ;内存数据定义

BitCnt data 21h ; 数据位计数器 ByteCnt data 22h ; 数据字节计数器 ;Command data 23h ; 命令字节地址 Command data 31h ; 命令字节地址 SSS SSF SSM

DATA DATA DATA

24H ;显示用 时 25H ;显示用 分

2CH ;秒,自动调整时间用 2DH ;计数用,显示秒 2EH ;秒,显示秒用 26H ;闹钟用 时 27H ;闹钟用 分 28H ;闹钟暂停

29H ;长时间不操作返回 2AH ;长时间不操作返回 2BH ;每天加减的秒数 2FH ;显示屏类型(1,2)

第 20 页 共 I 页

XSMZT DATA SSMM NZS NZF NZZT FHL FHH KMKM XSP

DATA DATA DATA DATA DATA DATA DATA DATA

RcvDat DATA 30H ; 接收数据缓冲区 XmtDat DATA 40H ; 发送数据缓冲区 ;端口位定义

IO_DATA bit P3.0 ; 数据传送总线 SCLK RST D1 D2 D3

bit P3.1 ; 时钟控制总线 bit P3.7 ; 复位总线 BIT BIT BIT

P3.0 P3.1 P3.2

专科毕业设计说明书(论文)

D4 NZ SW SWJ

BIT BIT BIT BIT

P3.3 P3.4 P3.5 P1.7

;闹钟

第 21 页 共 I 页

ZSMS EQU R6 ;进入置数模式, 01B(1)---进入置时间小时,10B(2)--进入置

时间分钟,11B(3)--置闹钟小时,100B(4)--进入置闹钟分钟,101B(5)置闹钟开关,110B(6)设置时间快慢

X1302 EQU NPS NPF MSS NZK

EQU EQU EQU EQU

20H.0 ;需要写1302标志,1--要写 20H.1 ;扫描段时小时显示判断 1-不显示 20H.2 ;扫描段时分钟时显示判断 1-不显示 20H.3 ;秒闪位 0---亮秒灯 20H.4 ;闹钟开 , 1--开闹钟

20H.5 ;快慢是否调整过, 1---已调整过了 20H.6 ;显示秒位,1---显示秒

20H.7 ;1302不写当前时间(未改变时间),1---写;0--不写

KMTZ EQU XSMWEI EQU X1302SJ EQU

ZTSJW EQU ;TEMP_1 MOV

23H.0 ;自动调整时间 + or - 0---减 1--加 EQU

23H.1 ;临时调试1

23H,#00H

;========================= ;D1---段1(最高位),D2,D3,D4 ;R0,R1--读写1302 ;R2--延时使用 ;R3---秒闪计时 ;R4---闹钟闹计时

;R5-供时显示闪烁用记200ms

专科毕业设计说明书(论文)

第 22 页 共 I 页

;R6--进入置数模式, 01B(1)---进入置时间小时,10B(2)--进入置时间分钟,11B(3)--置闹钟小时,100B(4)--进入置闹钟分钟,101B(5)置闹钟开关,110B(6)设置时间快慢 ;R7--要显示的段

;========================= MOV SP,#60H ;设置堆栈 MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV MOV CLR

XSMZT,#0H SSM,#0FFH 20H,#00H 2BH,#00H ZSMS,#00H FHL,#0FFH FHH,#3 R3,#80 R4,#01H R5,#5 R7,#4 P1,#0FFH P3,#0FFH RST

MOV TMOD,#00010001B;定时/计数器0 ;工作于方式1 ;定时器1,工作于方式1

SETB EA ;中断总允许 SETB ET0 SETB ET1 MOV TH0,#0ECH MOV TL0,#07CH MOV TH1,#03CH

MOV TL1,#0B0H ;50MS

;定时器0--5ms

;中断0允许

专科毕业设计说明书(论文)

;单字节读出秒单元的内容

MOV Command,#81h ; 命令字节为81h MOV ByteCnt,#1 ; 单字节传送模式 MOV R1,#RcvDat; 数据地址覆给R1 ACALL Receive_Byte; 调用读出数据子程序 MOV

A,RcvDat

第 23 页 共 I 页

;判断时钟是否停止,如果停止,就写入初始值 JNB

ACC.7,CC1

;多字节写 (写入09 年5 月27 日星期三14 时59 分59 秒) MOV Command,#0BEh ;命令字节为BEh

MOV ByteCnt,#8 ;多字节写入模式此模块为8 个 MOV R0,#XmtDat ;数据地址覆给R0 MOV XmtDat,#59h ;秒单元 MOV XmtDat+1,#59h ;分单元 MOV XmtDat+2,#14h ;时单元 MOV XmtDat+3,#27h ;日期单元 MOV XmtDat+4,#05h ;月单元 MOV XmtDat+5,#03h ;星期单元 MOV XmtDat+6,#09H ;年单元

MOV XmtDat+7,#0 ;写保护单元内容为00h ACALL Send_Byte ;调用写入数据子程序

;RAM操作

MOV Command,#0C0h ; 命令字节 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 MOV XmtDat,#12H ;数据内容

专科毕业设计说明书(论文)

ACALL Send_Byte ;调用写入数据子程序 NZS 第 24 页 共 I 页

MOV Command,#0C2h ; 命令字节 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 MOV XmtDat,#00H ;数据内容

ACALL Send_Byte ;调用写入数据子程序MOV Command,#0C4h ; 命令字节 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 MOV XmtDat,#00H ;数据内容为

ACALL Send_Byte ;调用写入数据子程序

MOV Command,#0C6h ; 命令字节 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 MOV XmtDat,#00H ;数据内容为

ACALL Send_Byte ;调用写入数据子程序

MOV Command,#0C8h ; 命令字节 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 MOV XmtDat,#02H ;数据内容为

ACALL Send_Byte ;调用写入数据子程序

MOV Command,#0CAh ; 命令字节 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0

NZK KMKM xsp NZF

专科毕业设计说明书(论文)

CC1:

;Write_Enable:

MOV Command,#8Eh ;命令字节为8E MOV ByteCnt,#1 ;单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 MOV XmtDat,#00h ;数据内容为0 写入允许 ACALL Send_Byte ;调用写入数据子程序 NOP

MOV XmtDat,#00H ;数据内容为

第 25 页 共 I 页

ACALL Send_Byte ;调用写入数据子程序 ztsjw

;单字节读出分单元的内容

MOV Command,#83h ; 命令字节为83h MOV ByteCnt,#1 ; 单字节传送模式 MOV R1,#RcvDat; 数据地址覆给R1 ACALL Receive_Byte; 调用读出数据子程序 MOV

SSF,RcvDat ;--------------------------------------

;单字节读出时单元的内容

MOV Command,#85h ; 命令字节为85h MOV ByteCnt,#1 ; 单字节传送模式 MOV R1,#RcvDat; 数据地址覆给R1 ACALL Receive_Byte; 调用读出数据子程序 MOV

SSS,RcvDat ;--------------------------------------

MOV Command,#0C1h ; 命令字节为C0h RAM0 MOV ByteCnt,#1 ; 单字节传送模式 MOV R1,#RcvDat; 数据地址覆给R1 ACALL Receive_Byte; 调用读出数据子程序 MOV

NZS,RcvDat ;--------------------------------------

专科毕业设计说明书(论文)

MOV Command,#0C3h ; 命令字节为C3h RAM1 MOV ByteCnt,#1 ; 单字节传送模式 MOV R1,#RcvDat; 数据地址覆给R1 ACALL Receive_Byte; 调用读出数据子程序 MOV

MOV Command,#0C5h ; 命令字节为C5h RAM2 MOV ByteCnt,#1 ; 单字节传送模式 MOV R1,#RcvDat; 数据地址覆给R1 ACALL Receive_Byte; 调用读出数据子程序 MOV RRC MOV

MOV Command,#0C7h ; 命令字节为C7h RAM3 MOV ByteCnt,#1 ; 单字节传送模式 MOV R1,#RcvDat; 数据地址覆给R1 ACALL Receive_Byte; 调用读出数据子程序 MOV

MOV Command,#0C9h ; 命令字节为C9h RAM4 MOV ByteCnt,#1 ; 单字节传送模式 MOV R1,#RcvDat; 数据地址覆给R1 ACALL Receive_Byte; 调用读出数据子程序 MOV

MOV Command,#0CBh ; 命令字节为Cbh RAM5 MOV ByteCnt,#1 ; 单字节传送模式

第 26 页 共 I 页

NZF,RcvDat ;--------------------------------------

A,RcvDat ;-------------------------------------- A NZK,C

KMKM,RcvDat ;--------------------------------------

XSP,RcvDat ;--------------------------------------

专科毕业设计说明书(论文)

MOV R1,#RcvDat; 数据地址覆给R1 ACALL Receive_Byte; 调用读出数据子程序 MOV MOV CJNE QW11: MOV CJNE

A,XSP A,#0FFH,QW1 MOV

TR0 XSP,#01H

A,KMKM A,#0FFH,QW11 MOV

KMKM,#00H

第 27 页 共 I 页

23H,RcvDat ;--------------------------------------

QW1:SETB SETB

TR1

LOOP: JB

SW,LQQ ;若为1,说明为干扰信号,退出

MOV R2,#24 ACALL DELAY JB JNB ;

SW,LQQ ;约53ms SW,$ ;等待松开 JB CJNE TKS1: CJNE

ZSMS,#1,TKS2 MOV AJMP

ZSMS,#2 QQT

ZSMS,TKS ;处理sw键 ZSMS,#0,TKS1 ;SETB ZSMS MOV AJMP

ZSMS,#1 QQT

专科毕业设计说明书(论文)

TKS2: CJNE TKS3: CJNE TKS4: CJNE TKS4a: CJNE TKS4B: CJNE TKS5: CJNE

ZSMS,#7,TKS6 MOV CLR CLR SETB

NPS NPF X1302 QQT ZSMS,#0

ZSMS,#6,TKS5 MOV AJMP

ZSMS,#7 QQT

ZSMS,#5,TKS4B MOV AJMP

ZSMS,#6 QQT

ZSMS,#4,TKS4a MOV AJMP

ZSMS,#5 QQT

ZSMS,#3,TKS4 MOV AJMP

ZSMS,#4 QQT

ZSMS,#2,TKS3 MOV AJMP

ZSMS,#3 QQT

第 28 页 共 I 页

TKS6: AJMP

专科毕业设计说明书(论文)

LQQ:

;JNB ZSMS,QQT CJNE ZSMS,#0,TKS61 AJMP QQT TKS61:JB

MOV

第 29 页 共 I 页

SWJ,TKS6 ;若为1,说明为干扰信号,退出 R2,#24

ACALL DELAY ;约52ms JB JNB

SWJ,QQT1 SWJ,$ ;等待松开 ;处理swj CJNE TKSS1: CJNE

ZSMS,#2,TKSS2 SETB

X1302SJ

ZSMS,#1,TKSS1 SETB INC MOV CJNE MOV AJMP PD12: CJNE MOV AJMP PD13: CJNE MOV PD14: AJMP

QQT

A,#024H,PD14 SSS,#00H A,#01AH,PD13 SSS,#020H QQT X1302SJ SSS A,SSS A,#00AH,PD12 SSS,#010H QQT

专科毕业设计说明书(论文)

TKSS2: CJNE

ZSMS,#3,TKSS3 INC MOV CJNE MOV AJMP PD122: CJNE MOV AJMP PD132: CJNE MOV PD142:

QQT

A,#024H,PD142 NZS,#00H A,#01AH,PD132 NZS,#020H QQT NZS A,NZS A,#00AH,PD122 NZS,#010H QQT

INC MOV ANL CJNE MOV ADD MOV PD131: CJNE MOV AJMP

A,#060H,QQT SSF,#00H QQT SSF A,SSF A,#0FH A,#0AH,PD131 A,SSF A,#06H SSF,A

第 30 页 共 I 页

QQT1: AJMP TKSS3:

专科毕业设计说明书(论文)

CJNE TKSS4: CJNE TKSS5: CJNE

ZSMS,#5,TKSS5 CPL AJMP

NZK QQT

ZSMS,#4,TKSS4 INC MOV ANL CJNE MOV ADD MOV

NZF A,NZF A,#0FH A,#0AH,PD1313 A,NZF A,#06H NZF,A

第 31 页 共 I 页

PD1313: CJNE MOV AJMP

A,#060H,QQT NZF,#00H QQT

ZSMS,#6,TKSS5A ;快慢时间调整 INC MOV ANL CJNE MOV ADD MOV

KMKM A,KMKM A,#0FH A,#0AH,KMKM11 A,KMKM A,#06H KMKM,A

KMKM11: JB CJNE

KMKM.5,QINGLING

A,#019H,QQT ;到19;每天调整的最大秒数

QINGLING:

专科毕业设计说明书(论文)

MOV CPL AJMP

KMKM,#00H ZTSJW QQT

第 32 页 共 I 页

TKSS5A: CJNE

ZSMS,#7,QQT ;显示屏类型设置 INC MOV CJNE MOV AJMP

XSP A,XSP A,#3,QQT XSP,#1 QQT

QQT:AJMP LOOP TIME0: MOV MOV

TL0,#078H TH0,#0ECH

;定时器0--5ms

PUSH ACC PUSH PSW SETB D1 SETB D2 SETB D3 SETB D4 MOV JNB

X1302,ZACA1A1 ;写入调整后的时间 ;Write_Singlebyte: ;单字节传送方式 MOV CJNE

A,SSM

A,#0FFH,YLD1 ;如果秒是ff就不写,自动调整时间用

P1,#0FFH

专科毕业设计说明书(论文)

AJMP YLD1:

MOV Command,#80h ; 命令字节 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 MOV XmtDat,SSM ;数据内容

ACALL Send_Byte ;调用写入数据子程序 MOV AJMP

ZACA1A1: AJMP YLD: JNB CLR

X1302SJ,TYLD X1302SJ ZACA SSM,#0FFH YLD YLD

第 33 页 共 I 页

MOV Command,#84h ; 命令字节 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 MOV XmtDat,SSS ;数据内容

ACALL Send_Byte ;调用写入数据子程序

MOV Command,#82h ; 命令字节 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 MOV XmtDat,SSF ;数据内容

ACALL Send_Byte ;调用写入数据子程序

专科毕业设计说明书(论文)

MOV Command,#0C4h ; 命令字节 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 MOV MOV RLC

A,#00H C,NZK A

TYLD:

MOV Command,#0C0h ; 命令字节 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 MOV ANL

A,NZS A,#03FH

第 34 页 共 I 页

MOV XmtDat,A ;数据内容

ACALL Send_Byte ;调用写入数据子程序

MOV Command,#0C2h ; 命令字节为82h MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 MOV ANL

A,NZF A,#07FH

MOV XmtDat,A ;数据内容

ACALL Send_Byte ;调用写入数据子程序

MOV XmtDat,A ;数据内容

ACALL Send_Byte ;调用写入数据子程序

MOV Command,#0C6h ; 命令字节

专科毕业设计说明书(论文)

MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 MOV

A,KMKM

第 35 页 共 I 页

MOV XmtDat,A ;数据内容为

ACALL Send_Byte ;调用写入数据子程序 KMKM

MOV Command,#0C8h ; 命令字节 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 ;MOV

A,XSP

MOV XmtDat,XSP ;数据内容为

ACALL Send_Byte ;调用写入数据子程序

MOV Command,#0CAh ; 命令字节 MOV ByteCnt,#1 ; 单字节传送模式 MOV R0,#XmtDat ;数据地址覆给R0 ;MOV

A,XSP

MOV XmtDat,23H ;数据内容为

ACALL Send_Byte ;调用写入数据子程序 CLR X1302

SETB D1 SETB D2

ZACA:

CJNE ZSMS,#0,ZACA2 ;置时间 AJMP ZACA1 ZACA2:

XSP ztsjw 专科毕业设计说明书(论文)

第 36 页 共 I 页

DJNZ MOV CJNE CPL CLR AJMP LAA: CJNE CPL CLR AJMP LAA1: CJNE CPL SETB AJMP LAA2: CJNE CPL SETB AJMP LAA3: CLR CLR

;CJNE

ZACA1:

DJNZ

R5,ZACA1 R5,#40

ZSMS,#1,LAA NPS NPF ZACA1 ZSMS,#2,LAA1 NPF NPS ZACA1 ZSMS,#3,LAA2 NPS NPF

ZACA1

ZSMS,#4,LAA3 NPF NPS ZACA1 NPF NPS

ZSMS,#5,ZACA1 R3,EOE

专科毕业设计说明书(论文)

CPL MOV

MSS

R3,#100 ;500MS

第 37 页 共 I 页

;调整时间 时不进入下面 CJNE ZSMS,#0,EOE AJMP Q9Q EOE: AJMP XSD4 Q9Q:

;读1302 约500ms读一次 ;单字节读出分单元的内容

MOV Command,#83h ; 命令字节为83h MOV ByteCnt,#1 ; 单字节传送模式 MOV R1,#RcvDat; 数据地址覆给R1 ACALL Receive_Byte; 调用读出数据子程序 MOV ANL

SSF,RcvDat ;-------------------------------------- SSF,#07FH

;单字节读出时单元的内容

MOV Command,#85h ; 命令字节为85h MOV ByteCnt,#1 ; 单字节传送模式 MOV R1,#RcvDat; 数据地址覆给R1 ACALL Receive_Byte; 调用读出数据子程序 MOV ANL

;单字节读出秒单元的内容

MOV Command,#81h ; 命令字节为81h MOV ByteCnt,#1 ; 单字节传送模式 MOV R1,#RcvDat; 数据地址覆给R1 ACALL Receive_Byte; 调用读出数据子程序

SSS,RcvDat ;-------------------------------------- SSS,#03FH

专科毕业设计说明书(论文)

MOV ANL MOV

A,RcvDat A,#07FH SSMM,A

第 38 页 共 I 页

;============开始快慢调整 ZTSJW=1加时间 =0减时间 MOV CJNE KMBEG: JB MOV CJNE MOV CJNE MOV JB CJNE SUBB AJMP

A,#029H,KMEND1 A,KMKM X120319 ZTSJW,JIAZTSJW KMTZ,KMEND1 A,SSS

A,#03H,KMEND1 ;每天3:59: 29/30开始调整,4:0写回KMTZ的状态 A,SSF

A,#59H,KMEND1 A,SSMM A,KMKM A,#00H,KMBEG AJMP

KMEND

JIAZTSJW: CJNE ADD X120319: MOV SETB SETB

SSM,A KMTZ X1302

A,#030H,KMEND1 A,KMKM

本文来源:https://www.bwwdw.com/article/dl86.html

Top