有没有朋友愿意贡献出MT8880的底层程序来?

[复制链接]
3347|5
 楼主| summerlee 发表于 2007-3-16 11:01 | 显示全部楼层 |阅读模式
偶有个项目在搞8880,真希望各位能帮忙提供一下8880的底层程序。。。偶实在是看那个资料看得不知道怎么弄,网上看51汇编的多,偶想着要C51的,各位帮帮忙吧。。。<br />先拜谢了昂。。<br />偶的邮箱&nbsp;groundlee@163.com
dadodo 发表于 2007-3-16 16:47 | 显示全部楼层

MT8880用C

对着资料几个小时就能搞定了
xchips 发表于 2007-3-17 00:16 | 显示全部楼层

94年的时候搞过,那玩意儿很简单得呀

  
xchips 发表于 2007-3-17 00:19 | 显示全部楼层

最初稀里糊涂得还烧了两片 把老师可心疼坏了

  
jhycl 发表于 2007-3-23 08:15 | 显示全部楼层

以前发过

uchar&nbsp;code&nbsp;dtmf[16]={0x0a,1,2,3,4,5,6,7,8,9,0x0d,0x0e,0x0f,0x00,0x0b,0x0c};<br />uchar&nbsp;code&nbsp;rdtmf[16]={0x0d,1,2,3,4,5,6,7,8,9,0,0x0e,0x0f,0x0a,0x0b,0x0c};<br /><br />sbit&nbsp;wr=P1^0;//mt8880读写控制<br />sbit&nbsp;cs8880=P1^1;//mt8880片选<br />sbit&nbsp;rs=P1^2;//mt8880寄存器控制<br />sbit&nbsp;o2=P1^3;//mt8880读写数据锁存<br /><br /><br />&nbsp;&nbsp;&nbsp;&nbsp;W8880(1,0x0c);//初始化<br />&nbsp;&nbsp;&nbsp;&nbsp;W8880(1,0x01);//初始化<br /><br /><br />char&nbsp;Rd8880(uchar&nbsp;data&nbsp;mode)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*读状态mode=1/数据mode=0*/<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;data&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;wdi=~wdi;<br />&nbsp;&nbsp;&nbsp;&nbsp;cs8880=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;rs=(bit)mode;<br />&nbsp;&nbsp;&nbsp;&nbsp;wr=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;o2=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;P0=0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;i=P0;<br />&nbsp;&nbsp;&nbsp;&nbsp;o2=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;cs8880=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;o2=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;i=i&0x0f;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(mode)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;rdtmf;<br />}<br /><br />void&nbsp;Wr8880(uchar&nbsp;data&nbsp;mode,uchar&nbsp;data&nbsp;t)&nbsp;&nbsp;&nbsp;/*写入设置mode=1/数据mode=0*/<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;wdi=~wdi;<br />&nbsp;&nbsp;&nbsp;&nbsp;cs8880=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;rs=(bit)mode;<br />&nbsp;&nbsp;&nbsp;&nbsp;wr=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;o2=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;if(mode)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P0=t;<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;P0=dtmf[t];<br />&nbsp;&nbsp;&nbsp;&nbsp;o2=0;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;wr=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;cs8880=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;o2=1;<br />}<br /><br />void&nbsp;Dtmf_Txd(uchar&nbsp;dtmf)/*发送1个dtmf码*/<br />{&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;data&nbsp;kk;<br />&nbsp;&nbsp;&nbsp;&nbsp;wdi=~wdi;<br />&nbsp;&nbsp;&nbsp;&nbsp;kk=dtmf;<br />&nbsp;&nbsp;&nbsp;&nbsp;Wr8880(0,kk);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*是数字,发送*/<br />&nbsp;&nbsp;&nbsp;&nbsp;Wr8880(1,0x05);<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_Msec(100);/*发送结束符*/<br />&nbsp;&nbsp;&nbsp;&nbsp;Wr8880(1,0x04);<br />&nbsp;&nbsp;&nbsp;&nbsp;Delay_Msec(100);/*发送结束符*/<br />}<br /><br />uchar&nbsp;Dtmf_Rxd()&nbsp;&nbsp;&nbsp;&nbsp;/*接收1个dtmf码*/<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;uchar&nbsp;data&nbsp;i;<br />&nbsp;&nbsp;&nbsp;&nbsp;P0=0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;TL1=0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;TH1=0x4c;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;sec_1=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;sec=0;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;TR1=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i=0xff;<br />&nbsp;&nbsp;&nbsp;&nbsp;do<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!int8880)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i=Rd8880(1);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i=Rd8880(0);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wdi=~wdi;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;while(sec&lt5);//Wait&nbsp;5s<br />&nbsp;&nbsp;&nbsp;&nbsp;if(i==0xff)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(i);<br />&nbsp;&nbsp;&nbsp;&nbsp;else<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return(i);/*返回数据*/<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}&nbsp;<br />
 楼主| summerlee 发表于 2007-3-23 13:30 | 显示全部楼层

谢谢楼上的,

谢谢,谢谢,我这几天调出发送来了,现在正在调call模式,怎么感觉只要CRA寄存器里面只要设置成0XFF,IRQ端在电话线没有任何反应的时候自己就有议大堆的波形呢?请指导啊。。<br />
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

150

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部