最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

单片机课程设计之多功能电子万年历的设计

来源:动视网 责编:小OO 时间:2025-09-27 21:06:36
文档

单片机课程设计之多功能电子万年历的设计

单片机应用系统设计课题:多功能电子万年历的设计姓名:班级:学号:指导老师:日期:一、绪论随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT
推荐度:
导读单片机应用系统设计课题:多功能电子万年历的设计姓名:班级:学号:指导老师:日期:一、绪论随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT
单片机应用系统设计

课    题:多功能电子万年历的设计   

                姓    名:                 

班    级:            

学    号:              

指导老师:                

日    期:                

一、绪论

随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用ATS51单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。

综上所述此万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

二、系统总体方案 

我选用的是单片机(8051)来实现电子万年历的功能。共具备两个功能:

(1)显示年月日及分秒信息

(2)具有可调整日期和时间功能。

该电子万年历能够成功实现时钟运行,调整功能,且精确度经调试一天的误差在2S内。

1微处理器

本系统采用的就是51系列的ATC51单片机进行的万年历设计。由于51系列的上下兼容性,51核的内部功能大体一致。下图为51系列单片机的管脚图。

                   

ATC51管脚图

VCC:供电电压。

      GND:接地。

      P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

      P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。        

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。P3口可以为闪烁编程和编程校验接收一些控制信号。

     RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:地址锁存允许/编程脉冲输入端。 

     PSEN:外部程序存储器的选通信号。     

EA/VPP:寻址外部ROM控制端/编程电源输入端。       

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

     XTAL2:来自反向振荡器的输出。

2输出LED显示功能简介

在单片机应用系统中常用的显示器有发光二极管数码显示器LED和液晶显示器LCD。LED显示器具有耗电少、成本低廉、配置简单灵活,抗干扰性强等优点,但显示内容有限,且不能显示图形,因而其灵活性受到;LCD显示了具有LED特点外还能显示图形,但其驱动比较复杂。本设计的万年历输出部分采用LED

3按键电路

由于我设计的是电子万年历,在设计过程中我一共采用了4个按键,尽量在小的空间里实现最多的功能。其中MODE键是年月日与时间显示切换键,按下一次就能够更换一次显示位。在调整显示环境下UP和DONW键是显示调整位的的加1减1键,FUNCTION键实现清零,并提高万年历显示的精确性。按键电路如图所示

 4 时钟芯片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时,写保护位防止对任一寄存器的写操作。

(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的日历、时间寄存器 

此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)

三、硬件电路的总体框图设计

该设计的硬件电路的总体框图下图所示

四、系统软件设计

主程序流程图

Proteus ISIS简介

Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。

该软件的特点是:

(1)全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。

(2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS-232动态仿真、I2 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

(3)目前支持的单片机类型有:ARM7系列、68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。

    (4)支持大量的存储器和外围芯片。

总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大 ,可仿真ARM、51、AVR、PIC。

    Proteus启动画面:

图9界面

仿真结果

通过在KEIL下对源程序的编译,改正了其中的很多错误,运行之后生成HEX文件。然后按原理图选择正确合理的电气元件,画出正确而且美观的电路图,加载源程序运行,顺利实现了电子万年历年月日时分秒以及星期和阴历日期的输出。

下图为电子万年历的显示效果:

按下调时键后(第一个键)表示小时的数字开始闪动

按下调日期键后(第三个键)年代键开始闪动

第2个键为调整显示数字按键,实行加一

仿真结果

通过在WAVE6000下对源程序的编译,改正了其中的很多错误,然后运行,保证源程序的正确性。然后按原理图选择正确合理的电器元件,画出正确的电路图,加载源程序运行,顺利实现了单片机数字电子钟的“小时”、“分钟”、“秒”的显示。该电子万年历的显示效果如图

五、总结

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为二十一世纪的大学生,掌握单片机的开发技术是十分重要的。

此次设计立足于电子技术的实际运用,不断实践,开拓了思维,设计以考查、调研、搜集资料、拟订方案、进行系统规划、编程、仿真、调试的流程,使我深刻的体会到了在学习我们专业的过程中理论与实践相结合的重要性,同时也解决了以前学习比较模糊的专业知识点,使自己掌握的专业知识更加结构化、系统化。

参考文献

[1] ATC51,http://www.zlgmcu.com,广州周立功单片机发展有限公司

[2] DS1302 Trickle Charge Timekeeping Chip,www.dalsemi.com

[3] 刘嘉新 李明 于明淳 DS18B20在林学气象测量中的应用,2002年7月第30卷第4期

[4] 蒋敏,单片微机万年历设计,职大学报2002年第2期

[5] 邸春芳,电脑实时时钟的设计,(西南石油学院电子信息工程学院)

[6] 维普资讯 http://www.cqvip.com

[7] 王越明,电子万年历的设计,黑龙江煤矿机电设备厂,维普资讯 http://www.cqvip.com

[8] 适用于51系列单片机的一种万年历优化算法,维普资讯 http://www.cqvip.com 

[9] 吴有富,推导万年星期历的turoc-c程序,贵州民族学院

[10] 刘峰 周炳峻 李晓静,遥控电脑万年历的改造,河北,应用与改造

[11] 藤迪安,最新万年历,《黑龙江珠算》1996年第5期

[12] 韩志军 刘新民,数字温度传感器DS18B20及其应用,2003年3月第1卷第1期

附源程序代码:

    SCLK    EQU    P3.2

    IO    EQU    P3.3

    RST    EQU    P3.4

    TRL    EQU    P3.5

    JIA1    EQU    P3.6

    TSH    EQU    P3.7

    YEAR    DATA    66H

    MONTH    DATA    65H

    WEEK    DATA    H

    DAY    DATA    63H

    HOUR    DATA    62H

    MINUTE    DATA    61H

    SECOND    DATA    60H

    DS_ADDR    DATA    32H

    DS_DATA    DATA    31H

    ORG    00H

    AJMP    START

MAIN2F:    LJMP    MAIN2

START:    MOV    SP,#70H    

    LCALL    DELAY1

    MOV    DS_ADDR,#8EH

    MOV    DS_DATA,#00H

    LCALL    WRITE

START0:    MOV    DS_ADDR,#81H

    LCALL    READ

    MOV    DS_ADDR,#80H

    MOV    DS_DATA,A

    LCALL    WRITE

STAR1:    MOV    DS_ADDR,#0C0H

    MOV    DS_DATA,#9CH

    LCALL    WRITE

    MOV    20H,#0

    MOV    21H,#0FH

MAIN1:    JB    TRL,MAIN2FA

    MOV    22H,#1

    AJMP    MAIN2FB

MAIN2FA:JB    TSH,MAIN2F

    MOV    22H,#2

    MOV    DS_ADDR,#81H

    LCALL    READ

    ORL    A,#80H

    MOV    DS_ADDR,#80H

    MOV    DS_DATA,A

    LCALL    WRITE

MAIN4:    LCALL    DISP

    JNB    TSH,MAIN4

    MOV    22H,#2

    LJMP    SSS

MAIN2FB:MOV    DS_ADDR,#81H

    LCALL    READ

    ORL    A,#80H

    MOV    DS_ADDR,#80H

    MOV    DS_DATA,A

    LCALL    WRITE

MAIN4J:    LCALL    DISP

    JNB    TRL,MAIN4J

    MOV    22H,#1

NNN:    LCALL    DISP

    JNB    TRL,YYY

    MOV    20H,#8

    LCALL    DISP

    JB    JIA1,NNN

NNN2:    LCALL    DISP    

    JNB    JIA1,NNN2

    MOV    R7,YEAR

    LCALL    JIAY1

    MOV    YEAR,A

    CJNE    A,#30H,NNN1

    MOV    YEAR,#06

NNN1:    MOV    DS_ADDR,#8CH

    MOV    DS_DATA,YEAR

    LCALL    WRITE

    MOV    R0,YEAR

    LCALL    DIVIDE

    MOV    4AH,R1

    MOV    A,4AH

    SWAP    A

    MOV    4AH,A

    MOV    4BH,R2

    MOV    A,4BH

    SWAP    A

    MOV    4BH,A

    SJMP    NNN

YYY:    LCALL    DISP

    JNB    TRL,YYY

YYY3:    JNB    TRL,DDD

    MOV    20H,#4

    LCALL    DISP

    JB    JIA1,YYY3

YYY2:    LCALL    DISP

    JNB    JIA1,YYY2

    MOV    R7,MONTH

    LCALL    JIAY1

    MOV    MONTH,A

    CJNE    A,#13H,YYY1

    MOV    MONTH,#1

YYY1:    MOV    DS_ADDR,#88H

    MOV    DS_DATA,MONTH

    LCALL    WRITE

    MOV    R0,MONTH

    LCALL    DIVIDE

    MOV    48H,R1

    MOV    A,48H

    SWAP    A

    MOV    48H,A

    MOV    49H,R2

    MOV    A,49H

    SWAP    A

    MOV    49H,A

    SJMP    YYY3

DDD:    LCALL    DISP

    JNB    TRL,DDD

    MOV    20H,#2H

DDD3:    JNB    TRL,NYD

    MOV    20H,#2

    LCALL    DISP

    JB    JIA1,DDD3

DDD2:    LCALL    DISP

    JNB    JIA1,DDD2

    MOV    R7,DAY

    LCALL    JIAY1

    MOV    DAY,A

    CJNE    A,#32H,DDD1

    MOV    DAY,#1

DDD1:    MOV    DS_ADDR,#86H

    MOV    DS_DATA,DAY

    LCALL    WRITE

    MOV    R0,DAY

    LCALL    DIVIDE

    MOV    46H,R1

    MOV    A,46H

    SWAP    A

    MOV    46H,A

    MOV    47H,R2

    MOV    A,47H

    SWAP    A

    MOV    47H,A

    SJMP    DDD3

NYD:    LJMP    MAIN3A

SSS:    LCALL    DISP

    JNB    TSH,FFF

    MOV    20H,#8

SSS3:    JNB    TSH,FFF

    LCALL    DISP

    JB    JIA1,SSS3

SSS2:    LCALL    DISP

    JNB    JIA1,SSS2

    MOV    R7,HOUR

    LCALL    JIAY1

    MOV    HOUR,A

    CJNE    A,#24H,SSS1

    MOV    HOUR,#0

SSS1:    MOV    DS_ADDR,#84H

    MOV    DS_DATA,HOUR

    LCALL    WRITE

    MOV    R0,HOUR

    LCALL    DIVIDE

    MOV    44H,R1

    MOV    45H,R2

    SJMP    SSS

FFF:    LCALL    DISP

    JNB    TSH,FFF

    MOV    20H,#4

FFF3:    JNB    TSH,MMM

    LCALL    DISP

    JB    JIA1,FFF3

FFF2:    LCALL    DISP

    JNB    JIA1,FFF2

    MOV    R7,MINUTE

    LCALL    JIAY1

    MOV    MINUTE,A

    CJNE    A,#60H,FFF1

    MOV    MINUTE,#0

FFF1:    MOV    DS_ADDR,#82H

    MOV    DS_DATA,MINUTE

    LCALL    WRITE

    MOV    R0,MINUTE

    LCALL    DIVIDE

    MOV    42H,R1

    MOV    43H,R2

    SJMP    FFF3

MMM:    LCALL    DISP

    JNB    TSH,MMM

    MOV    20H,#2

MMM3:    JNB    TSH,MAIN3

    LCALL    DISP

    JB    JIA1,MMM3

MMM2:    LCALL    DISP

    JNB    JIA1,MMM2

    MOV    R7,SECOND

    LCALL    JIAY1

    MOV    SECOND,A

    CJNE    A,#60H,MMM1

    MOV    SECOND,#0

MMM1:    ORL    SECOND,#80H

    MOV    DS_ADDR,#80H

    MOV    DS_DATA,SECOND

    LCALL    WRITE

    ANL    SECOND,#7FH

    MOV    R0,SECOND

    LCALL    DIVIDE

    MOV    40H,R1

    MOV    41H,R2

    SJMP    MMM3

MAIN3:    SETB    P3.0

    SETB    P3.1

    MOV    22H,#0

    LCALL    DISP

    JNB    TSH,MAIN3

    MOV    20H,#0

    MOV    21H,#0FH

    MOV    22H,#0

    MOV    DS_ADDR,#81H

    LCALL    READ

    ANL    A,#7FH

    MOV    DS_ADDR,#80H

    MOV    DS_DATA,A

    LCALL    WRITE

    LJMP    MAIN1

MAIN3A:    SETB    P3.0

    SETB    P3.1

    MOV    22H,#0

    LCALL    DISP

    JNB    TRL,MAIN3A

    MOV    20H,#0

    MOV    21H,#0FH

    MOV    22H,#0

    MOV    DS_ADDR,#81H

    LCALL    READ

    ANL    A,#7FH

    MOV    DS_ADDR,#80H

    MOV    DS_DATA,A

    LCALL    WRITE

    LJMP    MAIN1

MAIN2:    MOV    P1,#0

    MOV    DS_ADDR,#8DH

    LCALL    READ

    MOV    YEAR,DS_DATA

    MOV    DS_ADDR,#H

    LCALL    READ

    MOV    MONTH,DS_DATA

    MOV    DS_ADDR,#87H

    LCALL    READ

    MOV    DAY,DS_DATA

    MOV    DS_ADDR,#85H

    LCALL    READ

    MOV    HOUR,DS_DATA

    MOV    DS_ADDR,#83H

    LCALL    READ

    MOV    MINUTE,DS_DATA

    MOV    DS_ADDR,#81H

    LCALL    READ

    MOV    SECOND,DS_DATA

    MOV    R0,YEAR

    LCALL    DIVIDE

    MOV    4AH,R1

    MOV    A,4AH

    SWAP    A

    MOV    4AH,A

    MOV    4BH,R2

    MOV    A,4BH

    SWAP    A

    MOV    4BH,A

    MOV    R0,MONTH

    LCALL    DIVIDE

    MOV    48H,R1

    MOV    A,48H

    SWAP    A

    MOV    48H,A

    MOV    49H,R2

    MOV    A,49H

    SWAP    A

    MOV    49H,A

    MOV    R0,DAY

    LCALL    DIVIDE

    MOV    46H,R1

    MOV    A,46H

    SWAP    A

    MOV    46H,A

    MOV    47H,R2

    MOV    A,47H

    SWAP    A

    MOV    47H,A

    MOV    R0,HOUR

    LCALL    DIVIDE

    MOV    44H,R1

    MOV    45H,R2

    MOV    R0,MINUTE

    LCALL    DIVIDE

    MOV    42H,R1

    MOV    43H,R2

    MOV    R0,SECOND

    LCALL    DIVIDE

    MOV    40H,R1

    MOV    41H,R2

    LCALL    DISP

    LJMP    MAIN1

DISP:    SETB    P3.1

    SETB    P3.0

    JNB    10H,DISP2

    CLR    P3.0

DISP2:    JNB    11H,DISP1

    CLR    P3.1

DISP1:    NOP    

    MOV    A,46H

    ORL    A,40H

    MOV    P1,A

    JNB    01H,MIAOL

    MOV    A,21H

    RL    A

    MOV    21H,A

    CJNE    A,#78H,MIAO1

MIAO1:    JC    MIAOL

    CLR    P2.4

    CLR    P2.5

    SJMP    FEN

MIAOL:    SETB    P2.5

    LCALL    DELAY1

    CLR    P2.5

    LCALL    DELAY2

    MOV    A,47H

    ORL    A,41H

    MOV    P1,A

    SETB    P2.4

    LCALL    DELAY1

    CLR    P2.4

    LCALL    DELAY2

FEN:    MOV    A,48H

    ORL    A,42H

    MOV    P1,A

    JNB    02H,FENL

    MOV    A,21H

    RL    A

    MOV    21H,A

    CJNE    A,#78H,FEN1

FEN1:    JC    FENL

    CLR    P2.2

    CLR    P2.3

    SJMP    SHI

FENL:    SETB    P2.3

    LCALL    DELAY1

    CLR    P2.3

    LCALL    DELAY2

    MOV    A,49H

    ORL    A,43H

    MOV    P1,A

    SETB    P2.2

    LCALL    DELAY1

    CLR    P2.2

    LCALL    DELAY2

SHI:    MOV    A,4AH

    ORL    A,44H

    MOV    P1,A

    JNB    03H,SHIL

    MOV    A,21H

    RL    A

    MOV    21H,A

    CJNE    A,#78H,SHI1

SHI1:    JC    SHIL

    SJMP    SHI2

SHIL:    SETB    P2.1

    LCALL    DELAY1

    CLR    P2.1

    LCALL    DELAY2

    MOV    A,4BH

    ORL    A,45H

    MOV    P1,A

    SETB    P2.0

    LCALL    DELAY1

    CLR    P2.0

    LCALL    DELAY2

    SJMP    SFM

SHI2:    CLR    P2.0

    CLR    P2.1

SFM:    RET

DELAY1:    MOV    R7,#5

DELAY11:MOV    R6,#0

    DJNZ    R6,$

    DJNZ    R7,DELAY11

    RET

DELAY2:    MOV    R7,#1

DELAY21:MOV    R6,#0

    DJNZ    R6,$

    DJNZ    R7,DELAY21

    RET

DELAY3:    MOV    R7,#40

DELAY31:MOV    R6,#0

    DJNZ    R6,$

    DJNZ    R7,DELAY31

    RET

JIAY1:    MOV    A,R7

    ADD    A,#1

    DA    A

    RET

DIVIDE:    MOV    A,R0

    ANL    A,#0FH

    MOV    R1,A

    MOV    A,R0

    SWAP    A

    ANL    A,#0FH

    MOV    R2,A

    RET

WRITE:    CLR    SCLK

    NOP

    SETB    RST

    NOP

    MOV    A,DS_ADDR

    MOV    R4,#8

WRITE1:    RRC    A

    NOP

    NOP

    CLR    SCLK

    NOP

    NOP

    NOP

    MOV    IO,C

    NOP

    NOP

    NOP

    SETB    SCLK

    NOP

    NOP

    DJNZ    R4,WRITE1

    CLR    SCLK

    NOP

    MOV    A,DS_DATA

    MOV    R4,#8

WRITE2:    RRC    A

    NOP

    CLR    SCLK

    NOP

    NOP

    MOV    IO,C

    NOP

    NOP

    NOP

    SETB    SCLK

    NOP

    NOP

    DJNZ    R4,WRITE2

    CLR    RST

    RET

READ:    CLR    SCLK

    NOP

    NOP

    SETB    RST

    NOP

    MOV    A,DS_ADDR

    MOV    R4,#8

READ1:    RRC    A

    NOP

    MOV    IO,C

    NOP

    NOP

    NOP

    SETB    SCLK

    NOP

    NOP

    NOP

    CLR    SCLK

    NOP

    NOP

    DJNZ    R4,READ1

    MOV    R4,#8

READ2:    CLR    SCLK

    NOP

    NOP

    NOP

    MOV    C,IO

    NOP

    NOP

    NOP

    NOP

    NOP

    RRC    A

    NOP

    NOP

    NOP

    NOP

    SETB    SCLK

    NOP

    DJNZ    R4,READ2

    MOV    DS_DATA,A

    CLR    RST

    RET

DEY:    NOP

    NOP

    NOP

    NOP

    NOP

    NOP

    NOP

    RET

    END

文档

单片机课程设计之多功能电子万年历的设计

单片机应用系统设计课题:多功能电子万年历的设计姓名:班级:学号:指导老师:日期:一、绪论随着科技的快速发展,时间的流逝,至从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该电路采用AT
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top