📄 x5045.c源程序.htm
字号:
<TBODY>
<TR>
<TD vAlign=top width="22%" bgColor=#ffffff><SPAN
class=style7>型号:WS803/WS808<BR></SPAN><A
href="http://www.qlmcu.com/wz_tw/ReadNews.asp?NewsID=1208"><IMG
height=91 src="X5045.c源程序.files/ws803x.jpg"
width=126 border=0></A></TD>
<TD width="39%" bgColor=#ffffff><SPAN
class=style1><SPAN
class=style14><STRONG>普及型</STRONG></SPAN><STRONG><SPAN
class=style13>WS803:</SPAN></STRONG></SPAN><U><U><SPAN
class=style1>¥138元/套</SPAN></U></U><A
href="http://www.qlmcu.com/wz_tw/ReadNews.asp?NewsID=388"><U><BR>▲51学习实验板,编程器,下载线三合一<SPAN
class=style1><BR></SPAN>▲源程序源代码,学习资料,网上老师<BR>▲性能卓越,价格低廉,物超所值</U></A><U>
<SPAN class=style1><BR></SPAN></U><SPAN
class=style12><SPAN
class=style13><STRONG>加强型WS808:</STRONG></SPAN></SPAN><U><SPAN
class=style1>¥185元/套</SPAN><BR></U><SPAN
class=style8><A
href="http://www.qlmcu.com/wz_tw/ReadNews.asp?NewsID=1185"><U>实现与任何51编译器或仿真无缝连接<BR>编译成功直接进入调试无须手工切换界面</U></A><BR><SPAN
class=style1><STRONG>学习 <SPAN
class=style15>+</SPAN> 开发 <SPAN
class=style4>+</SPAN>
生产</STRONG></SPAN><BR></SPAN>
<HR noShade>
<FONT color=#cc6600> </FONT> </TD>
<TD vAlign=top width="21%"
bgColor=#ffffff><STRONG><SPAN
class=style7>型号:</SPAN>WS810</STRONG><BR><A
href="http://www.qlmcu.com/wz_tw/ReadNews.asp?NewsID=1207"><IMG
src="X5045.c源程序.files/ws810x.jpg" border=0></A>
<BR>
<P></P></TD>
<TD vAlign=top width="18%"
bgColor=#ffffff>▲批量编程烧写<BR>▲在线编程烧写<BR>▲在线下载调试<BR><A
class=style15
href="http://www.qlmcu.com/wz_tw/ReadNews.asp?NewsID=1192"><U>实现与任何51编译器或仿真无缝连接
使用说明</U> </A><U><SPAN
class=style1>¥225元<BR><BR></SPAN></U><SPAN
class=style1><STRONG>实验<SPAN
class=style15>+</SPAN>开发<SPAN
class=style4>+</SPAN>生产</STRONG></SPAN><U><SPAN
class=style1> <A
href="http://www.qlmcu.com/wz_tw/ReadNews.asp?NewsID=1185"><BR></A></SPAN></U></TD></TR></TBODY></TABLE><FONT
color=#993300 size=4><STRONG></STRONG></FONT></TD>
<TD width="18%"><SPAN
class=style14>可烧写器件有:</SPAN><BR>AT89C51
AT89C52<BR>AT89C55
AT89C1051<BR>AT89C2051
AT89C4051<BR>AT89S51
AT89S52<BR>AT89S53 <A
class=style6
href="http://www.qlmcu.com/wz_tw/ReadNews.asp?NewsID=389">
</A>AT89S8252<BR>AT89LS51
AT89LS52<BR>AT89LS53 AT89LS8252<A
class=style6
href="http://www.qlmcu.com/wz_tw/ReadNews.asp?NewsID=389"><U></U></A><A
class=style6
href="http://www.qlmcu.com/wz_tw/ReadNews.asp?NewsID=389"><U><BR></U></A>
<HR noShade>
<TABLE width="100%" border=0>
<TBODY>
<TR>
<TD>【<A class=12tp
href="javascript:window.close()"><FONT
color=#0000ff>关闭窗口</FONT></A>】【<A class=style4
href="javascript:location.reload()">刷新<FONT
color=#0033ff></FONT></A>】</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE width="100%" border=0>
<TBODY>
<TR>
<TD align=middle bgColor=#ffffff><FONT color=#993300
size=4><STRONG>X5045.c源程序</STRONG></FONT></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD align=middle colSpan=2>
<TABLE style="TABLE-LAYOUT: fixed" cellSpacing=0 cellPadding=0
align=center border=0>
<TBODY>
<TR>
<TD align=middle width="100%"></TD></TR>
<TR>
<TD class=newstitle id=fontzoom vAlign=top>
<TABLE cellPadding=3 align=left border=0>
<TBODY>
<TR>
<TD>
<SCRIPT language=javascript src=""></SCRIPT>
</TD></TR></TBODY></TABLE>//#include
<reg52.h><BR>//#include
<stdio.h><BR>//下面是我正在用的没有问题。<BR>sbit
SO=P2^2;<BR>sbit SI=P2^1;<BR>sbit SCK=P2^0;<BR>sbit
CS=P3^6;<BR><BR>//25045可编程看门狗监控EEPROM指令集<BR>#define WREN
0x06; 00000110 //设置写使能锁存器(允许写操作)<BR>#define WRDI 0x04;
00000100 //复位写使能锁存器(禁止写操作)<BR>#define RDSR 0x05;
00000101 //读状态寄存器<BR>#define WRSR 0x01; 00000001
//写状态寄存器(块锁定)<BR>#define READ 0x03; 00000011
//从开始于所选地址的存储器列阵中读出数据<BR>#define WRTE 0x02; 00000010
//把数据写入开始于所选地址的存储器阵列中(1至4字<BR>节)<BR><BR>void
in_byte(unsigned char BYT);<BR>unsigned char
out_byte(void);<BR>unsigned char rdsr_dog(void);<BR>void
wrsr_dog(unsigned char status_reg);<BR>unsigned char
wip_poll(void);<BR>void wrdi_dog(void);<BR>void
rest_dog(void);<BR>unsigned char byte_read(unsigned char
H,unsigned char L);<BR>void byte_write(unsigned char
H,unsigned char L,unsigned char D);<BR>//void
page_read(unsigned char H,unsigned char L,unsigned char
D);<BR>//void page_write(unsigned char H,unsigned char
L,unsigned char D);<BR><BR>unsigned char
rda[8];<BR>unsigned char cs_rda[8];
<BR>//看门狗写使能子程序<BR>void wren_dog(void)<BR>{<BR>//
unsigned char com;<BR>//
com=0x06;//WREN;<BR>SCK=0;<BR>CS=0;<BR>in_byte(0x06);<BR>SCK=0;<BR>CS=1;<BR>}<BR><BR>//看门狗写禁止子程序<BR>void
wrdi_dog(void)<BR>{<BR>//unsigned char
com;<BR>//com=0x04;//WRDI;<BR>SCK=0;<BR>CS=0;<BR>in_byte(0x04);<BR>SCK=0;<BR>CS=1;<BR><BR>}<BR><BR><BR><BR>//写状态寄存器<BR>void
wrsr_dog(unsigned char status_reg)<BR>{<BR>// unsigned
char
com=0x01;//WRSR;<BR>SCK=0;<BR>CS=0;<BR>in_byte(0x01);<BR>in_byte(status_reg);<BR>SCK=0;<BR>CS=1;<BR>wip_poll();<BR>}<BR><BR><BR>//读状态寄存器<BR>unsigned
char rdsr_dog(void)<BR>{<BR>// unsigned char
com=0x05;//RDSR;<BR>SCK=0;<BR>CS=0;<BR>in_byte(0x05);<BR>return(out_byte());<BR>SCK=0;<BR>CS=1;<BR>}<BR><BR>//字节读<BR>unsigned
char byte_read(unsigned char H,unsigned char
L)<BR>{<BR>unsigned char
data_dog,add;<BR>SCK=0;<BR>CS=0;<BR>SO=1;<BR>SI=1;<BR>add=H<<3;<BR>add|=0x03;//READ;<BR>in_byte(add);<BR>add=L;<BR>in_byte(add);<BR>data_dog=out_byte();<BR>SCK=0;<BR>CS=1;<BR>return(data_dog);<BR>}<BR>//字节写<BR>//H,地址高字节;L地址低字节;D写入的数据<BR>void
byte_write(unsigned char H,unsigned char L,unsigned char
D)<BR>{<BR>unsigned char
data_dog,add;<BR>SCK=0;<BR>CS=0;<BR>SO=1;<BR>SI=1;<BR>add=H<<3;<BR>add|=0x02;//WRTE;<BR>in_byte(add);<BR>add=L;<BR>in_byte(add);<BR>data_dog=D;<BR>in_byte(data_dog);<BR>CS=1;<BR>wip_poll();<BR>}<BR>//复位看门狗子程序<BR>void
rest_dog(void)<BR>{<BR>CS=0;<BR>CS=1;<BR>}<BR><BR><BR>//检验写操作是否结束。<BR>unsigned
char wip_poll(void)<BR>{<BR>unsigned char i;<BR>unsigned
char wip;<BR>for(i=0xff;i>=1;i--)
<BR>{<BR>wip=rdsr_dog();<BR>wip&=0x01;<BR>if(wip==0)
break;<BR>}<BR>return(wip);<BR><BR>}<BR><BR>//单字节指令或数据写入X25045<BR>//在SI线上输入的数据在SCK的上升沿被锁存。<BR>void
in_byte(unsigned char byt)<BR>{<BR>unsigned char
i;<BR>//SCK=0;<BR>//CS=0;<BR>for(i=8;i>=1;i--)<BR>{<BR>SCK=0;
<BR>SI=byt&0x80; <BR>SCK=1; <BR>byt=byt<<1;
<BR>}<BR>// SI=0;<BR>// SCK=0;<BR>//
CS=1;<BR>}<BR><BR>//单字节数据从X25045读到单片机<BR>//数据由SCK的下降沿输出到SO线上。<BR>unsigned
char out_byte(void)<BR>{<BR>unsigned char i;<BR>unsigned
char
byt;<BR>//SO=1;<BR>//SCK=0;<BR>//CS=0;<BR>for(i=8;i>=1;i--)<BR>{<BR>byt=byt<<1;<BR>SCK=1;<BR>SCK=0;
<BR>byt|=SO; <BR><BR>}<BR>//SCK=0;<BR>//CS=1;<BR>return
(byt);<BR>}<BR><BR><BR><BR>
<DIV
align=right></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></CENTER></DIV><FONT
color=#000000> </FONT>
<DIV align=center>
<CENTER>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD align=middle width="100%">加入时间:2005年2月3日
共有<STRONG>270</STRONG>位读者阅读过此文
【<A class=12tp
href="javascript:window.close()"><FONT
color=#0000ff>关闭窗口</FONT></A>】 【<A
href="javascript:location.reload()">刷新</A>】</TD></TR></TBODY></TABLE></CENTER></DIV></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0>
<DIV align=center></DIV>
<TBODY></TBODY></TABLE>
<TABLE cellSpacing=0 cellPadding=0 width=760 align=center border=0>
<TBODY>
<TR>
<TD borderColor=#ffffff align=middle width=760 bgColor=#f4f3f2>
</TD></TR></TBODY></TABLE>
<DIV></DIV>
<DIV align=center>
<TABLE cellSpacing=0 cellPadding=0 width=760 border=0>
<TBODY>
<TR>
<TD colSpan=3><IMG height=31 alt=""
src="X5045.c源程序.files/news2003-2d_07.gif"
width=760></TD></TR></TBODY></TABLE></DIV><TD>
<DIV align=center>
<CENTER></CENTER></DIV><BR></TABLE>
<SCRIPT src="X5045.c源程序.files/counter.htm"></SCRIPT>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -