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

📄 [部分原创]dds芯片ad9850的工作原理及其与单片机的接口_伊凡的天空--天堂物语.htm

📁 DDS9850函数信号发生器 包括按键控制;方波
💻 HTM
📖 第 1 页 / 共 2 页
字号:
  <TR>
    <TD class=modtl width=7>&nbsp;</TD>
    <TD class=modtc noWrap>
      <DIV class=modhead><SPAN class=modtit>查看文章</SPAN></DIV></TD>
    <TD class=modtc noWrap align=right></TD>
    <TD class=modtr width=7>&nbsp;</TD></TR></TBODY></TABLE>
<DIV class=modbox id=m_blog>
<DIV class=tit>[部分原创]DDS芯片AD9850的工作原理及其与单片机的接口</DIV>
<DIV class=date>2007-07-17 12:54</DIV>
<TABLE style="TABLE-LAYOUT: fixed">
  <TBODY>
  <TR>
    <TD>
      <DIV class=cnt>
      <DIV class="f14_24 message"><FONT color=#339966><STRONG><FONT 
      face=宋体>摘要:</FONT></STRONG>介绍了美国AD公司采用先进的直接数字频率合成(DDS)技术推出的高集成度频率合成器AD9850的工作原理、主要特点及其与MCS51单片机的接口,并给出了接口电路图和部分源程序。 
      </FONT>
      <P><FONT 
      color=#339966><SPAN>&nbsp;&nbsp;&nbsp;&nbsp;<STRONG>关键词:</STRONG></SPAN>直接数字频率合成(DDS) 
      控制字 控制时序 接口 AD9850</FONT></P>
      <P style="TEXT-INDENT: 0px"><STRONG><FONT color=#339966>1 AD9850简介<IMG 
      height=254 hspace=1 
      src="[部分原创]DDS芯片AD9850的工作原理及其与单片机的接口_伊凡的天空--天堂物语.files/18a.gif" width=220 
      align=right vspace=1 border=0></FONT></STRONG></P>
      <P><FONT 
      color=#339966>随着数字技术的飞速发展,用数字控制方法从一个参考频率源产生多种频率的技术,即直接数字频率合成(DDS)技术异军突起。美国AD公司推出的高集成度频率合成器AD9850便是采用DDS技术的典型产品之一。</FONT></P>
      <P><FONT 
      color=#339966>AD9850采用先地蝗CMOS工艺,其功耗在3.3V供电时仅为155mW,扩展工业级温度范围为-40~80℃,采用28脚SSOP表面封装形式。AD9850的引脚排列如图1所示,图2为其组成框图。图2中层虚线内是一个完整的可编程DDS系统,外层虚线内包含了AD9850的主要组成部分。</FONT></P>
      <P><FONT 
      color=#339966>AD9850内含可编程DDS系统和高速比较器,能实现全数字编程控制的频率合成。可编程DDS系统的核心是相位累加器,它由一个加法器和一个N位相位寄存器组成,N一般为24~32。每来一个外部参考时钟,相位寄存器便以步长M递加。相位寄存器的输出与相位控制字相加后可输入到正弦查询表地址上。正弦查询表包含一个正弦波周期的数字幅度信息,每一个地址对应正弦波中0°~360°范围的一个相位点。查询表把输入地址的相位信息映射成正弦波幅度信号,然后驱动DAC以输出模式量。</FONT></P>
      <P><FONT 
      color=#339966>相位寄存器每过2N/M个外部参考时钟后返回到初始状态一次,相位地正弦查询表每消费品一个循环也回到初始位置,从而使整个DDS系统输出一个正弦波。输出的正弦波周期To=Tc2N/M,频率fout=Mfc/2N,Tc、fc分别为外部参考时钟的周期和频率。</FONT></P>
      <P><FONT 
      color=#339966>AD9850采用32位的相位累加器将信号截断成14位输入到正弦查询表,查询表的输出再被截断成10位后输入到DAC,DAC再输出两个互补的电流。DAC满量程输出电流通过一个外接电阻RSET调节,调节关系为ISET=32(1.148V/RSET),RSET的典型值是3.9kΩ。将DAC的输出经低通滤波后接到AD9850内部的高速比较器上即可直接输出一个抖动很小的方波。其系统功能如图3所示。<IMG 
      height=108 hspace=1 
      src="[部分原创]DDS芯片AD9850的工作原理及其与单片机的接口_伊凡的天空--天堂物语.files/18b.gif" width=301 
      align=left vspace=1 border=0></FONT></P>
      <P><FONT 
      color=#339966>AD9850在接上精密时钟源和写入频率相位控制字之间后就可产生一个频率和相位都可编程控制的模拟正弦波输出,此正弦波可直接用作频率信号源或经内部的高速比较器转换为方波输出。在125MHz的时钟下,32位的频率控制字可使AD9850的输出频率分辨率达0.0291Hz;并具有5位相位控制位,而且允许相位按增量180°、90°、45°、22.5°、11.25°或这些值的组合进行调整。</FONT></P>
      <P style="TEXT-INDENT: 0px"><STRONG><FONT color=#339966>2 
      AD9850的控制字与控制时序</FONT></STRONG></P>
      <P><FONT color=#339966>AD9850有40位控制字,32位用于频率控制,5位用于相位控制。1位用于电源休眠(Power 
      down)控制,2位用于选择工作方式。这40位控制字可通过并行方式或串行方式输入到AD9850,图4是控制字并行输入的控制时序图,在并行装入方式中,通过8位总线A0…D7将可数据输入到寄存器,在重复5次之后再在FQ-UD上升沿把40位数据从输入寄存器装入到频率/相位数据寄存器(更新DDS输出频率和相位),同时把地址指针复位到第一个输入寄存器。接着在W-CLK的上升沿装入8位数据,并把指针指向下一个输入寄存器,连续5个W-CLK上升沿后,<IMG 
      height=187 hspace=1 
      src="[部分原创]DDS芯片AD9850的工作原理及其与单片机的接口_伊凡的天空--天堂物语.files/18c.gif" width=244 
      align=right vspace=1 
      border=0>W-CLK的边沿就不再起作用,直到复位信号或FQ-UD上升沿把地址指针复位到第一个寄存器。在串行输入方式,W-CLK上升沿把25引脚的一位数据串行移入,当移动40位后,用一个FQ-UD脉冲即可更新输出频率和相位。图5是相应的控制字串行输入的控制时序图。</FONT></P>
      <P><FONT 
      color=#339966>AD9850的复位(RESET)信号为高电平有效,且脉冲宽度不小于5个参考时钟周期。AD9850的参考时钟频率一般远高于单片机的时钟频率,因此AD9850的复位(RESET)端可与单片机的复位端直接相连。</FONT></P>
      <P><FONT 
      color=#339966>值得一提的是:用于选择工作方式的两个控制位,无论并行还是串行最好都写成00,并行时的10、01和串行时的10、01、11都是工厂测试用的保留控制字,不慎使用可能导致难以预料的后果。</FONT></P>
      <P style="TEXT-INDENT: 0px"><STRONG><FONT color=#339966>3 
      单片机与AD9850的接口</FONT></STRONG></P>
      <P><FONT 
      color=#339966>AD9850有两种与微机并行打印口相连的评估版,并配有Windows下运行的软件,可以作为应用参考,但运用单片机实现对DDS的控制与微机实现的控制相比,具有编程控制简便、接口简单、成本低,容易实现系统小型化等优点,因此普遍采用MCS51单片机作为控制核心来向AD9850发送控制字。</FONT></P>
      <P><FONT 
      color=#339966>单片机与AD9850的接口既要客商用并行方式,也可采用串行方式,但为了充分发挥芯片的高速性能,应在单片机资源允许的情况下尽可能选择并行方式,本文重点介绍其并行方式的接口。</FONT></P>
      <P style="TEXT-INDENT: 0px"><FONT color=#339966>3.1 I/O方式并行接口<IMG 
      height=139 hspace=1 
      src="[部分原创]DDS芯片AD9850的工作原理及其与单片机的接口_伊凡的天空--天堂物语.files/18d.gif" width=301 
      align=right vspace=1 border=0></FONT></P>
      <P><FONT 
      color=#339966>I/O方式的并行接口电路比较简单,但占用单片机资源相对较多,图6是I/O方式并行接口的电路图,AD9850的数据线D0~D7与P1口相连,FQ-UD和W-CLK分别与P3.0(10引脚)和P3.1(11引脚)相连,所有的时序关系均可通过软件控制实现。</FONT></P>
      <P><FONT color=#339966>将DDS控制字从高至低存放于30H至34H中,发送控制字的程序清单如下:</FONT></P>
      <P><FONT color=#339966>MOV R0,#05H</FONT></P>
      <P><FONT color=#339966>MOV R1,#30H</FONT></P>
      <P><FONT color=#339966>DD:MOV P1,@R1<IMG height=130 hspace=1 
      src="[部分原创]DDS芯片AD9850的工作原理及其与单片机的接口_伊凡的天空--天堂物语.files/18e.gif" width=269 
      align=right vspace=1 border=0></FONT></P>
      <P><FONT color=#339966>SETB P3.1</FONT></P>
      <P><FONT color=#339966>CLR P3.1</FONT></P>
      <P><FONT color=#339966>INC R1</FONT></P>
      <P><FONT color=#339966>DJNZ R0,DD</FONT></P>
      <P><FONT color=#339966>SETB P3.0</FONT></P>
      <P><FONT color=#339966>CLR P3.0</FONT></P>
      <P><FONT color=#339966>END</FONT></P>
      <P><FONT 
      color=#339966>在程序中,每将一字节的数据送到P1口后,必须将P3.1(W-CLK)置高。在其上升沿,AD9850接收到P1口相连的数据线上的数据,然后将P3.1置低,并准备下一字节的发送,连续发送5个字节后,须将P3.0(FQ-UD)再次置高,以使AD9850根据则输入的控制字更改频率和相位输出,随后再置P3.0为低,准备下一组发送。单片机的P3.0、P3.1引脚为串行口,当被占用时,W-CLK和FQ-UD引脚也可与其它I/O脚相连,这时需要修改相应的发送程序。<IMG 
      height=232 hspace=1 
      src="[部分原创]DDS芯片AD9850的工作原理及其与单片机的接口_伊凡的天空--天堂物语.files/18f.gif" width=253 
      align=right vspace=1 border=0></FONT></P>
      <P style="TEXT-INDENT: 0px"><FONT color=#339966>3.2 总线方式并行接口</FONT></P>
      <P><FONT 
      color=#339966>总线方式并行接口占用的单片机资源较少,在这种方式下,AD9850仅作为一扩展芯片而占用RAM的一段地址,必须时也可以只占用一个地址。图7是总线方式并行接口的电路原理图。同样将DDS控制字从高至低存放于30H至34H中,发送控制字的程序清单如下:</FONT></P>
      <P><FONT color=#339966>MOV R0,#05H</FONT></P>
      <P><FONT color=#339966>MOV R1,#30H</FONT></P>
      <P><FONT color=#339966>MOV DPTR,#0700H</FONT></P>
      <P><FONT color=#339966>DD:MOV A,@R1</FONT></P>
      <P><FONT color=#339966>MOVX @DPTR,A</FONT></P>
      <P><FONT color=#339966>INC R1</FONT></P>
      <P><FONT color=#339966>DJNZ R0,DD</FONT></P>
      <P><FONT color=#339966>MOVX A,@DPTR<IMG height=208 hspace=1 
      src="[部分原创]DDS芯片AD9850的工作原理及其与单片机的接口_伊凡的天空--天堂物语.files/18g.gif" width=348 
      align=right vspace=1 border=0></FONT></P>
      <P><FONT color=#339966>END</FONT></P>
      <P><FONT color=#339966>AD9850的W-CLK和FQ-UD信号都是上升沿有效,用MOVX 
      @DPTR,A指令向AD9850传送控制字时,由74F138将高八位地址的低三位译码,其输出经反相并与反相后的信号相与得到一上升沿送至AD9850的W-CLK脚,此时已送到总线上的数据将被AD9850接收,连续五次将40位的控制字全部发送以后,用MOVA 
      A,@DPTR指令产生FQ-UD信号,使AD9850更改输出频率和相位,此时读入到单片机内的数据实际上无任何意义。图7中AD9850的地址为0700H。</FONT></P>
      <P><FONT 
      color=#339966>上述两种接口方式经实际应用证明:工作可靠,效果良好。单片机与AD9850的串行接口可参照有关资料进行设计。上述接口电路和程序也适用于与AD9850脚对脚兼容的AD9851,值得注意的是:AD9851的控制字与AD9850控制辽中别位的定义稍有区别,编程时应予以注意。</FONT></P>
      <P><FONT color=#ff0000 size=5>原创:</FONT></P>
      <P><FONT color=#ff0000>下面是我自己用C语言编写的 DDS程序,100K---500K,步进、步减为100K 
      ,采用并行接口方式。注意引脚定义与上文不一样。</FONT></P>
      <P><FONT color=#ff0000>#include "at89x51.h"<BR>#include 
      "intrins.h"<BR>#define uchar unsigned char <BR>#define uint unsigned int 
      <BR>#define data P1&nbsp;&nbsp; //the data interface between 51 and 
      DDS(ad9850)<BR>sbit W_CLK= P2^1;<BR>sbit PQ_UD= P2^2;<BR>uchar code 
      word[5][5]={{0x00,0x00,0x6d,0x3a,0x07}, {0x00,0x00,0xda,0x74,0x0e}, 
      </FONT></P>
      <P><FONT 
      color=#ff0000>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      {0x00,0x01,0x47,0xae,0x14},{0x00,0x01,0xb4,0xe8,0x18},{0x00,0x02,0x22,0x22,0x22}};<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      //setp from 100k to 500k by 100k/step;<BR>/******dealy 
      function*********/<BR>delay_1ms(uint t)<BR>{<BR>&nbsp;&nbsp; uint 
      i,j;<BR>&nbsp;&nbsp; for(i=0;i&lt;t;i++)<BR>&nbsp;&nbsp;&nbsp;&nbsp; 
      for(j=0;j&lt;120;j++);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>}<BR>/*********main***********/<BR>void 
      main()<BR>{<BR>&nbsp;&nbsp; uint i,ch;<BR>&nbsp;&nbsp; 
      delay_1ms(100);<BR>&nbsp;&nbsp; W_CLK=0;PQ_UD=0;<BR>&nbsp;&nbsp; 
      while(1)<BR>&nbsp;&nbsp; {<BR>&nbsp;&nbsp; if(P2_3==0)&nbsp;&nbsp; //step 
      up<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      {ch++;delay_1ms(500);}<BR>&nbsp;&nbsp; else 
      if(P2_4==0){ch--;delay_1ms(500);}&nbsp;&nbsp;&nbsp; //step 
      down<BR>&nbsp;&nbsp; for(i=0;i&lt;5;i++)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      //40bit control words<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      {<BR>&nbsp;&nbsp;&nbsp; data=word[ch][i];<BR>&nbsp;&nbsp;&nbsp; 
      W_CLK=1;_nop_();<BR>&nbsp;&nbsp;&nbsp; 
      W_CLK=0;_nop_();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
      }<BR>PQ_UD=1;_nop_();//&nbsp;&nbsp; update fre 
      word<BR>PQ_UD=0;_nop_();<BR>}<BR>}</FONT></P>
      <P><FONT color=#ff0000></FONT></P>
      <P><FONT color=#ff0000></FONT></P>
      <P></P>
      <P></P></DIV></DIV></TD></TR></TBODY></TABLE><BR>
<DIV class=opt><A title=查看该分类中所有文章 
href="http://hi.baidu.com/lhgbevin/blog/category/&micro;&yen;&AElig;&not;&raquo;ú&Oacute;&brvbar;&Oacute;&Atilde;">类别:单片机应用</A> | <A 
title=将此文章添加到百度搜藏 
onclick="window.open('http://cang.baidu.com/do/add?it='+encodeURIComponent('[部分原创]DDS芯片AD9850的工作原理及其与单片机的接口'+'_百度空间')+'&amp;iu='+encodeURIComponent(location.href)+'&amp;fr=sp#nw=1','_s','scrollbars=no,width=600,height=450,right=75,top=20,status=no,resizable=yes'); return false;" 
href="http://cang.baidu.com/do/add" target=_blank>添加到搜藏</A> | 浏览(<SPAN 
id=result></SPAN>) </DIV>
<DIV class=line>&nbsp;</DIV>
<DIV id=in_reader>
<DIV class=tit>最近读者:</DIV>
<TABLE width="100%">
  <TBODY>
  <TR>
    <TD align=middle width="10%"><IMG height=55 
      src="[部分原创]DDS芯片AD9850的工作原理及其与单片机的接口_伊凡的天空--天堂物语.files/portraitn.gif" 
      width=55 border=0><BR>&nbsp;</TD>
    <TD align=left width="100%">
      <SCRIPT>document.write("<a href='http://passport.baidu.com/?login&tpl=sp&tpl_reg=sp&u="+myref+"' target='_self'>登录</a>后,您就出现在这里。");</SCRIPT>
    </TD>
    <TD width="100%"></TD></TR></TBODY></TABLE></DIV>
<DIV class=line>&nbsp;</DIV>
<SCRIPT language=JavaScript>
allkey=allkey+"9059037b8fc472f40bd187fd_4530cace164b960193457ee1_";
</SCRIPT>

<DIV id=in_comment><A name=comment></A>
<DIV class=tit>网友评论:</DIV>
<SCRIPT>
function writecmt(type,id,cmtname,cmturl,cmttime){
	var html1="";
	if(type==1){
		if(cmturl==""){
			html1="<a name='"+id+"'>"+cmtname+"</a> - <span class='date'>"+cmttime+"</span> ";
		}else{
			html1="<a name='"+id+"' href='"+cmturl+"' target='_blank' title='"+cmturl+"'>"+cmtname+"</a> - <span class='date'>"+cmttime+"</span> ";
		}
	}else{
		if(cmtname=="匿名网友"){
			if(cmturl==""){
				html1="<a name='"+id+"'>"+cmtname+"</a> - <span class='date'>"+cmttime+"</span> ";
			}else{
				html1="<a name='"+id+"' href='"+cmturl+"' target='_blank' title='"+cmturl+"'>"+cmtname+"</a> - <span class='date'>"+cmttime+"</span>";
			}
		}else{
			if(cmturl==""){
				html1="<div class='f14' style='display:inline'>网友:<a name='"+id+"'>"+cmtname+"</a> - <span class=\"date\">"+cmttime+"</span></div>";
			}else{
				html1="<div class='f14' style='display:inline'>网友:<a name='"+id+"' href='"+cmturl+"' target='_blank' title='"+cmturl+"'>"+cmtname+"</a> - <span class=\"date\">"+cmttime+"</span></div>";
			}
		}
	}
	document.write(html1);
}

</SCRIPT>

<DIV class=user><STRONG>1</STRONG>
<SCRIPT>
writecmt(1,"ff474e10127d59fec2ce795a","xiaomage_2000","http://hi.baidu.com/xiaomage","2007-07-17  18:40");
</SCRIPT>
 </DIV>
<DIV class=desc>不错,学习~</DIV>
<DIV class=line>&nbsp;</DIV>
<DIV class=user><STRONG>2</STRONG>
<SCRIPT language=javascript>
writecmt(2,"34dec1fc548164fffd037f7a","小留","","2007-07-24  21:13");

</SCRIPT>
 </DIV>
<DIV class=desc>顶,正发愁呢</DIV>
<DIV class=line>&nbsp;</DIV>
<DIV id=page></DIV></DIV>
<DIV id=in_send>
<FORM id=popFormSubmit name=form1 onsubmit="return checkcmtform()" 
action=/lhgbevin/commit method=post><INPUT type=hidden value=8 name=ct> <INPUT 
type=hidden value=1 name=cm> <INPUT type=hidden value=4530cace164b960193457ee1 
name=spBlogID>
<SCRIPT language=JavaScript>
	document.write("<input type='hidden' name='spRefURL' value='"+window.location.href+"'>");
</SCRIPT>
 
<DIV class=tit>发表评论:</DIV>
<TABLE cellSpacing=5 cellPadding=0 width=620 border=0>
  <TBODY>
  <TR>
    <TD class=f14>姓 名:</TD>
    <TD><INPUT id=spBlogCmtor style="WIDTH: 220px" onfocus=hidErr(1); 
      tabIndex=1 maxLength=49 onchange="checkname('spBlogCmtor')" 
      name=spBlogCmtor>
      <SCRIPT>
document.write(" &nbsp;&nbsp; <a href='http://passport.baidu.com/?reg&tpl=sp&return_method=get&skip_ok=1&u=http://hi.baidu.com/sys/reg/' target='_blank'>注册</a>");
document.write(" | <a href='http://passport.baidu.com/?login&tpl=sp&tpl_reg=sp&u="+myref+"'>登录</a>");

</SCRIPT>
       
      <DIV id=nmerror style="DISPLAY: none">*姓名最长为50字节</DIV></TD></TR>
  <TR id=1_err style="DISPLAY: none">
    <TD>&nbsp;</TD>
    <TD>
      <DIV class=error id=1_err_con></DIV></TD></TR>
  <TR>
    <TD class=f14>网址或邮箱:</TD>
    <TD><INPUT id=spBlogCmtURL style="WIDTH: 360px" onfocus=hidErr(2); 
      tabIndex=2 maxLength=128 onchange="checkeandu('spBlogCmtURL')" 
      name=spBlogCmtURL> (选填)</TD>
    <SCRIPT>
G("spBlogCmtor").value="";
G("spBlogCmtURL").value="";
</SCRIPT>
  </TR>
  <TR id=2_err style="DISPLAY: none">
    <TD>&nbsp;</TD>
    <TD>
      <DIV class=error id=2_err_con></DIV></TD></TR>
  <TR>
    <TD class=f14 vAlign=top>内 容:</TD>
    <TD><TEXTAREA id=spBlogCmtText style="WIDTH: 520px; HEIGHT: 155px" onfocus=hidErr(3); tabIndex=3 name=spBlogCmtText></TEXTAREA>
      <SCRIPT>
G("spBlogCmtor").value=G("spBlogCmtor").defaultValue;
G("spBlogCmtText").value="";
</SCRIPT>
       </TD></TR>
  <TR id=3_err style="DISPLAY: none">
    <TD>&nbsp;</TD>
    <TD>
      <DIV class=error id=3_err_con></DIV></TD></TR>
  <TR id=vercode>
    <TD class=f14 vAlign=top>验证码:</TD>
    <TD vAlign=top><INPUT type=hidden 
      value=6110FC63B7E18E7FFFF52EF3FF8F8116032648DD97905CCB0044DE5991D8A5E436D9599D92903CB22353AFFEECBB3C4613AD5F8AEA61D91CBE5A3B7C2995A5A8 
      name=spVcode> <INPUT id=spVerifyKey tabIndex=4 maxLength=4 size=6 
      name=spVerifyKey autocomplete="off">请输入下图中的四位验证码,字母不区分大小写。<BR>
      <SCRIPT language=JavaScript>

			var imgsrc="http://post.baidu.com/cgi-bin/genimg?6110FC63B7E18E7FFFF52EF3FF8F8116032648DD97905CCB0044DE5991D8A5E436D9599D92903CB22353AFFEECBB3C4613AD5F8AEA61D91CBE5A3B7C2995A5A8";
			document.write("<img id='verifypic' src='"+imgsrc+"' width='120' height='40'>");

			function newverifypic(){
				document.getElementById("verifypic").src = imgsrc +"&t="+ Math.random();
			}
		</SCRIPT>
      <A title=看不清左边的字符 href="javascript:newverifypic();">看不清?</A> </TD></TR>
  <TR>
    <TD class=f14 vAlign=top>&nbsp;</TD>
    <TD class=f14 vAlign=top><INPUT id=btn_ok tabIndex=5 type=submit value=发表评论 name=btn_ok></TD></TR></TBODY></TABLE></FORM></DIV><BR></DIV>
<TABLE height=8 cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR>
    <TD class=modbl width=7>&nbsp;</TD>
    <TD class=modbc>&nbsp;</TD>
    <TD class=modbr width=7>&nbsp;</TD></TR></TBODY></TABLE></DIV></DIV></DIV></DIV>
<SCRIPT language=javascript>
<!--
var hstr="/lhgbevin/brwstat?key1=1";
document.write("<script src='"+hstr+"&key2="+allkey+"'><\/script>");
//-->
</SCRIPT>
<BR>
<CENTER>
<DIV id=ft>&copy;2007 Baidu</DIV></CENTER>
<SCRIPT>
if(document.getElementById("m_blog"))
{
	var imgarray = document.getElementById("m_blog").getElementsByTagName('img');
	var imgw = document.getElementById("m_blog").offsetWidth;
	imgw =imgw-40;
	for(var i=0; i<imgarray.length; i++){
	if(imgarray[i].className=="blogimg" && imgarray[i].width>=imgw) imgarray[i].width=imgw;
	}
}
</SCRIPT>
</CENTER><IMG style="DISPLAY: none" src=""> </BODY></HTML>

⌨️ 快捷键说明

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