微处理器实验实验报告电子钟试验报告.doc
电子科技大学中山学院学生实验报告院别:电子信息学院 课程名称:微处理器实验 班级: IC设计11 姓名: 林华均 学号:2011010201032 实验名称:电子钟实验 实验时间:2013 年11月7日成绩: 教师签名: 批改时间:一、实验原理与目的1、 进行一次实际开发的实验,提高用户实际开发的能力;2、 利用实验箱设计一个电子钟二、实验仪器1、PC机一台2、DP-51PRO 单片机综合仿真实验仪一台三、实验内容与分析结合I2C总线的控制、ZLG7290键盘LED控制器进行成年历时钟的设计。熟练掌握I2C总线的控制,灵活运用I2C主控器软件包,深刻理解实时时钟、ZLG7290键盘LED控制的各种功能,并能把它们相结合,组成具有实际功能的万年历时钟1、用导线连接D7区的J4和A2区的P16、P17(SCLP16、SDAP17),连接D7区的J2和A2区的P10、INT0(/RSTP10、INT_KEYINT0),短接D7区的JP1跳线。(连接导线的时候如果导线长度不够,可以利用C8区的J109、J12、J13、J14、J21作转接。)2、先编写显示的子函数,可以分别显示日期和显示时间。用按键来切换显示的内容(初步设计用D7区的S1按键来切换)。3、然后再进行整体编程,如果还有困难可以先画流程图,再编写程序。4、显示结果为:上电进行时,8位数码管显示时间时分秒;按一下S1切换到显示年月日,再按一下S1又切换回时分秒。参考程序SDABITP1.7;I2C总线定义SCLBITP1.6RSTBITP1.0KEY_INTBITP3.2MTDEQU40H;发送数据缓冲器MRDEQU49H;接收数据缓冲区;定义器件地址及变量ZLG7290EQU70H;ZLG7290的器件地址PCF8563EQU0A2H;PCF8563T的器件地址ACKBIT10H;应答标志位SLADATA50H;器件的从地址SUBADATA51H;器件的子地址NUMBYTEDATA52H;读/写的字节数变量disp_bufEQU60Hswich_dateBIT1AHORG0000HLJMPMAINORG0100H;-主程序如下:MAIN:MOV SP,#70HCLRRSTLCALL DELAYSETBRSTLCALL DELAYMOVMTD,#00HMOVMTD+1,#12HMOVMTD+2,#00HMOVMTD+3,#30HMOVMTD+4,#12HMOVSLA,#PCF8563;指定器件地址MOVSUBA,#00H;指定子地址MOVNUMBYTE,#05H;发送5字节数据LCALLIWRNBYTE;调用写5字节数据程序LCALL DELAYMOVMTD,#06HMOVMTD+1,#05HMOVMTD+2,#04HMOVMTD+3,#02HMOVSLA,#PCF8563;指定器件地址MOVSUBA,#05H;指定子地址MOVNUMBYTE,#04H;发送4字节数据LCALLIWRNBYTE;调用写4字节数据程序LCALL DELAYMAINLOOP:MOVSLA,#PCF8563;指定器件地址MOVSUBA,#02H;指定子地址MOVNUMBYTE,#07H;发送7字节数据LCALLIRDNBYTE;调用读7字节数据程序LCALL DELAYJBswich_date,display_dateSJMPdisplay_timeLOOP1:JNBKEY_INT,KEY_HANDLESJMPMAINLOOPKEY_HANDLE:MOVSLA,#ZLG7290;指定器件地址MOVSUBA,#01H;指定子地址MOVNUMBYTE,#01H;发送1字节数据LCALLIRDNBYTE;调用读1字节数据程序LCALLDELAYMOVA,MRDCJNEA,#01H,MAINLOOPCPLswich_dateSJMPMAINLOOPdisplay_date:MOVA,MRD+3ANLA,#0x3fMOVMRD+3,AMOVA,MRD+5ANLA,#0x1fMOVMRD+5,AMOVA,MRD+3ANLA,#0X0FMOVdisp_buf,AMOVA,MRD+3SWAPAANLA,#0X0FMOVdisp_buf+1,AMOVA,MRD+5ANLA,#0X0FADDA,#0X80MOVdisp_buf+2,AMOVA,MRD+5SWAPAANLA,#0X0FMOVdisp_buf+3,AMOVA,MRD+6ANLA,#0X0FADDA,#0X80MOVdisp_buf+4,AMOVA,MRD+6SWAPAANLA,#0X0FMOVdisp_buf+5,AMOVdisp_buf+6,#0HMOVdisp_buf+7,#02HSJMPDISPLAYdisplay_time:MOVA,MRDANLA,#0x7fMOVMRD,AMOVA,MRD+1ANLA,#0x7fMOVMRD+1,AMOVA,MRD+2ANLA,#0x3fMOVMRD+2,AMOVA,MRDANLA,#0X0FMOVdisp_buf,AMOVA,MRDSWAPAANLA,#0X0FMOVdisp_buf+1,AMOVA,MRD+1ANLA,#0X0FMOVdisp_buf+3,AMOVA,MRD+1SWAPAANLA,#0X0FMOVdisp_buf+4,AMOVA,MRD+2ANLA,#0X0FMOVdisp_buf+6,AMOVA,MRD+2SWAPAANLA,#0X0FMOVdisp_buf+7,AMOVdisp_buf+2,#1FHMOVdisp_buf+5,#1FHDISPLAY:MOVR7,#0X08MOVR1,#disp_bufMOVA,#0X60DISLOOP:MOVMTD,APUSHACCMOV31H,R1MOV30H,R7MOVMTD+1,R1MOVSLA,#ZLG7290;指定器件地址MOVSUBA,#07H;指定子地址MOVNUMBYTE,#02H;发送2字节数据LCALLIWRNBYTE;调用写2字节数据程序LCALL DELAYMOVR1,31HMOVR7,30HPOPACCINCR1INCADJNZR7,DISLOOPLJMPLOOP1DELAY:MOV R7,#80HMIN:DJNZ R7,YS500RETYS500:LCALL YS500USLJMP MINYS500US:MOV R6,#80HDJNZ R6,$RETDELAY1:MOV R7,#20HDJNZ R7,$RET$INCLUDE(VI2C_ASM.INC);包含VIIC软件包END四、注意事项和要求熟练掌握I2C总线的控制,灵活运用I2C主控器软件包,深刻理解实时时钟、ZLG7290键盘LED控制的各种功能,并能把它们相结合,组成具有实际功能的万年历时钟。五、实验心得