zhengwending111 发表于 2012-11-17 13:25:58

Numicro51驱动sht11

最近在学习,新唐的M051。初学就与困难。把51上面的sht11的驱动移植到M051上,,结果跑不起来。。测量不到数据。。。我IO设置的是准双向的。主频是12M的。。。不知道是我IO口模式设置错了,,还是怎么回事。。。就是读不出来、。。。

sting_yang 发表于 2012-11-17 16:42:59

51跟051的时钟不一样,所以要调一下

zhengwending111 发表于 2012-11-18 09:07:12

我也增加了延时,,还是不行。。。。不知道IO的反转速度,,我看了一篇关于M051的说“反转速度7个机器周期”。。。我把主频12分频,之后用51的驱动,还是不行。。。实在是不解呀~!现在也是盲目了。。。心里总有阴影~!想着这个事,,出门都不痛快~!

zhengwending111 发表于 2012-11-18 09:21:20

我使用定时器产生1us的延时,还测试了IO模式,应该都木问题的。。结果却,。。。。。。。

zhengwending111 发表于 2012-11-18 12:11:18

sting_yang 发表于 2012-11-17 16:42 static/image/common/back.gif
51跟051的时钟不一样,所以要调一下

您好~!我上午又测试了一下,,,我要读温度,发送0x03之后,,,数据线一直为低,第九个时钟之后数据线还是不会释放~!

sting_yang 发表于 2012-11-19 00:59:02

zhengwending111 发表于 2012-11-18 12:11 static/image/common/back.gif
您好~!我上午又测试了一下,,,我要读温度,发送0x03之后,,,数据线一直为低,第九个时钟之后数据线 ...

方便给程序,看看问题在哪里?

zhengwending111 发表于 2012-11-19 12:53:10

没问题。~!

zhengwending111 发表于 2012-11-19 12:57:16

sting_yang 发表于 2012-11-19 00:59 static/image/common/back.gif
方便给程序,看看问题在哪里?

我用示波器测量时钟,时钟刚开始是方波,,,之后高低电平越来越尖~!

zhengwending111 发表于 2012-11-19 19:13:43

sting_yang 发表于 2012-11-19 00:59 static/image/common/back.gif
方便给程序,看看问题在哪里?

您收到了吗?

zhengwending111 发表于 2012-11-19 21:08:18

怎么就一位大侠肯帮忙呢~!{:cry:}{:cry:}{:cry:}{:cry:}{:cry:}{:cry:}{:cry:}{:cry:}

sting_yang 发表于 2012-11-20 11:20:27

zhengwending111 发表于 2012-11-19 19:13 static/image/common/back.gif
您收到了吗?

m051的输入跟输出寄存器是不一样的,你在读sht11却还是用DOUT,读要用PIN,这边改掉试试

zhengwending111 发表于 2012-11-20 11:38:28

sting_yang 发表于 2012-11-20 11:20 static/image/common/back.gif
m051的输入跟输出寄存器是不一样的,你在读sht11却还是用DOUT,读要用PIN,这边改掉试试 ...

你看看我的这个程序。。感觉还是不行。。我修改过。。设置为out,跟input来的。。我想加您的qq。。我的是277086579

zhengwending111 发表于 2012-11-20 11:51:34

sting_yang 发表于 2012-11-20 11:20 static/image/common/back.gif
m051的输入跟输出寄存器是不一样的,你在读sht11却还是用DOUT,读要用PIN,这边改掉试试 ...

((unsigned char) (P3_PIN&0x10))>>4,我这样操作,结果现象一样~!没什么大的改观~!

sting_yang 发表于 2012-11-20 12:27:45

zhengwending111 发表于 2012-11-20 11:51 static/image/common/back.gif
((unsigned char) (P3_PIN&0x10))>>4,我这样操作,结果现象一样~!没什么大的改观~! ...

1.时钟设定,好像错了,请参考新塘的范例
2.IO复位后就是准双向 请将IO设定去掉
3.((unsigned char) (P3_PIN&0x10))>>4 只用在读SHT11资料 写还是用Sht11_Data

zhengwending111 发表于 2012-11-20 12:33:01

sting_yang 发表于 2012-11-20 12:27 static/image/common/back.gif
1.时钟设定,好像错了,请参考新塘的范例
2.IO复位后就是准双向 请将IO设定去掉
3.((unsigned char) (P3_ ...

我只修改了,读操作是“err=((unsigned char) (P3_PIN&0x10))>>4”,,令时钟就是我按新唐范例来的。

sting_yang 发表于 2012-11-20 12:45:55

zhengwending111 发表于 2012-11-20 12:33 static/image/common/back.gif
我只修改了,读操作是“err=((unsigned char) (P3_PIN&0x10))>>4”,,令时钟就是我按新唐范例来的。 ...

main(void)
{
    Un_Lock_Reg();
        PWRCON |= XTL12M_EN;
        while((CLKSTATUS & XTL12M_STB) == 0);                 //Wait until 12M clock is stable.       
       
        CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M;        //Set external crystal as the system clock
    .
    .
    .
    .
    .
这段是从新塘范例截取下来的 跟你的不一样

zhengwending111 发表于 2012-11-20 13:06:31

sting_yang 发表于 2012-11-20 12:45 static/image/common/back.gif
main(void)
{
    Un_Lock_Reg();


哦。。这个没关系的。。。意思都是一样的。。。我刚才把他按例程修改了,,读出的数据还是不变~!现象一样~!

sting_yang 发表于 2012-11-20 13:22:38

zhengwending111 发表于 2012-11-20 12:33 static/image/common/back.gif
我只修改了,读操作是“err=((unsigned char) (P3_PIN&0x10))>>4”,,令时钟就是我按新唐范例来的。 ...

应答也是读操作。有改吗?

zhengwending111 发表于 2012-11-20 14:00:55

sting_yang 发表于 2012-11-20 13:22 static/image/common/back.gif
应答也是读操作。有改吗?

有。。。读操作我修改了。。。写操作我还是用的DOUT

zhengwending111 发表于 2012-11-23 16:46:09

经过技术支持,目前是解决了 ,,好像是算法有问题。。。算法就是常见的51上面的程序移植的~!
页: [1]
查看完整版本: Numicro51驱动sht11