傻大方


首页 > 知识库 > >

基于|基于89C51单片机的万年历设计( 六 )


按关键词阅读: 89 基于 设计 万年历 单片机 C51


分低位段选码送 P0 口 clr p0.2 ;
分数码管低位开显示 SETB P0.0 ;
分小数点亮 lcall delay100us setb p0.2 ;
分数码管低位关显示 CLR P0.0 ;
分小数点灭 ;
分数码管高位 mov a,28h movc a,a+dptr mov p2,a ;
分高位段选码送 P0 口 clr p0.5 ;
分数码管高位开显示 lcall delay100us setb p0.5 ;
分数码管高位关显示 ;
时数码管低位 mov a,29h ;
时低位 。

47、段选码送 P0 口 movc a,a+dptr mov p2,a ;
时低位段选码送 P0 口 clr p0.6 ;
时数码管低位开显示 SETB P0.0 ;
时小数点亮 lcall delay100us setb p0.6 ;
时数码管低位关显示 CLR P0.0 ;
时小数点灭 ;
时数码管高位 mov a,30h movc a,a+dptr mov p2,a ;
时高位段选码送 P0 口 clr p0.7 ;
时数码管高位开显示 lcall delay100us setb p0.7 ;
时数码管高位关显示 djnz r7,dis ret delay100us: mov r5,#50 djnz r5,$。

48、ret delay1s: mov r5,#10 del0:mov r6,#200 del1:mov r7,#248 lcall get1302 ;
调用时钟 子程序 , 时钟自动加时 lcall exchange ;
调用十六 进制转 BCD 码子程序 mov r4, #6 ;
刷新次数 ttt: lcall display ;
调用动态扫 描子程序 djnz r4,ttt del2:djnz r7,del2 djnz r6,del1 djnz r5,del0 ret delay10ms: mov r6,#10 d1:mov r7,#248 djnz r7,$ djnz r6,d1 ret ;
*年月日显示 。

49、 display2: mov r7,#100 ;
动态扫描次数 dis2: ;
日数码管低位 mov a,31h movc a,a+dptr mov p2,a ;
日低位段选码送 P0 口 clr p0.4 ;
日数码管低位开显示 lcall delay100us setb p0.4 ;
日数码管低位关显示 mov a,32h ;
日数码管高 位 movc a,a+dptr mov p2,a ;
日高位段选码送 P0 口 clr p0.3 ;
日数码管高位开显示 lcall delay100us setb p0.3 ;
日数码管高位关显示 ;
月数码管低位 mov a,33h ;
月低位段选码送 P0 口 movc 。

50、 a,a+dptr mov p2,a ;
月低位段选码送 P0 口 clr p0.2 ;
月数码管低位开显示 SETB P0.0 ;
月小数点灭 lcall delay100us setb p0.2 ;
月数码管低位关显示 CLR P0.0 ;
月小数点灭 ;
月数码管高位 mov a,34h movc a,a+dptr mov p2,a ;
月高位段选码送 P0 口 clr p0.5 ;
月数码管高位开显示 lcall delay100us setb p0.5 ;
月数码管高位关显示 ;
年数码管低位 mov a,35h ;
年低位段选码送 P0 口 movc a,a+dptr mov p2,a ;
年低位段选码送 。

51、 P0 口 clr p0.6 ;
年数码管低位开显示 SETB P0.0 ;
年小数点亮 lcall delay100us setb p0.6 ;
年数码管低位关显示 CLR P0.0 ;
年小数点灭 ;
年数码管高位 mov a,36h movc a,a+dptr mov p2,a ;
时高位段选码送 P0 口 clr p0.7 ;
时数码管高位开显示 lcall delay100us setb p0.7 ;
时数码管高位关显示 djnz r7,dis2 ret tab:DB 00H,10H,80H,90H,40H,50H, 0c0H,0d0H,20H,30H ;
* ;
子程序名:Set1302 ;
功 能:设 。

52、置 DS1302 初始时间,并启 动计时 。
;
调 用:RTInputByte ;
入口参数:初始时间:Second, ;
Minute,Hour,Day,Month,Week.Year L(地址连续) ;
出口参数:无 ;
影响资源:A B R0 R1 R4 R7 ;
* * Set1302: CLR T_RST CLR T_CLK SETB T_RST MOV B, #8EH ;
控制寄存器 LCALL RTInputByte MOV B, #00H ;
写操作前 WP=0 LCALL RTInputByte SETB T_CLK CLR T_RST MOV R0, #Second;
MOV R7, #7 。

53、 ;
秒 分 时 日 月 星期 年 MOV R1, #80H ;
秒写地址 S13021: CLR T_RST CLR T_CLK SETB T_RST MOV B, R1 ;
写秒 分 时 日 月 星期 年 地址 LCALL RTInputByte MOV A, R0 ;
写秒数据 MOV B, A LCALL RTInputByte INC R0 INC R1 INC R1 SETB T_CLK CLR T_RST DJNZ R7, S13021 CLR T_RST CLR T_CLK SETB T_RST MOV B, #8EH ;
控制寄存器 LCALL RTInputByte MOV B, # 。

54、80H ;
控制,WP=1,写保护 LCALL RTInputByte SETB T_CLK CLR T_RST RET ;
* * ;
子程序名:Get1302 ;
功 能:从 DS1302 读时间 ;
调 用:RTInputByte,RTOutputByte ;
入口参数:时间保存在: Second,Minute,Hour,Day,Month,Week.Yea rL ;
出口参数:无 ;
影响资源:A B R0 R1 R4 R7 ;
* * Get1302: MOV R0, #Second;
MOV R7, #7 MOV R1, #81H ;
秒地址 G13021: CLR T_RST CLR T_CLK S 。

【基于|基于89C51单片机的万年历设计】55、ETB T_RST MOV B, R1 ;
秒 分 时 日 月 星期 年 地址 LCALL RTInputByte LCALL RTOutputByte MOV R0, A ;
秒 INC R0 INC R1 INC R1 SETB T_CLK CLR T_RST DJNZ R7, G13021 RET ;
* * ;
功 能:写 1302 一字节 (内部子程 序) ;
* * RTInputByte: MOV 50h, #8 ;
一个字节有八个位,移 八次. Inbit1: MOV A, B RRC A ;
通过 A 移入 CY. MOV B, A MOV T_IO, C ;
移入芯片内. SETB T_CLK CLR T_CLK DJNZ 50h, Inbit1 RET ;
* * ;
功 能:读 1302 一字节 (内部子程序) ;
* * RTOutputByte: MOV 50h, #8 ;
一个字节有八个位,移 八次. Outbit1: MOV C, T_IO ;


来源:(未知)

【学习资料】网址:/a/2021/0406/0021864098.html

标题:基于|基于89C51单片机的万年历设计( 六 )


上一篇:2021年党员年终个人总结_0

下一篇:2021|2021年师德获奖感言范文