基于51单片机的多功能电子万年历毕业论文
更新时间:2023-05-18 05:47:01 阅读量: 实用文档 文档下载
基于51单片机的多功能电子万年历毕业论文
基于51单片机电子万年历毕业论文
摘 要:
电子万年历是一种非常广泛日常计时工具,对现代社会越来越流行。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT89S52单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。
本设计是基于51系列的单片机进行的电子万年历设计,可以显示年月日时分秒及周信息,具有可调整日期和时间功能。在设计的同时对单片机的理论基础和外围扩展知识进行了比较全面准备。在硬件与软件设计时,没有良好的基础知识和实践经验会受到很大限制,每项功能实现时需要那种硬件,程序该如何编写,算法如何实现等,没有一定的基础就不可能很好的实现。在编写程序过程中发现以现有的相关知识要独自完成编写任务困难重重,在老师和同学的帮助下才完成了程序部分的编写。
万年历的设计过程在硬件与软件方面进行同步设计。硬件部分主要由AT89C52单片机,LED显示电路,以及调时按键电路等组成。在单片机的选择上本人使用了AT89C52单片机,该单片机适合于许多较为复杂控制应用场合。显示器使用2片7SEG-MPX8-CA和一片7SEG-MPX4-CA。7SEG-MPX8-CA是一种八个共阳二极管显示器,7SEG-MPX4-CA是一种四个共阳二极管显示器。为了能更轻松的控制这三片显示器,本人使用了3片74HC164来驱动。74HC164 是 8 位边沿触发式移位寄存器,串行输入数据,然后并行输出。软件方面主要包括日历程序、时间调整程序,公历转阴历程序,显示程序等。程序采用汇编语言编写,以便更简单地实现调整时间及阴历显示功能。所有程序编写完成后,在wave软件中进行调试,确定没有问题后,在Proteus软件中嵌入单片机内进行仿真。最后总在老师同学的帮助以及自己的努力下完成了此次电子万年历的设计。
关键词:
时钟电钟;DS1302;DS18B20;动态扫描;单片机
基于51单片机的多功能电子万年历毕业论文
Abstract
E-calendar day time is a very wide range of tools, increasingly popular in modern society. It can be year, month, day, Sunday, hours, minutes, seconds for time, but also has a leap year compensation to a variety of functions, and the DS1302's long life, small error. For the digital electronic calendar using an intuitive digital display can simultaneously display year, month, day, Sunday, hours, minutes, seconds, and temperature and other information, but also a time-calibration and other functions. The circuit uses AT89S52 microcontroller as the core, power consumption, low-voltage work in 3V, the voltage can choose 3 ~ 5V voltage supply.
The design is based on 51 series of microcontrollers to the design of electronic calendar, you can display date information on when the minutes and seconds, and weeks, with adjustable date and time functions. At the same time in the design of the theoretical basis of the MCU and peripheral expansion of knowledge of the more comprehensive preparation. The hardware and software design, there is no good basic knowledge and practical experience will be greatly limited, each feature is required to achieve the kind of hardware, procedures, how to write, how to implement such algorithms, there is no certain foundation can not be good implementation. Found during the preparation process to the existing knowledge to complete the preparation of the task alone difficult, In the help of teachers and students to complete the program part of the preparation. Calendar of the design process in hardware and software to synchronize the design. Hardware mainly by the AT89C52 microcontroller, LED display circuit, and the tune composed of the circuit when the button. In the SCM choice I used the AT89C52 microcontroller, which is suitable for many of the more complex control applications. Monitor the use of two 7SEG-MPX8-CA and a 7SEG-MPX4-CA. 7SEG-MPX8-CA is a total of eight-yang diode display, 7SEG-MPX4-CA is a total of four-yang diode display. In order to more easily control the three monitors, I use three 74HC164 to drive. 74HC164 is an 8-bit edge-triggered shift register, serial input data, and parallel output. The software includes calendar program, time to adjust procedures, turn the lunar calendar programs, display programs. Programs written in assembly language used in order to more easily adjust the time and the realization of the lunar calendar display. All programming is complete, the wave software debugging, make sure that no problems, in the Proteus software within a microcontroller embedded in the simulation. The final overall the teacher to help students, as well as their own efforts to complete the design of the electronic calendar. Keywords:
Clock electric clock:DS1302;DS18B20:Dynamic scan:scm
基于51单片机的多功能电子万年历毕业论文
~~~~~~目录~~~~~~
一、设计要求与方案论证 4 1.1 设计要求 4 1.2 系统基本方案选择和论证 4 1.2.1单片机芯片的选择方案和论证 4 1.2.2 显示模块选择方案和论证 4 1.2.3 时钟芯片的选择方案和论证 4 1.2.4 温度传感器的选择方案与论证 5 二.系统的硬件设计与实现 5 2.1 电路设计框图 5 2.2 系统硬件概述 5 2.3 主要单元电路的设计 6 2.3.1单片机主控制模块的设计 6 2.3.2时钟电路模块的设计 6 2.3.3温度采集模块设计 7 2.3.4 电路原理及说明 7 2.3.5显示模块的设计 8 三、系统的软件设计 9 3.1程序流程框图 9 3.2 子程序的设计 9 3.2.1 DS18B20温度子程序 9 3.2.2 读、写DS1302子程序 10 四. 指标测 11 4.1 测试仪器 11 4.2硬件测试 11 4.3软件测试 11 4.4测试结果分析与结论 12 4.4.1 测试结果分析 12 4.4.2 测试结论 12 五、作品总结 12 六、致谢词 12 参考文献 13 附录一:系统电路图 14 附录二:系统程序清单 15 附录三:系统使用说明书 40
基于51单片机的多功能电子万年历毕业论文
一、设计要求与方案论证 1.1 设计要求:
(1)基本要求
① 具有年、月、日、星期、时、分、秒等功能; ② 时间与阴、阳历能够自动关联; ③ 具有温度计功能;
④ 具备年、月、日、星期、时、分、秒校准功能; ( 2 ) 创新要求
① 具有上、下课响铃功能; ② 具有防御报警功能;
1.2 系统基本方案选择和论证
1.2.1单片机芯片的选择方案和论证: 方案一:
采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。 方案二:
采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。 所以选择采用AT89S52作为主控制系统.
1.2.2 显示模块选择方案和论证: 方案一:
采用LED液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,但是价格昂贵,需要的接口线多,所以在此设计中不采用LED液晶显示屏. 方案二:
采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高,所以也不用此种作为显示. 方案三:
采用LED数码管动态扫描,LED数码管价格适中,对于显示数字最合适,而且采用动态扫描法与单片机连接时,占用的单片机口线少。 所以采用了LED数码管作为显示。
1.2.3时钟芯片的选择方案和论证: 方案一:
直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、星期、时、分、秒计数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。
基于51单片机的多功能电子万年历毕业论文
方案二:
采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.
1.2.4温度传感器的选择方案与论证: 方案一:
使用热敏电阻作为传感器,用热敏电阻与一个相应阻值电阻相串联分压,利用热敏电阻阻值随温度变化而变化的特性,采集这两个电阻变化的分压值,并进行A/D转换。。此设计方案需用A/D转换电路,增加硬件成本而且热敏电阻的感温特性曲线并不是严格线性的,会产生较大的测量误差。 方案二:
采用数字式温度传感器DS18B20,此类传感器为数字式传感器而且仅需要一条数据线进行数据传输,易于与单片机连接,可以去除A/D模块,降低硬件成本,简化系统电路。另外,数字式温度传感器还具有测量精度高、测量范围广等优点。
1.3 电路设计最终方案决定
综上各方案所述,对此次作品的方案选定: 采用AT89S52作为主控制系统; DS1302提供时钟;数字式温度传感器;LED数码管动态扫描作为显示。
二.系统的硬件设计与实现 2.1 电路设计框图
2.2 系统硬件概述
本电路是由AT89S52单片机为控制核心,具有在线编程功能,低功耗,能在3V超低压工作;时钟电路由DS1302提供,它是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31*8的用于临时性存放数据的RAM寄存器。可产生年、月、日、周日、时、分、秒,具有使用寿命长,精度高和低功耗等特点,同时具有掉电自动保存功能;温度的采集由DS18B20构成;显示部份由21个数码管,74ls138、74ls47译码器构成。使用动态扫描显示方式对数字的显示。
基于51单片机的多功能电子万年历毕业论文
2.3 主要单元电路的设计
2.3.1单片机主控制模块的设计
AT89S52单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。
单片机的最小系统如下图所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出.第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端. 如图-1 所示
图-1 主控制系统
2.3.2时钟电路模块的设计
图-2示出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进行操作。如果在传送过程中RSTS置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电动行时,在Vcc大于等于2.5V之前,RST必须保持低电平。中有在SCLK 为低电平时,才能将RST置为高电平,I/O为串行数据输入端(双向)。SCLK始终是输入端。
基于51单片机的多功能电子万年历毕业论文
图-2 DS1302的引脚图
2.3.3温度采集模块设计
如图-3所示。采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用P0.7与DS18B20的I/O口连接加一个上拉电阻,Vcc接电源,Vss接地。
图-3 DS18B20温度采集
2.3.4 电路原理及说明
(1) 时钟芯片DS1302的工作原理:
DS1302在每次进行读、写程序前都必须初始化,先把SCLK端置 “0”,接着把RST端置“1”,最后才给予SCLK脉冲;读/写时序如下图4所示。图5为DS1302的控制字,此控制字的位7必须置1,若为0则不能把对DS1302进行读写数据。对于位6,若对程序进行读/写时RAM=1,对时间进行读/写时,CK=0。位1至位5指操作单元的地址。位0是读/写操作位,进行读操作时,该位为1;该位为0则表示进行的是写操作。控制字节总是从最低位开始输入/输出的。表6为DS1302的日历、时间寄存器内容:“CH”是时钟暂停标志位,当该位为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位为0时,时钟开始运行。“WP” 是写保护位,在任何的对时钟和RAM的写操作之前,WP必须为0。当“WP”为1时,写保护位防止对任一寄存器的写操作。
基于51单片机的多功能电子万年历毕业论文
(2) DS1302的控制字节
DS1302的控制字如表-1所示。控制字节的高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出
RAM RD 1 A4 A3 A2 A1 A0
/ CK /WR 表-1 DS1302的控制字格式 (3) 数据输入输出(I/O)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。如下图-4所示
图-4 DS1302读/写时序图
(4) DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表-2。
表-2 DS1302的日历、时间寄存器
基于51单片机的多功能电子万年历毕业论文
此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
2.3.5显示模块的设计
如图-5所示,采用动态扫描显示,由21个数码管,3-8译码器74LS138接1K限流电阻,再接8550三极管接到共阳数码管的CoM端作为选通位码,每位选择相应的列。74ls47接 240Ω限流电阻,再接共行的LED数码管的断码。
图-5 LED动态扫描显示
基于51单片机的多功能电子万年历毕业论文
三、系统的软件设计 3.1程序流程框图
图-A 主程序流程图
图-B计算阳历程序流程图
基于51单片机的多功能电子万年历毕业论文
图-C 时间调整程序流程图
基于51单片机的多功能电子万年历毕业论文
图-D 阴历程序流程图 3.2 子程序的设计
3.2.1 DS18B20温度子程序 CONFIG12 EQU 7FH DIV AB LCALL WRITE111 TEMPH EQU 21H MOV A,B MOV A,#44H TEMPL EQU 20H MOV B,#0AH LCALL WRITE111 REG2 EQU 22H DIV AB LCALL DL1MS REG3 EQU 23H SWAP A LCALL RESET REG4 EQU 24H ORL A,B MOV A,#0CCH DAT EQU P0.7 MOV 10H,A LCALL WRITE111 TOUTOU:
RET MOV A,#0BEH LCALL CHUSHI CHUSHI:
LCALL WRITE111 LCALL RDTEMP LCALL RESET LCALL ERAD111 MOV A,TEMPL
MOV A,#0CCH MOV TEMPL,A ANL A,#11110000B LCALL WRITE111 LCALL ERAD111 MOV TEMPL,A MOV A,#4EH MOV TEMPH,A MOV A,TEMPH
LCALL WRITE111 RET ANL A,#00000111B MOV A,#CONFIG12 RESET: ORL A,TEMPL LCALL WRITE111 LA:
SWAP A RET SETB DAT MOV 25H,A RDTEMP:
MOV 52H,#200 MOV A,25H LCALL RESET LB:
MOV B,#64H
MOV A,#0CCH
CLR DAT
基于51单片机的多功能电子万年历毕业论文
DJNZ 52H,LB SETB DAT MOV 52H,#30 LC:
DJNZ 52H,LC CLR C ORL C,DAT JC LB
MOV 58H,#80 LD:
ORL C,DAT JC LP
DJNZ 58H,LD SJMP LA LP:
MOV 52H,#250 LF:
DJNZ 52H,LF
3.2.2 读、写DS1302子程序 ;写1302程序WRITE: CLR SCLK NOP
SETB RST NOP
MOV A,32H MOV R4,#8 WRITE1:
RRC A ;送地址给1302 NOP NOP
CLR SCLK NOP NOP NOP
MOV IO,C NOP NOP NOP
SETB SCLK NOP NOP
DJNZ R4,WRITE1
RET WRITE111: MOV 53H,#8 W51HA: SETB DAT MOV 54H,#8 RRC A CLR DAT W52HA:
DJNZ 54H,W52HA MOV DAT,C MOV 54H,#30 W53HA:
DJNZ 54H,W53HA DJNZ 53H,W51HA SETB DAT RET ERAD111:
CLR SCLK NOP
MOV A,31H MOV R4,#8 WRITE2: RRC A
NOP ;送数据给1302 CLR SCLK NOP NOP
MOV IO,C NOP NOP NOP
SETB SCLK NOP NOP
DJNZ R4,WRITE2 CLR RST RET
;读1302程序 READ:
CLR EA MOV 58H,#8 RD1A: CLR DAT MOV 54H,#6 NOP
SETB DAT RD2A:
DJNZ 54H,RD2A MOV C,DAT RRC A
MOV 55H,#30 RD3A:
DJNZ 55H,RD3A DJNZ 58H,RD1A SETB DAT RET
CLR SCLK NOP NOP
SETB RST NOP
MOV A,32H MOV R4,#8 READ1:
RRC A ;送地址给1302 NOP
MOV IO,C NOP NOP NOP
SETB SCLK NOP NOP NOP
CLR SCLK NOP NOP
DJNZ R4,READ1 MOV R4,#8
基于51单片机的多功能电子万年历毕业论文
READ2: CLR SCLK
NOP ;从1302中读出数据 NOP NOP
MOV C,IO NOP NOP NOP NOP NOP RRC A NOP NOP NOP NOP
SETB SCLK NOP
DJNZ R4,READ2 MOV 31H,A CLR RST RET
四. 指标测 4.1 测试仪器
4.2硬件测试
电子万年历的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺被带有包皮的导线,则会对电路造成短路现象。
在本成电子万年历的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:
(1)LED数码管的断码错乱,原因出于没有认真看清 a、b 、c等引脚信息。
解决:重新排列74LS47的输出端,相应接入LED数码管,即可解决出现在的断码或乱码。
( 2)对万年历修改时间或日期时,有时LED数码管被屏蔽掉,造成不亮现象。 解决:根据仪器的测试,发现电路的驱动能力不足,最后在DS1302时钟芯片的/CS、SCLK、RET端接入5.1K的上拉电阻后,电路的驱动能力才能满足,即可解决不亮现象。
4.3软件测试
电子成年历是多功能的数字型,可以看当前日期(阴、阳历),时间,还有温度的仪器。电子成年历功能很多,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。在软件的调试过程中主要遇到的问题如下:
1.烧入程序后,LED数码管显示闪动,而且亮度不均匀。
解决:首先对调用的延时进行逐渐修改,可以解决显示闪动问题。其次,由于本作品使
基于51单片机的多功能电子万年历毕业论文
作动态扫描方式显示的数字,动态扫描很快,人的肉眼是无法看出,但是调用的显示程序时,如果不在反回时屏蔽掉最后的附值,则会出现很亮的现象,所以在显示的后面加了屏蔽子令,最后解决了此问题。
2.修改时间、日期时没有农历没有自动对应上。
解决:把不相关的程序暂时屏蔽,地农历的子程序独立调试,发现在调用农历自动更新时,对十进制和十六进制处理不好,所以会造成错乱。最后把相应的十进制进行修改,使得可以与十六进制对应,最后解决了此问题.
3.加入温度的程序后,进行修改时间、日期时相应的数码管位没有按要求闪动。
解决:由于DS18B20是串行通信数据,只用一个口线传输,在处理采集的模拟信号时需要一定的时间,当把万年历的程序相接入时,会对延时有很大的影响。所以在调用温度子程序时,先关闭定时器1中断允许,在温度子程序反回时再打开定时器1中断允许。最终解决了此问题。
4.4测试结果分析与结论
4.4.1 测试结果分析 (1).在测试中遇到发光二极管、LED数码管为不显示时,首先使用试测仪对电路进行测试,观察是否存在漏焊,虚焊,或者元件损坏. (2).LED 数码管显示不正常,还有亮度不够,首先使用试测仪对电路进行测试,观察电路是否存在短路现象。查看烧写的程序是否正确无误,对程序进行认真修改。 4.4.2 测试结论
经过多次的反复测试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力.同时在软件的编程方面得到更到的提高,对编程能力得到加强.同时对所学的知识得到很大的提高与巩固.
五、作品总结
在整个设计过程中,发挥团队精神,分工合作,充分发挥人的主观能动性,自主学习,学到了许多没学到的知识。较好的完成了作品。达到了预期的目的,在最初的设计中,发挥“三个臭皮匠,顶个诸葛亮”的作用。相互学习、相互讨论、研究。完了最初的设想。在电路焊接时虽然没什么大问题,但从中也知道了焊接在整个作品中的重要性,电路工程量大,不能心急,一个个慢慢来不能急于求成。反而达到事半功倍的效果。对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,和同组员的讨论,理清了思路,反而得心应手。在此次设计中,知道了做凡事要有一颗平常的心,不要想着走捷径,一步一脚印。也练就了我们的耐心,做什么事都在有耐心。此次比赛中学到了很多很多东西,这是最重要的。总之,参加电子竞赛我们的能力得到了全方位的提高。
基于51单片机的多功能电子万年历毕业论文
致谢词
感谢学院给我们提供了一个展现自己的舞台,给我们一次难得煅炼的机会,使得我们的动手能力和专业技能都有了很大的提高。
在做作品的日子里得到了万老师的悉心指导,在此向我们的指导教师致以诚挚的谢意。感谢提供相关技术帮助的老师和同学,你们的支持和鼓励使我们对这次的作品完成有了信心和动力,也给了我们很多无私的帮助和支持,我们在此深表谢意。
姓名:谭伟
参考文献
1 刘勇 编 数字电路 电子工业出版社 2004
2 陈正振 编 电子电路设计与制作 广西交通职业技术学院信息工程系 2007 3 杨子文 编 单片机原理及应用 西安电子科技大学出版社 2006 4 王法能 编 单片机原理及应用 科学出版社 2004
2009年11月20日
基于51单片机的多功能电子万年历毕业论文
附录一:系统电路图
基于51单片机的多功能电子万年历毕业论文
附录二:系统程序清单
CONFIG12 EQU 7FH TEMPH EQU 21H TEMPL EQU 20H REG2 EQU 22H REG3 EQU 23H REG4 EQU 24H DAT EQU P0.7 SCLK EQU P3.2 IO EQU P3.3 RST EQU P3.4 year DATA 66H month DATA 65H week DATA 64H day DATA 63H hour DATA 62H mintue DATA 61H second DATA 60H
ORG 0000H LJMP START ORG 001BH LJMP INTT1
START: ;初值 LCALL ZJ SETB EA
MOV SCON,#00H ; 串行输出,方式0 MOV TMOD,#10H ;计数器1,方式1 MOV TL1,#00H MOV TH1,#00H MOV 32H,#8EH
MOV 31H,#00H ;允许写1302 LCALL WRITE MOV 32H,#90H
MOV 31H,#0A6H ;1302充电,充电电流1.1MA
LCALL WRITE
;主程序~~~~~~~~~~~~~~~~~~~~~ MAIN1:
MOV 32H,#8DH ;读出年 LCALL READ MOV year,31H
MOV 32H,#8BH ;读出星期 LCALL READ MOV week,31H
MOV 32H,#89H ;读出月 LCALL READ MOV month,31H
MOV 32H,#87H ;读出日 LCALL READ MOV day,31H
MOV 32H,#85H ;读出小时 LCALL READ MOV hour,31H
MOV 32H,#83H ;读出分钟 LCALL READ MOV mintue,31H
MOV 32H,#81H ;读出秒 LCALL READ MOV second,31H
;~~~~~~~~~~~~分离缓存~~~~~~~~
MOV R0,year ;年分离,送显示缓存 LCALL DIVIDE MOV 7BH,R1 MOV 4BH,R1 MOV 7CH,R2 MOV 4CH,R2 MOV 78H,week MOV 48H,week
MOV R0,month ;月分离,送显示缓存 LCALL DIVIDE MOV 79H,R1 MOV 49H,R1 MOV 7AH,R2 MOV 4AH,R2
MOV R0,day ;日分离,送显示缓存 LCALL DIVIDE MOV 76H,R1
基于51单片机的多功能电子万年历毕业论文
MOV 46H,R1 MOV 77H,R2 MOV 47H,R2
MOV R0,hour ;小时分离,送显示缓存 LCALL DIVIDE MOV 74H,R1 MOV 44H,R1 MOV 75H,R2 MOV 45H,R2
MOV R0,mintue ;分钟分离,送显示缓存 LCALL DIVIDE MOV 72H,R1 MOV 42H,R1 MOV 73H,R2 MOV 43H,R2
MOV R0,second ;秒分离,送显示缓存 LCALL DIVIDE MOV 70H,R1 MOV 40H,R1 MOV 71H,R2 MOV 41H,R2 CLR EA
LCALL TOUTOU SETB EA
LCALL DISPLAY
LCALL GENGXIAN ;更新农历程序 JNB P0.1,SETG111 JNB F0,SSS setb P0.4 ;非闰月,则p0.4清零,指示灯亮 LJMP MAIN1 SETG111: LJMP SETG SSS:
clr P0.4 ;闰月,则p0.4置位,指示灯不亮
LJMP MAIN1
;~~~~~~~~~~~~~~ 温度 TOUTOU:
LCALL CHUSHI LCALL RDTEMP MOV A,TEMPL
ANL A,#11110000B MOV TEMPL,A MOV A,TEMPH
ANL A,#00000111B ORL A,TEMPL SWAP A MOV 25H,A MOV A,25H MOV B,#64H DIV AB MOV A,B MOV B,#0AH DIV AB SWAP A ORL A,B MOV 10H,A RET CHUSHI:
LCALL RESET MOV A,#0CCH LCALL WRITE111 MOV A,#4EH LCALL WRITE111 MOV A,#CONFIG12 LCALL WRITE111 RET RDTEMP:
LCALL RESET MOV A,#0CCH LCALL WRITE111 MOV A,#44H LCALL WRITE111 LCALL DL1MS LCALL RESET MOV A,#0CCH LCALL WRITE111 MOV A,#0BEH LCALL WRITE111 LCALL ERAD111 MOV TEMPL,A LCALL ERAD111 MOV TEMPH,A RET RESET: LA:
基于51单片机的多功能电子万年历毕业论文
SETB DAT MOV 52H,#200 LB:
CLR DAT DJNZ 52H,LB SETB DAT MOV 52H,#30 LC:
DJNZ 52H,LC CLR C ORL C,DAT JC LB
MOV 58H,#80 LD:
ORL C,DAT JC LP
DJNZ 58H,LD SJMP LA LP:
MOV 52H,#250 LF:
DJNZ 52H,LF RET WRITE111: MOV 53H,#8 W51HA: SETB DAT MOV 54H,#8 RRC A CLR DAT W52HA:
DJNZ 54H,W52HA MOV DAT,C MOV 54H,#30 W53HA:
DJNZ 54H,W53HA DJNZ 53H,W51HA SETB DAT RET ERAD111: CLR EA MOV 58H,#8 RD1A: CLR DAT MOV 54H,#6 NOP
SETB DAT RD2A:
DJNZ 54H,RD2A MOV C,DAT RRC A
MOV 55H,#30 RD3A:
DJNZ 55H,RD3A DJNZ 58H,RD1A SETB DAT RET
;公历设置程序~~~~~~~~~~~~~~~~~~~~~ SETG : SETB TR1 SETB ET1 MOV 32H,#8EH
MOV 31H,#00H ;允许写1302 LCALL WRITE MOV 32H,#80H
MOV 31H,#80H ;1302停止振荡 LCALL WRITE
GWAIT: ;~~~~~~~~~~~~~~~~~~ LCALL DISPLAY JNB P0.1,GWAIT SETG1:
LCALL DISPLAY JNB P0.1,SETG2 JNB P0.2,GADDYEAR JNB P0.3,JIANYEAR AJMP SETG1 GADDYEAR:
MOV R7,66H ;年加一 LCALL ADD1 MOV 66H,A
CJNE A,#51H,GADDYEAR1 MOV 66H,#00H AJMP GADDYEAR1 JIANYEAR:
MOV R7,66H ;年减一 LCALL JIAN1 MOV 66H,A
基于51单片机的多功能电子万年历毕业论文
CJNE A,#00H,GADDYEAR1 MOV 66H,#51H GADDYEAR1:
MOV 32H,#8CH ;年值送人1302 MOV 31H,66H LCALL WRITE MOV R0,66H
LCALL DIVIDE ;年分离送显示缓存 MOV 4BH,R1 MOV 7BH,R1 MOV 4CH,R2 MOV 7CH,R2
WAITT1: ;~~~~~~~~~~~~~~~~ LCALL DISPLAY JNB P0.2,WAITT1 JNB P0.3,WAITT1 AJMP SETG1 SETG2:
SETB 0AH ;调月时闪标志 GWAIT2:
LCALL DISPLAY JNB P0.1,GWAIT2 SETG3:
LCALL DISPLAY JNB P0.1,SETG4 JNB P0.2,GADDMONTH JNB P0.3,JIANMONTH AJMP SETG3 GADDMONTH:
MOV R7,65H ;月加一 LCALL ADD1 MOV 65H,A
CJNE A,#13H,GADDMONTH1 MOV 65H,#01H AJMP GADDMONTH1 JIANMONTH:
MOV R7,65H ;月减一 LCALL JIAN1 MOV 65H,A
CJNE A,#00H,GADDMONTH1 MOV 65H,#12H GADDMONTH1:
MOV 32H,#88H ;月值送人1302 MOV 31H,65H LCALL WRITE MOV R0,65H
LCALL DIVIDE ;月分离,送显示缓存 MOV 79H,R1 MOV 49H,R1 MOV 7AH,R2 MOV 4AH,R2
WAITT2: ;~~~~~~~~~~~~~~~~~~~~ LCALL DISPLAY JNB P0.2,WAITT2 JNB P0.3,WAITT2 AJMP SETG3 SETG4:
SETB 0BH ;调日时闪标志 GWAIT4:
LCALL DISPLAY JNB P0.1,GWAIT4 SETG5:
LCALL DISPLAY JNB P0.1,SETG6 JNB P0.2,GADDDAY JNB P0.3,JIANDAY AJMP SETG5 GADDDAY:
MOV R7,63H ;日加一 LCALL ADD1 MOV 63H,A
CJNE A,#32H,GADDDAY1 MOV 63H,#01H JIANDAY:
MOV R7,63H ;日减一 LCALL JIAN1 MOV 63H,A
CJNE A,#00H,GADDDAY1 MOV 63H,#31H GADDDAY1:
MOV 32H,#86H ;日值送人1302 MOV 31H,63H LCALL WRITE MOV R0,63H
LCALL DIVIDE ;日分离,送显示缓存 MOV 76H,R1 MOV 46H,R1 MOV 77H,R2
正在阅读:
基于51单片机的多功能电子万年历毕业论文05-18
多项式除法解高次同余08-08
painter 12 brush 中英文对照(一部分有笔刷特点) - 图文06-25
医疗事故鉴定程序是怎么样的05-26
渝北区张白路路面改造工程Ⅱ标段施工组织设计建议书204-19
聚合物结构与性能考试范围09-22
我的教室作文600字03-31
上海牛津版英语六年级下U1-U5期中综合复习题和参考答案05-26
迎接云计算时代到来(上)87分03-16
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 单片机
- 万年历
- 毕业论文
- 多功能
- 基于
- 电子
- 5-1节 孤立奇点及分类17
- 内外宣并举 奉化电视台积极做好宁波党代会奉化代表团活动报道
- 幼儿园年会诗朗诵- 一路高歌 同行有你
- 财务管理教材中最佳现金持有量的计算
- 文秘毕业生个人工作实习报告范文
- 各种颜色对应英文单词
- 高中一轮物理练习 第二章 《实验研究匀速直线运动》.
- 8、9课《童年的发现》《儿童诗两首》导学案
- 膝关节单髁置换术的临床应用进展
- 小学一年级奥数1、 速算与巧算(一)
- 滚装船和滚装码头
- simulink入门指南2012b
- a fast and elitist multiobjective genetic algorithm nsga-2
- 标签不良分析报告
- 卡特发动机工作原理
- 最新-大学生2019年第一季度思想汇报范文 精品
- 人物描写赏析技法
- 规划意见书 (建筑工程)
- 公寓委员工作总结
- 幼小衔接视角下小学一年级数学教学的策略_彭英加