万年历毕业论文---基于AT89S52单片机的电子万年历设计_第1页
万年历毕业论文---基于AT89S52单片机的电子万年历设计_第2页
万年历毕业论文---基于AT89S52单片机的电子万年历设计_第3页
万年历毕业论文---基于AT89S52单片机的电子万年历设计_第4页
万年历毕业论文---基于AT89S52单片机的电子万年历设计_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业论文(设计)本科毕业论文(设计) 题目基于 AT89S52 单片机的电子万年历设计 基于单片机的万年历的设计 摘要 单片机技术发展迅速,由于他的微小、易用、多功能在智能仪器、家用电器、电 子通信、工业控制等方面应用广泛。单片机是集 CPU ,RAM ,ROM ,定时,计数和 多种接口于一体的微控制器,它体积小、成本低、功能强,而 51 系列单片机是 各单片机中最为典型和最有代表性的一种。这次毕业设计通过对它的学习、 应用 从而达到学习、设计、开发软、硬的能力。 电子万年历主要采用 AT89S52 单片机作为主控核心, 由 DS1302 时钟芯片提 供时钟、LED 动态扫描显示屏显示。AT89S52 单片机功耗小、电压可选用 2.0 6V 电压供电; DS1302 时钟芯片是美国 DALLAS 公司推出的具有涓细电流充电功能 的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时;数 字显示是采用的 LED 液晶显示屏来显示,可以同时显示年、月、日、星期、时、 分、秒和温度等信息。 关键词万年历;AT89S52 单片机;1602 液晶显示屏;DS1302 时钟芯片. Based on SCM calendar designBased on SCM calendar design ABSTRACTABSTRACT Single chip microcomputer development is rapid, because of his tiny, is easy to use, and multi-function in intelligent instrument, home appliances, electronic communication, industry control, wide application. SCM is set for the CPU, RAM, ROM, time, count and a variety of interface in one of the micro controller. Its small size, low cost, the function is strong, and 51 series microcontroller is the most typical of single chip microcomputer and the most representative of a kind. The graduation design through to its study, application, so as to study, design, and develop the ability of soft and hard. The electronic calendar mainly USES the AT89S52 SCM as the master its core, and the DS1302 clock chip provide clock, LED dynamic scanning display shows. AT89S52 SCM power consumption is small, voltage can choose 2.0 6 V voltage power supply; DS1302 clock chip is the United States out Juan DALLAS has fine current charge function of low power consumption real time clock chip, it can be to year, month, day, week, when, minutes and seconds for timing; Digital display is USES LED LCD screen to display, can also shows that year, month, day, week, when, minutes and seconds and temperature and other information. KEYWORDSKEYWORDSCalendar;AT89S52 SCM; 1602 LCD; DS1302 clock chip. 1 1 绪论绪论 随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精 准数字计时的消费需求也是越来越多,数字时钟由于其体积小、价格廉价、功能 齐全受到市场的欢迎,而电子万年历作为电子类小设计不仅是市场上的宠儿,也 是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因 此对作者的要求比较高, 不仅考察了对单片机的掌握能力更加强调了对单片机扩 展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出 色。 数字显示的日历钟已经越来越流行, 特别是适合在家庭居室、 办公室、 大厅、 会议室、车站和广场等使用,壁挂式LED数码管显示的日历钟逐渐受到人们的欢 迎。LED数字显示的日历钟显示清晰直观、走时准确、可以进行夜视,并且还可 以扩展出多种功能。 本文提出了一种基于 AT89S52单片机的万年历设计方案, 屏幕采用一个 LCD 显示。 本方案以 AT89S52 单片机作为主控核心, 与时钟芯片 DS1302、 闹钟模块、 按键、 LCD 显示等模块组成硬件系统。 在硬件系统中设有 3 个独立按键和一个 LCD 显示器,能显示丰富的信息,根据使用者的需要可以随时对时间进行校准、选择 时间、温度显示、是否为闰年等,综上所述此万年历具有读取方便、显示直观、 功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具 有广阔的市场前景. 2 2 系统设计方案及分析系统设计方案及分析 2.12.1 设计要求设计要求 (1) 具有年、月、日、星期、时、分、秒显示并能进行断电自动保存等功能; (2) 能对时间进行调整设定; 2.2 单片机芯片的选择方案和论证 方案一: 采用 89C51 芯片作为硬件核心,采用 Flash ROM,内部具有 4KB ROM 存储空 间,能于 3V 的超低压工作,而且与 MCS-51 系列单片机完全兼容,但是运用于电路 设计中时由于不具备 ISP 在线编程技术, 当在对电路进行调试时, 由于程序的错 误修改或对程序的新增功能需要烧入程序时, 对芯片的多次拔插会对芯片造成一 I 定的损坏2。 方案二: 采用 STC89C52RC,片内 ROM 全都采用 Flash ROM;工作电压为 2.0V3.8V, 3.3V5.5V 两个段, 频率为 040MHZ, 同时也与 MCS-51 系列单片机完全该芯片 内部存储器为 8KB ROM 存储空间,同样具有 89C51 的功能,且具有在线编程可 擦除技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需 要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏3。 由以上所得选择采用 STC89S52 作为主控制系统. 2.32.3 电源模块设计电源模块设计 方案一:采用 9V 干电池经 LDO 稳压成 5V 电源为系统提供电源,携带方便,单电 池对环境带来的危害大,增加成本。 方案二:采用市电经变压器降压成 5V 电源,为 MCU 及外部电路提供电源,能提 供较为稳定的电压及足够的功率,制作简单,应用方便,适宜家庭常用。故本设 计选择方案二 2.42.4 显示模块选择方案和论证:显示模块选择方案和论证: 方案一: 采用 LED 数码管动态扫描,LED 数码管价格适中,但是电路太复杂,在焊接电 路的时候更容易发生焊接方面的错误,如脱焊虚焊等现象,而且做出来的产品较 庞大笨重也不美观,所以也不选择数码管。 方案二: 采用 LCD 液晶显示屏,液晶显示屏的显示功能强大,可显示文字,图形,显示多样, 清晰可见.而且体积较小,使用方便,更容易满足工程上对于电路更加简洁的要 求,让我们学习到更多的关于液晶显示器的知识,所以选择了液晶显示器,根据 本设计的数据显示要求选择 LCD1602 液晶即可。 2.52.5 时钟芯片的选择方案和论证:时钟芯片的选择方案和论证: II 方案一: 直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、 分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间 误差较大。所以不采用此方案。 方案二: 采用 DS1302 时钟芯片实现时钟,DS1302 芯片是一种高性能的时钟芯片,可自动 对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,工作 电压 2.5V5.5V 范围内,2.5V 时耗电小于 300nA. 2.62.6 电路设计最终方案决定电路设计最终方案决定 综上各方案所述 ,对此次作品的方案选定 : 采用 AT89S52 作为主控制系 统;LCD1602 液晶显示器作为显示设备;DS1302 提供时钟电路,采用市电变为5V 的电源。 3 3 系统硬件的设计与实现系统硬件的设计与实现 3.13.1 电路设计框图电路设计框图 LCD 液 晶 显 示 模 块 AT89S52 主 控 制 模块 DS1302 时钟模块 图1 电路设计图 键盘扫描 3.23.2 单片机主控制模块单片机主控制模块 1、AT89S52 的主要性能 AT89S52 是美国 Atmel 公司生产的低电压、高性能 CMOS 8 位单片机,片内 III 含 8KB 的可反复檫写的程序存储器和 256 字节数据存储器 (RAM) , 器件采用 Atmel 公司的高密度、非易失性存储技术生产,兼容标准 MCS-51 指令系统,片内配置 通用 8 位中央处理器(CPU)和 Flash 存储单元,功能强大的 AT89S52 单片机可 灵活应用于各种控制领域。AT89S52 单片机属于 AT89C51 单片机的增强型,与 Intel 公司的 80C52 在引脚排列、硬件组成、工作特点和指令系统等方面兼容。 单片机正常工作时,都需要有一个时钟电路和一个复位电路。本设计中选择了内 部时钟方式和按键电平复位电路,来构成单片机的最小电路。复位是单片机的初 始化操作,单片机在启动运行时,都需要先复位,其作用是使 CPU 和系统中其他 部件都处于一个确定的初始状态,并从这个状态开始工作。因而,复位是一个很 重要的操作方式。但单片机本身是不能自动进行复位的,必须配合相应的外部电 路来实现。其主要工作特性是: 8K 字节可编程 flash 存储器; 全双工 UART 串行通道 八个中断源; 低功耗空闲和掉电模式 与 MCS51 单片机兼容;掉电后中断可唤醒 全静态操作:0HZ33HZ;看门狗定时器 三级加密程序存储器;双数据指针 32 个可编程 I/O 口线; 1000 次擦写周期 三个十六位定时器;掉电标识符 2AT89S52 引脚,它共有四十个引脚图片如下: P0 口:P0 口是一个 8 位漏极开路的双向 I/O 口。作为输出口,每位能驱动8 个 TTL 逻辑电平。对 P0 端口写“1”时,引脚用作高阻抗输入。当访问外部程序和 数据存储器时,P0 口也被作为低 8 位地址/数据复用。在这种模式下,P0 具有内 部上拉电阻。在 flash 编程时,P0 口也用来接收指令字节;在程序校验时,输 出指令字节。程序校验时,需要外部上拉电阻。 P1 口: P1 口是一个具有内部上拉电阻的 8 位双向 I/O 口, p1 输出缓冲器 能驱动 4 个 TTL 逻辑电平。对 P1 端口写“1”时,内部上拉电阻把端口拉高, 此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的 原因,将输出电流(IIL) 。 此外,P1.0 和 P1.2 分别作定时器/计数器 2 的外部 IV 计数输入(P1.0/T2)和时器/计数器 2 的触发输入(P1.1/T2EX) ,具体如下表 所示。 在 flash 编程和校验时,P1 口接收低 8 位地址字节。 P1 口的第二功能如下: P1.0 T2(定时器/计数器 T2 的外部计数输入) ,时钟输出 P1.1 T2EX(定时器/计数器 T2 的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口: P2 口是一个具有内部上拉电阻的 8 位双向 I/O 口, P2 输出缓冲器能驱 动 4 个 TTL 逻辑电平。对 P2 端口写“1”时,内部上拉电阻把端口拉高,此时 可以作为输入口使用。 作为输入使用时, 被外部拉低的引脚由于内部电阻的原因, 将输出电流 (IIL) 。 访问外部程序存储器或用 16 位地址读取外部数据存储器 (例 如执行 MOVX DPTR) ,P2 口送出高八位地址。在这种应用中,P2 口使用很强的 内部上拉发送 1。在使用 8 位地址(如 MOVX RI)访问外部数据存储器时,P2 口输出 P2 锁存器的内容。flash 编程和校验时,P2 口也接收高 8 位地址字节和 一些控制信号。 P3 口: P3 口是一个具有内部上拉电阻的 8 位双向 I/O 口, p2 输出缓冲器 能驱动 4 个 TTL 逻辑电平。对 P3 端口写“1”时,内部上拉电阻把端口拉高, 此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的 原因,将输出电流(IIL) 。P3 口亦作为 AT89S52 特殊功能(第二功能)使用, 如下表所示。flash 编程和校验时,P3 口也接收一些控制信号。 P3 口的二功能如下: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INTO(外中断 0) P3.3 INT1(外中断 1) P3.4 TO(定时/计数器 0) P3.5 T1(定时/计数器 1) P3.6 WR(外部数据存储器写选通) V P3.7 RD(外部数据存储器读选通) 此外,P3 口还接收一些用于 FLASH 闪存编程和程序校验的控制信号。 RST复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电 平将是单片机复位。 ALE/PROG当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输 出脉冲用于锁存地址的低 8 位字节。一般情况下,ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每 当访问外部数据存储器时将跳过一个 ALE 脉冲。对 FLASH 存储器编程期间, 该引 脚还用于输入编程脉冲(PROG) 。如有必要,通过对特殊功能寄存器( SFR)区中 的 8EH 单元的 D0 位置位, 可禁止 ALE 操作。 该位置位后, 只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应 设置 ALE 禁止位无效。 PSEN程序储存允许( PSEN)输出是外部程序存储器的读选通信号,当 AT89C52 由外部程序存储器取指令 (或数据) 时, 每个机器周期两次 PSEN 有效, 即输出两个脉冲,在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。 EA/VPP外部访问允许,欲使CPU 仅访问外部程序存储器(地址为 0000H-FFFFH) ,EA 端必须保持低电平(接地) 。需注意的是:如 果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。如EA 端为高电平(接 Vcc 端) ,CPU 则执行内部程序存储器的指令。 单片机的最小系统如下图所示,18 引脚和 19 引脚接时钟电路,XTAL1 接外部晶振 和微调电容的一端,在片内它是振荡器倒相放大器的输入 ,XTAL2 接外部晶振和 微调电容的另一端,在片内它是振荡器倒相放大器的输出.第 9 引脚为复位输入 端,接上电容,电阻及开关后够上电复位电路 ,20 引脚为接地端,40 引脚为电源 端. 如图-2 所示 VI 图2 主控制系统 3.33.3 时钟电路模块时钟电路模块 图-3 示出 DS1302 的引脚排列,其中 Vcc1 为电池,Vcc2 为主电源。在主电 源关闭的情况下,也能保持时钟的连续运行。DS1302 由 Vcc1 或 Vcc2 两者中的 较大者供电。 当 Vcc2 大于 Vcc1+0.2V 时, Vcc2 给 DS1302 供电。 当 Vcc2 小于 Vcc1 时,DS1302 由 Vcc1 供电。X1 和 X2 是振荡源,外接 32.768KHz 晶振。RST 是复 位/片选线,通过把 RST 输入驱动置高电平来启动所有的数据传送。RST 输入有 两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其 次,RST 提供终止单字节或多字节数据的传送手段。当 RST 为高电平时,所有的 数据传送被初始化,允许对 DS1302 进行操作。如果在传送过程中 RST 置为低电 平, 则会终止此次数据传送, I/O 引脚变为高阻态。 上电时, 在 Vcc 大于等于 2.5V 之前, RST 必须保持低电平。 中有在 SCLK 为低电平时, 才能将 RST 置为高电平, I/O 为串行数据输入端(双向) 。SCLK 始终是输入端。 55 VII 图3 为 DS1302 引脚链接图 3.43.4 时钟电路原理时钟电路原理 (1) 时钟芯片 DS1302 的工作原理: DS1302 在每次进行读、写程序前都必须初始化,先把SCLK 端置 “0” ,接 着把 RST 端置 “1” , 最后才给予 SCLK 脉冲; 读/写时序如图 4 所示。 表-1 为 DS1302 的控制字, 此控制字的位 7 必须置 1, 若为 0 则不能把对 DS1302 进行读写数据。 对于位 6,若对程序进行读/写时 RAM=1,对时间进行读/写时,CK=0。位 1 至位 5 指操作单元的地址。位 0 是读/写操作位,进行读操作时,该位为1;该位为0 则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。 “CH”是时钟 暂停标志位,当该位为 1 时,时钟振荡器停止,DS1302 处于低功耗状态;当该 位为 0 时,时钟开始运行。 “WP” 是写保护位,在任何的对时钟和 RAM 的写操作之前,WP 必须为 0。当“WP”为 1 时,写保护位防止对任一寄存器的写操作6。 (2) DS1302 的控制字节 控制字节的高有效位(位 7)必须是逻辑 1,如果它为 0,则不能把数据写 入 DS1302 中, 位 6 如果 0, 则表示存取日历时钟数据, 为 1 表示存取 RAM 数据; 位 5 至位 1 指示操作单元的地址; 最低有效位 (位 0) 如为 0 表示要进行写操作, 为 1 表示进行读操作,控制字节总是从最低位开始输出。 表一,DS1302 控制字格式 1RAM CK VIII A4A3A2A1A0RD WR (3) 数据输入输出(I/O) 在控制指令字输入后的下一个 SCLK 时钟的上升沿时,数据被写入DS1302,数据 输入从低位即位 0 开始。同样,在紧跟 8 位的控制指令字后的下一个 SCLK 脉冲 的下降沿读出 DS1302 的数据,读出数据时从低位 0 位到高位 77 4) DS1302 的寄存器 DS1302 有 12 个寄存器,其中有 7 个寄存器与日历、时钟相关,存放的数据 位为 BCD 码形式. 此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存 器及与 RAM 相关的寄存器等。 时钟突发寄存器可一次性顺序读写除充电寄存器外 的所有寄存器内容。 DS1302 与 RAM 相关的寄存器分为两类:一类是单个RAM 单 元,共 31 个,每个单元组态为一个 8 位的字节,其命令控制字为 C0HFDH,其 中奇数为读操作,偶数为写操作;另一类为突发方式下的 RAM 寄存器,此方式下 可一次性读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写)、FFH(读)。 3.53.5 显示模块显示模块 显示模块是一个十分重要的模块,它使人们读时间更加直观,引脚连接的时候要 多进行思考, 第三个引脚是亮暗调节引脚,感觉不进行亮度调节就不用管这个引 脚,直接悬空处理,到最后会发现整个屏幕都不亮,正确的处理方法应该是直接 接地,给个低电平。如果准备进行亮度调节的话,就可以接一个可调电阻 IX 图5 液晶显示与单片机连接电路 3.6 按键模块 本系统用到了 5 个按键,其中一个用作系统手动复位,另外 4 个采用独立 按键,该种接法查询简单,程序处理简单,可节省 CPU 资源,按键电路如图 3.17 所示,4 个独立按键分别与 AT89S52 的 P2.4、P2.5、P2.6、P2.7 接口相连。 对以下 4 个按键作简要说明:S2SET 键,S3UP 键,S4DOWN 键,S5OUT/STOP 键。 SET键: 按下 SET 键进入时间校准状态, 按一下进入秒调整, 两下分调整, 依此类推可进行各年月日,时分秒以及星期的校准; UP 键:当 SET 键按下时,UP 进行 SET 选定项(如:小时)的加操作; DOWN 键:当 SET 键按下时,DOWN 进行 SET 选定项(如:小时)的减操作; OUT/STOP 键: 1) 当 SET 键按下时,此键功能为退出校准功能; 2) 当 SET 键未按下时,UP 关闭闹钟。 X 图6 按键电路 XI 4 4 系统软件流程设计及测试系统软件流程设计及测试 4.14.1 软件设计总流程图软件设计总流程图 开 始 初 始 化 读 、 写 日 期 和 时 间 LCD显 示 N按 键 一 是 否 按 下 ? Y 按 键 二 是 否 按 下 ?NN按 键 三 是 否 按 下 ? YY 按 键 二 每 按 下 设 置 位 加 1 按 键 一 每 按 下 切 换 设 置 按 键 三 每 按 下 设 置 位 减 1 秒 设 置分 设 置时 设 置星 期 设 置日 设 置月 设 置年 设 置 图 7 系统软件设计总流程图 XII 4.2.4.2. 测试结果测试结果 电子万年历是多功能数字型万年历,可以看当前日期 ,时间,功能很多,所 以对于它的程序也较为复杂,在编写程序和调试时出现了相对较多的问题。所以 编写程序时分块进行,然后再一块一块的进行组合,最终解决了软件。 在软件的调试过程中主要遇到的问题: (1)程序编译时出现函数未定义错误。 解决:把相关子程序在前面定义,或者先声明然后再在后面定义。 (2)数据未在液晶显示器的预期位置显示。 原因:液晶显示器的显示位从 1 开始计算了; 解决:应该从零开始计算,把原来的定义显示位置数字减一。 (3) 电子万年历的电路系统虽然比较简单, 但对于焊接方面更是不可轻视, 电路系统中只要出于一处的错误,则会对检测造成很大的不便。在本电子万年历 的设计调试中遇到了很多的问题。 回想这些问题只要认真多思考都是可以避免的。 板子接好后液晶屏不显示,有时出现乱码。 解决:经过多次检查后发现单片机 EA 引脚没有接高电平,引线接好即可。 4.34.3 测试结果分析测试结果分析 (1) 在测试中遇到发光二极管、LCD 液晶显示器不显示时,首先使用试测仪对 电路进行测试,观察是否存在漏焊,虚焊,或者元件损坏 (2)LCD 液晶显示器显示不正常,观察电路是否存在短路现象。查看烧写的程 序是否正确无误,对程序进行认真修改。 (3) 经过 48 小时连续工作与电脑时间相比本设计慢了 1.0 秒, 经分析由 DS1302 晶振准确度和电阻电容误差引起。本设计在 24 小时之内误差 0.5 秒满足设计要 求及精度。 4.44.4 结论结论 经过多次的反复测试与分析 ,可以对电路的原理及功能进行掌握 ,提高了设 XIII 计能力与及对电路的分析能力 .同时在软件的编程方面得到更大的提高 ,对编程 能力得到加强.对所学的知识得到很大的提高与巩固. 5 5 总结总结 论文首先对本设计作了简要描述, 随后提出了不同的设计方案,经过论证最 后确定该设计采用电源模块、时钟模块、显示模块、键盘接口模块、温度测量模 块和闹钟模块共六个模块组成, 接着分别从硬件系统和软件系统两方面对基于单 片机的电子万年历设计作了详细论述,另外还简要介绍了一下系统的调试。 在整个设计过程中,硬件方面主要设计了AT89S52 单片机的最小系统、 DS1302 接口电路、DS18B20 接口电路、闹钟及 LCD 显示;软件方面借助各个渠道 的资料,主要设计了阳历数据读取程序、阳历转阴历程序、温度采集程序、闹铃 程序以及 LCD 显示程序; 系统的调试主要是通过一块 AT89S52 开发板, 再借助于 Keil、STC 以及少许自己搭建的外围电路实现的;再此过程中,分步调试时显示 出了阳历的日期及时间,还有实时温度,集中调试时没有达到预期效果。但在此 过程中培养了自己的动手能力。 此万年历具有读显示直观、功能多样、电路简洁、成本低廉等诸多优点,符 合电子仪器仪表的发展趋势,具有广阔的市场前景。 XIV 致谢致谢 经过了四年的努力,我终于完成了学业,并顺利完成了学士毕业论文,在这 期间得到了诸多老师的指导与帮助,还有许多亲人朋友的关心与支持,在这里一 并表示衷心的感谢! 首先,感谢陈军老师,在我写毕业论文期间对我耐心的指导, 感谢学校实验 室器材的配备,使我在完成理论的基础上使实物得以实现,另外,还要感谢图书 馆电子资源管理室,它在我查阅资料方面也给我提供了许多帮助! 感谢所有关心过我的人,谨以我的努力作为回报! XV 参考文献参考文献 1 李广弟,单片机基础M ,北京航空航天大学出版社,1994 2 胡健.单片机原理及接口技术J.北京:机械工业出版社,2005 3 王法能.单片机原理及应用J.北京:科学出版社,2004 4蔡美琴,张为民,等 .MCS-51 系列单片机系统及其应用设计 M.北京:高等教育出版 社,2002 5 谢自美.电子线路设计实验测试(第二版)M.武汉:华中科技大学出版社,2006 6 阎石.数字电子技术基础(第五版)J.北京.高等教育出版社,2006 7 郑学坚;周斌.微型计算机原理及应用M.北京:清华大学出版社,2001 8 谭浩强.C 程设计J.北京.清华大学出版社,2007 XVI 附录附录 1 1 系统总原理图系统总原理图 附录附录 2 2:系统程序清单:系统程序清单 XVII #include #include intrins.h #define uint unsigned char #define uint unsigned int uchar xingqi,nian,yue,ri,xiaoshi,fen,miao; uchar nianh,nianl,yueh,yuel,rih,ril,xiaoshih,xiaoshil,fenh,fenl,miaoh,miaol ; uchar dd=2;sbit clk=p10; sbit dat=p11;sbit rst=p12; sbitA0=ACC0;sbitA1=ACC1; sbitA2=ACC2;sbitA3=ACC3; sbitA4=ACC4;sbitA5=ACC5; sbitA6=ACC6;sbitA7=ACC7; sbit p30=p30; sbit p31=p31; sbit p32=p32; sbit p33=p33; sbit p34=p34; sbit p35=p35; sbit p36=p36; sbit p37=p37; sbit date=p20; sbit load=p21;sbit clkk=p22; uchar bdata bitmsb; sbit m7=bitmsb7; uchar x,y,c; bit flag=0; XVIII bit flagh=1; uchar code tab=0 xff, /任意数 0 x06,/*1*/ /共阴数码管 0 x5B,/*2*/ 0 x4F,/*3*/ 0 x66,/*4*/ 0 x6D,/*5*/ 0 x7D,/*6*/ 0 x07,/*7*/ uchar code tab2=0 x7e,ox30,ox6d,ox7,ox33, ox5b,ox5f,ox70,ox7f,ox7b; /max7219,09 的字库 uchar code tab1=ox00,ox01,ox02,ox03,ox04,ox05,ox06,ox07, ox08,ox09,ox010,ox11,ox12,ox13,ox14,ox15,ox16,ox17,ox18,ox19,ox20,ox2 1,ox22,ox23,ox24,ox25,ox26,ox27,ox28,ox29,ox30,ox31,ox32,ox33,ox34,ox 35,ox36,ox37,ox38,ox39,ox40,ox41,ox42,ox43,ox44,ox45,ox46,ox47,ox48,o x49,ox50,ox51,ox52,ox53,ox54,ox55,ox56,ox57,ox58,ox59,ox60; void send(void) uchar count; bitmsb=x; for(count=0;count8;count+) if(m7) clkk=0; date=1; -nop-(); clkk=1; else clkk=0; XIX date=0; nop-(); clkk=1; bitmsb=1; void OutputByte(void) /从 DS1302 中读出 i 个数据 uchar i; dat=1; for(i=8;i0;i-) ACC=ACC1; A7=dat; clk=1; clk=0; dd=ACC; void Write(uchar addr,uchar num) rst=0; clk=0; XXI rst=1; InputByte(addr); /写地址 InputByte(num); /写数据 clk=1; rst=0; rst=0; clk=0; rst=1; InputByte(); clk=1; rst=0; /初始化设置时间,2008 年 5 月

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论