打印

侃侃单片机

[复制链接]
2265|17
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
不是太会|  楼主 | 2007-5-23 23:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     PIC单片机,MCS51单片机,AVR

工程师们,你们单片机开发的首选是什么?
怎样选一款合适的单片机?

AVR  执行指令速度快,工作电压范围宽,32个通用寄存器。
PIC的也比MC51的快


为什么还有那么多人用MCS51?
难道说价格,8块钱一块也不便宜了

我是新手,不是太懂,大家来说说。。。。。。

相关帖子

沙发
conwh| | 2007-5-24 01:57 | 只看该作者

你呀就知道基本的51,你还知道有扩充的51吗?你还知道有5-6

的吗?

使用特权

评论回复
板凳
不是太会|  楼主 | 2007-5-24 14:03 | 只看该作者

还有哪些啊,

是啊,我就只晓得89C51  89S51   89C2051
 
51的还有哪些啊,可不可以告诉我

让我学习下。

使用特权

评论回复
地板
孤独泪| | 2007-5-24 16:19 | 只看该作者

看来atmel真厉害

台湾产的很多很便宜的,还有stc,号称是中国芯,具体情况我不知道。
有谁了解吗?

使用特权

评论回复
5
高勇| | 2007-5-24 17:06 | 只看该作者

51单片机

还有PHILIPS公司的51单片机:LPC的,如P89LPC76X。和P89LPC90XX系列的。这两个系列的速度都比常规的速度快些。

有的公司的51单片机主频可以很高。上40MHz。

有的公司的51单片机可以实现程序自杀。这给解密的人带来非常大的困难。

使用特权

评论回复
6
huangqi412| | 2007-5-24 21:28 | 只看该作者

学习了,

使用特权

评论回复
7
wsl_5631| | 2007-5-25 08:04 | 只看该作者

什么单片机可以实现程序自杀啊

麻烦5楼推荐一下

使用特权

评论回复
8
ATmega16| | 2007-5-25 09:38 | 只看该作者

增强型51太贵

增强型51太贵。

不如用AVR,PIC或者ARM,DSP。

使用特权

评论回复
9
gyt| | 2007-5-25 10:29 | 只看该作者

其实都差不多

现在这些主流单片机的功能和价钱其实都差不多,就看你习惯用哪一种了。没有什么优劣之分。

使用特权

评论回复
10
古道热肠| | 2007-5-25 10:55 | 只看该作者

工程师做开发,当然用自已最熟悉的

   各种单片机、各有各的优缺点,理论上是能根据产品特点选择最适合的单片机进行开发才能达到最佳的性价比,但种种因素限制,是很难做到的。

使用特权

评论回复
11
lixun00| | 2007-5-25 12:19 | 只看该作者

个人觉得51发展到现在,有庞大的软件资源,且

学单片机的基本都会这个

使用特权

评论回复
12
mingboal| | 2007-5-26 12:44 | 只看该作者

支持11楼

使用特权

评论回复
13
maychang| | 2007-5-26 13:37 | 只看该作者

51的历史长

第一种单片机是Intel的48系列,因为ROM容量太小,功能太弱,所以Intel很快就推出了51系列。其后不少年,虽然有Z8等产品,但都不是51的对手。
熟悉51的人太多了,所以各大公司往往不是推出新系列单片机,而是改进51单片机。Atmel开始时也是从Intel获得51内核,改进51单片机,89C51和89S51都是Atmel公司产品。后来Atmel才开始推出AVR。

使用特权

评论回复
14
古道热肠| | 2007-5-26 15:13 | 只看该作者

51的SOC功能强

    ST公司用51核整出个uPSD,真的很好用,各种模块都有,还能用PLD加密,也方便设计,最让人受用的是内部的256K Flash你想怎么用,就怎么用。

使用特权

评论回复
15
conwh| | 2007-5-26 15:27 | 只看该作者

不怪LZ,他是刚来的。

[v]
;********************************************************************
;*************************    八路计分电路  ************************
;*************************  发哥的单片机设计 ************************
;*************************  2007年5月22日  ************************
;********************************************************************

;30H~37H存放各组分数值
;各组分数值的中转操作,在显示和闪烁效果中用到
;52H存放中断次数
;28H数码管熄灭标志


    SEL1    EQU  20H
    SEL2    EQU  21H
    SEL3    EQU  22H
    SEL4    EQU  23H
    SEL5    EQU  24H
    SEL6    EQU  25H
    SEL7    EQU  26H 
    SEL8    EQU  27H            ;选定哪一组标志位  
    INITIAL  EQU  50H            ;初值存放寄存器
    QUENCH  EQU  51H            ;熄灭符 
    
    ORG      0000H
    AJMP      MAIN
    ORG      000BH
    AJMP    INTT0
    ORG      0060H

MAIN:    MOV SP,#70H
        MOV TMOD,#11H
        MOV TL0 ,#0BH
        MOV TH0,#3CH
        SETB EA
        SETB ET0                ;初始化定时器,开放中断
MOV  INITIAL,#14H      ;预置初值20分
MOV  QUENCH, #64H    ;熄灭符,闪烁程序中用到,与显示程序中的判断相对应
;熄灭符除10得10,在显示程序中有一个判断是不是为10
ADJUST:  MOV  R0,#30H
        MOV  R1,#8H
LOOP:    MOV  @R0,INITIAL
        INC R0
        DJNZ R1,LOOP            ;将各组置分
MOV  40H,30H
        MOV  41H,31H
MOV  42H,32H
MOV  43H,33H
MOV  44H,34H
MOV  45H,35H
MOV  46H,36H
MOV  47H,37H            ;转存到40~47号单元 

    
;*******************    查询程序    **********************

START:  JNB  P1.0,NUMBER1
        JNB  P1.1,NUMBER2
        JNB  P1.2,NUMBER3
        JNB  P1.3,NUMBER4
        JNB  P1.4,NUMBER5
        JNB  P1.5,NUMBER6
        JNB  P1.6,NUMBER7
        JNB  P1.7,TZ0    
JNB  P3.0,SEL0
JNB  P3.1,SEL0
ACALL DISPLAY
AJMP START

TZ0:    AJMP NUMBER8  

;*******************    初值调整程序    **********************

SEL0:    ACALL DEL1MS
        JNB  P3.0,ADD0
JNB  P3.1,SUBB0
AJMP  START                ;防干扰

ADD0:    ACALL DEL200MS            ;防止按一下加N个数
        MOV A,INITIAL
        CJNE A,#63H,ADD01  
        MOV  INITIAL,#00H          ;到了99从0开始
AJMP ADJUST
ADD01: INC A
MOV INITIAL,A
AJMP ADJUST        


SUBB0:  ACALL DEL200MS
        MOV A,INITIAL
        CJNE A,#00H,SUBB01
        MOV INITIAL,#63H
AJMP  ADJUST
SUBB01:  DEC A
MOV INITIAL,A
AJMP ADJUST



;*******************    选择组别程序    **********************

NUMBER1:  ACALL  DEL200MS
          JB  P1.0,START
  MOV R0,#30H
  SETB SEL1            ;标志位置位
  AJMP SELECT
        
NUMBER2:  ACALL  DEL200MS
          JB  P1.1,START
  MOV R0,#31H
  SETB SEL2            
  AJMP SELECT

NUMBER3:  ACALL  DEL200MS
          JB  P1.2,START
  MOV R0,#32H
  SETB SEL3          
  AJMP SELECT

NUMBER4:  ACALL  DEL200MS
          JB  P1.3,START
  MOV R0,#33H
  SETB SEL4            
  AJMP SELECT

NUMBER5:  ACALL  DEL200MS
          JB  P1.4,TZ1
  MOV R0,#34H
  SETB SEL5            
  AJMP SELECT

NUMBER6:  ACALL  DEL200MS
          JB  P1.5,TZ1
  MOV R0,#35H
  SETB SEL6            
  AJMP SELECT

NUMBER7:  ACALL  DEL200MS
          JB  P1.6,TZ1
  MOV R0,#36H
  SETB SEL7            
  AJMP SELECT

NUMBER8:  ACALL  DEL200MS
          JB  P1.7,TZ1
  MOV R0,#37H
  SETB SEL8            
  AJMP SELECT

TZ1:      AJMP  START
      


;*******************    加分减分程序    **********************

SELECT:  SETB  TR0
          JNB  P3.2,INCC
  JNB  P3.3,DECC
  JNB  P3.4,EXIT
  ACALL DISPLAY
  AJMP  SELECT

INCC:    ACALL  DEL1MS
          JB    P3.2,SELECT
  ACALL  DEL200MS
  MOV  A,@R0
  CJNE A,#63H,INCC0      ;到了99再加就变为0
          MOV  @R0,#00H
          AJMP SELECT
INCC0:   INC A
  MOV @R0,A
  AJMP SELECT

DECC:    ACALL DEL1MS
          JB    P3.3,SELECT
  ACALL  DEL200MS
  MOV  A,@R0
  JZ DECC0
  DEC  A
  MOV  @R0,A
  AJMP  SELECT
DECC0:   MOV  @R0,#63H
  AJMP  SELECT

;*******************    返回程序    **********************

EXIT:    JB 28H,$        ;当闪烁效果时用到返回时,若为熄灭状态则等待
          CLR SEL1
          CLR SEL2
  CLR SEL3
  CLR SEL4
  CLR SEL5
  CLR SEL6
  CLR SEL7
  CLR SEL8
  CLR TR0
  AJMP START


  
;*******************    闪烁程序    **********************

INTT0:  PUSH ACC
        PUSH PSW
        MOV  TL1,#0BH
        MOV  TH1,#3CH
INC  52H
MOV  A,52H
CJNE A,#04H,INTT0OUT        ;200MS往下执行一次
        MOV  40H,30H
        MOV  41H,31H
MOV  42H,32H
MOV  43H,33H
MOV  44H,34H
MOV  45H,35H
MOV  46H,36H
MOV  47H,37H                ;40H~47H单元内容更新
MOV  52H,#00H
JB  28H,FLASH              ;28H标志为0熄灭数码管
JNB  SEL1,AA2
MOV  40H,51H  

AA2:    JNB  SEL2,AA3
MOV  41H,51H 

AA3:    JNB  SEL3,AA4
MOV  42H,51H 

AA4:    JNB  SEL4,AA5
MOV  43H,51H 

AA5:    JNB  SEL5,AA6
MOV  44H,51H 

AA6:    JNB  SEL6,AA7
MOV  45H,51H 

AA7:    JNB  SEL7,AA8
MOV  46H,51H 

AA8:    JNB  SEL8,AA1
MOV  47H,51H 

AA1:    CPL  28H
        AJMP  INTT0OUT

FLASH:  CPL  28H
INTT0OUT: POP PSW
          POP ACC
        RETI



;*******************    显示程序    **********************

DISPLAY:  MOV  DPTR,#TAB
          MOV  R1,#40H
  MOV  R2,#0FFH
DISP1:    INC  R2
          MOV  A,@R1
          MOV  B,#0AH
  DIV  AB    

  CJNE A,#0AH,DISP11 
          MOV B,A            ;判断是不是熄灭符,是,则个位十位都灭

DISP11:    MOVC A,@A+DPTR
  MOV  P0,A
  MOV  P2,R2
  CLR  P2.7            ;译码器使能,当动态扫描到第二位时要让第一位熄灭,否则会出错
          ACALL DEL1MS
  SETB  P2.7
  INC  R2
  MOV  A,B
          MOVC A,@A+DPTR
  MOV  P0,A
  MOV  P2,R2
  CLR  P2.7
          ACALL DEL1MS
  SETB  P2.7
          INC  R1
  
  CJNE R2,#0FH,DISP1
  RET

TAB:      DB  03fH,06H,05bH,0CfH,066H,06dH,07dH,07H,7fH,6fH,00H
          ;灭,0,1,2,3,4,5,6,7,8,9,灭


;*******************    延时程序    ********************** 

DEL200MS:  MOV  R3,#19H
DELLOOP:    ACALL DISPLAY
            DJNZ  R3,DELLOOP
    RET


DEL1MS:    MOV  R4,#0F0H
            DJNZ R4,$
  RET


      END
[/v]
这是我在他的blog中抄录的一个程序,图片是作者
如果作者不同意转帖,我将删除它。希望你能够提出意见

使用特权

评论回复
16
hq_y| | 2007-5-26 16:04 | 只看该作者

DIP40封装的标准的51可以说是通用的单片机~~~~~~~~~`

一般学习的时候都是学习标准的51单片机,尤其是stc的串口isp单片机在学习的时候还是很方便的;内置的看门狗和eeprom也还是有一些竞争力的;

然后在51的基础上,有2个趋势:

1、象NXP那样,把51简化,集成看门狗、时钟、eeprom,增强I/O的驱动能力,去掉总线,往少管脚做,面向特定行业,也带有一定的通用型,例如LPC700系列和LPC900系列;同时也加快速度;

2、把51往大了做,增加usb、canbus、双串口、AD、spi、pwm、i2c、mp3解码等等;象c8051fXXX系列就是一个例子;

这些增强型的51单片机从功能上来说类似arm7,性价比不如arm,但是因为学习51的人众多,因此也能得到一部分用户;但是总的来说,随着arm7的普及,增强型的51的日落西山也是可以预期的,反而是简化版本的51在一些量大的行业应用估计还可以维持相当长的时间。

使用特权

评论回复
17
不是太会|  楼主 | 2007-5-26 22:19 | 只看该作者

多谢大家的回复

    我是初学者,很想和大家交朋友,向大家学习更多的知识

    计分电路的程序是我自己写的,欢迎大家转载,也希望大家能提出宝贵的意见

   我是刘新发
    

使用特权

评论回复
18
conwh| | 2007-5-26 23:09 | 只看该作者

LZ做好基础才是主要的

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

27

帖子

1

粉丝