⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 单片机电子钟.htm

📁 51单片机一些C语言程序包
💻 HTM
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0041)http://www.8951.com/test/test/clockok.htm -->
<HTML><HEAD><TITLE>单片机电子钟</TITLE><LINK href="单片机电子钟.files/gpszx.css" 
type=text/css rel=stylesheet><LINK href="../index.files/gpszx.css" type=text/css 
rel=stylesheet>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2900.2523" name=GENERATOR>
<META content=FrontPage.Editor.Document name=ProgId></HEAD>
<BODY>
<DIV align=center>
<CENTER>
<TABLE height=356 cellSpacing=0 cellPadding=0 width=769 bgColor=#66ccff 
borderColorLight=#000000 border=0>
  <TBODY>
  <TR>
    <TD align=middle width=752 bgColor=#ffffff colSpan=5 height=356><FONT 
      font><FONT color=#ff0000>单片机提高</FONT><FONT color=#ff0000><IMG height=11 
      src="单片机电子钟.files/gif091.gif" width=28 border=0></FONT><FONT 
      color=#454545>WWW.51C51.COM 
      自学单片机的网站:作中国单片机编程技术普及推广第一站!倚天一出宝刀屠龙</FONT></FONT><IMG height=100 
      src="单片机电子钟.files/titou2.jpg" width=760 border=0> <FONT color=#454545 
      font><A href="http://www.8951.com/index.htm">返回主页 给我留言</A> <A 
      href="http://www.8951.com/jiaoxue.htm">单片机教学</A> <A 
      href="http://www.8951.com/tigao.htm">单片机提高</A>&nbsp; <A 
      href="http://www.8951.com/pinzhi.htm">品质技术</A> <A 
      href="http://www.8951.com/1000/WANGZHI.HTM">单片机网址</A> <A 
      href="http://www.8951.com/down/down.htm">软件下载</A>&nbsp; <A 
      href="http://www.8951.com/yejin/yejin.htm">学液晶显示</A> <A 
      href="http://www.8951.com/chanpin.htm">产品介绍</A> <A 
      href="http://www.8951.com/10/huikan.htm">如何购买</A></FONT> 
      <P><FONT 
      size=2>;***************************************************************************<BR>;* 
      (程序转载请著明出处 
      ,未声明可适应本站腾龙/isp开发套件/倚天版开发套件&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      *<BR>;*&nbsp; E-mail:sxj1974@163.com (51c51 test web)&nbsp; 
      51单片机学习网,自学单片机的网站&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      *<BR>;* Create by :石学军 <A 
      href="http://www.51c51.com/">http://www.51c51.com/</A>&nbsp;&nbsp; 
      www.8951.com 
      更多例程请登陆网站&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      *<BR>;***************************************************************************</FONT></P>
      <CENTER></CENTER>
      <P align=left><FONT color=#454545 font>;为 
      六位数码管时钟程序倚天版直接使用,p3.2,p3.3,p3.4,p3.5 
      四键控制!转载自<BR>无线电杂志2003年第10期。强烈推荐,实测24小时误差5秒。详细说明见无线电杂志<BR>2003年第10期(注意,有少许改动)</FONT></P><FONT 
      size=2>
      <P align=left>;实用单片机电子钟的制作<BR>;主程序(MAIN),如下:<BR>ORG 0000H<BR>AJMP 
      MAIN<BR>ORG 000BH<BR>AJMP TIME<BR><BR>ORG 0300H<BR>MAIN:&nbsp;<BR>mov 
      20h,#00h&nbsp;<BR>MOV 21H,#00H<BR>MOV 22H,#00H<BR>MOV 23H,#00H<BR>MOV 
      IP,#02H ;IP,IE初始化<BR>MOV IE,#82H<BR>MOV TMOD,#01H ;设定定时器工作方式?<BR>MOV 
      TL0,#0B0H<BR>MOV TH0,#3CH<BR>SETB TR0 ;启动定时?<BR>MOV SP,#40H 
      ;重设堆栈指针<BR>NEXT: LCALL DISP ;调用显示子程序?<BR>LCALL KEY ;调用按键检测子程序<BR>JZ NEXT 
      ;<BR>LCALL ANKEY ;调用按键处理子程序<BR>SJMP NEXT 
      ;重新循环<BR>NOP<BR>NOP<BR>NOP<BR>;定时中断处理程序:<BR>TIME: PUSH ACC ;保护现场<BR>PUSH 
      PSW<BR>MOV TL0,#0B4H ;赋定时初值<BR>MOV TH0,#3CH<BR>INC 20H ;<BR>MOV 
      A,20H<BR>CJNE A,#20,RETI1<BR>MOV 20H,#00H ;一秒钟时间到<BR>MOV A,21H<BR>ADD 
      A,#01H<BR>DA A<BR>MOV 21H,A<BR>CJNE A,#60H,RETI1<BR>MOV 21H,#00H 
      ;一分钟时间到<BR>MOV A,22H<BR>ADD A,#01H<BR>DA A<BR>MOV 22H,A<BR>CJNE 
      A,#60H,RETI1<BR>MOV 22H,#00H ;一小时时间到<BR>MOV A,23H<BR>ADD A,#01H<BR>DA 
      A<BR>MOV 23H,A<BR>CJNE A,#24H,RETI1<BR>MOV 23H,#00H 
      ;到时间达到24小时,清零.<BR>RETI1: POP PSW ;恢复现场<BR>POP ACC<BR>RETI 
      ;中断返回?<BR>NOP<BR>NOP<BR><BR>;显示子程序<BR>DISP: ANL 2FH,#10H ;处理小数点<BR>MOV 
      A,21H ;处理秒21H--&gt;2DH,2EH<BR>ANL A,#0FH<BR>ORL A,2FH<BR>MOV 2FH,A<BR>MOV 
      A,21H&nbsp;<BR>ANL A,#0F0H<BR>SWAP A<BR>MOV 2EH,A<BR>ANL 2DH,#10H<BR>MOV 
      A,22H ;处理分钟22H--&gt;2CH,2DH<BR>ANL A,#0FH<BR>ORL A,2DH<BR>MOV 2DH,A<BR>MOV 
      A,22H<BR>ANL A,#0F0H<BR>SWAP A<BR>MOV 2CH,A<BR>ANL 2BH,#10H<BR>MOV A,23H 
      ;处理小时23H--&gt;2AH,2BH<BR>ANL A,#0FH<BR>ORL A,2BH<BR>MOV 2BH,A<BR>MOV 
      A,23H<BR>ANL A,#0F0H<BR>SWAP A<BR>MOV 2AH,A<BR>MOV R0,#2FH ;显示偏移量<BR>MOV 
      R3,#06H<BR>MOV DPTR,#TABLE<BR>MOV A,#0BFH<BR>LOOP1: MOV B,A ;<BR>MOV 
      P2,a<BR>MOV A,@R0<BR>MOVC A,@A+DPTR<BR>MOV P0,a ;送显示<BR>MOV R2,#80H 
      ;延时<BR>DJNZ R2,$<BR>DEC R0<BR>MOV A,B<BR>RR A<BR>DJNZ R3,LOOP1 
      ;循环显示<BR>RET<BR><BR>TABLE: db 28h,7eh,0a2h,62h,74h,61h,21h ;不带小数点<BR>DB 
      7ah,20h,60h,00,00,00,00,00,00<BR>DB 8H,5eH,82H,42H,54H,41H,1H,5aH 
      ;带小数点<BR>DB 00H,40H,00,00,00,00,00,00<BR>NOP<BR>NOP<BR>;按键判断程序<BR>KEY: MOV 
      P3,#0FFH ;<BR>MOV A,P3<BR>CPL A<BR>ANL A,#3CH<BR>JZ RETX ;无键按下则返回<BR>LCALL 
      DISP ;<BR>LCALL DISP<BR>MOV A,P3<BR>CPL A<BR>ANL A,#3CH<BR>JZ RETX 
      ;键盘去抖动。<BR>MOV R6,A ;将键值存入R6。<BR>LOOP2: LCALL DISP ;<BR>MOV A,P3<BR>CPL 
      A<BR>ANL A,#3CH<BR>JNZ LOOP2 ;等待键释放<BR>MOV A,R6<BR>RETX: 
      RET<BR>NOP<BR>NOP<BR>;按键处理子程序<BR>ANKEY: CLR EA ;关中断<BR>LX: MOV A,R6<BR>JB 
      ACC.2,L1 ;是功能键转L1<BR>JB ACC.3,L2 ;是确认键转L2<BR>JB ACC.4,L3 ;是减1键转L3<BR>JNB 
      ACC.5,L12 ;不是增1键,转L12<BR>JB 2BH.4,L6 ;判断使哪一位(时、分、秒)的值加1<BR>JB 
      2DH.4,L8<BR>JB 2FH.4,L9<BR><BR>L12: LCALL DISP&nbsp;<BR>LCALL 
      DISP<BR>LCALL KEY ;判断有无键按下。<BR>JZ L12<BR>LJMP LX<BR><BR>L2: MOV 25H,#00H 
      ;确认键处理程序<BR>CLR 2BH.4<BR>CLR 2DH.4<BR>CLR 2FH.4<BR>SETB 
      EA<BR>RET<BR><BR>L3: JB 2BH.4,L61 ;增一键处理程序<BR>JB 2DH.4,L81<BR>JB 
      2FH.4,L91<BR>AJMP L12<BR><BR>L1: MOV A,25H ;功能键处理程序<BR>JZ LB1<BR>JB 
      ACC.0,LB2<BR>JB ACC.1,LB3<BR>JNB ACC.2,L12<BR>LB1: MOV 25H,#01H 
      ;25H单元是标志位,(25H)=01H调节时单元的值<BR>SETB 2BH.4&nbsp;<BR>CLR 2DH.4<BR>CLR 
      2FH.4<BR>AJMP L12<BR><BR>LB3: MOV 25H,#04H 
      ;25H单元是标志位,(25H)=01H调节秒单元的值<BR>SETB 2FH.4<BR>CLR 2DH.4<BR>CLR 
      2BH.4<BR>AJMP L12<BR><BR>LB2: MOV 25H,#02H 
      ;25H单元是标志位,(25H)=01H调节分单元的值<BR>SETB 2DH.4<BR>CLR 2BH.4<BR>CLR 
      2FH.4<BR>AJMP L12<BR><BR>L61: AJMP L611 ;&nbsp;<BR>L81: AJMP L811 
      ;<BR>L91: AJMP L911<BR>L6: MOV A,23H ;时加一<BR>ADD A,#01H<BR>DA A<BR>MOV 
      23H,A<BR>CJNE A,#24H,L15<BR>L15: JC L112<BR>MOV 23H,#00H<BR>L112: AJMP 
      L12<BR><BR>L8: MOV A,22H ;分加一<BR>ADD A,#01H<BR>DA A<BR>MOV 22H,A<BR>CJNE 
      A,#60H,L16<BR>L16: JC L112<BR>MOV 22H,#00H<BR>AJMP L12<BR><BR>L9: MOV 
      A,21H ;秒加一<BR>ADD A,#01H<BR>DA A<BR>MOV 21H,A<BR>CJNE A,#60H,L17<BR>L17: 
      JC L112<BR>MOV 21H,#00H<BR>AJMP L12<BR><BR>L611: MOV A,23H ;时减一<BR>ADD 
      A,#99H<BR>DA A<BR>MOV 23H,A<BR>CJNE A,#99H,L112<BR>MOV 23H,#23H<BR>AJMP 
      L12<BR><BR>L811: MOV A,22H ;分减一<BR>ADD A,#99H<BR>DA A<BR>MOV 22H,A<BR>CJNE 
      A,#99H,L112<BR>MOV 22H,#59H<BR>AJMP L12<BR><BR>L911: MOV A,21H ;秒减一<BR>ADD 
      A,#99H<BR>DA A<BR>MOV 21H,A<BR>CJNE A,#99H,L112<BR>MOV 21H,#59H<BR>AJMP 
      L12<BR>NOP<BR>NOP&nbsp;<BR>END<BR><BR>
      <P align=left></FONT></P></TD></TR></TBODY></TABLE></DIV></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -