<?xml version="1.0" encoding="gb2312"?>
<rss version="2.0">
<channel>
<title>C51Blog</title>
<link>http://www.c51bbs.com/c51blog/</link>
<description>C51BBS,单片机论坛,KEIL,C51BOX,单片机C语言,单片机,仿真器,单片机学习板,ATMEL单片机,winbond单片机,8051单片机,MCU单片机,51,单片机开发资料,单片机源程序</description>
<generator>Oblog 3.0</generator>
<webMaster>c51@163.com</webMaster>
<item>
<title><![CDATA[VICOR电源模块]]></title>
<link>http://www.c51bbs.com/c51blog/user1/11932/archives/2008/15323.shtml</link>
<author>lingmei</author>
<pubDate>2008-8-13 14:39:36</pubDate>
<description><![CDATA[<P><A href="http://www.lm-power.com">http://www.lm-power.com</A></P>
<P><FONT style="FONT-SIZE: 12px" face=Arial>Vicor</FONT><SPAN lang=ZH-CN style="FONT-SIZE: 12px; FONT-FAMILY: Arial">的全砖型、半砖型和</SPAN><SPAN style="FONT-SIZE: 12px"><FONT face=Arial>1/4</FONT><SPAN lang=ZH-CN style="FONT-FAMILY: Arial">砖型模块是高功率</SPAN><FONT face=Arial>DC-DC</FONT><SPAN lang=ZH-CN style="FONT-FAMILY: Arial">转换器的行业标准。这些转换器都采用高频率低噪声的零电流和零电压架构，令模块更可靠，成本更低，功率密度达到</SPAN><FONT face=Arial>100W/in<SUP>3</SUP></FONT></SPAN><SPAN lang=ZH-CN style="FONT-SIZE: 12px; FONT-FAMILY: Arial">。</SPAN></P>
<P>
<TABLE id=table22 style="BORDER-RIGHT: #c0c0c0 1px solid; BORDER-TOP: #c0c0c0 1px solid; FONT-SIZE: 12px; BORDER-LEFT: #c0c0c0 1px solid; BORDER-BOTTOM: #c0c0c0 1px solid; FONT-FAMILY: Arial; BORDER-COLLAPSE: collapse; TEXT-ALIGN: center" width="100%" border=0>
<TBODY>
<TR>
<TD style="BORDER-RIGHT: #c0c0c0 1px dotted; BORDER-TOP: #c0c0c0 1px dotted; BORDER-LEFT: #c0c0c0 1px dotted; BORDER-BOTTOM: #c0c0c0 1px dotted" borderColorLight=#99ccff align=middle background=headback.gif bgColor=#67889c borderColorDark=#ffffff colSpan=2 height=20><FONT style="FONT-WEIGHT: 700; FONT-SIZE: 12px" face=Arial>DC-DC转换器模块</FONT></TD></TR>
<TR>
<TD style="BORDER-RIGHT: #c0c0c0 1px dotted; BORDER-TOP: #c0c0c0 1px dotted; BORDER-LEFT: #c0c0c0 1px dotted; BORDER-BOTTOM: #c0c0c0 1px dotted" borderColorLight=#99ccff align=middle width=312 bgColor=#ffffff borderColorDark=#ffffff><A href="http://www.lm-power.com/VICOR2.htm"><IMG height=132 src="http://www.lm-power.com/new_product6.jpg" width=142 border=0></A></TD>
<TD style="BORDER-RIGHT: #c0c0c0 1px dotted; BORDER-TOP: #c0c0c0 1px dotted; BORDER-LEFT: #c0c0c0 1px dotted; BORDER-BOTTOM: #c0c0c0 1px dotted" borderColorLight=#99ccff align=middle bgColor=#ffffff borderColorDark=#ffffff><FONT style="FONT-SIZE: 12px" face=Arial>全型、小型和微型产品有三种封装,都具有内含元件数目少,高功率密度等特性.标准品有24V,48V,300V及375V输入系列</FONT>. 
<P><IMG height=17 src="http://www.lm-power.com/iecool_arrow_007.gif" width=17 align=absBottom border=0> <A href="http://www.lm-power.com/VICOR2.htm"><SPAN style="http://www.c51bbs.com/c51blog/FONT-WEIGHT: 700; TEXT-DECORATION: none"><FONT color=#1d83a9>点击进入</FONT></SPAN></A></P></TD></TR>
<TR>
<TD style="BORDER-RIGHT: #c0c0c0 1px dotted; BORDER-TOP: #c0c0c0 1px dotted; BORDER-LEFT: #c0c0c0 1px dotted; BORDER-BOTTOM: #c0c0c0 1px dotted" borderColorLight=#99ccff align=middle bgColor=#ffffff borderColorDark=#ffffff colSpan=2><FONT style="FONT-WEIGHT: 700; FONT-SIZE: 12px" face=Arial><SPAN class=padding>全型、小型和微型转换器模块</SPAN></FONT></TD></TR>
<TR>
<TD style="BORDER-RIGHT: #c0c0c0 1px dotted; BORDER-TOP: #c0c0c0 1px dotted; BORDER-LEFT: #c0c0c0 1px dotted; BORDER-BOTTOM: #c0c0c0 1px dotted" borderColorLight=#99ccff align=middle width=312 bgColor=#ffffff borderColorDark=#ffffff><IMG height=115 src="http://www.lm-power.com/vi-jxx1.jpg" width=142 border=0></TD>
<TD style="BORDER-RIGHT: #c0c0c0 1px dotted; BORDER-TOP: #c0c0c0 1px dotted; BORDER-LEFT: #c0c0c0 1px dotted; BORDER-BOTTOM: #c0c0c0 1px dotted" borderColorLight=#99ccff align=middle bgColor=#ffffff borderColorDark=#ffffff>VI-200/J00/MI-200/J00的VI-200全砖型模块和VI-J00半砖型模块具有业界同类产品中最宽的输入输出电压范围和功率水平。提供多种封装方案。 
<P><IMG height=17 src="http://www.lm-power.com/iecool_arrow_007.gif" width=17 align=absBottom border=0> <A href="http://www.lm-power.com/VI-JXX.htm"><FONT color=#3d6cbc><SPAN style="http://www.c51bbs.com/c51blog/FONT-WEIGHT: 700; TEXT-DECORATION: none">点击进入</SPAN></FONT></A></P></TD></TR>
<TR>
<TD style="BORDER-RIGHT: #c0c0c0 1px dotted; BORDER-TOP: #c0c0c0 1px dotted; BORDER-LEFT: #c0c0c0 1px dotted; BORDER-BOTTOM: #c0c0c0 1px dotted" borderColorLight=#99ccff align=middle bgColor=#ffffff borderColorDark=#ffffff colSpan=2 height=19><B><SPAN class=padding>VI-200/J00/MI-200/J00转换器模块</SPAN></B></TD></TR>
<TR>
<TD style="BORDER-RIGHT: #c0c0c0 1px dotted; BORDER-TOP: #c0c0c0 1px dotted; BORDER-LEFT: #c0c0c0 1px dotted; BORDER-BOTTOM: #c0c0c0 1px dotted" borderColorLight=#99ccff align=middle width=312 bgColor=#ffffff borderColorDark=#ffffff><A href="http://www.lm-power.com/VICOR-railway.htm"><IMG height=122 src="http://www.lm-power.com/vicor-railway2.jpg" width=169 border=0></A></TD>
<TD style="BORDER-RIGHT: #c0c0c0 1px dotted; BORDER-TOP: #c0c0c0 1px dotted; BORDER-LEFT: #c0c0c0 1px dotted; BORDER-BOTTOM: #c0c0c0 1px dotted" borderColorLight=#99ccff align=middle bgColor=#ffffff borderColorDark=#ffffff>
<P align=left><BR>这些DC-DC转换器模块是采用最先进的功率转换、控制及封装技术，令产品无论在性能表现、可靠性、灵活性及成本效益等均胜人一筹。模块采用开关频率极高的零电流及零电压拓朴，令转换器的功率密度和效率很高，而噪声很低。</P>
<P><IMG height=17 src="http://www.lm-power.com/iecool_arrow_007.gif" width=17 align=absBottom border=0> <FONT color=#3d6cbc><A href="http://www.lm-power.com/VICOR-railway.htm"><SPAN style="http://www.c51bbs.com/c51blog/FONT-WEIGHT: 700; TEXT-DECORATION: none"><FONT color=#3d6cbc>点击进入</FONT></SPAN></A></FONT><BR>　</P></TD></TR>
<TR>
<TD style="BORDER-RIGHT: #c0c0c0 1px dotted; BORDER-TOP: #c0c0c0 1px dotted; BORDER-LEFT: #c0c0c0 1px dotted; BORDER-BOTTOM: #c0c0c0 1px dotted" borderColorLight=#99ccff align=middle bgColor=#ffffff borderColorDark=#ffffff colSpan=2><B>110V输入模块</B></TD></TR>
<TR>
<TD style="BORDER-RIGHT: #c0c0c0 1px dotted; BORDER-TOP: #c0c0c0 1px dotted; BORDER-LEFT: #c0c0c0 1px dotted; BORDER-BOTTOM: #c0c0c0 1px dotted" borderColorLight=#99ccff align=middle width=312 bgColor=#ffffff borderColorDark=#ffffff><IMG height=96 src="http://www.lm-power.com/batmod.jpg" width=142 border=0></TD>
<TD style="BORDER-RIGHT: #c0c0c0 1px dotted; BORDER-TOP: #c0c0c0 1px dotted; BORDER-LEFT: #c0c0c0 1px dotted; BORDER-BOTTOM: #c0c0c0 1px dotted" borderColorLight=#99ccff align=middle bgColor=#ffffff borderColorDark=#ffffff><SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">对于需由受控电流供电的设备，如电池充电器，电镀仪器和激光二极管阵列等，</SPAN>BatMod<SPAN lang=ZH-CN style="FONT-FAMILY: SimSun">电流源模块是理想选择。它与所有主流电池兼容。</SPAN> 
<P><IMG height=17 src="http://www.lm-power.com/iecool_arrow_007.gif" width=17 align=absBottom border=0> 点击进入</P></TD></TR>
<TR>
<TD style="BORDER-RIGHT: #c0c0c0 1px dotted; BORDER-TOP: #c0c0c0 1px dotted; BORDER-LEFT: #c0c0c0 1px dotted; BORDER-BOTTOM: #c0c0c0 1px dotted" borderColorLight=#99ccff align=middle bgColor=#ffffff borderColorDark=#ffffff colSpan=2 height=19><B><SPAN class=padding>BatMod电流源模块</SPAN></B></TD></TR></TBODY></TABLE><A href="http://www.lm-power.com/VICOR-DCDC.htm"></A></P>]]></description>
</item><item>
<title><![CDATA[锐极嵌入式培训，成就你的梦想]]></title>
<link>http://www.c51bbs.com/c51blog/user1/8523/archives/2008/15322.shtml</link>
<author>lille</author>
<pubDate>2008-8-13 11:18:39</pubDate>
<description><![CDATA[<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">尊敬的先生</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">/</FONT></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">女士：</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">&nbsp;<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 30pt; mso-char-indent-count: 2.5; mso-char-indent-size: 12.0pt"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">&nbsp;</FONT></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">您好，这里是锐极培训中心</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">&nbsp; <o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">&nbsp;<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 30pt; mso-char-indent-count: 2.5; mso-char-indent-size: 12.0pt"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上海锐极电子科技有限公司（简称“锐极科技”）是国内知名的嵌入式系统专业技术方案提供商。拥有一支实力雄厚的研究开发团队，其中博士、硕士占</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">80%</FONT></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">以上。锐极科技专注于嵌入式技术的研发与推广工作，率先将</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">ARM</FONT></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">技术应用于高校嵌入式系统教学，与包括同济、计量学院、华师大、华中科大等一流高校合作，在国内建立了几百家嵌入式系统实验室，并通过承办“全国高校嵌入式系统教学研讨会”和“锐极杯”全国大学生嵌入式优秀作品评选等活动，极大地推动了国内嵌入式技术的应用和发展</SPAN><SPAN style="FONT-SIZE: 12pt"><FONT face="Times New Roman"> </FONT></SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 30pt; mso-char-indent-count: 2.5; mso-char-indent-size: 12.0pt"><SPAN lang=EN-US style="FONT-SIZE: 12pt"><FONT face="Times New Roman">&nbsp;<o:p></o:p></FONT></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24pt; mso-char-indent-count: 2.0; mso-char-indent-size: 12.0pt"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">上海锐极嵌入式培训中心是锐极科技联手同济大学、华东师范大学、东华大学、电力学院、普陀区青少年教育局联合成立的，为配合国家十一五人才培训摇篮为己任，更是为国家储备嵌入式人才为目的。中心特点以国内外嵌入式软硬人才需求特点和紧缺领域为导向，面向软硬件工程国际前沿，引入国外大学的先进教学模式，培养直接与社会需求接轨，具有国际竞争力，能胜任大中型复杂软件系统的高水平、工程型、实用型软件高级人才。</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 48pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 4.0; mso-char-indent-size: 12.0pt" align=left><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp; </SPAN></B><B><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">08年8月份报名正式开始，相关课程及信息介绍如下：</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp; &nbsp;</SPAN></B><A name=OLE_LINK1><B><SPAN style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">嵌入式</SPAN></B></A><SPAN style="mso-bookmark: OLE_LINK1"></SPAN><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana">Linux</SPAN></B><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">驱动开发</SPAN></B><B><SPAN style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">短期班大纲　　<SPAN lang=EN-US>( 详细内容点击下面链接 )</SPAN></SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp; </SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><A href="http://www.rjpeixun.com/Show_Lecture.aspx?LectureId=20"><B><SPAN style="http://www.c51bbs.com/c51blog/FONT-SIZE: 12pt; COLOR: #ff9900">http://www.rjpeixun.com/Show_Lecture.aspx?LectureId=20</SPAN></B></A><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;&nbsp;</SPAN></B><B><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: #ff9900; FONT-FAMILY: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"> </SPAN></B><B><SPAN style="FONT-SIZE: 12pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">连续班</SPAN></B><B><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: #ff9900; FONT-FAMILY: Verdana; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">:</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">8</SPAN></B><B><SPAN style="COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">月</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">9</SPAN></B><B><SPAN style="COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">日</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">-8</SPAN></B><B><SPAN style="COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">月</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">12</SPAN></B><B><SPAN style="COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">日</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN></SPAN></B><B><SPAN style="COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">周末班：</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">8</SPAN></B><B><SPAN style="COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">月</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">9</SPAN></B><B><SPAN style="COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">日、</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">8</SPAN></B><B><SPAN style="COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">月</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">10</SPAN></B><B><SPAN style="COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">日、</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">8</SPAN></B><B><SPAN style="COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">月</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">15</SPAN></B><B><SPAN style="COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">日、</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">8</SPAN></B><B><SPAN style="COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">月</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">16</SPAN></B><B><SPAN style="COLOR: #ff9900; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">日</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana"><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">&nbsp;<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: -15.5pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: -1.47; mso-char-indent-size: 10.5pt" align=left><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></B><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 9.0pt">嵌入式</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">Linux</SPAN></B><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 9.0pt">系统开发短期班大纲</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></B><B><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">( 详细内容点击下面链接 )</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><B style="mso-bidi-font-weight: normal"><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><A href="http://www.rjpeixun.com/Show_Lecture.aspx?LectureId=52"><SPAN style="http://www.c51bbs.com/c51blog/COLOR: #ff9900">http://www.rjpeixun.com/Show_Lecture.aspx?LectureId=52</SPAN></A><o:p></o:p></B></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: -14.75pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: -1.47; mso-char-indent-size: 10.0pt" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>连续班：8月15日-8月18日<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>周末班：8月15、8月16日、8月22日、8月23日<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">&nbsp;<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #3366ff; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></B><B><SPAN lang=EN-US style="COLOR: #3366ff; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">Wince</SPAN></B><B><SPAN style="COLOR: #3366ff; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 9.0pt">系统定制与驱动开发短期班大纲</SPAN></B><B><SPAN lang=EN-US style="COLOR: #3366ff; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></B><B><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: #3366ff; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">( 详细内容点击下面链接 )<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B><SPAN lang=EN-US style="COLOR: #3366ff; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><A href="http://www.rjpeixun.com/Show_Lecture.aspx?LectureId=9"><SPAN style="http://www.c51bbs.com/c51blog/COLOR: #ff9900">http://www.rjpeixun.com/Show_Lecture.aspx?LectureId=9</SPAN></A><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt"><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">&nbsp;<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>连续班：8月19日-8月22日<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN>周末班：8月22、8月23日、8月30日、8月31日<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-spacerun: yes">&nbsp;</SPAN><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="COLOR: red; FONT-FAMILY: Verdana">&nbsp;<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp; </SPAN></SPAN></B><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 9.0pt">嵌入式</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">Linux</SPAN></B><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 9.0pt">应用开发短期班大纲</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></B><B><SPAN lang=EN-US style="FONT-SIZE: 12pt; COLOR: blue; FONT-FAMILY: 宋体; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体">( 详细内容点击下面链接 )</SPAN></B><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: blue; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="COLOR: red; FONT-FAMILY: Verdana">&nbsp;</SPAN></B><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana">&nbsp; </SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"><A href="http://www.rjpeixun.com/Show_Lecture.aspx?LectureId=22"><SPAN style="http://www.c51bbs.com/c51blog/COLOR: #ff9900">http://www.rjpeixun.com/Show_Lecture.aspx?LectureId=22</SPAN></A><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">&nbsp;<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>连续班：8月29日-9月2日<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: 宋体; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: 宋体"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>周末班：8月30、8月31日、9月6日、9月7日<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">&nbsp;<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: -197.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: -18.77; mso-char-indent-size: 10.5pt" align=left><B><SPAN lang=EN-US style="COLOR: red; FONT-FAMILY: Verdana">&nbsp;</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana"> </SPAN></B><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">嵌入式</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana">WindowsCE</SPAN></B><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">开发长期班，可签定就业协议，保证就业。　</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana">( </SPAN></B><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">随到随学，详细内容点击下面链接</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana"> )</SPAN></B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="COLOR: red; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">&nbsp;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana">&nbsp; </SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: Verdana"><A href="http://www.rjpeixun.com/Show_Lecture.aspx?LectureId=9"><SPAN style="http://www.c51bbs.com/c51blog/COLOR: #ff9900; mso-bidi-font-size: 12.0pt">http://www.rjpeixun.com/Show_Lecture.aspx?LectureId=9</SPAN></A></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="COLOR: red; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">&nbsp;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">&nbsp; </SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 9.0pt">嵌入式</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">Linux</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 9.0pt">系统开发长期班，可签定就业协议，保证就业。　</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">( </SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 9.0pt">随到随学，详细内容点击下面链接</SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"> )<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="COLOR: red; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">&nbsp;</SPAN><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"> </SPAN><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: Verdana"><A href="http://www.rjpeixun.com/EmploymentTrain.aspx"><SPAN style="http://www.c51bbs.com/c51blog/COLOR: #ff9900; mso-bidi-font-size: 12.0pt">http://www.rjpeixun.com/EmploymentTrain.aspx</SPAN></A></SPAN></B><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana">&nbsp; <o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana">&nbsp;<o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 25pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 2.37; mso-char-indent-size: 10.5pt" align=left><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 9.0pt">企业技术定制培训服务介绍　　</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">( </SPAN></B><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana; mso-bidi-font-size: 9.0pt">详细内容点击下面链接</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"> )<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"><SPAN style="mso-spacerun: yes">&nbsp; </SPAN><A href="http://www.rjpeixun.com/EnterpriseTrain.aspx"><SPAN style="http://www.c51bbs.com/c51blog/COLOR: #ff9900">http://www.rjpeixun.com/EnterpriseTrain.aspx</SPAN></A><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="COLOR: #3366ff; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">&nbsp;<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">锐极科技主要讲师团队介绍　　</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana">( </SPAN></B><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Verdana; mso-hansi-font-family: Verdana">详细内容点击下面链接</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana"> )</SPAN></B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt"><o:p></o:p></SPAN></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: Verdana"><A href="http://www.rjpeixun.com/Teachers.aspx"><SPAN style="http://www.c51bbs.com/c51blog/COLOR: #ff9900; mso-bidi-font-size: 12.0pt">http://www.rjpeixun.com/Teachers.aspx</SPAN></A><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: Verdana">&nbsp;<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 20.65pt; LINE-HEIGHT: 16.5pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-char-indent-count: 1.96; mso-char-indent-size: 10.5pt" align=left><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: Arial">锐极科技企业客户技术服务成功案例介绍　　</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">( </SPAN></B><B><SPAN style="COLOR: blue; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: Arial">详细内容点击下面链接</SPAN></B><B><SPAN lang=EN-US style="COLOR: blue; FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"> )<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="COLOR: #ff7900; FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><SPAN style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </SPAN>http://www.ruijitek.com/jjfa.asp<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: Verdana">&nbsp;<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="FONT-SIZE: 10pt; COLOR: #ff9900; FONT-FAMILY: Verdana">&nbsp;<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 19.85pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B style="mso-bidi-font-weight: normal"><SPAN lang=EN-US style="COLOR: #ff9900; FONT-FAMILY: Verdana; mso-bidi-font-size: 9.0pt">&nbsp;<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16.5pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN style="COLOR: #126fac; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: Arial">更多内容请点击锐极嵌入式培训中心网站</SPAN></B><B><SPAN lang=EN-US style="COLOR: #126fac; FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16.5pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><U><SPAN lang=EN-US style="COLOR: #ff7900; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><A href="http://www.rjpeixun.com/">www.rjpeixun.com</A><o:p></o:p></SPAN></U></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16.5pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN lang=EN-US style="COLOR: #126fac; FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">&nbsp;<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 16.5pt; TEXT-ALIGN: left; mso-pagination: widow-orphan" align=left><B><SPAN style="COLOR: #126fac; FONT-FAMILY: 宋体; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt; mso-bidi-font-family: Arial">报名咨询电话：</SPAN></B><B><SPAN lang=EN-US style="COLOR: #126fac; FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt"><o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-outline-level: 1" align=left><B><SPAN lang=EN-US style="COLOR: #ff7900; FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">Tel:021-52667625-805/52666785<o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-outline-level: 1" align=left><B><SPAN lang=EN-US style="COLOR: #ff7900; FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">Email:train@rjpeixun.com <o:p></o:p></SPAN></B></P>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; LINE-HEIGHT: 15pt; TEXT-ALIGN: left; mso-pagination: widow-orphan; mso-outline-level: 1" align=left><B><SPAN lang=EN-US style="COLOR: #ff7900; FONT-FAMILY: Arial; mso-bidi-font-size: 10.5pt; mso-font-kerning: 0pt">http;//www.rjpeixun.com<o:p></o:p></SPAN></B></P>]]></description>
</item><item>
<title><![CDATA[[原创]一个计算CRC16的软件！]]></title>
<link>http://www.c51bbs.com/c51blog/user1/157/archives/2008/15321.shtml</link>
<author>lhzw2001</author>
<pubDate>2008-8-4 19:07:31</pubDate>
<description><![CDATA[<P>由于上传受限，所以请下载以下两个分卷压缩包，一起解压</P>
<P>part1.rar</P>
<P><A href="http://www.c51bbs.com/c51blog/user1/157/upload/2008849375.rar">user1/157/upload/2008849375.rar</A>&nbsp;&nbsp;&nbsp; </P>
<P>part2.rar</P>
<P><A href="http://www.c51bbs.com/c51blog/user1/157/upload/2008842388.rar">user1/157/upload/2008842388.rar</A></P>
<P>&nbsp;</P>
<P><IMG src="http://www.c51bbs.com/c51blog/user1/157/upload/2008845322.jpg"></P>
<P>&nbsp;</P>
<P><IMG src="http://www.c51bbs.com/c51blog/user1/157/upload/2008844737.jpg"></P>]]></description>
</item><item>
<title><![CDATA[『转』CH451或CH452的常见问题解答]]></title>
<link>http://www.c51bbs.com/c51blog/user1/157/archives/2008/15320.shtml</link>
<author>lhzw2001</author>
<pubDate>2008-8-4 19:06:50</pubDate>
<description><![CDATA[<DIV class=tit>『转』CH451或CH452的常见问题解答</DIV>
<DIV class=date>&nbsp;</DIV>
<TABLE style="TABLE-LAYOUT: fixed">
<TBODY>
<TR>
<TD>
<DIV class=cnt id=blog_text><FONT color=#ff0000>&nbsp;<BR></FONT>&nbsp;&nbsp; 数码管LED显示驱动及键盘扫描的产品选型有CH451和CH452两种，都可以直接驱动数码管LED显示和键盘<BR>&nbsp;&nbsp; 扫描，同时进行显示驱动和键盘扫描。详细使用说明可以参考各自的使用手册，其中也有可供参考的应<BR>&nbsp;&nbsp; 用电路图。CH451比CH452的驱动电流大一倍，所以显示更亮些；CH452比CH451的功能更多些，并且支持<BR>&nbsp;&nbsp; 兼容I2C的两线接口。更详细的性能比较及特征说明请参考CH451PLN.PDF文档。<BR><FONT color=#ff0000>* 关于电源</FONT><BR>&nbsp;&nbsp; CH451和CH452都可以支持3.3V和5V电源电压，但是CH451用于3.3V时要外接振荡电阻才能避免显示闪烁。<BR>&nbsp;&nbsp; 考虑到直接驱动显示时消耗电流较大，布线时应该确保电源和地线有足够的宽度和良好的电源退耦。<BR><FONT color=#ff0000>* 刚通电数码管就全亮</FONT><BR>&nbsp;&nbsp; 可能是数码管的极性错误，CH45X能够直接驱动共阴数码管，外加反相驱动器后才能驱动共阳数码管。<BR>&nbsp;&nbsp; CH45X向LED供正向电压为亮，供反向电压为灭，复位后CH45X默认使LED灭，所以当极性反时就全亮。<BR><FONT color=#ff0000>* 显示或者操作无反应</FONT><BR>&nbsp;&nbsp; 检查硬件接线是否正确，可以先试用公司提供的例子程序，确保硬件无误后再进一步开发。如果连线距<BR>&nbsp;&nbsp; 离较远，那么可以先在短距离下试用，无误后再加大距离，必要时可以用缓冲器加强信号的驱动能力。<BR>&nbsp;&nbsp; 对于支持4线接口和2线接口的CH452芯片，要检查H3L2引脚确保单片机接口程序与CH452是同一接口方式<BR><FONT color=#ff0000>* 全部或者部分按键无反应</FONT><BR>&nbsp;&nbsp; 1、确保发出设置命令启用了按键功能<BR>&nbsp;&nbsp; 2、如果电源电压超过5V，或者是CH452S芯片直接驱动数码管，那么应该参考CH452手册在共阴数码管的<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 公共端也就是每个DIG引脚上串接二极管，二级管应该串到LED显示电路中而非按键扫描电路中<BR>&nbsp;&nbsp; 3、有其它优先极更高的键一直在按下，导致优先极较低的键始终无效，键码最小的按键优先极最高<BR><FONT color=#ff0000>* 在实际未按键时，CH45X不断主动产生按键中断，或者总是有某个按键在按下，具有随机性</FONT><BR>&nbsp;&nbsp; 1、只有当前一个按键值被读出后，CH45X的DOUT或者KEY#或者INT#引脚才会恢复默认的高电平<BR>&nbsp;&nbsp; 2、检查线路板是否有漏电或者短路情况<BR>&nbsp;&nbsp; 3、所接数码管或者LED发光管存在反向漏电现象。按键的原理是DIG引脚向SEG引脚提供高电平。如果DIG<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 引脚的高电平通过数码管或者LED反向漏到SEG引脚，就会导致默认为低电平的SEG为高电平，从而被<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH45X判断为有按键按下。这种反向漏电通常只在承受较高反向电压时发生，而且反向漏电现象不是<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 非常恒定的，受温度影响较大，反向漏电现象通常用万用表测不出来。解决方法是，参考CH452手册<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 中的应用电路图为每个数码管（每8个LED一组）的公共端串接二极管，加上串接的二级管是为了防止<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LED反向漏电，与按键扫描电路无关，二级管应该串到LED显示电路中而非按键电路中<BR><FONT color=#ff0000>* 为什么CH452在5V下显示正常，但按键不灵，而在3V下显示和扫描按键都正常</FONT><BR>&nbsp;&nbsp; 原因是所接的数码管或LED存在反向漏电的情况，因为LED在5V下反向漏电比3V下大。所以，建议CH452在<BR>&nbsp;&nbsp; 5V下工作时在DIG上串二极管防止反向漏电，而在3V下工作时，建议不加二极管，以保证LED的亮度。<BR><FONT color=#ff0000>* 单片机是否可以频繁操作CH45X芯片</FONT><BR>&nbsp;&nbsp; 对于4线接口，完全可以频繁操作，CH45X芯片中的外部接口与显示驱动及按键扫描是相互独立的，即使<BR>&nbsp;&nbsp; 单片机频繁操作也不会导致显示停顿或者按键失灵。对于2线接口，需要时序处理，所以不宜频繁操作。<BR><FONT color=#ff0000>* 为什么给CH45X发一个命令后，能正常显示，在频繁发命令或有按键按下后，显示就出现乱码</FONT><BR>&nbsp;&nbsp; 多数是因为CH451或CH452板子和单片机板子之间共地不好引起。地线中流过较大电流会导致电压不同。<BR><FONT color=#ff0000>* 受到干扰如何处理，例如开始显示正常，长时间后显示内容乱了</FONT><BR>&nbsp;&nbsp; 关键是设计电路及PCB时要考虑抗干扰，要考虑电流走向，CH45X可以直接驱动显示，所以在电源和地线<BR>&nbsp;&nbsp; 中流过的电流较大，如果GND走线不佳，会导致整个系统的GND电压不统一，从而产生较大的干扰。<BR>&nbsp;&nbsp; 如果处理不当，普通的单片机受到干扰可能会导致程序死机，而CH451是纯硬件电路，是由相当于很多<BR>&nbsp;&nbsp; 个74TTL逻辑芯片组成的电路，所以即使受到干扰也很容易恢复：只要对CH451芯片重新发送命令就可以<BR>&nbsp;&nbsp; 随时重新工作，命令包括设置系统参数、设置显示参数、设置闪烁控制、加载数据等。<BR>&nbsp;&nbsp; 对于显示时间要求较长的全天候应用，建议在应用程序里每隔一段时间，对CH45X的系统参数，显示参<BR>&nbsp;&nbsp; 数和闪烁控制进行刷新，及时恢复外界干扰导致的参数错误。刷新参数不影响当前的显示。<BR><FONT color=#ff0000>* 关于28脚封装的CH451的抗干扰问题</FONT><BR>&nbsp;&nbsp; 对于DIP28封装的CH451建议通过以下方法减少电源波动对其的干扰：<BR>&nbsp;&nbsp; 1、在28脚RSTI脚和地之间接一个1000P的电容。<BR>&nbsp;&nbsp; 2、在10脚CLK输入脚上加一个50K左右的上拉电阻。<BR>&nbsp;&nbsp; 3、在芯片的电源和地之间加一个10U的钽电解电容。<BR><FONT color=#ff0000>* 在按键时导致显示变化，或产生乱码</FONT><BR>&nbsp;&nbsp; 多数是由于CH45X的数据和时钟线受到干扰，或是线路上有短路，或是连接的发光二极管漏电流引起。<BR><FONT color=#ff0000>* 如何驱动共阳数码管或者由多个LED串联并联而成的大尺寸的数码管</FONT><BR>&nbsp;&nbsp; 参考CH452手册中的电路图，有针对驱动共阳数码管和大尺寸数码管的说明，需要外加反相驱动器<BR><FONT color=#ff0000>* 如何驱动多于8个的数码管、或者多于64个的LED、或者多于64的按键</FONT><BR>&nbsp;&nbsp; 使用串联、并联等级联方式，通过多个CH45X实现。参考CH452手册中的电路图，有针对级联的说明<BR><FONT color=#ff0000>* 如何处理多个CH451或者CH452时的电路连接</FONT><BR>&nbsp;&nbsp; 最好采用串联和并联混合联接，由于单片机引脚驱动能力有限，其中串联个数最好在4个以内，最多不超<BR>&nbsp;&nbsp; 过6个（DIN、LOAD、DCLK线若加驱动74HC244/245）则可再增加几个），之后每4个4个相并联，当并联组<BR>&nbsp;&nbsp; 数较多时，DIN线和DCLK线须加驱动并且每根线最多驱动4-6组，特别是连线较长时必须加驱动。另外当<BR>&nbsp;&nbsp; 连接多个CH45X用作显示时，数码管的暗灭会使电源电压产生细微的波动，为减少其对CH45X的影响，建<BR>&nbsp;&nbsp; 议在每个CH45X的电源输入处加一组电源退耦滤波电容（一个0.1uF和一个电解）。<BR><FONT color=#ff0000>* CH451或者CH452需要晶振吗</FONT><BR>&nbsp;&nbsp; CH451和CH452都内置时钟电路，既不需要晶振也不需要外接阻容振荡。<BR><FONT color=#ff0000>* CH451的电流是否在200mA左右，如果用电池供电是否可以</FONT><BR>&nbsp;&nbsp; 这200mA主要是全部都亮时的显示电流，将亮度调低自然电流变小。空闲时还可以用CH452的省电模式。<BR><FONT color=#ff0000>* 如何在CH451与CH452之间选型</FONT><BR>&nbsp;&nbsp; 1、考虑占用单片机I/O引脚数量（注：4线接口中DCLK、DIN可与其它电路共用）<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH452的真正2线接口，含低电平脉冲按键中断在内，只需要2个I/O引脚，兼容IIC时序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH452的2线接口，不含按键中断为2个I/O引脚，含按键中断为3个I/O，兼容IIC时序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH45X的4线接口，不含按键中断为3个I/O引脚，含按键中断为4个I/O，部分兼容SPI时序<BR>&nbsp;&nbsp; 2、考虑LED或数码管显示亮度（驱动电流越大则亮度越高），考虑数码管极性及尺寸<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH451无需外围电路直接驱动LED或共阴数码管时亮度较高，总电流150mA<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH452无需外围电路直接驱动LED或共阴数码管时亮度一般，总电流80mA<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH45X通过外扩反相电路驱动LED或共阳数码管时亮度最高，总电流可达1000mA<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH452通过外扩反相电路可以驱动多LED串联或大尺寸的共阳数码管，总电流可达1000mA<BR>&nbsp;&nbsp; 3、考虑单片机接口速度（速度越快则单片机程序效率越高）<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH451的4线接口速度最快，命令通常无需任何等待，最快10MHz，最慢为静态0Hz<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH452的4线接口速度较快，最快2MHz，最慢为静态0Hz<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH452的2线接口速度一般，内置超时处理，最快200KHz，最慢500Hz<BR>&nbsp;&nbsp; 4、考虑芯片抗干扰能力及受到干扰后的恢复能力<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH452的4线接口抗干扰能力较好<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH451的抗干扰能力一般，但是受到干扰后通过重发命令就可以立即恢复，永不停机<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH452的2线接口抗干扰能力一般，内置超时处理<BR>&nbsp;&nbsp; 5、考虑硬件成本及其它特性<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH45X支持多片级联，支持更多数码管和按键，2线接口支持并联，4线接口支持并联或串联<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH45X支持BCD译码、移位、闪烁，CH452还支持自定义的BCD码<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH452支持LED位控制及光柱，用于独立控制多个LED时比较方便<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH451静态功耗较低，CH452支持睡眠，可由单片机命令唤醒，可由按键唤醒并通知单片机<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CH451价格低，CH452价格更低（约比CH451低2元），CH452零售价6元，10K批量仅4元5角<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 网上提供单片机控制CH45X芯片的子程序，有C语言和ASM汇编源程序</DIV></TD></TR></TBODY></TABLE>]]></description>
</item><item>
<title><![CDATA[『转』有关CH372或CH375的USB通讯的问题解答]]></title>
<link>http://www.c51bbs.com/c51blog/user1/157/archives/2008/15319.shtml</link>
<author>lhzw2001</author>
<pubDate>2008-8-4 19:05:43</pubDate>
<description><![CDATA[<DIV class=tit>『转』有关CH372或CH375的USB通讯的问题解答</DIV>
<DIV class=date>&nbsp;</DIV>
<TABLE style="TABLE-LAYOUT: fixed">
<TBODY>
<TR>
<TD>
<DIV class=cnt id=blog_text>
<P><FONT color=#ff0000>* 需要设计参考资料（可到<A href="http://www.wch.cn">www.wch.cn</A>上去下载）<BR></FONT>&nbsp;&nbsp; 1、如果是在没有单片机的情况下，进行简单的I/O输入输出，那么可以参考CH341的资料，CH341不需要<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 单片机就能独立工作，可以提供串口、并口、兼容IIC或I2C的2线接口、兼容SPI及JTAG的4线接口、<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5线接口等，可以提供多个GPIO通用I/O，可以用于控制低速模数转换AD、DA、数字I/O、I/O扩展等。<BR>&nbsp;&nbsp; 2、如果是单片机/DSP等与计算机相连接，也就是USB设备方式的应用，那么参考CH372的资料。可以下<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 载CH372+CH451评估板/演示板的资料CH372EVT.ZIP，有PDF文档和例子程序，例如，评估板说明及USB<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设备应用参考CH375451，参考电路和PCB，小数据量交互传输/应用层中断演示的例子DEMO，含MCS51<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 单片机C程序和汇编程序，批量数据传输的例子BULK测试速度，USB外置固件的C和汇编例子XFIRM，<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VC/VB/BC/DELPHI的例子等。另外，可以下载CH37X在计算机WINDOWS下的简单调试工具CH372DBG.ZIP，<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其中有MCS51单片机上位机与下位机的C源程序，PC机程序可以通过USB对MCS51进行简单仿真和控制，<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其中的C程序稍作修改就可以用于其它单片机。调试工具DEBUG372可以用于调试和检查下位机的程序。<BR>&nbsp;&nbsp; 3、如果是单片机/DSP等控制其它USB设备，也就是USB主机方式的应用，那么可以参考CH375的资料。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果是读写U盘并且用量较少或者是系统集成，关心快速入门并且简单易用，那么可以参考半成品U盘<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文件读写模块的说明CH375HM.ZIP；如果是做原始产品设计，关心成本，那么可以参考CH375评估板资<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 料CH375EVT.ZIP，其中有单片机读写U盘的例子和U盘文件级子程序库的API说明；如果是单片机控制<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; USB打印机等，或者CH375与CH372等其它USB产品通讯，可以参考USB主机方式应用参考CH375HST.ZIP。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在设计USB-HOST电路和PCB之前，强烈建议参考CH375的设计注意事项README.PDF。<BR><FONT color=#ff0000>* 关于电源</FONT><BR>&nbsp;&nbsp; 优先使用5V电源，CH37X在5V电源时的性能高于3.3V，可以作为工业级使用。<BR>&nbsp;&nbsp; 对于USB-HOST应用，建议参考CH375的设计注意事项README.PDF，要考虑USB带电插拔的实际情况。<BR>&nbsp;&nbsp; 我们的样板中的电阻R1（串在USB电源与本板电源之间）是为了便于双电源供电，防止两个电源电压不同<BR>&nbsp;&nbsp; 冲突。如果仪器本身有电源，或者不需要计算机双电源供电，那么可以去掉该电阻。<BR><FONT color=#ff0000>* 单片机无法与CH372或者CH375进行通讯，例如CMD_CHECK_EXIST不成功或者CMD_SET_USB_MODE返回错误</FONT><BR>&nbsp;&nbsp; 通常是硬件问题，例如：<BR>&nbsp;&nbsp; 1、CH375没有时钟，可能是晶体不良未振荡，电容或者晶体漏电，CH375的时钟必须是12MHz。<BR>&nbsp;&nbsp; 2、CH375没有成功复位，可能是RSTI引脚没有0.47uF上拉电容，也可以用单片机I/O口或者uP监控电路为<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 其提供复位，注意CH375的RSTI引脚内部有下拉电阻。对于CH372应该确保电源完全放电后再通电。<BR>&nbsp;&nbsp; 3、CH375的片选地址译码错误，例如，与RAM地址范围冲突<BR>&nbsp;&nbsp; 4、数据总线或者读写线连接错误等<BR>&nbsp;&nbsp; 5、用CMD_CHECK_EXIST命令测试硬件问题，该命令必然返回数据，如果返回数据不是0FFH，那么通常是<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 数据总线连接错误，这种问题容易处理，可以根据返回的值分析是哪个数据线有误。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果返回数据是0FFH，那么可能CH375不正常，例如，无时钟、未复位、读写片选线有误、工作于串<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 口方式等，如果复位期间CH375的TXD引脚是高电平，那么CH375工作于串口方式，当然并口操作无效<BR><FONT color=#ff0000>* 测量CH375的晶体振荡时好象不振荡</FONT><BR>&nbsp;&nbsp; 为了降低EMI，CH375的振荡为接近正弦波，所以振荡相对较弱，而一般单片机的振荡接近方波，振荡较<BR>&nbsp;&nbsp; 强但是电磁辐射大很多。当测量仪器接入CH375的引脚时，由于引入电容，在3.3V电源电压时容易导致<BR>&nbsp;&nbsp; CH375停振，当去掉测量仪器时通常会恢复。如果是在3.3V电源电压下，建议使用有源晶振或者外部振<BR>&nbsp;&nbsp; 荡，或者将XI引脚的电容换为10pF。振荡后XO引脚的电压在一半电源电压附近。<BR><FONT color=#ff0000>* 连接到计算机没有反应</FONT><BR>&nbsp;&nbsp; 当单片机控制CH37X执行CMD_SET_USB_MODE命令，选择模式2后，首次连接计算机，计算机就应该提示找<BR>&nbsp;&nbsp; 到新硬件，否则应该检查CH37X是否正常工作（看前面的问题）。如果确认单片机端没问题，那么可以<BR>&nbsp;&nbsp; 用万用表测量CH37X的UD+和UD-引脚，也就是USB信号线，应该UD+为3V以上，UD-为0.4V以下，否则说明<BR>&nbsp;&nbsp; CH375未工作或者未收到CMD_SET_USB_MODE命令，只有模式1和2会导致UD+上拉到3V电压以上。<BR><FONT color=#ff0000>* 连接到计算机，无法安装驱动，提示未知设备</FONT><BR>&nbsp;&nbsp; 1、CH375的GND以及单片机的GND必须与USB的GND可靠地连接，USB的VBUS/+5V可以不连接。<BR>&nbsp;&nbsp; 2、USB的D+和D-信号线接反，导致通讯失败，USB线4个，分别是+5V，D-，D+，GND，顺序不能错。<BR>&nbsp;&nbsp; 3、USB信号线必须用标准的USB线，不能用普通排线等代替，D+和D-布线要平行，附近铺地减少干扰。<BR>&nbsp;&nbsp; 4、由于CH37X内置了USB电阻，所以外部电路中D+和D-不需要串电阻，如果一定要串也不能大于5欧姆。<BR>&nbsp;&nbsp; 5、如果是5V工作电压，CH37X的V3引脚必须与VCC断开，如果是3.3V工作电压，那么V3应该连接VCC。<BR>&nbsp;&nbsp; 6、建议调试初期不要设置USB-ID，也就是单片机不要执行CMD_SET_USB_ID命令，等调通后再尝试修改。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果单片机执行CMD_SET_USB_ID命令，那么必须在CMD_SET_USB_MODE之前执行。如果单片机执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CMD_SET_USB_ID命令修改了USB-ID，那么必须同步修改驱动程序INF中的ID才能安装驱动。<BR><FONT color=#ff0000>* 计算机成功安装驱动程序，但是无法进行任何USB通讯</FONT><BR>&nbsp;&nbsp; 通常是单片机未收到或者未处理USB中断，驱动的安装与初始化是由CH372和CH375内置USB固件实现的，<BR>&nbsp;&nbsp; 不需要单片机的任何干预，而USB数据通讯需要由单片机收到USB中断并由程序实现<BR><FONT color=#ff0000>* 在与计算机连接时，为什么不能对单片机进行程序单步调试</FONT><BR>&nbsp;&nbsp; 标准的USB传输都是时间限制，单步调试容易导致USB超时，尤其在外置固件模式下，更容易超时。<BR>&nbsp;&nbsp; 解决方法是，用CH375作为USB-HOST，代替计算机单步调试您的USB设备，CH375可以不超时。<BR><FONT color=#ff0000>* 如何用一个CH375实现USB-HOST和USB-DEVICE</FONT><BR>&nbsp;&nbsp; CH375的串口连接只支持USB-HOST，所以必须通过8位并口与单片机连接。由于CH375自身没有主导权，<BR>&nbsp;&nbsp; 只能在单片机的控制下，切换为主机或者设备模式，所以单片机应该决定是主机还是设备，具体可以参<BR>&nbsp;&nbsp; 考USB电路及PCB设计注意事项README中的说明，在CH375评估板资料中，EXAM0是主从切换应用的例子。<BR><FONT color=#ff0000>* 关于应用层USB中断服务的特点</FONT><BR>&nbsp;&nbsp; CH372的动态锭接库DLL提供了伪中断服务，实际的中断服务仍然是在驱动程序库完成的，只是在完成后<BR>&nbsp;&nbsp; 向DLL发了个通知，由DLL再调用伪中断服务子程序。由于涉及到系统层与应用层切换以及线程切换，<BR>&nbsp;&nbsp; 所以中断频率不能太高，如果太高，虽然驱动程序能够收到中断，但是等到通知到应用层，再调用客户<BR>&nbsp;&nbsp; 的伪中断服务程序，最慢可能需要10毫秒，从而在应用层丢失中断。自己写驱动可以提高响应速度。<BR><FONT color=#ff0000>* 关于USB传输速度</FONT><BR>&nbsp;&nbsp; CH372/CH375与计算机通讯时，默认的CH37X驱动程序和DLL提供的API是同步I/O而非异步I/O，所以API<BR>&nbsp;&nbsp; 返回就说明该API执行完成，由于WINDOWS要提前安排USB帧调度，所以两次USB传输之间的间隔总是会大<BR>&nbsp;&nbsp; 于1mS，例如传两个64字节的包可能需要2mS，而传一个256字节的包可能只需要1mS。这种情况可以通过<BR>&nbsp;&nbsp; 修改驱动程序在驱动程序层传输数据或者用异步I/O解决，注意异步I/O在API返回时不代表该API完成。<BR>&nbsp;&nbsp; 计算机单次收发的数据块越大平均速度越快（单次最大4KB），CH372/CH375实测传输速度最高为400K字<BR>&nbsp;&nbsp; 节每秒（在10秒内连续测试的平均值），但是实际应用考虑到留些余量，考虑到应用程序在收发数据之<BR>&nbsp;&nbsp; 外还要分析处理数据，通常应该按200K计算。USB作为串行总线，采用包传输的方法，实时性不如PCI总<BR>&nbsp;&nbsp; 线，PCI能达到微秒级，而USB的响应时间只有几百微秒到几毫秒，在驱动程序中实现的性能要好些。<BR><FONT color=#ff0000>* 如何做WINDOWS驱动程序，WINDOWS DDK如何获得</FONT><BR>&nbsp;&nbsp; 我们的驱动程序全部使用WINDOWS 98/2000/XP DDK编译，同时支持WINDOWS 98/ME/2000/XP。DDK可以从<BR>&nbsp;&nbsp; 微软官方网站免费下载（订购芯片时如果需要我们也可以提供刻录光盘），除此之外，只需VC 5.0或者<BR>&nbsp;&nbsp; VC 6.0编译器，完全不需要额外软件支持。这样做出的驱动程序代码效率高并且文件短小，通常我们用<BR>&nbsp;&nbsp; INF安装信息文件而不是SETUP可执行程序，可以算是绿色软件。用户如果希望有更友好或者更简单的编<BR>&nbsp;&nbsp; 译方法，那么可以使用第三方的驱动程序生成工具，当然，那些软件通常都不便宜。<BR>&nbsp;&nbsp; 对于非WINDOWS驱动程序，可以参考其它USB设备的驱动源码修改，大多数USB设备的枚举、初始化过程都<BR>&nbsp;&nbsp; 是一样的，区别仅在于端点/管道：CH372/CH375除端点0外有三个端点，地址分别是02H、82H、81H，依<BR>&nbsp;&nbsp; 次为主输出BULK-OUT/64字节，主输入BULK-IN/64字节，辅输入INTERRUPT-IN/8字节/1mS，通常只用前两<BR>&nbsp;&nbsp; 个主端点，一个从计算机输出到CH375，一个从CH375输入到计算机。<BR><FONT color=#ff0000>* 数据采集中，单片机如何设计USB程序</FONT><BR>&nbsp;&nbsp; 简单的做法是，单片机开两个64字节的缓冲区，主程序定时采集数据，累加到第一个64字节缓冲区中，<BR>&nbsp;&nbsp; 当第一个缓冲区满时，使用CMD_WR_USB_DATA7命令上传64字节，然后主程序切换到第二个缓冲区继续采<BR>&nbsp;&nbsp; 集数据，当第二个缓冲区满时，首先检查上次的上传是否成功（上传成功会收到CH37X的中断），如果成<BR>&nbsp;&nbsp; 功则继续上传64字节，如果不成功，说明计算机应用程序没有来取走数据（正忙或者未执行采集程序），<BR>&nbsp;&nbsp; 那么可以忽略或者另行处理（提示计算机未连接）。该方法不使用中断，但是需要计算机不断地来读取<BR>&nbsp;&nbsp; 数据，实际的计算机程序可以设置USB读取超时，防止在单片机不上传数据时计算机一直等待。<BR><FONT color=#ff0000>* 设计的计算机端应用程序在读写USB时有时会死机，而计算机的其它程序一切正常</FONT><BR>&nbsp;&nbsp; 1、这种死机实际上是计算机端程序以为下位机会收发数据，而实际下位机没有，导致计算机一直等待。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一般情况下，在计算机与单片机的应用层应该有一定的约定：如何传数据、传多少、什么时候传、<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 双方如何同步，如果双方没有约定好，那么可能出现甲方以为乙方会传而乙方未传则会导致甲方一直<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 等待。最佳的解决方法是，设计良好的程序结构和双方约定，确保不出现上述的“以为”，另外再辅<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 助以超时解决方法，超时解决方法是，甲方收发数据，如果乙方正忙，那么甲方只等待一定时间而非<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 一直等待。新版的驱动程序都支持超时CH375SetTimeout，如果设置超时为200毫秒，那么超过200毫<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 秒收不到数据，甲方也不会一直等待下去，但是主程序应该分析这种情况是什么原因。建议超时值大<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 于正常情况下最大传输时间的2倍以上，最小要有数毫秒，因为计算机忙时正常传输时间也会增大。<BR>&nbsp;&nbsp; 2、类似情况还有，应用程序调用API准备接收80字节，而单片机只打算上传64字节，那么在计算机收到<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 64字节之后，因为不足所需要的80字节，所以继续等待后面的数据。原因是，USB传输最大包是64字<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 节，所以单片机上传64字节不能说明后面没有数据（真正的80字节传输是先传64再传16）。解决方法<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 是，单片机在64字节之后再上传0字节，当计算机收到0到63字节时，认为后面没有数据（因为USB最<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 后一个包的长度才可以少于最大包长度64），从而不管应用程序需要多少字节而提前退出接收。<BR>&nbsp;&nbsp; 3、另外还有一种失误，单片机程序在收到上传成功中断后未解锁CMD_UNLOCK_USB，导致CH372/CH375拒<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 绝处理后面的USB传输，而计算机程序不知道，会一直等待下去，除非超时退出。<BR>&nbsp;&nbsp; 4、如果要求的传输速度不高（小于20K字节每秒），那么可以参考CH37X调试工具中的调试程序，它使用<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 单个数据包的请求加应答方式，每个回合的USB操作都是计算机发下去一个命令包（含数据），然后<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 单片机返回应答包（含数据），因为双方约定有序，所以理论上绝对不会出现死机情况。<BR>&nbsp;&nbsp; 5、默认情况下的DLL是同步操作I/O，所以打开设备的同一句柄handle同一时候只能用于一个API，如果<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 同时有多个API使用同一个句柄则会导致阻塞。如果应用程序的多个线程都需要调用DLL的API，那么<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 必须使每个调用者分别使用各自的句柄handle，可以在主线程中OpenDevice后，用GetDeviceName获<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 取设备名称，然后由各线程调用CreateFile分别打开USB设备获得各自的句柄，再用于API调用，<BR><FONT color=#ff0000>* 单片机是否要对USB传输的数据进行校验</FONT><BR>&nbsp;&nbsp; USB传输本身是带CRC16校验的包传输，CH375自动检查CRC16，如果它检查通过，那么实际出错概率非常<BR>&nbsp;&nbsp; 之低，如果CH375检查CRC16未通过，那么它会和计算机约定重传几次直到CRC正确，所以正常情况下单<BR>&nbsp;&nbsp; 片机不需要考虑数据校验和数据重传。<BR><FONT color=#ff0000>* 关于丢数据、计算机调用API返回出错、数据错误等</FONT><BR>&nbsp;&nbsp; 1、丢数据通常是这样，上位机准备读取5个字节，而下位机上传8个字节，那么CH372的DLL及驱动程序在<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 收到8个字节后，只将应用程序所需的5个字节返回，而丢弃后面3字节。<BR>&nbsp;&nbsp; 2、正常情况下USB传输不会出错，如果返回错误通常是USB设备断开、USB传输超时（超时太短）、或者<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 单片机程序有误，写入无效的数据长度等（例如向端点2写入长度65等）。<BR>&nbsp;&nbsp; 3、数据错误通常是这种情况：应用程序未检查API返回时USB传输的实际长度，以为有足够数据返回，可<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 能实际上没有，当然缓冲区中的数据是无效的。例如，应用程序准备读取512字节，而单片机只上传<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 200字节，那么API返回时的实际长度只有200，如果应用程序不检查该长度而以为是500，那么就会认<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 为后面的数据错误。类似情况是USB超时太短，计算机接收到一半时因为超时提前返回，长度不足。<BR><FONT color=#ff0000>* 想自己做U盘、做定制功能的USB鼠标等</FONT><BR>&nbsp;&nbsp; 使用CH372、CH375的外置固件模式，外置固件模式下与市面上大多数USB接口芯片的使用方法差不多。<BR>&nbsp;&nbsp; 我们网上可以提供自己动手做U盘的全套低成本方案/源程序/样品等。做USB鼠标也有源程序供参考。<BR><FONT color=#ff0000>* 单片机通过CH375能否从其它带USB端口的仪器中采集数据？能否操作其它USB设备、例如USB打印机等</FONT><BR>&nbsp;&nbsp; 理论上可以，实际上有个条件，就是必须了解被操作方的USB传输的具体细节，例如通过哪些端点收发数<BR>&nbsp;&nbsp; 据，数据的格式是怎样的。例如，USB打印机是符合USB类规范的，所以USB传输的细节是公开，当然能够<BR>&nbsp;&nbsp; 进行USB传输操作，但是如何打印出文字还需要了解打印描述语言。对于带USB端口的仪器，因为通常都<BR>&nbsp;&nbsp; 不符合类规范，所以需要知道其传输数据的端点和数据格式，才能采集数据，否则即使通过某端点接收<BR>&nbsp;&nbsp; 到数据，也不知道是什么数据，所以关键是被操作方必须公开USB传输的资料，同一厂家当然没问题。<BR><FONT color=#ff0000>* 与计算机USB通讯有时不稳定</FONT><BR>&nbsp;&nbsp; 有3种原因，一是时钟不稳定，二是时钟受干扰，三是USB信号受干扰。这三种情况通常与电路及PCB设计<BR>&nbsp;&nbsp; 有关，尤其是时钟电路的GND、USB芯片的GND、电源退耦电容的GND之间尽量缩短连接，具体说明请参考<BR>&nbsp;&nbsp; USB芯片的电路及PCB设计的注意事项README.PDF。</P></DIV></TD></TR></TBODY></TABLE><BR>]]></description>
</item><item>
<title><![CDATA[网上一个非常流行的计算农历的算法]]></title>
<link>http://www.c51bbs.com/c51blog/user1/157/archives/2008/15318.shtml</link>
<author>lhzw2001</author>
<pubDate>2008-8-2 11:45:18</pubDate>
<description><![CDATA[<TABLE height="100%" cellSpacing=0 cellPadding=0 width="98%" align=center border=0>
<TBODY>
<TR>
<TD colSpan=2 height=28><SPAN class=STYLE9><BR><BR></SPAN><SPAN class=STYLE10></SPAN><SPAN class=STYLE10></SPAN></TD></TR>
<TR>
<TD bgColor=#eefff7 colSpan=2 height=24><A class=titleA style="FONT-SIZE: 18px" href="http://www.soomao.com/detail/?article_id=55802#"><B>网上一个非常流行的计算农历的算法</B></A></TD></TR>
<TR>
<TD style="BORDER-RIGHT: #999999 1px dotted" vAlign=top width="69%" height=700>
<TABLE width="100%" align=center>
<TBODY>
<TR>
<TD></TD></TR>
<TR>
<TD><BR>
<HR SIZE=1>

<DIV id=content>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt; COLOR: blue">#include</SPAN><SPAN style="FONT-SIZE: 12pt"> <TIME.H></SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt; COLOR: blue">int</SPAN><SPAN style="FONT-SIZE: 12pt"> LunarCalendar(<SPAN style="COLOR: blue">int</SPAN> year,<SPAN style="COLOR: blue">int</SPAN> *pmonth,<SPAN style="COLOR: blue">int</SPAN> *pday)</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt">{</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">const</SPAN> <SPAN style="COLOR: blue">int</SPAN> MonthAdd[12] = {0,31,59,90,120,151,181,212,243,273,304,334};</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">const</SPAN> <SPAN style="COLOR: blue">int</SPAN> LunarCalendarTable[100] ={ </SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>2635,333387,1701,1748,267701,694,2391,133423,1175,396438</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>,3402,3749,331177,1453,694,201326,2350,465197,3221,3402</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>,400202,2901,1386,267611,605,2349,137515,2709,464533,1738</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>,2901,330421,1242,2651,199255,1323,529706,3733,1706,398762</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>,2741,1206,267438,2647,1318,204070,3477,461653,1386,2413</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>,330077,1197,2637,268877,3365,531109,2900,2922,398042,2395</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>,1179,267415,2635,661067,1701,1748,398772,2742,2391,330031</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>,1175,1611,200010,3749,527717,1452,2742,332397,2350,3222</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>,268949,3402,3493,133973,1386,464219,605,2349,334123,2709</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>,2890,267946,2773,592565,1210,2651,395863,1323,2707,265877};</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"></SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">int</SPAN> DateCount,loop;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">int</SPAN> i,j,n,Bit;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">int</SPAN> month,day;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>month = *pmonth;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>day = *pday;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: green">//计算从1921年2月8日(正月初一)到现在所经历的天数。</SPAN></SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>DateCount = (year - 1921) * 365 + (year - 1921) / 4 + MonthAdd[month - 1] - 38 + day;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN></SPAN><SPAN style="COLOR: green">//如今年阳历是闰年（2月有29天），而且当前月份大于2月，经历的总天数加1。</SPAN></SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">if</SPAN>((!(year % 4)) &amp;&amp; (month &gt; 2))</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>DateCount = DateCount + 1;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: green">//下面是查表的算法。</SPAN></SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>loop = 1;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>j = 0;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">while</SPAN>(loop)</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>{</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">if</SPAN>(LunarCalendarTable[j] &lt; 4095)</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>i = 11;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">else</SPAN></SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>i = 12;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>n = i;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">while</SPAN>(n&gt;=0)</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Bit = LunarCalendarTable[j];</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>Bit = (Bit &gt;&gt; n) &amp; 1;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">if</SPAN> (DateCount &lt;= (29 + Bit))</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>loop = 0;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">break</SPAN>;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>DateCount -= 29 + Bit;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>n--;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">if</SPAN>(!loop)</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">break</SPAN>;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>j++;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>year = 1921 + j;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>month = i - n + 1;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>day = DateCount;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">if</SPAN> (i == 12)</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>{</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">if</SPAN> (month == LunarCalendarTable[j] / 65536 + 1)</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>{</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>month = 1 - month;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>}</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">else</SPAN> <SPAN style="COLOR: blue">if</SPAN> (month &gt; LunarCalendarTable[j] / 65536 + 1)</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>month--;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>*pmonth = month;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>*pday = day;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">return</SPAN> 1;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt">}</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt">main()</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt">{</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">const</SPAN> <SPAN style="COLOR: blue">char</SPAN> *ChDay[] = {"*","初一","初二","初三","初四","初五",</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>"初六","初七","初八","初九","初十",</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>"十一","十二","十三","十四","十五",</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>"十六","十七","十八","十九","二十",</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>"廿一","廿二","廿三","廿四","廿五", </SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>"廿六","廿七","廿八","廿九","三十"};</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">const</SPAN> <SPAN style="COLOR: blue">char</SPAN> *ChMonth[] = {"*","正","二","三","四","五","六","七","八","九","十","十一","腊"};</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">struct</SPAN> tm * Local;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">long</SPAN> t;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">int</SPAN> year,month,day;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">char</SPAN> str[13] = "";</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"></SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt; COLOR: blue">#if</SPAN><SPAN style="FONT-SIZE: 12pt"> 0<SPAN>&nbsp;&nbsp;&nbsp; </SPAN></SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>t = time(NULL);</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>Local = localtime(&amp;t);</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>year = Local-&gt;tm_year + 1900;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>month = Local-&gt;tm_mon + 1;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>day = Local-&gt; tm_mday;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt; COLOR: blue">#else</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>year = 2006;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>month = 1;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>day = 1;</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt; COLOR: blue">#endif</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>printf("%d年%d月%d日 ",year,month,day);</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>LunarCalendar(year,&amp;month,&amp;day);</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">if</SPAN>(month &lt; 0)</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>{</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>strcat(str,"闰");</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>strcat(str,ChMonth[-month]);</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>}</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN><SPAN style="COLOR: blue">else</SPAN></SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN>strcat(str,ChMonth[month]);</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>strcat(str,"月");</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>strcat(str,ChDay[day]);</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>puts(str);</SPAN></P>
<P class=cnt style="TEXT-ALIGN: left" align=left><SPAN style="FONT-SIZE: 12pt"><SPAN>&nbsp;&nbsp;&nbsp; </SPAN>system("pause");</SPAN></P>
<DIV class=cnt><SPAN style="FONT-SIZE: 12pt">}</SPAN></DIV>
<DIV class=cnt><SPAN style="FONT-SIZE: 12pt"></SPAN>&nbsp;</DIV>
<DIV class=cnt><SPAN style="FONT-SIZE: 12pt">节气的计算<BR>　　先给节气进行编号，从近日点开始的第一个节气编为0，编号如下及其相应的月份如下：<BR><BR>0 小寒 腊月<BR><BR><BR>6 清明 三月<BR><BR><BR>12 小暑 六月<BR><BR><BR>18 寒露 九月<BR><BR>1 大寒 腊月<BR><BR><BR>7 谷雨 三月<BR><BR><BR>13 大暑 六月<BR><BR><BR>19 霜降 九月<BR><BR>2 立春 正月<BR><BR><BR>8 立夏 四月<BR><BR><BR>14 立秋 七月<BR><BR><BR>20 立冬 十月<BR><BR>3 雨水 正月<BR><BR><BR>9 小满 四月<BR><BR><BR>15 处暑 七月<BR><BR><BR>21 小雪 十月<BR><BR>4 惊蛰 二月<BR><BR><BR>10 芒种 五月<BR><BR><BR>16 白露 八月<BR><BR><BR>22 大雪 冬月<BR><BR>5 春分 二月<BR><BR><BR>11 夏至 五月<BR><BR><BR>17 秋分 八月<BR><BR><BR>23 冬至 冬月<BR><BR>把当天和1900年1月0日（星期日）的差称为积日，那么第y年（1900年算第0年）第x 个节气的积日是<BR>F = 365.242 * y + 6.2 + 15.22 * x - 1.9 * sin(0.262 * x)<BR>这个公式的误差在0.05天左右。<BR>二、朔日的计算<BR>　　从1900年开始的第m个朔日的公式是<BR>M = 1.6 + 29.5306 * m + 0.4 * sin(1 - 0.45058 * m)<BR>这个公式的误差在0.2天左右。<BR>三、年份的确定<BR>　　1864年1月0日是农历癸亥年，所以用当年减去1864，用10除得的余数作为年份天干的，用12除得的余数作为年份的地支，数字对应的天。</SPAN></DIV></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>]]></description>
</item><item>
<title><![CDATA[用三个按键单片机的日历钟]]></title>
<link>http://www.c51bbs.com/c51blog/user1/3863/archives/2008/15317.shtml</link>
<author>houxiwen</author>
<pubDate>2008-8-1 21:34:08</pubDate>
<description><![CDATA[<P><BR>;000000000000000000000000000000000000000000000000000000000000000000000000000000000<BR>;这是一个电子钟有年,月,日,时，分,秒<BR>;农历和年月日显示，农历显示1910--2100年<BR>;星期显示1-8,8为星期日<BR>;用1片89C系列IC心片,17个七段LED数码显示,17个4543驱动的.静态显示.<BR>;89C系列用51,的P3.7,作按键的公共线P3.6,P3.5,P3.4作按键,SET,+,-各菜单,按住不放有连续功能,<BR>;P0.0_CD4028(U1)-10;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; U1(5,9,4,7,6,1,15,2,14,3&nbsp; )<BR>;P0.1_CD4028(U1)-13;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | | | | | | |&nbsp; |&nbsp; | | <BR>;P0.2_CD4028(U1)-12;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1nm1m1h1s10s<BR>;P0.3_CD4028(U1)-11;<BR>;P0.4_CD4028(U2)-10,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; U2(5,9,4,7,6,1,15,2,14,3)<BR>;P0.5_CD4028(U2)-13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; | | | | | |&nbsp; | |&nbsp; | | <BR>;P0.6_CD4028(U2)-12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>;P0.7_CD4028(U2)-11<BR>;P2.0_CD4543-5&nbsp; ----\<BR>;P2.1_CD4543-3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&gt;&nbsp;&nbsp; 是DATA<BR>;P2.2_CD4543-2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |&gt;<BR>;P2.3_CD4543-4&nbsp; ----/<BR>;17个LED的数据是公用的,用了8个IO作地址脚,用了两个4028扩展开20个地址,有三个未用上.<BR>;程序设计&nbsp;&nbsp;&nbsp;&nbsp; 侯锡义<BR>;开发时间&nbsp;&nbsp;&nbsp;&nbsp; 2007-12-29</P>
<P>&nbsp;</P>
<P><BR>&nbsp;<BR>FLAG&nbsp;&nbsp; bit&nbsp; 25h.0;定义25H.0为秒点闪烁的位标志FLAG<BR>di_da&nbsp; data 20h;定义20H为50MS计数单元DI_DA<BR>sec&nbsp;&nbsp;&nbsp; data 21h;定义21H为秒计数单元SEC<BR>min&nbsp;&nbsp;&nbsp; data 22h;定义22H为分计数单元MIN<BR>hour&nbsp;&nbsp; data 23h ;定义23H为时计数单元HOUr<BR>month&nbsp; data 26h<BR>week&nbsp;&nbsp; data 28h<BR>lmonth data 29h<BR>lday&nbsp;&nbsp; data 30h<BR>year&nbsp;&nbsp; data 31h<BR>day&nbsp;&nbsp;&nbsp; data 32h <BR>out_data&nbsp; equ&nbsp;&nbsp; 5dh<BR>j1&nbsp;&nbsp;&nbsp;&nbsp; data 5eh<BR>;*****************************************************<BR>org&nbsp; 0000h;程序开始<BR>ljmp main;07<BR>org&nbsp; 000bh;定时器中断入口<BR>ljmp clock;09</P>
<P>org&nbsp; 0030h;10L主程序开始<BR>main: mov year,#08h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov month,#04h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov day,#14h<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov hour,#020h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov min,#13h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov sec,#00h</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov tmod,#01h ;11,T0方式<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov tl0, #0B5h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov th0, #3ch<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setb et0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;开放TO中断<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setb tr0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;启动定时器T0<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp; di_da,#00h;16清除50MS计数单元<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setb ea;开放总中断<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>begin:mov p3,#7fh;向P3口送立即数7FH,即P3.7为低电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,p3;读P3到累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnb acc.6 ,next<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;cjne a,#70h,next;若A中内容不为7FH,转NEXT,否则顺序执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setb p3.7;置P3.7为高电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall conv;调用走时转换子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall longli_out<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis;调用数码管显示子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jb flag,flag_sec;判断秒点标志FLAG,若为1,转FLAG_SEC,为0顺序执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; setb p1.7;25置P2.7为高电平,熄灭秒点<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp begin;跳转到BEGIN处笔循环执行<BR>flag_sec: clr p1.7;置2.7为低电平点亮秒<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp begin;跳转到BEGIN处笔循环执行<BR>next: acall key;调用按键判断子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp begin;跳转到BEGIN处笔循环执行<BR>;****************************<BR>set_k1&nbsp; bit p3.6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;为SET<BR>up_k2&nbsp;&nbsp; bit p3.5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;为UP<BR>down_k3 bit p3.4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;为DOWN<BR>yea_r&nbsp;&nbsp; data 55h<BR>;year&nbsp;&nbsp;&nbsp; data 56h<BR>mont_h&nbsp; data 57h<BR>;month&nbsp;&nbsp; data 58h<BR>da_y&nbsp;&nbsp;&nbsp; data 59h<BR>;day&nbsp;&nbsp;&nbsp;&nbsp; data 5ah<BR>hou_r&nbsp;&nbsp;&nbsp; data 5bh<BR>;hour&nbsp;&nbsp;&nbsp;&nbsp; data 5ch<BR>mi_n&nbsp;&nbsp;&nbsp; data 5dh<BR>;min&nbsp;&nbsp;&nbsp;&nbsp; data 5eh<BR>se_c&nbsp;&nbsp;&nbsp;&nbsp; data 5fh<BR>;*******程序要求***************<BR>;当按下SET键10秒后,YEAR开始闪现,这时可按(up_k2)对YAER进行 +,这时可按down_k3对YAER进行-<BR>;当在按下SET键1秒后,MONTH开始闪现,这时可按(up_k2)对MONTH进行 +,这时可按down_k3对MONTH进行-<BR>;当按下SET键1秒后,DAY开始闪现,这时可按(up_k2)对DAY进行 +,这时可按down_k3对DAY进行-<BR>;当按下SET键1秒后,HOUR开始闪现,这时可按(up_k2)对HOUR进行 +,这时可按down_k3对HOUR进行-<BR>;当按下SET键1秒后,MIN开始闪现,这时可按(up_k2)对MIN进行 +,这时可按down_k3对MIN进行-<BR>;main:<BR>;当按下设定键后,记数到10,发现到10后进行YEAR的设定,再按一下SET键后记数到11进行MONTH的设定<BR>;再按一下SET键后记数到12,进行DAY的设定,<BR>;再按一下SET键后记数到13,进行HOUR的设定<BR>;再按一下SET键后记数到14,进行MIN的设定<BR>;按UP_K2,和DOWN_K3分别对闪动的项目进行+,-<BR>;再按设定键后,记数返回10,再度记数10-14,当这三个按键在10S后均未曾操作,结束该子程序.<BR>key:<BR>&nbsp;&nbsp; mov p3,#7Fh;&nbsp;P3.7给低电平<BR>&nbsp;&nbsp; jnb&nbsp; set_k1,jishu<BR>&nbsp;&nbsp; ajmp zhoushi<BR>jishu:<BR>&nbsp;&nbsp; mov r0,#00<BR>&nbsp;&nbsp; mov r1,#30;存入字模闪的次数,不能老闪,不闪后进入走时<BR>jishu1:&nbsp;&nbsp;&nbsp; ;当SET键按下时,记数<BR>&nbsp;&nbsp; jb set_k1,zhoushi_1;如果SET_K1键未按下了,进入走时程序.<BR>&nbsp;&nbsp; acall del200ms<BR>&nbsp;&nbsp; jb set_k1,zhoushi_1<BR>&nbsp;&nbsp; inc r0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;+1<BR>&nbsp;&nbsp; mov a,r0<BR>&nbsp;&nbsp; cjne a,#9,jishu1;记数未满10,返回再记<BR>&nbsp;&nbsp; ajmp year_nomber_flash<BR>&nbsp;&nbsp; ajmp year_nomber_flash<BR>&nbsp;&nbsp; ajmp year_nomber_flash<BR>&nbsp;&nbsp; ajmp mode_sele<BR>&nbsp; </P>
<P>mode_sele:<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; jb set_k1,n4;如果SET_K1键未按下了,进入year_UP_DOWN程序.<BR>&nbsp;&nbsp; acall del200ms<BR>&nbsp;&nbsp; jnb set_k1,$<BR>&nbsp;&nbsp; mov r1,#60<BR>&nbsp;&nbsp; inc r0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ;+1<BR>&nbsp; n4:<BR>&nbsp;&nbsp; mov a,r0<BR>&nbsp;&nbsp; mov b,#12<BR>&nbsp;&nbsp; div ab<BR>&nbsp;&nbsp; mov a,b<BR>&nbsp;&nbsp; rlc a<BR>&nbsp;&nbsp; mov dptr,#n3<BR>&nbsp;&nbsp; jmp @a+dptr<BR>&nbsp;&nbsp; <BR>&nbsp; n3:<BR>&nbsp;&nbsp; ajmp year_UP_DOWN<BR>&nbsp;&nbsp; ajmp month_UP_DOWN<BR>&nbsp;&nbsp; ajmp day_UP_DOWN<BR>&nbsp;&nbsp; ajmp hour_UP_DOWN<BR>&nbsp;&nbsp; ajmp min_UP_DOWN<BR>&nbsp;&nbsp; ajmp sec_UP_DOWN<BR>&nbsp;&nbsp; ajmp year_UP_DOWN<BR>&nbsp;&nbsp; ajmp month_UP_DOWN<BR>&nbsp;&nbsp; ajmp day_UP_DOWN<BR>&nbsp;&nbsp; ajmp hour_UP_DOWN<BR>&nbsp;&nbsp; ajmp min_UP_DOWN<BR>&nbsp;&nbsp; ajmp sec_UP_DOWN<BR>&nbsp;&nbsp; ajmp zhoushi<BR>zhoushi_1:jmp zhoushi<BR>year_UP_DOWN:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; djnz r1,yn1<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp zhoushi ;闪了年字模30次,还未按K2,K3就进入走时<BR>&nbsp;&nbsp;&nbsp;&nbsp; yn1:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jb UP_k2,yn2;+键未按下,转-键<BR>&nbsp;&nbsp;&nbsp;&nbsp; YEAR_UP:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; year_adj:<BR>&nbsp; clr c;清除进位CY<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,year;将计数单元HOUR送进累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inc a <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; da a;2--10调整<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#0aah,yx14;若A不为24H,跳转到X3;若为24H则顺序执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clr a;清除累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yx14:mov&nbsp; year,a;调整后的累加器A内容送回小时计数单元year<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis;调用显示子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms;调用延时子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p3,#7fh;向P3口送立即数7FH,即P3.7为低电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms<BR>&nbsp; mov j1,r0 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall longli_out<BR>&nbsp; mov r0,j1<BR>&nbsp; jnb UP_k2,YEAR_UP<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r1,#30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp year_nomber_flash<BR>&nbsp;&nbsp;&nbsp;&nbsp; yn2:&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jb DOWN_k3,year_nomber_flash;-键未按下,继续闪字模<BR>&nbsp;&nbsp;&nbsp;&nbsp; YEAR_DOWN: <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clr c;清除进位CY<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,year;将计数单元HOUR送进累加器A&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp; dec a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#0ffh,yx16;若A不为24H,跳转到X3;若为24H则顺序执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#99h&nbsp;&nbsp; ;清除累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yx16:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#8fh,yx17<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#89h<BR>&nbsp;&nbsp; yx17:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#7fh,yx18<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#79h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yx18:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#6fh,yx19<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#69h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yx19:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#5fh,yx1a<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#59h<BR>&nbsp;&nbsp; yx1a:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#4fh,yx1b<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#49h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yx1b:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#3fh,yx1c<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#39h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yx1c:<BR>&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#2fh,yx1d<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#29h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yx1d:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#1fh,yx1e<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#19h<BR>&nbsp;&nbsp; yx1e:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#0fh,yx1f<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#09h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yx1f:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#0ffh,yx20<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#99h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yx20:</P>
<P><BR>&nbsp; mov year,a ;调整后的累加器A内容送回小时计数单元year</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis;调用显示子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp; acall del200ms;调用延时子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p3,#7fh;向P3口送立即数7FH,即P3.7为低电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov j1,r0 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall longli_out<BR>&nbsp; mov r0,j1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnb DOWN_k3, YEAR_DOWN<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r1,#30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp year_nomber_flash<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; year_nomber_flash:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p2,#0fh <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#00fh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del1us;调用1MS延时子程序,维持数码管显示.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p2,#0fh <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#01fh&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del1us;调用1MS延时子程序,维持数码管显示.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0ffh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp mode_sele<BR>month_UP_DOWN:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; djnz r1,mo_1<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp zhoushi ;闪了年字模30次,还未按K2,K3就进入走时<BR>&nbsp;&nbsp;&nbsp;&nbsp; mo_1:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jb UP_k2,mn2;+键未按下,转-键<BR>&nbsp;&nbsp;&nbsp;&nbsp; month_UP:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clr c;清除进位CY<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,month;将计数单元HOUR送进累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inc a <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; da a;2--10调整<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#013h,mx14;若A不为24H,跳转到X3;若为24H则顺序执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#01h;清除累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mx14:mov&nbsp; month,a;调整后的累加器A内容送回小时计数单元year<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis;调用显示子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms;调用延时子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p3,#7fh;向P3口送立即数7FH,即P3.7为低电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov j1,r0 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall longli_out<BR>&nbsp; mov r0,j1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnb UP_k2,month_up<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r1,#30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp month_nomber_flash<BR>&nbsp;&nbsp;&nbsp;&nbsp; mn2:&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jb DOWN_k3,month_nomber_flash;-键未按下,继续闪字模<BR>&nbsp;&nbsp;&nbsp;&nbsp; month_DOWN: <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clr c;清除进位CY<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,month;将计数单元HOUR送进累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dec a;2--10调整<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#00h,mxm6;若A不为24H,跳转到X3;若为24H则顺序执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#12H&nbsp;&nbsp; ;累加器A</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mxm6:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#0fh,mxm7<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#09H</P>
<P>&nbsp; mxm7:<BR>&nbsp; mov month,a ;调整后的累加器A内容送回小时计数单元year<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis;调用显示子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms;调用延时子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p3,#7fh;向P3口送立即数7FH,即P3.7为低电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov j1,r0 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall longli_out<BR>&nbsp; mov r0,j1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnb DOWN_k3,month_down<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r1,#30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp month_nomber_flash</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; month_nomber_flash:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p2,#0fh <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0f8h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del1us;调用1MS延时子程序,维持数码管显示.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0ffh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p2,#0fh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0f9h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del1us;调用1MS延时子程序,维持数码管显示.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0ffh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp mode_sele<BR>day_UP_DOWN:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; djnz r1,do_1&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp zhoushi ;闪了年字模30次,还未按K2,K3就进入走时<BR>&nbsp;&nbsp;&nbsp;&nbsp; do_1:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jb UP_k2,dn2;+键未按下,转-键<BR>&nbsp;&nbsp;&nbsp;&nbsp; day_UP:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clr c;清除进位CY<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,day;时送累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add a,#01h;加累加器加1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; da a ;2--10调整<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov day,a;调整后的累加器A内容送回时计数单元HOUR<BR>&nbsp;&nbsp;&nbsp;&nbsp; got28:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,day&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#029h,got29;若日为28日则顺序执行,否则跳转到GO29<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,month<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#02h,got30;若是2月下,否则跳转到GO30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,year<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov b,#04h ;将年除4<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; div ab<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,b<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#00h,gonext1;余数是否为0,不为0跳到1号去<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp got29<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; gonext1:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov day,#01h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp x5<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; got29:mov a,day<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#030h,got30;若日为29日则顺序执行,否则跳转到GO30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,month<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#02h,got30;若是2月下,否则跳转到GO30<BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov day,#01h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp x5<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; got30:mov a,day<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#031h,got31<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,month<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#04h,got316;若是4,6,9,11月下,否则跳转到GO30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov day,#01h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp x5<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; got316:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,month<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#06h,got319<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov day,#01h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp x5<BR>&nbsp;&nbsp;&nbsp;&nbsp; got319:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,month<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#09h,got3111<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov day,#01h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp x5<BR>&nbsp;&nbsp;&nbsp;&nbsp; got3111:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,month<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#11h,got31<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov day,#01h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp x5<BR>&nbsp;&nbsp;&nbsp;&nbsp; got31: mov a,day&nbsp; ;如果日是31则清除为01<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#32h,x5<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov day,#01h;清除天计数单元<BR>&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; x5:<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis;调用显示子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms;调用延时子程序&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p3,#7fh;向P3口送立即数7FH,即P3.7为低电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov j1,r0 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall longli_out<BR>&nbsp; mov r0,j1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnb UP_k2,day_up<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r1,#30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp day_nomber_flash<BR>&nbsp;&nbsp;&nbsp;&nbsp; dn2:&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jb DOWN_k3,day_nomber_flash;-键未按下,继续闪字模<BR>&nbsp;&nbsp;&nbsp;&nbsp; day_DOWN: <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clr c;清除进位CY<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,day;将计数单元HOUR送进累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dec a <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#00h,dxd6;若A不为24H,跳转到X3;若为24H则顺序执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall monthend&nbsp;&nbsp; ;清除累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dxd6:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#0fh,dxd7<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp; a,#09h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dxd7:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#1fh,dxd8<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp; a,#19h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dxd8:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#2fh,dxd9<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov&nbsp; a,#29h<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dxd9:<BR>&nbsp; mov day,a ;调整后的累加器A内容送回小时计数单元year<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis;调用显示子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms;调用延时子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p3,#7fh;向P3口送立即数7FH,即P3.7为低电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov j1,r0 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall longli_out<BR>&nbsp; mov r0,j1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnb DOWN_k3,day_down<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r1,#30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp day_nomber_flash<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; day_nomber_flash:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p2,#0fh <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0f6h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del1us;调用1MS延时子程序,维持数码管显示.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p2,#0fh <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0f7h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del1us;调用1MS延时子程序,维持数码管显示.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0ffh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp mode_sele<BR>&nbsp; monthend:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MOV A,year</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anl a, #0fh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r4,a;个位用R0寄存器存下<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,year<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; swap a<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anl a, #0fh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov b,#0ah<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mul ab;十位转到个位乘以10后加上个位数<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add a,r4<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ANL A,#03h ;ACC 为除4 的余数;除4的余数是一样<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JNZ cn_cl ;转常年处理; 年除4 余数为0 是闰年顺&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp rn_cl ;闰年处理&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp; rn_cl:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,month <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anl a, #0fh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r4,a;个位用R0寄存器存下<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,month<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; swap a<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anl a, #0fh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov b,#0ah<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mul ab;十位转到个位乘以10后加上个位数<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add a,r4<BR>&nbsp; acall rmonth_day_end<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov day,a<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret<BR>&nbsp; cn_cl:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,month <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anl a, #0fh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r4,a;个位用R0寄存器存下<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,month<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; swap a<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; anl a, #0fh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov b,#0ah<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mul ab;十位转到个位乘以10后加上个位数<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; add a,r4<BR>&nbsp; acall month_day_end<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov day,a<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret<BR>&nbsp; month_day_end:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; movc a,@a+pc<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; db 31h,28h,31h,30h,31h,30h,31h,31h,30h,31h,30h,31h<BR>&nbsp; <BR>&nbsp; rmonth_day_end:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; movc a,@a+pc<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ret<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; db 31h,29h,31h,30h,31h,30h,31h,31h,30h,31h,30h,31h<BR>&nbsp; <BR>hour_UP_DOWN:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; djnz r1,hmo_1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp zhoushi ;闪了年字模30次,还未按K2,K3就进入走时<BR>&nbsp;&nbsp;&nbsp;&nbsp; hmo_1:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jb UP_k2,hmn2;+键未按下,转-键<BR>&nbsp;&nbsp;&nbsp;&nbsp; hour_UP:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clr c;清除进位CY<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,hour;将计数单元HOUR送进累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inc a <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; da a;2--10调整<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#024h,hmx14;若A不为24H,跳转到X3;若为24H则顺序执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#00h;清除累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hmx14:mov&nbsp; hour,a;调整后的累加器A内容送回小时计数单元year<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis;调用显示子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms;调用延时子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p3,#7fh;向P3口送立即数7FH,即P3.7为低电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnb UP_k2,hour_up<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r1,#30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp hour_nomber_flash<BR>&nbsp;&nbsp;&nbsp;&nbsp; hmn2:&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jb DOWN_k3,hour_nomber_flash;-键未按下,继续闪字模<BR>&nbsp;&nbsp;&nbsp;&nbsp; hour_DOWN: <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clr c;清除进位CY<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,hour;将计数单元HOUR送进累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dec a <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#0ffh,hmxm6;若A不为24H,跳转到X3;若为24H则顺序执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#23H&nbsp;&nbsp; ;累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hmxm6:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#0fh,hmxm7;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#09H&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hmxm7:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#1fh,hmxm8;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#19H&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hmxm8:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp; mov hour,a ;调整后的累加器A内容送回小时计数单元year<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis;调用显示子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms;调用延时子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p3,#7fh;向P3口送立即数7FH,即P3.7为低电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnb DOWN_k3,hour_down<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r1,#30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp hour_nomber_flash<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; hour_nomber_flash:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p2,#0fh <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0f4h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del1us;调用1MS延时子程序,维持数码管显示.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p2,#0fh <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0f5h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del1us;调用1MS延时子程序,维持数码管显示.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0ffh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp mode_sele</P>
<P>&nbsp;&nbsp;&nbsp; <BR>&nbsp;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;&nbsp; <BR>min_UP_DOWN:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; djnz r1,mhmo_1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp zhoushi ;闪了年字模30次,还未按K2,K3就进入走时<BR>&nbsp;&nbsp;&nbsp;&nbsp; mhmo_1:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jb UP_k2,mhmn2;+键未按下,转-键<BR>&nbsp;&nbsp;&nbsp;&nbsp; min_UP:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clr c;清除进位CY<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,min;将计数单元HOUR送进累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inc a <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; da a;2--10调整<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#060h,mhmx14;若A不为24H,跳转到X3;若为24H则顺序执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#00h;清除累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mhmx14:<BR>&nbsp; mov&nbsp; min,a;调整后的累加器A内容送回小时计数单元year<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis;调用显示子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms;调用延时子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p3,#7fh;向P3口送立即数7FH,即P3.7为低电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnb UP_k2,min_up<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r1,#30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp min_nomber_flash<BR>&nbsp;&nbsp;&nbsp;&nbsp; mhmn2:&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jb DOWN_k3,min_nomber_flash;-键未按下,继续闪字模<BR>&nbsp;&nbsp;&nbsp;&nbsp; min_DOWN: <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clr c;清除进位CY<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,min;将计数单元HOUR送进累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dec a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#0ffh,mhmxm6;若A不为24H,跳转到X3;若为24H则顺序执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#59H&nbsp;&nbsp; ;累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mhmxm6:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#4fh,mhmxm7<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#49H<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mhmxm7:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#3fh,mhmxm8<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#39H<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mhmxm8:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#2fh,mhmxm9<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#29H<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mhmxm9:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#1fh,mhmxma<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#19H<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mhmxma:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#0fh,mhmxmb<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#09H<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mhmxmb:</P>
<P>&nbsp; mov min,a ;调整后的累加器A内容送回小时计数单元year<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis;调用显示子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms;调用延时子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p3,#7fh;向P3口送立即数7FH,即P3.7为低电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnb DOWN_k3,min_down<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r1,#30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp min_nomber_flash<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; min_nomber_flash:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p2,#0fh <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0f2h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del1us;调用1MS延时子程序,维持数码管显示.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p2,#0fh <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0f3h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del1us;调用1MS延时子程序,维持数码管显示.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0ffh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp mode_sele</P>
<P><BR>sec_UP_DOWN:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; djnz r1,smhmo_1<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp zhoushi ;闪了年字模30次,还未按K2,K3就进入走时<BR>&nbsp;&nbsp;&nbsp;&nbsp; smhmo_1:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jb UP_k2,smhmn2;+键未按下,转-键<BR>&nbsp;&nbsp;&nbsp;&nbsp; sec_UP:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clr c;清除进位CY<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,sec;将计数单元HOUR送进累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; inc a <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; da a;2--10调整<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#060h,smhmx14;若A不为24H,跳转到X3;若为24H则顺序执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#00h;清除累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; smhmx14:mov&nbsp; sec,a;调整后的累加器A内容送回小时计数单元year<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis;调用显示子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms;调用延时子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p3,#7fh;向P3口送立即数7FH,即P3.7为低电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnb UP_k2,sec_up<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r1,#30 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp sec_nomber_flash<BR>&nbsp;&nbsp;&nbsp;&nbsp; smhmn2:&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jb DOWN_k3,sec_nomber_flash;-键未按下,继续闪字模<BR>&nbsp;&nbsp;&nbsp;&nbsp; sec_DOWN: <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; clr c;清除进位CY<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,sec;将计数单元HOUR送进累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dec a <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#0ffh,smhmxm6;若A不为24H,跳转到X3;若为24H则顺序执行<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#59H&nbsp;&nbsp; ;累加器A<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; smhmxm6:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#4fh,smhmxm7<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#49H<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; smhmxm7:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#3fh,smhmxm8<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#39H<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; smhmxm8:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#2fh,smhmxm9<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#29H<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; smhmxm9:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#1fh,smhmxma<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#19H<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; smhmxma:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cjne a,#0fh,smhmxmb<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov a,#09H<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; smhmxmb:</P>
<P>&nbsp; mov sec,a ;调整后的累加器A内容送回小时计数单元year<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall dis;调用显示子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del200ms;调用延时子程序<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p3,#7fh;向P3口送立即数7FH,即P3.7为低电平<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; jnb DOWN_k3,sec_down<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov r1,#30<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ajmp sec_nomber_flash<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sec_nomber_flash:<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p2,#0fh <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0f0h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del1us;调用1MS延时子程序,维持数码管显示.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p2,#0fh <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0f1h&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; acall del1us;调用1MS延时子程序,维持数码管显示.<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mov p0,#0ffh<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&