Dreaml2012 发表于 2013-4-15 12:08:16

Atmega64与STC12C5A32S2比较?希望马潮老师解答下,谢谢!

这两款单片机的哪款强,因为他们基本都是单周期指令,所以是不是就看外部晶振的大小了。

llssr 发表于 2013-4-15 13:04:26

你看其他参数呀!光看那么一条不能说明问题,再说了老师哪有那么多时间上网回答问题的

Dreaml2012 发表于 2013-4-15 17:36:58

llssr 发表于 2013-4-15 13:04 static/image/common/back.gif
你看其他参数呀!光看那么一条不能说明问题,再说了老师哪有那么多时间上网回答问题的 ...

因为之前我用的是STC12C5A32S2做的主板驱动24点阵(晶振22.1184MHz),可以正常显示,现在换成Atmega64驱动24点阵(晶振11.0592MHz),显示很晃眼,就感觉驱动不了一样,而且长度稍微长点话越明显。

machao 发表于 2013-4-16 23:41:17

1、stc单片机不是单周期指令
2、点亮24点阵都没有问题,关键是你两款MCU都不会真正的使用

Dreaml2012 发表于 2013-4-16 23:53:24

machao 发表于 2013-4-16 23:41 static/image/common/back.gif
1、stc单片机不是单周期指令
2、点亮24点阵都没有问题,关键是你两款MCU都不会真正的使用 ...

最近才开始使用AVR单片机,我看数据手册STC12C5A32S2是IT的8051单片机,一个时钟/机器周期的单片机,还请老师指教。

machao 发表于 2013-4-17 00:08:39

本帖最后由 machao 于 2013-4-17 00:19 编辑

STC是兼容51内核架构的。51是时钟的12分频为一个指令周期,但很多指令的执行需要2-4个指令周期。STC改进了,1T表示一个时钟周期为一个指令周期,但许多指令的执行还是需要2-4个指令周期,这个在数据手册中有:


AVR是·RISC架构的,大部分指令只要一个时钟周期就能完成,但也有一些指令需要2个时钟周期才能完成。AVR是最接近1MIS的MCU,其他的都比较含糊其辞。


Dreaml2012 发表于 2013-4-17 00:26:40

machao 发表于 2013-4-17 00:08 static/image/common/back.gif
STC是兼容51内核架构的。51是时钟的12分频为一个指令周期,但很多指令的执行需要2-4个指令周期。STC改进了 ...

谢谢老师!这两款MCU是都可以点亮24点阵,但是用Atmega64看起来效果确实不如STC12C5吖2S2,不知道是不是我代码写的效率不高。void shift_data_595(uint8 R1_data)
{
        uint8 i;

    for(i=0; i<8; i++)
    {       
                if((R1_data<<i)&0x80)
                {
                   PORTA |= (1<<PA7);
                }
                else
                {
                   PORTA &= ~(1<<PA7);
                }
                shift_clk_595();
        }
}

void row_138(uint8 word)
{       
        uint8 i,j,k;

        for(i=0;i<8;i++)
        {
                for(j=0;j<word;j++)
                   {
                        for(k=3;k>0;k--)
                        {
                               
                                       if((j%2)==0)
                                        {
                                              shift_data_595(led_display_data);
                                        }
                                        else
                                        {
                                              shift_data_595(led_display_data);
                                        }
                               
                          }
                }
                storage_clk_595();
               
                if(i&1) PORTA |= (1<<PA0);
                else    PORTA &= ~(1<<PA0);
               
                if(i&2) PORTA |= (1<<PA1);
                else    PORTA &= ~(1<<PA1);
               
                if(i&4) PORTA |= (1<<PA2);
                else    PORTA &= ~(1<<PA2);

                PORTA &= ~(1<<PA4);
                delay_us(400);
                PORTA |= (1<<PA4);
    }
}

machao 发表于 2013-4-17 00:34:55

建议你看我的教程。M64的总体性能不会比STC差。粗看你的代码就知道,你还需要真正学习好的设计方法。使用软件DELAY效率极差。学校学的那些东西,在实际应用中都是浮云。

Dreaml2012 发表于 2013-4-17 00:47:16

machao 发表于 2013-4-17 00:34 static/image/common/back.gif
建议你看我的教程。M64的总体性能不会比STC差。粗看你的代码就知道,你还需要真正学习好的设计方法。使用软 ...

我已经买了老师的那本《AVR单片机嵌入式系统与应用实践(第二版)》,不过现在还没怎么看,我得好好看看了,谢谢老师!

guew 发表于 2013-4-17 02:58:30

本帖最后由 guew 于 2013-4-17 02:59 编辑

汽车爱好者里流传着一个说法:只有肉人,没有肉车。
这个说法在咱们这一行也说的通,不要停留于器物层面,关键还是要形而上。
页: [1]
查看完整版本: Atmega64与STC12C5A32S2比较?希望马潮老师解答下,谢谢!