1、 MOV SP,#2AH-初始化1302-SET1302:LCALL Write_Multiplebyte;初始化1302,将我们要设定的数据写入CG:LCALL Read_Multiplebyte;将我们设定的数据读出来MOV P3,#10000000BLCALL ENABLEMOV P3,#00011100BMOV P3,#00110000BMOV P3,#01100000BMOV P3,#00000001BLCALL STLCDJNB P2.4,SETB_TIMELCALL YSLJMP CGSETB_TIME:MOV P3,#11110000B;显示器开、光标开、光标允许闪烁LCALL
2、 ENABLE ;调用写入命令子程序MOV P3,#01110011BLCALL ENABLE;JNB P2.4,SETB_TIME1JB P2.5,LJMP_ADDINC 45HLJMP_ADD:JB P2.6,LJMP_SUBBDEC 45HLJMP_SUBB:MOV A,45HMOV B,#16DIV ABMOV A,BCJNE A,#10,CHULIADD A,#6MOV 45H,ACHULI:CJNE A,#15,ZAICHULISUBB A,#6ZAICHULI:JNB P2.7,OUTPUTTTTLJMP SETB_TIMEOUTPUTTTT:LJMP OUTPUTSETB_TI
3、ME1:MOV P3,#11010011BJNB P2.4,SETB_TIME2JB P2.5,LJMP_ADD1INC 43HLJMP_ADD1:JB P2.6,LJMP_SUBB1DEC 43HLJMP_SUBB1:MOV A,43HCJNE A,#10,CHULI1MOV 43H,ACHULI1:CJNE A,#15,ZAICHULI1ZAICHULI1:JNB P2.7,OUTPUTLJMP SETB_TIME1SETB_TIME2:MOV P3,#00010011BJNB P2.4,SETB_TIME3JB P2.5,LJMP_ADD2INC 44HLJMP_ADD2:JB P2.6
4、,LJMP_SUBB2DEC 44HLJMP_SUBB2:MOV A,44HCJNE A,#10,CHULI2MOV 44H,ACHULI2:CJNE A,#15,ZAICHULI2ZAICHULI2:LJMP SETB_TIME2OUTPUT:LCALL Write_Enable;写允许MOV Command,#0BEh ;命令字节为BEhMOV ByteCnt,#8 ;多字节写入模式此模块为8 个MOV R0,#XmtDat;数据地址覆给R0MOV XmtDat,40H ;秒单元内容为59hMOV XmtDat+1,41H ;分单元内容为59hMOV XmtDat+2,42H ;时单元内容
5、为13hMOV XmtDat+3,43H ;日期单元内容为21hMOV XmtDat+4,44H ;月单元内容为06hMOV XmtDat+5,45H ;星期单元内容为03hMOV XmtDat+6,46H ;年单元内容为00hMOV XmtDat+7,#0 ;写保护单元内容为00hLCALL Send_Byte ;调用写入数据子程序SETB_TIME3:MOV P3,#10100011BJNB P2.4,SETB_TIME4JB P2.5,LJMP_ADD3INC 46HLJMP_ADD3:JB P2.6,LJMP_SUBB3DEC 46HLJMP_SUBB3:MOV A,46HCJNE A
6、,#10,CHULI3MOV 46H,ACHULI3:CJNE A,#15,ZAICHULI3ZAICHULI3:LJMP SETB_TIME3SETB_TIME4:MOV P3,#11010001BJNB P2.4,SETB_TIME5JB P2.5,LJMP_ADD4INC 40HLJMP_ADD4:JB P2.6,LJMP_SUBB4DEC 40HLJMP_SUBB4:MOV A,40HCJNE A,#10,CHULI4MOV 40H,ACHULI4:CJNE A,#15,ZAICHULI4ZAICHULI4:JNB P2.7,OUTPUTTLJMP SETB_TIME4SETB_TIM
7、E5:MOV P3,#00010001BJNB P2.4,SETB_TIME6JB P2.5,LJMP_ADD5INC 41HLJMP_ADD5:JB P2.6,LJMP_SUBB5DEC 41HLJMP_SUBB5:MOV A,41HCJNE A,#10,CHULI5MOV 41H,ACHULI5:CJNE A,#15,ZAICHULI5ZAICHULI5:LJMP SETB_TIME5OUTPUTT:SETB_TIME6:MOV P3,#10100001BJNB P2.4,SETB_TIMEEJB P2.5,LJMP_ADD6INC 42HLJMP_ADD6:JB P2.6,LJMP_SU
8、BB6DEC 42HLJMP_SUBB6:MOV A,42HCJNE A,#10,CHULI6MOV 42H,ACHULI6:CJNE A,#15,ZAICHULI6ZAICHULI6:LJMP SETB_TIME6SETB_TIMEE:Send_Byte:CLR RST ;复位引脚为低电平所有数据传送终止NOPCLR SCLK; 清时钟总线SETB RST ;复位引脚为高电平逻辑控制有效MOV A,Command; 准备发送命令字节MOV BitCnt,#08hS_Byte0:RRC A ;将最低位传送给进位位CMOV IO_DATA,C ;位传送至数据总线SETB SCLK ;时钟上升沿发
9、送数据有效CLR SCLK ;清时钟总线DJNZ BitCnt,S_Byte0 ;位传送未完毕则继续S_Byte1:准备发送数据MOV A,R0 ;传送数据过程与传送命令相同MOV BitCnt,#08hS_Byte2:RRC AMOV IO_DATA,CSETB SCLKCLR SCLKDJNZ BitCnt,S_Byte2INC R0 ;发送数据的内存地址加1DJNZ ByteCnt,S_Byte1 ;字节传送未完毕则继续逻辑操作完毕清RSTRETReceive_Byte:MOV A,Command ;准备发送命令字节MOV BitCnt,#08h ;传送位数为8R_Byte0:DJNZ
10、BitCnt,R_Byte0 ;R_Byte1:准备接收数据CLR A ;清类加器CLR C ;清进位位C接收位数为8R_Byte2:MOV C,IO_DATA ;数据总线上的数据传送给C从最低位接收数据时钟总线置高时钟下降沿接收数据有效DJNZ BitCnt,R_Byte2 ;位接收未完毕则继续MOV R1,A ;接收到的完整数据字节放入接收内存缓冲区INC R1 ;接收数据的内存地址加1DJNZ ByteCnt,R_Byte1 ;字节接收未完毕则继续-写保护寄存器操作-Write_Enable:MOV Command,#8Eh ;命令字节为8EMOV ByteCnt,#1 ;单字节传送模式
11、MOV R0,#XmtDat ;MOV XmtDat,#00h ;数据内容为0 写入允许ACALL Send_Byte ;当写保护寄存器的最高位为1 时禁止数据写入寄存器-Write_Disable:MOV XmtDat,#80h ;数据内容为80h 禁止写入RET ;返回调用本子程序处当把秒寄存器的第7 位时钟停止位设置为0 时起动时钟开始-Osc_Enable:MOV Command,#80h ; 命令字节为80 单字节传送模式数据内容为0 振荡器工作允许当把秒寄存器的第7 位时钟停止位设置为1 时时钟振荡器停止HT1380 进入低功耗方式-Osc_Disable:命令字节为80数据内容为
12、80h 振荡器停止写入00 年6 月21 日星期三13 时59 分59-Write_Multiplebyte:MOV XmtDat,#48h ;MOV XmtDat+1,#14h ;MOV XmtDat+2,#09h ;MOV XmtDat+3,#16h ;MOV XmtDat+4,#15h ;MOV XmtDat+5,#05h ;MOV XmtDat+6,#07 ;读出寄存器0-7 的内容程序设置如下Read_Multiplebyte:MOV Command,#0BFh ;命令字节为BFh多字节读出模式此模块为8 个MOV R1,#RcvDat ;数据地址覆给R1ACALL Receive_
13、Byte; 调用读出数据子程序RET; 返回调用本子程序处SSH:MOV 61H,BMOV 62H,AMOV R1,#62HMOV A,R1MOV DPTR,#TABMOVC A,A+DPTRMOV P3,ASETB RSCLR RWCLR ELCALL DELAYSETB EDEC R1ENABLE:CLR RS ;写入控制命令的子程序CLR RWCLR EACALL DELAYSETB EDELAY:MOV P3,#0FFH ;判断液晶显示器是否忙的子程序CLR RSSETB RWNOPJB P3.0,DELAY ;如果P1.7为高电平表示忙就循环等待写入8 时12 小时模式程序设置如下W
14、rite_Singlebyte:MOV Command,#84h ; 命令字节为84hMOV XmtDat,#88h ;数据内容为88hSTLCD:MOV P3,#00000001B;MOV A,#0;显示时间字符MOV R7,#0TIME:MOV DPTR,#TAB2LCALL CCFF1INC R7MOV A,R7CJNE A,#5,TIMELCALL SSHMOV P3,#10110100BMOV P3,#00000011B显示日期字符DATE:MOV DPTR,#TAB1CJNE A,#5,DATEMOV P3,#00000100BYS:MOV R5,#60D2:MOV R6,#50D
15、1: MOV R7,#66 DJNZ R7, $ DJNZ R6,D1 DJNZ R5,D2 RETCCFF1:LCALL DELAYTAB:DB 00001100B,10001100B,01001100B,11001100B,00101100B,10101100B,01101100B,11101100B,00011100B,10011100B,01110100B,10110100BTAB2:DB 00101010b,10010110b,10110110b,10100110b,01011100bTAB1:DB 00100010b,10000110b,00101110b,10100110b,01011100bEND
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1